Procházet zdrojové kódy

邮件红点加字段

cyzhao před 11 měsíci
rodič
revize
17cf1a3f92

+ 4 - 0
Gameserver/App/model/User/Info_PrivateState.php

@@ -227,6 +227,10 @@ class Info_PrivateState extends Object_ext {
     #[ArrayType]
     public $announcement_drawed = array();
 
+    /**
+     * 0:没有红点 1:有红点
+     */
+    public $redTip_Mail = 0;
 
     public function initialize() {
         $this->junbeiShopNumRecord = new \stdClass();

+ 30 - 3
Gameserver/App/process/EmailProc.php

@@ -77,6 +77,24 @@ class EmailProc {
     }
 
 // <editor-fold defaultstate="collapsed" desc="   API   ">
+    
+    static function IsExistRedTip() {
+        $mail = self::getMailQueue(req()->zoneid, req()->zoneid);
+        
+        $tag = 0;
+        foreach ($mail as $index => $item) {
+            if($item->readts == 0){
+                $tag = 1;
+                break;
+            }
+            
+            if($item->appendix != null && $item->drawedts == 0){
+                $tag = 1;
+                break;
+            }
+        }
+        return $tag;
+    }
 
     /**
      * 6707  发放测试用道具
@@ -134,7 +152,10 @@ class EmailProc {
         $mail->readts = now();
         self::updateMail($zoneid, $uid, $mail);                                 # 更新邮件数据
         self::logMailReaded(array($mailId), $uid, $zoneid);                     # 更新数据库中邮件的read记录
-        return Resp::ok(array());
+        
+        $tag = self::IsExistRedTip();
+        
+        return Resp::ok(array("redTip"=>$tag));
     }
 
     /**
@@ -164,6 +185,8 @@ class EmailProc {
         $reward_Gem = implode(',', StoreProc::$reward_Gem);
         
         self::logMailDrawed(array($mailId), $uid, $zoneid);                     # 更新数据库中邮件的领取记录
+        
+        $tag = self::IsExistRedTip();
         UserProc::updateUserInfo();
         return Resp::ok(array(#                                                 # 同步数据
                     'store' => ctx()->store,
@@ -173,6 +196,7 @@ class EmailProc {
                     //'reward' => $mail->appendix
                     'reward' => $reward,
                     'reward_Gem' => $reward_Gem,
+                    'redTip'=>$tag,
         ));
     }
 
@@ -219,6 +243,7 @@ class EmailProc {
         //$reward = implode(';', $arr);                                           # 拼接下奖励字符串
         $reward = implode(';', StoreProc::$reward);
         $reward_Gem = implode(',', StoreProc::$reward_Gem);
+        $tag = self::IsExistRedTip();
         
         UserProc::updateUserInfo();
         return Resp::ok(array(#                                                 # 同步数据
@@ -228,6 +253,7 @@ class EmailProc {
                     'num' => $n,
                     'reward' => $reward,
                     'reward_Gem' => $reward_Gem,
+                    'redTip'=>$tag,
         ));
     }
 
@@ -253,7 +279,8 @@ class EmailProc {
             self::delMail($zoneid, $uid, $m->mailId);                           # 规则: 附件领取后就可以删除邮件
             $n++;
         }
-        return Resp::ok(array('num' => $n));                                    # 返回删除数量
+            
+        return Resp::ok(array('num' => $n,));                                    # 返回删除数量
     }
 
 // </editor-fold>
@@ -589,7 +616,7 @@ class EmailProc {
                 CLog::err('create sysmail failed! id:' . JsonUtil::encode($mail), "EmailProc");
             }
         }
-        self::logMail($zoneid, $uid, $mail);                                    # 将邮件写入Mysql中
+        self::logMail($zoneid, $uid, $mail);                                    # 将邮件写入Mysql中     
 //        CornerSignEventProc::OnNewMails();                                      # 角标更新
         return $mail->mailId;
     }

+ 5 - 2
Gameserver/App/process/SystemProc.php

@@ -120,10 +120,13 @@ class SystemProc {
         $count = count($sysMessage) * $itemDisplayTime;                         # 计算下次取消息的时间
         if ($count < $defaultwaitcont) {                                        # 最低刷新时间
             $count = $defaultwaitcont;
-        }
+        }              
+        $tag = EmailProc::IsExistRedTip();
+        
         $ret = array(
             'sysMessage' => $sysMessage,
-            'nextFetchTime' => $count
+            'nextFetchTime' => $count,
+            'redTip_Mail'=> $tag,
         );
 
         return Resp::ok($ret);                                                  # 返回信息