王刚 3 лет назад
Родитель
Сommit
58062b6f7a

+ 1 - 1
Gameserver/Amfphp/AutoLoad.php

@@ -51,7 +51,7 @@ require_once ROOTDIR . '/process/UserProc.php';
 require_once ROOTDIR . '/process/FightProc/PVPProc.php';                        # (userproc中引用到了)
 require_once ROOTDIR . '/process/EventProc/CornerSignEventProc.php';            # 角标更新各处插入
 require_once ROOTDIR . '/process/EventProc/NormalEventProc.php';                # 2020年12月新版事件系统
-require_once ROOTDIR . '/model/User/UserInfoMo.php';                            # 玩家全部数据模型
+//require_once ROOTDIR . '/model/User/UserInfoMo.php';                            # 玩家全部数据模型
 require_once ROOTDIR . '/model/User/Data_UserGame.php';                         # 游戏数据
 require_once ROOTDIR . '/model/User/Data_UserProfile.php';                      # 玩家画像
 

+ 27 - 27
Gameserver/Amfphp/process/ActiveProc.php

@@ -38,7 +38,7 @@ class ActiveProc {
                 return self::drawTiliGift();
             case CmdCode::active_get_regnum:                                    # 6516 查询当前全服注册人数
                 return self::getRegNumber();
-            case CmdCode::active_shenmiaoDrawPrize:                            # 6505 什么抽奖
+            case CmdCode::active_shenmiaoDrawPrize:                             # 6505 什么抽奖
                 return self::shenmiaoDrawPrize();
             case CmdCode::active_GetShenmiaoData:
                 return self::GetShenmiaoData();
@@ -230,7 +230,7 @@ class ActiveProc {
         if ($type == Enum_Active::OpenWish) {
             $aid = self::getActiveRandomItem($itemType, $shenmo);
         } else {
-            $aid = self::getActiveRandomItem_3($itemType, $shenmo, $type); //随机出的id
+            $aid = self::getActiveRandomItem_3($itemType, $shenmo, $type);      # 随机出的id
         }
 
         if ($shenmiaoInfo->activeDic->$type->num % glc()->Active_UR_Num == 0 && $itemType != Enum_ActiveItemType::Ssr) {
@@ -276,7 +276,7 @@ class ActiveProc {
                 }
             }
         }
-        if ($shenmiaoInfo->activeDic->$type->totalNum >= glc()->Active_UR_Num) {//第90次必得
+        if ($shenmiaoInfo->activeDic->$type->totalNum >= glc()->Active_UR_Num) { # 第90次必得
             if ($type == Enum_Active::OpenWish) {
                 $aid = self::getActiveRandomItem(Enum_ActiveItemType::Ssr, $shenmo);
             } else {
@@ -290,7 +290,7 @@ class ActiveProc {
     }
 
     public static function prizeTypeRand($str) {
-        if (strpos($str, ';')) {//包含;说明里面奖品类型不同获得的概率不同
+        if (strpos($str, ';')) {                                                # 包含;说明里面奖品类型不同获得的概率不同
             $sList = explode(';', $str);
             $dic = new \stdClass();
 
@@ -419,7 +419,7 @@ class ActiveProc {
                         $start = 0;
                         foreach ($dic as $k => $val) {
                             $end = $val + $start;
-                            if ($rand > $start && $rand <= $end) {//随机到Up得id
+                            if ($rand > $start && $rand <= $end) {              # 随机到Up得id
                                 $id = $k;
                                 break;
                             }
@@ -434,11 +434,11 @@ class ActiveProc {
                         foreach ($dic as $k => $val) {
                             $sNum += 1;
                             $end = $val + $start;
-                            if ($rand > $start && $rand <= $end) {//随机到Up得id
+                            if ($rand > $start && $rand <= $end) {              // 随机到Up得id
                                 $id = $k;
                                 break;
                             }
-                            if ($sNum >= $count) { //随机到普通的id
+                            if ($sNum >= $count) {                              // 随机到普通的id
                                 $shenmiaoInfo->activeDic->$activeType->isUpSsr = 1;
                                 $id = self::prizeTypeRand($mo->srList);
                                 //$id = self::randList(explode(',', $mo->ssrList));
@@ -469,7 +469,7 @@ class ActiveProc {
                         $start = 0;
                         foreach ($dic as $k => $val) {
                             $end = $val + $start;
-                            if ($rand > $start && $rand <= $end) {//随机到Up得id
+                            if ($rand > $start && $rand <= $end) {              // 随机到Up得id
                                 $id = $k;
                                 break;
                             }
@@ -574,7 +574,7 @@ class ActiveProc {
     static function drawRegGift() {
         $user = new Data_UserGame(ctx());
         $privateState = new Info_PrivateState($user->privateState);
-        $giftId = req()->paras[0];                                               # 礼包id
+        $giftId = req()->paras[0];                                              # 礼包id
         $giftModel = GameConfig::activity_reggift_getItem($giftId);             # 取礼包常亮数据
         if (null == $giftModel) {
             return Resp::err(ErrCode::err_const_no);
@@ -584,17 +584,17 @@ class ActiveProc {
         }
         // 判断是否满足领取条件
         if (gMem()->get(MemKey_GameRun::Stat_UserCountByZone_int(req()->zoneid)) < $giftModel->regNumber) {
-            return Resp::err(ErrCode::active_illegal);              # 不满足条件
+            return Resp::err(ErrCode::active_illegal);                          # 不满足条件
         }
         $err = StoreProc::AddMultiItemInStore($giftModel->rewardstr);           # 发放奖励
         if ($err) {
-            return Resp::err($err);                                 # 失败
+            return Resp::err($err);                                             # 失败
         }
         $privateState->drawedRegGift[] = $giftId;
         $user->privateState = $privateState;
         ctx($user);
-        UserProc::updateUserInfo();                                         # 回存
-        return Resp::ok(array(#                                     # 返回值
+        UserProc::updateUserInfo();                                             # 回存
+        return Resp::ok(array(#                                                 # 返回值
                     'key' => 'ok',
                     'store' => $user->store
         ));
@@ -618,7 +618,7 @@ class ActiveProc {
      * [6513] 领取连续在线礼包
      */
     static function drawOnlineGift() {
-        $giftid = req()->paras[0];                                               # 提取参数: 礼包的编号
+        $giftid = req()->paras[0];                                              # 提取参数: 礼包的编号
         $user = ctx();
         $privateState = ctx()->privateData();
         $giftData = GameConfig::activity_onlinegift_getItem($giftid);           # 在线礼包常量数据
@@ -627,7 +627,7 @@ class ActiveProc {
                 ErrCode::onlinegift_timenotenough);
 
         my_default_Arr($privateState->onlineGiftIDs);                           # 防御未初始化领取记录
-        my_Assert(!in_array($giftid, $privateState->onlineGiftIDs), #            # 判断礼包ID是否已经领取
+        my_Assert(!in_array($giftid, $privateState->onlineGiftIDs), #           # 判断礼包ID是否已经领取
                 ErrCode::active_hasgetted);
         $err = StoreProc::AddMultiItemInStore($giftData->rewardstr);            # 发放奖励
         my_Assert(ErrCode::ok == $err, $err);                                   # 发放奖励失败
@@ -662,7 +662,7 @@ class ActiveProc {
     static function drawActivePackageByCode() {
         $user = new Data_UserGame(ctx());
         $privateState = new Info_PrivateState($user->privateState);             # 快速访问
-        list( $activeId, $codestring) = req()->paras;                            # 取参数 活动id, 兑换码
+        list( $activeId, $codestring) = req()->paras;                           # 取参数 活动id, 兑换码
         $active = GameConfig::activity_getItem($activeId);                      # 活动数据
         my_Assert(null != $active, ErrCode::active_const_no_err);
         my_Assert($active->startts <= now() && $active->endts >= now(), ErrCode::active_time); # 校验开放时间
@@ -686,11 +686,11 @@ class ActiveProc {
         my_Assert(!self::checkActiveCodeIsUsed($activeCode), ErrCode::active_activecode_used);  # 检查 该激活码是否已经使用过了
         $err = StoreProc::AddMultiItemInStore($packageInfo->reward);            # 发放礼包
         my_Assert(ErrCode::ok == $err, $err);                                   # 防御发放礼包过程出错
-        ctx()->privateState->usedTokens[] = $packageID;          # 记录领取记录
-        $ok = self::setActiveCodeUserRecord($activeCode, req()->uid);            # 插入数据库
+        ctx()->privateState->usedTokens[] = $packageID;                         # 记录领取记录
+        $ok = self::setActiveCodeUserRecord($activeCode, req()->uid);           # 插入数据库
         my_Assert($ok, ErrCode::err_db);                                        # 数据库操作失败- 重试
         UserProc::updateUserInfo();                                             # 回存玩家数据
-        $user = new Data_UserGame(ctx());                       # 重新取一下玩家数据.
+        $user = new Data_UserGame(ctx());                                       # 重新取一下玩家数据.
         $ret = array(#                                                          # 返回值
             "plat" => $codePlatStr,
             "packageId" => $activeCode->package,
@@ -781,14 +781,14 @@ class ActiveProc {
         if (!CommUtil::isPropertyExists($user->privateState, "TiliTime")) {
             $user->privateState->TiliTime = time() - 120;
         }
-        if ($user->baseInfo->tili > 120) {                                                # 如果该账户体力值本身是大于上限的,获取一下超出的体力值
-            $moreTili = $user->baseInfo->tili - 120;                                      # 用moreTili保存一下额外的体力值
+        if ($user->baseInfo->tili > 120) {                                      # 如果该账户体力值本身是大于上限的,获取一下超出的体力值
+            $moreTili = $user->baseInfo->tili - 120;                            # 用moreTili保存一下额外的体力值
         }
         $useTime = time() - $user->privateState->TiliTime;                      # 距离上次修改体力值的时间
         if ($useTime > 300) {                                                   # 该账户超过了单位体力时间,需要重新计算体力值
             if ($moreTili <= 0) {
                 $user->baseInfo->tili += (int) ( (int) ($useTime / 300));
-                if ($user->baseInfo->tili > 120) {                                        # 体力值上限
+                if ($user->baseInfo->tili > 120) {                              # 体力值上限
                     $user->baseInfo->tili = 120;
                 } // 这代码真烂,以后用的时候再修复吧... -gwang 20200110154858
             }
@@ -817,12 +817,12 @@ class ActiveProc {
         $ac = GameConfig::activity_getItem($typeID);
         my_Assert(null != $ac, ErrCode::err_const_no);
         $startDay = totalDays($ac->startts);
-        $newLoginDays = array_filter(ctx()->privateState->LoginDays, # 剔除不符合时间的登录记录
+        $newLoginDays = array_filter(ctx()->privateState->LoginDays, #          # 剔除不符合时间的登录记录
                 function ($tsday)use ($startDay) {
                     return $startDay <= $tsday;
                 }
         );
-        ctx()->privateState->LoginDays = $newLoginDays;          #
+        ctx()->privateState->LoginDays = $newLoginDays;                         #
         if (count(ctx()->privateState->LoginDays) < 7) {
             ctx()->privateState->LoginDays[] = totalDays();
         }
@@ -833,16 +833,16 @@ class ActiveProc {
      */
     static function Day7_DrawReward() {
         // 设计7日数据结构
-        list($day) = req()->paras;                                               # 参数: 领取第x天的奖励
+        list($day) = req()->paras;                                              # 参数: 领取第x天的奖励
         $user = ctx();
-        $private = new Info_PrivateState($user->privateState);   # 私有数据
+        $private = new Info_PrivateState($user->privateState);                  # 私有数据
         my_Assert(count($private->LoginDays) >= $day, ErrCode::active_day7_totaldays);
         my_Assert(!in_array($day, $private->day7_drawed), ErrCode::active_hasgetted);
         $day_rwd = GameConfig::activity_day7_getItem($day);                     # 查询奖励数据
         my_Assert(null != $day_rwd, ErrCode::err_const_no);                     # 防御找不到配置
         StoreProc::AddMultiItemInStore($day_rwd->reward);                       # 发放奖励
         $private->day7_drawed[] = $day;                                         # 添加领取记录
-        $user->privateState = $private;                          # 更新数据
+        $user->privateState = $private;                                         # 更新数据
         UserProc::updateUserInfo();                                             # 回存
         return Resp::ok(array(
                     'gold' => $user->baseInfo->gold,

+ 85 - 86
Gameserver/Amfphp/process/AuctionProc.php

@@ -22,7 +22,7 @@ class AuctionProc {
             case CmdCode::cmd_Auction_CancelAuction:                            # 7405 取消出售
                 return AuctionProc::CancelAuction();
             case CmdCode::cmd_Auction_UploadAuctionItems:                       # 7406 上传拍品
-                return AuctionProc::UploadAuctionItems();       
+                return AuctionProc::UploadAuctionItems();
             case CmdCode::cmd_Auction_UserAuctionBidItem:                       # 7407 竞拍
                 return AuctionProc::UserAuctionBidItem();
             default:
@@ -52,9 +52,9 @@ class AuctionProc {
     /**
      * 玩家上架拍品信息
      */
-    static function GetUserUploadAuctionItems() {       
-        $dic = self::getMyAuctionItems();#上架信息
-        
+    static function GetUserUploadAuctionItems() {
+        $dic = self::getMyAuctionItems(); #上架信息
+
         UserProc::updateUserInfo();                                             # 回写玩家数据
         return Resp::ok(array(
                     "auction" => $dic,
@@ -66,7 +66,7 @@ class AuctionProc {
      */
     static function GetUserAuctionItems() {
         $result = self::selectMyAuctionBid();
-        
+
         UserProc::updateUserInfo();                                             # 回写玩家数据
         return Resp::ok(array(
                     "auction" => $result,
@@ -79,35 +79,34 @@ class AuctionProc {
     static function BuyoutPrice() {
         list($uId) = req()->paras;
         $aucItem = self::getAuctionItem($uId);
-              
-        $buyoutPrice = $aucItem->buyoutPrice;             
-        
-        my_Assert($aucItem->result == "", "该拍品不能竞拍");  
-        my_Assert($aucItem->sellerid != req()->uid, "不能竞拍自己的拍品");       
-        my_Assert(ctx()->baseInfo->cash >= $buyoutPrice, ErrCode::notenough_cash_msg);               
+
+        $buyoutPrice = $aucItem->buyoutPrice;
+
+        my_Assert($aucItem->result == "", "该拍品不能竞拍");
+        my_Assert($aucItem->sellerid != req()->uid, "不能竞拍自己的拍品");
+        my_Assert(ctx()->baseInfo->cash >= $buyoutPrice, ErrCode::notenough_cash_msg);
         //扣除钻石--交易费用 + 手续费
-        ctx()->base()->Consume_Cash($buyoutPrice);    
+        ctx()->base()->Consume_Cash($buyoutPrice);
         //ctx()->baseInfo->cash -= $buyoutPrice; 
-                                   
         //更新表里的交易状态
         $aucItem->result = "完成";
         $aucItem->currpeopleid = req()->uid;
-        $aucItem->currpeoplename = ctx()->baseInfo->name;     
-        
+        $aucItem->currpeoplename = ctx()->baseInfo->name;
+
         $err = self::settleAuctionItem($aucItem); # 更新数据库     
 //更新拍品缓存
 
-        $obj = self::updateAuctionUserItemListCache();        
+        $obj = self::updateAuctionUserItemListCache();
 //发送邮件,给拍品
         $sList = explode(',', $aucItem->contents);
-        EmailProc::SendAuctionItemsMail(req()->zoneid, req()->uid, $sList[0], $sList[1]); 
-               
-        EmailProc::SendAuctionCashMail(req()->zoneid,$aucItem->sellerid, $sList[0], 2, $buyoutPrice -intval($buyoutPrice * 0.05));//上架玩家给钻石邮件  
-        
+        EmailProc::SendAuctionItemsMail(req()->zoneid, req()->uid, $sList[0], $sList[1]);
+
+        EmailProc::SendAuctionCashMail(req()->zoneid, $aucItem->sellerid, $sList[0], 2, $buyoutPrice - intval($buyoutPrice * 0.05)); //上架玩家给钻石邮件  
+
         UserProc::updateUserInfo();                                             # 回写玩家数据
         return Resp::ok(array(
                     "auction" => $obj->data,
-                    "cash"=>ctx()->baseInfo->cash,
+                    "cash" => ctx()->baseInfo->cash,
         ));
     }
 
@@ -118,15 +117,15 @@ class AuctionProc {
         list($uId) = req()->paras;
         $aucItem = self::getAuctionItem($uId);
         $aucItem->result = "取消出售";
-        
+
         $ctxList = explode(',', $aucItem->contents);
-        EmailProc::SendCantSellAuctionItemsMail(req()->zoneid, req()->uid, $ctxList[0],$ctxList[1]);
-        
+        EmailProc::SendCantSellAuctionItemsMail(req()->zoneid, req()->uid, $ctxList[0], $ctxList[1]);
+
         self::updateAuctionItemState($aucItem);
         self::updateAuctionUserItemListCache();
-                 
-        $dic = self::getMyAuctionItems();#上架信息
-        
+
+        $dic = self::getMyAuctionItems(); #上架信息
+
         UserProc::updateUserInfo();                                             # 回写玩家数据
         return Resp::ok(array(
                     "auction" => $dic,
@@ -138,79 +137,76 @@ class AuctionProc {
      * @return type
      */
     static function UploadAuctionItems() {
-        list($itemId, $num,$bugoutPrice) = req()->paras; //上传拍品的 id 数量 竞拍价 一口价
+        list($itemId, $num, $bugoutPrice) = req()->paras; //上传拍品的 id 数量 竞拍价 一口价
 
-        $user = ctx(); 
+        $user = ctx();
 
         my_Assert(StlUtil::dictHasProperty($user->store->items, $itemId), ErrCode::store_itemno_err); # 参数合法性判断
-        $mo = GameConfig::item_base_getItem($itemId);       
+        $mo = GameConfig::item_base_getItem($itemId);
         my_Assert($mo != null, ErrCode::err_const_no);
-                             
-        $sList = explode(',', $mo->buyoutPrice);       
-        my_Assert($bugoutPrice>= $sList[1], ErrCode::notenough_cash_msg);
-        
+
+        $sList = explode(',', $mo->buyoutPrice);
+        my_Assert($bugoutPrice >= $sList[1], ErrCode::notenough_cash_msg);
+
         StoreProc::removeItemFromStore($user->store, $itemId, $num);
-       
+
         $aucItem = new Ins_AuctionItemModel();
         $aucItem->addstep = 1;
-        $aucItem->contents = $itemId.",".$num;       
+        $aucItem->contents = $itemId . "," . $num;
         $aucItem->startprice = 0;
-        $aucItem->buyoutPrice = $sList[1]*$num;
+        $aucItem->buyoutPrice = $sList[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);
-       
+
         my_Assert($err == 1, ErrCode::err_db);
-      
+
         # 插入成功后,更新缓存
         # 写入玩家数据
         $auctionDic = self::updateAuctionUserItemListCache(); # 更新缓存    
-        
-        ctx($user);      
+
+        ctx($user);
         UserProc::updateUserInfo();                                             # 回写玩家数据
         return Resp::ok(array(
                     "store" => $user->store,
-                    "auction"=>$auctionDic,#拍品
+                    "auction" => $auctionDic, #拍品
         ));
     }
-    
+
     /**
      * 竞价
      */
     static function UserAuctionBidItem() {
         list($uId) = req()->paras;
         $aucItem = self::getAuctionItem($uId);
-        
+
         UserProc::updateUserInfo();                                             # 回写玩家数据
         return Resp::ok(array(
                     "store" => $user->store,
-                    "auction"=>$auctionDic,#拍品
+                    "auction" => $auctionDic, #拍品
         ));
     }
-    
-    static function TriggerSettlement() {     
+
+    static function TriggerSettlement() {
         $result = self::selectTimeoutAuctionItems();
-        if(count($result) > 0){
+        if (count($result) > 0) {
             foreach ($result as $aucItem) {
                 //发送流拍邮件
-                $sList = explode(',', $aucItem->contents);               
+                $sList = explode(',', $aucItem->contents);
                 EmailProc::SendAuctionItemsStreamingMail(req()->zoneid, req()->uid, $sList[0], $sList[1]);
-                
+
                 //更新数据库信息
-                $aucItem->result = "流拍";               
-                self::updateAuctionItemState($aucItem);              
+                $aucItem->result = "流拍";
+                self::updateAuctionItemState($aucItem);
             }
         }
-   
+
         return "ok";
     }
 
-
-
-
     /**
      * 获取当前的玩家拍卖缓存
      * @param type $mem
@@ -227,47 +223,48 @@ class AuctionProc {
     static function auctionItemListCache($zoneid) {
         return "auction-user-itemlist" . "-zone" . $zoneid;
     }
-    
+
     /**
      * 插入新的玩家拍品
      * @param Ins_AuctionItemModel $aucItem
      */
     static function insertNewUserAuctionItem($aucItem) {
-        $paydb = daoInst();              
+        $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,$aucItem->sellername, $aucItem->zoneid);     
-        $result = $paydb->exec($query);          
+        $query = sprintf($sql, $aucItem->contents, $aucItem->startprice, $aucItem->buyoutPrice, $aucItem->startts, #
+                $aucItem->endts, $aucItem->sellerid, $aucItem->sellername, $aucItem->zoneid);
+        $result = $paydb->exec($query);
         return $result;
     }
-    
+
     /**
      * 更新玩家拍卖拍品列表缓存
      * @param type $mem
      * @return array
      */
-    static function updateAuctionUserItemListCache() {       
-        $aucOfficial = self::getAuctionUserItemList(req()->zoneid); // 查询拍品列表                
+    static function updateAuctionUserItemListCache() {
+        $aucOfficial = self::getAuctionUserItemList(req()->zoneid);             // 查询拍品列表                
         $obj = array(
             'ts' => time(),
             'data' => $aucOfficial,
         );
-             
-        gMem()->set(self:: auctionItemListCache(req()->zoneid), $obj); # 写入缓存      
+
+        gMem()->set(self:: auctionItemListCache(req()->zoneid), $obj);          # 写入缓存      
         return json_decode(json_encode($obj));
     }
+
     /**
      * 取今天的玩家拍卖拍品集合
      * @return array
      */
     static function getAuctionUserItemList($zoneid = 1) {
         $now = time(); # 当前时间戳       
-        $sql = "SELECT * from tab_auctionitems WHERE zoneid=$zoneid and $now < endts and $now >= startts"; 
+        $sql = "SELECT * from tab_auctionitems WHERE zoneid=$zoneid and $now < endts and $now >= startts";
         $paydb = daoInst();
         $result = $paydb->query($sql)->fetchAll();
         return $result; # 索引数组
     }
-    
+
     /**
      * 查询某个拍品
      * @param type $aucItemId
@@ -277,35 +274,35 @@ class AuctionProc {
         $sql = "SELECT * from tab_auctionitems WHERE itemid = $aucItemId";
         $paydb = daoInst();
         $result = $paydb->query($sql)->fetchAll();
-       
+
         return $result[0]; # 索引数组
     }
-    
+
     /**
      * 结算更新
      * @param AuctionItemModel $aucItem
      */
-    static function settleAuctionItem($aucItem) {         
+    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);
-        
+        $query = sprintf($sql, $aucItem->result, $aucItem->currpeopleid, $aucItem->currpeoplename, $aucItem->itemid);
+
         $paydb = daoInst();
-        $result = $paydb->exec($query);             
+        $result = $paydb->exec($query);
         return $result;
     }
-    
+
     /**
      * 
      * @param type $aucItem
      */
     static function updateAuctionItemState($aucItem) {
         $sql = "UPDATE `tab_auctionitems` set result = '%s' where itemid='%d'";
-        $query = sprintf($sql,$aucItem->result, $aucItem->itemid);
+        $query = sprintf($sql, $aucItem->result, $aucItem->itemid);
         $paydb = daoInst();
-        $result = $paydb->exec($query);             
+        $result = $paydb->exec($query);
         return $result;
     }
-    
+
     /**
      * 查询我的上架拍品的信息
      * @return type
@@ -317,37 +314,39 @@ class AuctionProc {
         $db = daoInst();
         $sql = "select * from tab_auctionitems where zoneid=$zoneid and sellerid = '$uid'";
         $result = $db->query($sql)->fetchAll();
-       
+
         return $result;
     }
+
     /**
      * 玩家的竞拍信息
      * @param type $zoneid
      * @param type $oid
      * @return type
      */
-    static function selectMyAuctionBid() {   
+    static function selectMyAuctionBid() {
         $zoneid = req()->zoneid;
         $oid = req()->uid;
-            
+
         $db = daoInst();
         $sql = "select * from tab_auctionitems where zoneid=$zoneid and currpeopleid = '$oid'";
         $result = $db->query($sql)->fetchAll();
-        
+
         return $result;
     }
-    
+
     /**
      * 查询到期且未处理的拍品
      * @return type
      */
     static function selectTimeoutAuctionItems() {
         $ts = time();
-        $zoneid = req()->zoneid;     
+        $zoneid = req()->zoneid;
         $db = daoInst();
         $sql = "select * from tab_auctionitems where zoneid=$zoneid and result = '' and $ts>endts";
         $result = $db->query($sql)->fetchAll();
-       
+
         return $result;
     }
+
 }

+ 4 - 4
Gameserver/Amfphp/process/EmailProc.php

@@ -81,7 +81,7 @@ class EmailProc {
 //        Err(ErrCode::err_method_obsoleted, "此功能仅测试期间可用");
         list($itemId, $num) = req()->paras;
         self::SendTestItemsMail(req()->zoneid, req()->uid, $itemId, $num);
-        $mails = self::getMailQueue(req()->zoneid, req()->uid);                   # 拉取邮件列表
+        $mails = self::getMailQueue(req()->zoneid, req()->uid);                 # 拉取邮件列表
         return Resp::ok(array('mailQueue' => $mails));
     }
 
@@ -123,7 +123,7 @@ class EmailProc {
 
         $uid = req()->uid;
         $zoneid = req()->zoneid;
-        $mailId = req()->paras[0];                                               # 传递参数,邮件的id字符串
+        $mailId = req()->paras[0];                                              # 传递参数,邮件的id字符串
         my_Assert($mailId, ErrCode::email_wrongid);                             # 普通读取一封邮件的逻辑
 
         $mail = self::getMail($zoneid, $uid, $mailId);
@@ -140,7 +140,7 @@ class EmailProc {
     public static function DrawEmailAppendix() {
         $uid = req()->uid;
         $zoneid = req()->zoneid;
-        $mailId = req()->paras[0];                                               # 传递参数,邮件的id字符串
+        $mailId = req()->paras[0];                                              # 传递参数,邮件的id字符串
         my_Assert($mailId, ErrCode::email_wrongid);                             # 邮件id
 
         $mail = self::getMail($zoneid, $uid, $mailId);                          # 取出对应的邮件数据
@@ -590,7 +590,7 @@ class EmailProc {
                 $mail = new Ins_Email($sysMail);                                # 创建邮件
                 $mail->type = enum_Mail_Type::SysTemMail;                       # 设置邮件类型为系统邮件
                 $mail->sender_uid = $sysMail->id;                               # 设置uid为系统邮件id
-                $mail->sender_name = "系统";                                    #  设置发送者昵称为系统
+                $mail->sender_name = "系统";                                     #  设置发送者昵称为系统
                 self::InsertMail($zoneid, $uid, $mail);                         # 插入邮件
                 $mem->sadd($key, $sysId);                                       # 记录已经领取此邮件
             }

+ 4 - 4
Gameserver/Amfphp/process/EventProc.php

@@ -33,7 +33,7 @@ class EventProc {
             UserProc::updateUserInfo();
         }
         $arr = array_values(array_unique(ctx()->privateState->cornerSignNotifications)); # 返回值去重
-        ctx()->privateState->cornerSignNotifications = $arr;    # 更新记录
+        ctx()->privateState->cornerSignNotifications = $arr;                    # 更新记录
         return Resp::ok(array("notifications" => $arr));                        # 返回
     }
 
@@ -43,7 +43,7 @@ class EventProc {
     static function GetCornerSignNotifications() {
         // 这里直接返回, 将来开发对应的触发逻辑, 给数组中添加相应的值
         $arr = array_values(array_unique(ctx()->privateState->cornerSignNotifications)); # 返回值去重
-        ctx()->privateState->cornerSignNotifications = $arr;    # 更新记录
+        ctx()->privateState->cornerSignNotifications = $arr;                    # 更新记录
         UserProc::updateUserInfo();
         return Resp::ok(array("notifications" => $arr));                        # 返回
     }
@@ -92,14 +92,14 @@ class EventProc {
             isEditor() and $b = new \sm_build();
             if (!in_array($id, $ubs)) {                                         # 尚未解锁的建筑,判断,已解锁的跳过
                 if ($b->playerLevelLimit <= $new) {                             # 符合解锁条件
-                    ctx()->privateState->unlockedBuild[] = $id; # 插入解锁记录
+                    ctx()->privateState->unlockedBuild[] = $id;                 # 插入解锁记录
                     StatisticsProc::TargetStatistics(Enum_TargetStatistics::unlockbuidId, $id);
                     if ($id == 1000) {
                         $college = new Info_College();
                         $college->setFunUnluckTs();
                     }
                     StatisticsProc::unlockBuild($id);                           # 统计全服玩家解锁建筑
-                    NormalEventProc::OnUnlockBuild($id, null);                   # 插入事件
+                    NormalEventProc::OnUnlockBuild($id, null);                  # 插入事件
                 }
             }
         }

+ 7 - 7
Gameserver/Amfphp/process/HeroProc.php

@@ -493,7 +493,7 @@ class HeroProc {
         ctx()->store->items = $myPacketItems;                    # 回存背包
         UserProc::updateUserInfo();                                             # 回写数据
         $resp = HeroProc::GetHero();
-        SystemProc::GetHero(req()->zoneid, $user->base(), $heroModelId);       # 插入系统广播消息
+        SystemProc::GetHero(req()->zoneid, $user->base(), $heroModelId);        # 插入系统广播消息
         return $resp;
     }
 
@@ -502,7 +502,7 @@ class HeroProc {
      * @return type
      */
     static function BuyHeroMaxCountLimt() {
-        list($buyNum, $costCash) = req()->paras;                                 # 提取参数: 数量, 花费钻石
+        list($buyNum, $costCash) = req()->paras;                                # 提取参数: 数量, 花费钻石
         $g = glc();
         $user = ctx();                                           # user引用
         if (!CommUtil::isPropertyExists($user->heros, "maxCollectCount")) {
@@ -726,8 +726,8 @@ class HeroProc {
      */
     static function HeroChangelockstate() {
         $gamedata = ctx();
-        $heroUID = req()->paras[0];                                              # 玩家英雄实例编号
-        $lockstate = req()->paras[1];                                            # 玩家英雄锁定状态
+        $heroUID = req()->paras[0];                                             # 玩家英雄实例编号
+        $lockstate = req()->paras[1];                                           # 玩家英雄锁定状态
         $collectHeros = $gamedata->heros->collectHeros;
         my_default_Obj($collectHeros);                                          # 默认值
         my_Assert(CommUtil::isPropertyExists($collectHeros, $heroUID), ErrCode::hero_no);
@@ -840,7 +840,7 @@ class HeroProc {
      * @return type
      */
     static function YanlinUpLevel() {
-        list($uid, $yanlingList, $items) = req()->paras;                                        # 参数 言灵uid(指定进阶的言灵实例id)
+        list($uid, $yanlingList, $items) = req()->paras;                        # 参数 言灵uid(指定进阶的言灵实例id)
         $user = ctx();
         $yanling = $user->store->yanling;
 
@@ -893,9 +893,9 @@ class HeroProc {
         UserProc::CollectUserBaseParam(req()->cmd, 2, $user->baseInfo->gold, $totalGold, $user->baseInfo->gold - $totalGold, "");
         $user->baseInfo->gold -= $totalGold;
         ctx($user);
-        ctx()->store->items = $myPacketItems;                    # 更新背包数据
+        ctx()->store->items = $myPacketItems;                                   # 更新背包数据
         if ($equipVo->level != $initLevel) {
-            NormalEventProc::OnYanLingLvlUp($uid, $equipVo->level);         # 广播英雄升级事件
+            NormalEventProc::OnYanLingLvlUp($uid, $equipVo->level);             # 广播英雄升级事件
             StatisticsProc::TargetStatistics(Enum_TargetStatistics::YanLingIdLevel_UserNum, $equipVo->typeId, "$equipVo->level", $initLevel);
         }
 

+ 196 - 196
Gameserver/Amfphp/process/del_HeroDiscussProc.php

@@ -1,199 +1,199 @@
 <?php
 
 // 这个功能个人觉着写的还不错, 代码就不删除了. 留着参考. --gwang
-//
-//namespace loyalsoft;
-//
-///**
-// * 评价内容
-// */
-//class DiscussItem extends Object_ext {
-//
-//    public $uid;
-//    public $name;
-//    public $msg;
-//    public $ts;
-//    public $praise;
-//    public $praised_uids;
-//
-//    /**
-//     * @return int 重新计算此条评论的排行
-//     */
-//    public function Score() {
-//        return $this->ts + $this->praise * glc()->Hero_Discuss_Praise_weight;
-//    }
-//
-//}
-//
-///**
-// * 英雄评论模块
-// * @version
-// *          1.0.0 Created at 2017-3-24. by --gwang
-// * @author gwang (mail@wanggangzero.cn)
-// * @copyright ? 2017-3-24, SJZ LoyalSoft Corporation & gwang. All rights reserved.
-// */
-//class HeroDiscussProc {
-//
-//    /**
-//     * 每次请求返回的评论数量
-//     */
-//    const PageItemCount = 50;
-//
-//    /**
-//     * [6317]发表评价
-//     * @param Req $req
-//     */
-//    static function Post($req) {
-//        $mem = $req->mem;
-//        $uid = $req->uid;
-//        $heroId = $req->paras[0];                                               # 英雄ID
-//        $content = $req->paras[1];                                              # 评价内容
-//        $item = new DiscussItem(array(#                                         # 创建一条评论
-//            'uid' => $uid,
-//            'name' => $req->userInfo->game->baseInfo->name,
-//            'msg' => $content,
-//            'ts' => now(),
-//            'praise' => 0, #                                                    # 赞
-//            'praised_uids' => ArrayInit()
-//        ));
-//        if ($mem->hexists(MemKey_GameRun::HeroDiscusses_item_hash($heroId), $uid)) {
-//            $item = self::_GetDiscussItem($mem, $heroId, $uid);
-//        } else {
-//            self::_SaveDiscussItem($heroId, $uid, $item);                       # 保存评论
-//            $mem->zadd(MemKey_GameRun::HeroDiscusses_score_zset($heroId), #
-//                    array($uid => $item->Score())); #                           # 写入排行数据
-//        }
-//        // todo: 添加总评论数量限制, 超过一定数量清理部分评论
-//        return Resp::ok(array("ret" => $item));                                 # 成功后返回评论内容,
-//        // ps.客户端可以对比返回的内容是否和发送的内容一致,不一致代表已经有过评论了,不可以再发布新评论, 这个设定有跟待策划商议.
-//    }
-//
-//    /**
-//     * [6319] 删除评价
-//     * @param Req $req
-//     */
-//    static function DeletePost($req) {
-//        $uid = $req->uid;
-//        $heroId = $req->paras[0];                                               # 英雄ID
-//        $msg = "";
-//        if ($req->mem->hdel(MemKey_GameRun::HeroDiscusses_item_hash($heroId), $uid)) {
-//            $msg = "success";
-//        }
-//        return Resp::ok(array('ret' => $msg));
-//    }
-//
-//    /**
-//     * [6320] 给英雄打分(同一个英雄只能打一次分)
-//     * @param Req $req
-//     */
-//    static function Score($req) {
-//        $uid = $req->uid;
-//        list($heroId, $score) = $req->paras;                                    # 提取参数:  英雄ID, 打分值
-//        my_Assert($score > 0 && $score <= 5, ErrCode::paras_err);               # 参数非法: 打分区间不对
-////        $pubifno = $req->mem->get(MemKey_User::Union_PublicState_hash($uid)); # 玩家各区共享的数据
-//        $pubifno = new PublicStateModel();                                      # 玩家各区共享的数据
-//        $pubifno->readDataFromMem(MemKey_User::Union_PublicState_hash($uid));
-//        $scoredlist = $pubifno->scoredheros;
-//        if (is_null($scoredlist) || !is_array($scoredlist)) {
-//            $scoredlist = ArrayInit();
-//        }
-//        if (CommUtil::isInArray($scoredlist, $heroId)) {                        # 判断玩家是否给此英雄打过分了
-//            return Resp::ok(array('err' => 1, 'msg' => 'has scored!'));         # -- 业务逻辑内部错误码
-//        }
-//        // 添加打分数据,
-//        // 取英雄的打分数据 {cnt:xxx,totalscore:xxx}
-//        $heroscore = $req->mem->get(MemKey_GameRun::HeroDiscusses_userScore_normal($heroId));
-//        if (is_null($heroscore)) {
-//            $heroscore = ObjectInit();
-//            $heroscore->amt = 0;
-//            $heroscore->totalscore = 0;
-//        }
-//        $heroscore->amt += 1;
-//        $heroscore->totalscore += $score;
-//        $scoredlist[] = $heroId;                                                # 玩家记录打分记录
-//        $pubifno->scoredheros = $scoredlist;                                    # 回存数据
-//        $pubifno->updateData(MemKey_User::Union_PublicState_hash($uid));
-//
-//        $req->mem->set(MemKey_GameRun::HeroDiscusses_userScore_normal($heroId), $heroscore);
-//        $newscore = $heroscore->amt > 0 ? $heroscore->totalscore / $heroscore->amt : 0;
-//        return Resp::ok(array('err' => 0, #                                     # 返回
-//                    'score' => round($newscore, 2)));
-//    }
-//
-//    /**
-//     * [6316]查看评价
-//     * @param Req $req
-//     */
-//    static function GetDiscusses($req) {
-//        $heroId = $req->paras[0];                                               # 英雄ID
-//        $start = $req->paras[1];                                                # 起始索引
-//        $indexs = $req->mem->zrange(MemKey_GameRun::HeroDiscusses_score_zset($heroId), #
-//                $start, $start + self::PageItemCount);
-//        $arr = $req->mem->hmget(MemKey_GameRun::HeroDiscusses_item_hash($heroId), $indexs);
-//
-//        $heroscore = $req->mem->get(MemKey_GameRun::HeroDiscusses_userScore_normal($heroId));
-//        if (is_null($heroscore)) {
-//            $heroscore = ObjectInit();
-//            $heroscore->amt = 0;
-//            $heroscore->totalscore = 0;
-//        }
-//        $score = $heroscore->amt > 0 ? $heroscore->totalscore / $heroscore->amt : 0;
-//        return Resp::ok(array("ret" => $arr, 'score' => round($score, 2)));
-//    }
-//
-//    /**
-//     * [6318]给评论点赞
-//     * @param Req $req
-//     */
-//    static function PriaseMsg($req) {
-//        $mem = $req->mem;
-//        $uid = $req->uid;
-//        $heroId = $req->paras[0];                                               # 英雄ID
-//        $discussId = $req->paras[1];                                            # 评论ID
-//
-//        $msg = self::_GetDiscussItem($mem, $heroId, $discussId);                # 取数据
-//        if (!$msg) {
-//            return Resp::ok(array("err" => -1));                                # 评论不存在
-//        }
-//        if (isset($msg->praised_uids) && in_array($uid, $msg->praised_uids)) {
-//            return Resp::ok(array("err" => 1, #                                 # 已赞过
-//                        'praise' => $msg->praise));
-//        }
-//        $msg->praise += 1;                                                      # 点赞
-//        $msg->praised_uids[] = $uid;                                            # 添加点赞记录
-//        self ::_SaveDiscussItem($heroId, $discussId, $msg);                     # 回写数据
-//        $mem->zadd(MemKey_GameRun::HeroDiscusses_score_zset($heroId), #
-//                array($discussId => $msg->Score()));                            # 更新排名
-//        return Resp::ok(array("err" => 0, #                                     # 返回最新的被赞数量
-//                    'praise' => $msg->praise));
-//    }
-//
-//// <editor-fold defaultstate="collapsed" desc="辅助函数">
-//
-//    /**
-//     * 取评论
-//     * @param CRedisUtil $mem
-//     * @param string $heroId
-//     * @param string $discussId
-//     * @return DiscussItem Description
-//     */
-//    static private function _GetDiscussItem($mem, $heroId, $discussId) {
-//        $ret = $mem->hget(MemKey_GameRun::HeroDiscusses_item_hash($heroId), $discussId);
-//        if ($ret) {
-//            return new DiscussItem($ret);
-//        }
-//        return null;
-//    }
-//
-//    /**
-//     * 回写评论
-//     * @param type $heroId
-//     * @param type $discussId
-//     * @param type $item
-//     */
-//    static private function _SaveDiscussItem($heroId, $discussId, $item) {
-//        gMem()->hset(MemKey_GameRun::HeroDiscusses_item_hash($heroId), $discussId, $item);  // 回写数据
-//    }
-//
-//// </editor-fold>
-//}
+
+namespace loyalsoft;
+
+/**
+ * 评价内容
+ */
+class DiscussItem extends Object_ext {
+
+    public $uid;
+    public $name;
+    public $msg;
+    public $ts;
+    public $praise;
+    public $praised_uids;
+
+    /**
+     * @return int 重新计算此条评论的排行
+     */
+    public function Score() {
+        return $this->ts + $this->praise * glc()->Hero_Discuss_Praise_weight;
+    }
+
+}
+
+/**
+ * 英雄评论模块
+ * @version
+ *          1.0.0 Created at 2017-3-24. by --gwang
+ * @author gwang (mail@wanggangzero.cn)
+ * @copyright ? 2017-3-24, SJZ LoyalSoft Corporation & gwang. All rights reserved.
+ */
+class HeroDiscussProc {
+
+    /**
+     * 每次请求返回的评论数量
+     */
+    const PageItemCount = 50;
+
+    /**
+     * [6317]发表评价
+     * @param Req $req
+     */
+    static function Post($req) {
+        $mem = $req->mem;
+        $uid = $req->uid;
+        $heroId = $req->paras[0];                                               # 英雄ID
+        $content = $req->paras[1];                                              # 评价内容
+        $item = new DiscussItem(array(#                                         # 创建一条评论
+            'uid' => $uid,
+            'name' => $req->userInfo->game->baseInfo->name,
+            'msg' => $content,
+            'ts' => now(),
+            'praise' => 0, #                                                    # 赞
+            'praised_uids' => ArrayInit()
+        ));
+        if ($mem->hexists(MemKey_GameRun::HeroDiscusses_item_hash($heroId), $uid)) {
+            $item = self::_GetDiscussItem($mem, $heroId, $uid);
+        } else {
+            self::_SaveDiscussItem($heroId, $uid, $item);                       # 保存评论
+            $mem->zadd(MemKey_GameRun::HeroDiscusses_score_zset($heroId), #
+                    array($uid => $item->Score())); #                           # 写入排行数据
+        }
+        // todo: 添加总评论数量限制, 超过一定数量清理部分评论
+        return Resp::ok(array("ret" => $item));                                 # 成功后返回评论内容,
+        // ps.客户端可以对比返回的内容是否和发送的内容一致,不一致代表已经有过评论了,不可以再发布新评论, 这个设定有跟待策划商议.
+    }
+
+    /**
+     * [6319] 删除评价
+     * @param Req $req
+     */
+    static function DeletePost($req) {
+        $uid = $req->uid;
+        $heroId = $req->paras[0];                                               # 英雄ID
+        $msg = "";
+        if ($req->mem->hdel(MemKey_GameRun::HeroDiscusses_item_hash($heroId), $uid)) {
+            $msg = "success";
+        }
+        return Resp::ok(array('ret' => $msg));
+    }
+
+    /**
+     * [6320] 给英雄打分(同一个英雄只能打一次分)
+     * @param Req $req
+     */
+    static function Score($req) {
+        $uid = $req->uid;
+        list($heroId, $score) = $req->paras;                                    # 提取参数:  英雄ID, 打分值
+        my_Assert($score > 0 && $score <= 5, ErrCode::paras_err);               # 参数非法: 打分区间不对
+//        $pubifno = $req->mem->get(MemKey_User::Union_PublicState_hash($uid)); # 玩家各区共享的数据
+        $pubifno = new PublicStateModel();                                      # 玩家各区共享的数据
+        $pubifno->readDataFromMem(MemKey_User::Union_PublicState_hash($uid));
+        $scoredlist = $pubifno->scoredheros;
+        if (is_null($scoredlist) || !is_array($scoredlist)) {
+            $scoredlist = ArrayInit();
+        }
+        if (CommUtil::isInArray($scoredlist, $heroId)) {                        # 判断玩家是否给此英雄打过分了
+            return Resp::ok(array('err' => 1, 'msg' => 'has scored!'));         # -- 业务逻辑内部错误码
+        }
+        // 添加打分数据,
+        // 取英雄的打分数据 {cnt:xxx,totalscore:xxx}
+        $heroscore = gMem()->get(MemKey_GameRun::HeroDiscusses_userScore_normal($heroId));
+        if (is_null($heroscore)) {
+            $heroscore = ObjectInit();
+            $heroscore->amt = 0;
+            $heroscore->totalscore = 0;
+        }
+        $heroscore->amt += 1;
+        $heroscore->totalscore += $score;
+        $scoredlist[] = $heroId;                                                # 玩家记录打分记录
+        $pubifno->scoredheros = $scoredlist;                                    # 回存数据
+        $pubifno->updateData(MemKey_User::Union_PublicState_hash($uid));
+
+        gMem()->set(MemKey_GameRun::HeroDiscusses_userScore_normal($heroId), $heroscore);
+        $newscore = $heroscore->amt > 0 ? $heroscore->totalscore / $heroscore->amt : 0;
+        return Resp::ok(array('err' => 0, #                                     # 返回
+                    'score' => round($newscore, 2)));
+    }
+
+    /**
+     * [6316]查看评价
+     * @param Req $req
+     */
+    static function GetDiscusses($req) {
+        $heroId = $req->paras[0];                                               # 英雄ID
+        $start = $req->paras[1];                                                # 起始索引
+        $indexs = gMem()->zrange(MemKey_GameRun::HeroDiscusses_score_zset($heroId), #
+                $start, $start + self::PageItemCount);
+        $arr = gMem()->hmget(MemKey_GameRun::HeroDiscusses_item_hash($heroId), $indexs);
+
+        $heroscore = gMem()->get(MemKey_GameRun::HeroDiscusses_userScore_normal($heroId));
+        if (is_null($heroscore)) {
+            $heroscore = ObjectInit();
+            $heroscore->amt = 0;
+            $heroscore->totalscore = 0;
+        }
+        $score = $heroscore->amt > 0 ? $heroscore->totalscore / $heroscore->amt : 0;
+        return Resp::ok(array("ret" => $arr, 'score' => round($score, 2)));
+    }
+
+    /**
+     * [6318]给评论点赞
+     * @param Req $req
+     */
+    static function PriaseMsg($req) {
+        $mem = gMem();
+        $uid = $req->uid;
+        $heroId = $req->paras[0];                                               # 英雄ID
+        $discussId = $req->paras[1];                                            # 评论ID
+
+        $msg = self::_GetDiscussItem($mem, $heroId, $discussId);                # 取数据
+        if (!$msg) {
+            return Resp::ok(array("err" => -1));                                # 评论不存在
+        }
+        if (isset($msg->praised_uids) && in_array($uid, $msg->praised_uids)) {
+            return Resp::ok(array("err" => 1, #                                 # 已赞过
+                        'praise' => $msg->praise));
+        }
+        $msg->praise += 1;                                                      # 点赞
+        $msg->praised_uids[] = $uid;                                            # 添加点赞记录
+        self ::_SaveDiscussItem($heroId, $discussId, $msg);                     # 回写数据
+        $mem->zadd(MemKey_GameRun::HeroDiscusses_score_zset($heroId), #
+                array($discussId => $msg->Score()));                            # 更新排名
+        return Resp::ok(array("err" => 0, #                                     # 返回最新的被赞数量
+                    'praise' => $msg->praise));
+    }
+
+// <editor-fold defaultstate="collapsed" desc="辅助函数">
+
+    /**
+     * 取评论
+     * @param CRedisUtil $mem
+     * @param string $heroId
+     * @param string $discussId
+     * @return DiscussItem Description
+     */
+    static private function _GetDiscussItem($mem, $heroId, $discussId) {
+        $ret = $mem->hget(MemKey_GameRun::HeroDiscusses_item_hash($heroId), $discussId);
+        if ($ret) {
+            return new DiscussItem($ret);
+        }
+        return null;
+    }
+
+    /**
+     * 回写评论
+     * @param type $heroId
+     * @param type $discussId
+     * @param type $item
+     */
+    static private function _SaveDiscussItem($heroId, $discussId, $item) {
+        gMem()->hset(MemKey_GameRun::HeroDiscusses_item_hash($heroId), $discussId, $item);  // 回写数据
+    }
+
+// </editor-fold>
+}