Browse Source

拍卖加流拍功能

cyzhao 4 years ago
parent
commit
01646c45c6

+ 36 - 0
Gameserver/Amfphp/process/AuctionProc.php

@@ -23,6 +23,8 @@ class AuctionProc {
                 return AuctionProc::CancelAuction();
             case CmdCode::cmd_Auction_UploadAuctionItems:                       # 7406 上传拍品
                 return AuctionProc::UploadAuctionItems();
+            case CmdCode::cmd_Auction_TriggerSettlement:
+                return AuctionProc::TriggerSettlement();
             default:
                 Err(ErrCode::cmd_err);
         }
@@ -171,6 +173,26 @@ class AuctionProc {
         ));
     }
 
+    static function TriggerSettlement() {     
+        $result = self::selectTimeoutAuctionItems();
+        if(count($result) > 0){
+            foreach ($result as $aucItem) {
+                //发送流拍邮件
+                $sList = explode(',', $aucItem->contents);               
+                EmailProc::SendAuctionItemsStreamingMail(req()->zoneid, req()->uid, $sList[0], $sList[1]);
+                
+                //更新数据库信息
+                $aucItem->result = "流拍";               
+                self::updateAuctionItemState($aucItem);              
+            }
+        }
+   
+        return "ok";
+    }
+
+
+
+
     /**
      * 获取当前的玩家拍卖缓存
      * @param type $mem
@@ -296,4 +318,18 @@ class AuctionProc {
         
         return $result;
     }
+    
+    /**
+     * 查询到期且未处理的拍品
+     * @return type
+     */
+    static function selectTimeoutAuctionItems() {
+        $ts = time();
+        $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;
+    }
 }

+ 15 - 0
Gameserver/Amfphp/process/EmailProc.php

@@ -361,6 +361,21 @@ class EmailProc {
         self::InsertMail($zoneid, $uid, $mail);
     }
     
+    /**
+     * 流拍邮件
+     * @param type $zoneid
+     * @param type $uid
+     * @param type $itemid
+     * @param type $num
+     */
+    public static function SendAuctionItemsStreamingMail($zoneid, $uid,$itemid, $num) {
+        $name = GameConfig::item_base_getItem($itemid)->name;
+        
+        $mail = new Ins_Email(null, enum_Mail_Type::SysTemMail, "拍卖邮件", #
+                $name."拍品没有人竞拍,点击回收", "$itemid, $num");
+        self::InsertMail($zoneid, $uid, $mail);
+    }
+    
     
 
 // </editor-fold>

+ 8 - 6
Gameserver/Amfphp/process/UserProc.php

@@ -291,21 +291,23 @@ class UserProc {
      * @return Resp
      */
     public static function loginUserInfo() {
-        $userInfo = UserProc::getUserInfo(req()->zoneid, req()->uid);     # 取玩家信息
+        $userInfo = UserProc::getUserInfo(req()->zoneid, req()->uid);           # 取玩家信息
         if ($userInfo == null) {                                                # 新用户, -> 6006创建账号
             $ret = array(
                 'isNewUser' => true
             );
             return Resp::ok($ret);
         } else {                                                                # 2.如果玩家已存在,则处理普通登录流程
-            req()->userInfo = $userInfo;                                         # 给Req挂载userInfo
-            UserProc::checkContidays();                                     # 连续登录,状态检查
+            req()->userInfo = $userInfo;                                        # 给Req挂载userInfo
+            UserProc::checkContidays();                                         # 连续登录,状态检查
             PayProc::m_refreshChargeOrders();                                   # 刷新订单, 多平台版本
-            PayProc::checkDeltest();                                        # 检查内侧充值记录(函数内部会只检查一次)
+            PayProc::checkDeltest();                                            # 检查内侧充值记录(函数内部会只检查一次)
             UserProc::updateUserInfo();                                         # 这一步回存操作只有在 userInfo正常存在的情况下才进行
             $resp = Resp::ok($userInfo);                                        # 设置返回值
-            self::backupUserInfo();                                         # 数据回写
-            self::updtateUserZoneInfo();                                    # 1. 更新玩家分区记录
+            self::backupUserInfo();                                             # 数据回写
+            
+            AuctionProc::TriggerSettlement();                                   #结算流拍信息
+            self::updtateUserZoneInfo();                                        # 1. 更新玩家分区记录
         }
         return $resp;
     }