|
@@ -37,7 +37,7 @@ class AuctionProc {
|
|
|
$obj = self::updateAuctionUserItemListCache(); # 更新玩家列表
|
|
|
}
|
|
|
$ret = array(
|
|
|
- "auctionitems" => $obj->data,
|
|
|
+ "auction" => $obj->data,
|
|
|
//"bidRecord" => $req->userInfo->privateState->arrUserlAucBidItems # 加一个出价记录
|
|
|
);
|
|
|
|
|
@@ -72,26 +72,38 @@ class AuctionProc {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 竞拍/一口价-----暂时没有竞拍,只有一口价
|
|
|
+ * 竞拍/一口价-7404 ----暂时没有竞拍,只有一口价
|
|
|
*/
|
|
|
static function UserAuctionBidItem() {
|
|
|
list($uId) = req()->paras;
|
|
|
$aucItem = self::getAuctionItem($uId);
|
|
|
- $price = $itemMo->buyoutPrice + intval($itemMo->buyoutPrice * 0.05);
|
|
|
- my_Assert(req()->userInfo->game->baseInfo->cash >=$price, ErrCode::notenough_cash_msg);
|
|
|
- //扣除钻石--交易费用 + 手续费
|
|
|
- req()->userInfo->game->baseInfo->cash -= $price;
|
|
|
-
|
|
|
+
|
|
|
+ $costType = $aucItem->costType;
|
|
|
+ $buyoutPrice = $aucItem->buyoutPrice;
|
|
|
+
|
|
|
+ $price = $buyoutPrice + intval($buyoutPrice * 0.05);
|
|
|
+ if($costType == META_GOLD_ITEMID){
|
|
|
+ my_Assert(req()->userInfo->game->baseInfo->gold >=$price, ErrCode::notenough_gold_msg);
|
|
|
+ //扣除金币--交易费用 + 手续费
|
|
|
+ req()->userInfo->game->baseInfo->gold -= $price;
|
|
|
+ } else if($costType == META_CASH_ITEMID){
|
|
|
+ my_Assert(req()->userInfo->game->baseInfo->cash >=$price, ErrCode::notenough_cash_msg);
|
|
|
+ //扣除钻石--交易费用 + 手续费
|
|
|
+ req()->userInfo->game->baseInfo->cash -= $price;
|
|
|
+ }
|
|
|
+
|
|
|
//更新表里的交易状态
|
|
|
$aucItem->result = "完成";
|
|
|
$aucItem->currpeopleid = req()->uid;
|
|
|
- $aucItem->currpeoplename = req()->userInfo->game->baseInfo->name;
|
|
|
- self::settleAuctionItem($aucItem); # 更新数据库
|
|
|
+ $aucItem->currpeoplename = req()->userInfo->game->baseInfo->name;
|
|
|
+
|
|
|
+ $err = self::settleAuctionItem($aucItem); # 更新数据库
|
|
|
//更新拍品缓存
|
|
|
+
|
|
|
$obj = self::updateAuctionUserItemListCache();
|
|
|
//发送邮件,给拍品
|
|
|
$sList = explode(',', $aucItem->contents);
|
|
|
- EmailProc::SendAuctionItemsMail($zoneid, $uid, $sList[0], $sList[1]);
|
|
|
+ EmailProc::SendAuctionItemsMail(req()->zoneid, req()->uid, $sList[0], $sList[1]);
|
|
|
|
|
|
UserProc::updateUserInfo(); # 回写玩家数据
|
|
|
return Resp::ok(array(
|
|
@@ -121,34 +133,36 @@ class AuctionProc {
|
|
|
* @return type
|
|
|
*/
|
|
|
static function UploadAuctionItems() {
|
|
|
- list($itemId, $num, $price, $buyoutPrice) = req()->paras; //上传拍品的 id 数量 竞拍价 一口价
|
|
|
+ list($itemId, $num) = req()->paras; //上传拍品的 id 数量 竞拍价 一口价
|
|
|
|
|
|
$user = req()->userInfo->game;
|
|
|
|
|
|
my_Assert(StlUtil::dictHasProperty($user->store->items, $itemId), ErrCode::store_itemno_err); # 参数合法性判断
|
|
|
- $auctionPrice = GameConfig::item_base_getItem($itemId)->auctionPrice;
|
|
|
- my_Assert($auctionPrice * $num <= $price && $auctionPrice * $num <= $buyoutPrice, ErrCode::store_itemno_err); # 参数合法性判断
|
|
|
-
|
|
|
+ $mo = GameConfig::item_base_getItem($itemId);
|
|
|
+ my_Assert($mo != null, ErrCode::err_const_no);
|
|
|
+ $auctionPrice = explode(',',$mo->auctionPrice);
|
|
|
+
|
|
|
StoreProc::removeItemFromStore($user->store, $itemId, $num);
|
|
|
-
|
|
|
+
|
|
|
$aucItem = new Ins_AuctionItemModel();
|
|
|
$aucItem->addstep = 1;
|
|
|
$aucItem->contents = $itemId.",".$num;
|
|
|
- $aucItem->startprice = $price;
|
|
|
- $aucItem->buyoutPrice = $buyoutPrice;
|
|
|
+ $aucItem->costType = $auctionPrice[0];
|
|
|
+ $aucItem->startprice = 0;
|
|
|
+ $aucItem->buyoutPrice = $buyoutPrice[1]*$num;
|
|
|
$aucItem->startts = time();
|
|
|
$aucItem->endts = glc()->AuctionEndTs * 60 * 60 + time(); # 24小时
|
|
|
$aucItem->sellerid = req()->uid;
|
|
|
$aucItem->sellername = $user->baseInfo->name;
|
|
|
- $aucItem->zoneid = req()->zoneid;
|
|
|
+ $aucItem->zoneid = req()->zoneid;
|
|
|
$err = self::insertNewUserAuctionItem($aucItem);
|
|
|
- if($err == 0){
|
|
|
- return ;
|
|
|
- }
|
|
|
-
|
|
|
+
|
|
|
+ my_Assert($err == 1, ErrCode::err_db);
|
|
|
+
|
|
|
# 插入成功后,更新缓存
|
|
|
- # 写入玩家数据
|
|
|
- $auctionDic = self::updateAuctionUserItemListCache(); # 更新缓存
|
|
|
+ # 写入玩家数据
|
|
|
+ $auctionDic = self::updateAuctionUserItemListCache(); # 更新缓存
|
|
|
+
|
|
|
req()->userInfo->game = $user;
|
|
|
UserProc::updateUserInfo(); # 回写玩家数据
|
|
|
return Resp::ok(array(
|
|
@@ -182,8 +196,8 @@ class AuctionProc {
|
|
|
$paydb = daoInst();
|
|
|
$sql = "INSERT INTO `tab_auctionitems` (contents,startprice,buyoutPrice,startts,endts,sellerid,sellername,auchistory,zoneid) VALUES ('%s',%d,%d,%d,%d,'%s','%s','{}',%d)";
|
|
|
$query = sprintf($sql, $aucItem->contents, $aucItem->startprice,$aucItem->buyoutPrice,$aucItem->startts, #
|
|
|
- $aucItem->endts, $aucItem->sellerid, mysql_real_escape_string($aucItem->sellername), $aucItem->zoneid);
|
|
|
- $result = $paydb->exec($query);
|
|
|
+ $aucItem->endts, $aucItem->sellerid, mysql_real_escape_string($aucItem->sellername), $aucItem->zoneid);
|
|
|
+ $result = $paydb->exec($query);
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
@@ -192,14 +206,14 @@ class AuctionProc {
|
|
|
* @param type $mem
|
|
|
* @return array
|
|
|
*/
|
|
|
- static function updateAuctionUserItemListCache() {
|
|
|
- $aucOfficial = self::getAuctionUserItemList(req()->zoneid); // 查询拍品列表
|
|
|
+ static function updateAuctionUserItemListCache() {
|
|
|
+ $aucOfficial = self::getAuctionUserItemList(req()->zoneid); // 查询拍品列表
|
|
|
$obj = array(
|
|
|
- 'ts' => CommUtil:: tsCurrent(),
|
|
|
- 'data' => $aucOfficial
|
|
|
+ 'ts' => time(),
|
|
|
+ 'data' => $aucOfficial,
|
|
|
);
|
|
|
-
|
|
|
- gMem()->set(self:: auctionItemListCache($zoneid), $obj); # 写入缓存
|
|
|
+
|
|
|
+ gMem()->set(self:: auctionItemListCache(req()->zoneid), $obj); # 写入缓存
|
|
|
return json_decode(json_encode($obj));
|
|
|
}
|
|
|
/**
|
|
@@ -207,8 +221,8 @@ class AuctionProc {
|
|
|
* @return array
|
|
|
*/
|
|
|
static function getAuctionUserItemList($zoneid = 1) {
|
|
|
- $now = time(); # 当前时间戳
|
|
|
- $sql = "SELECT * from tab_auctionitems WHERE zoneid=$zoneid and $now < endts and $now > startts";
|
|
|
+ $now = time(); # 当前时间戳
|
|
|
+ $sql = "SELECT * from tab_auctionitems WHERE zoneid=$zoneid and $now < endts and $now >= startts";
|
|
|
$paydb = daoInst();
|
|
|
$result = $paydb->query($sql)->fetchAll();
|
|
|
return $result; # 索引数组
|
|
@@ -223,7 +237,7 @@ class AuctionProc {
|
|
|
$sql = "SELECT * from tab_auctionitems WHERE itemid = $aucItemId";
|
|
|
$paydb = daoInst();
|
|
|
$result = $paydb->query($sql)->fetchAll();
|
|
|
-
|
|
|
+
|
|
|
return $result[0]; # 索引数组
|
|
|
}
|
|
|
|
|
@@ -231,11 +245,13 @@ class AuctionProc {
|
|
|
* 结算更新
|
|
|
* @param AuctionItemModel $aucItem
|
|
|
*/
|
|
|
- static function settleAuctionItem($aucItem) {
|
|
|
- $sql = "UPDATE `tab_auctionitems` set result = '%s',currpeopleid = '%s',currpeoplename = '%s' where itemid=%s";
|
|
|
- $query = sprintf($sql, $aucItem->result, $aucItem->currpeopleid,$aucItem->currpeoplename, $aucItem->itemid);
|
|
|
+ static function settleAuctionItem($aucItem) {
|
|
|
+ $sql = "UPDATE `tab_auctionitems` set result = '%s',currpeopleid = '%s',currpeoplename = '%s' where itemid = '%d'";
|
|
|
+ $query = sprintf($sql, $aucItem->result, $aucItem->currpeopleid,$aucItem->currpeoplename,$aucItem->itemid);
|
|
|
+
|
|
|
$paydb = daoInst();
|
|
|
- $paydb->exec($sql);
|
|
|
+ $result = $paydb->exec($query);
|
|
|
+ return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -243,10 +259,11 @@ class AuctionProc {
|
|
|
* @param type $aucItem
|
|
|
*/
|
|
|
static function updateAuctionItemState($aucItem) {
|
|
|
- $sql = "UPDATE `tab_auctionitems` set result = '%s' where itemid=%s";
|
|
|
- $query = sprintf($sql, $aucItem->result, $aucItem->itemid);
|
|
|
+ $sql = "UPDATE `tab_auctionitems` set result = '%s' where itemid='%d'";
|
|
|
+ $query = sprintf($sql,$aucItem->result, $aucItem->itemid);
|
|
|
$paydb = daoInst();
|
|
|
- $paydb->exec($sql);
|
|
|
+ $result = $paydb->exec($query);
|
|
|
+ return $result;
|
|
|
}
|
|
|
|
|
|
/**
|