Przeglądaj źródła

增加领取的红包过期通知以及领取的过期红包删除

zhouzhijian 8 lat temu
rodzic
commit
f542b46701

+ 10 - 0
crontab/control/date.php

@@ -91,6 +91,9 @@ class dateControl extends BaseCronControl {
 
         //会员相关数据统计
         $this->_member_stat();
+
+        //红包过期通知
+        $this->bonus_expired_notify();
     }
 
     /**
@@ -929,4 +932,11 @@ class dateControl extends BaseCronControl {
             $model->table('stat_member')->insertAll($insert_arr);
         }
     }
+
+    private function bonus_expired_notify()
+    {
+        $user_bonus_model = Model("user_bonus");
+        $user_bonus_model->expired_warn();
+        $user_bonus_model->expired_action();
+    }
 }

+ 48 - 0
data/model/user_bonus.model.php

@@ -191,4 +191,52 @@ class user_bonusModel extends Model
             return false;
         }
     }
+
+    public function expired_warn()
+    {
+        $field = 'user_bonus.user_id,user_bonus.type_sn,(bonus_type.send_end_date-unix_timestamp(now())) as seconds';
+        $condition = 'bonus_type.send_end_date > unix_timestamp(now())';
+        $ret = Model()->table('user_bonus,bonus_type')->field($field)->join()->on('user_bonus.type_id=bonus_type.type_id')->where($condition)->limit(false)->select();
+        foreach ($ret as $key=>$val)
+        {
+            $user_id = $val["user_id"];
+            $remain_days = intval($val["seconds"]) < 86400 ? 1 : (intval($val["seconds"])/86400) + 1;
+
+            $param = array();
+            $param['member_id'] = $user_id;
+            $param['text']      = "红包过期通知:您领取的红包将在{$remain_days}天内过期.";
+            $param['go_type']   = 'bonus';
+            QueueClient::push('upushSendMsg',$param);
+        }
+    }
+
+    public function expired_action()
+    {
+        $field = 'user_bonus.user_id,user_bonus.type_sn,user_bonus.bonus_id';
+        $condition = 'bonus_type.send_end_date <= unix_timestamp(now())';
+        $ret = Model()->table('user_bonus,bonus_type')->field($field)->join()->on('user_bonus.type_id=bonus_type.type_id')->where($condition)->limit(false)->select();
+
+        $push_array = array();
+        $bonus_ids = array();
+
+        foreach ($ret as $key=>$val)
+        {
+            $user_id = $val["user_id"];
+            $param = array();
+            $param['member_id'] = $user_id;
+            $param['text']      = "红包过期通知:您领取的红包已经过期.";
+            $param['go_type']   = 'bonus';
+
+            $push_array[] = $param;
+            $bonus_ids[] = $val["bonus_id"];
+        }
+
+        if (!empty($push_array)) {
+            $this->where(array('bonus_id'=>array('in', $bonus_ids)))->delete();
+            foreach ($push_array as $key)
+            {
+                QueueClient::push('upushSendMsg',$key);
+            }
+        }
+    }
 }

+ 1 - 1
mobile/control/member_info.php

@@ -117,7 +117,7 @@ class member_infoControl extends mbMemberControl
         QueueClient::push('generateFriendRelationship',array('member_id'=>$member_id));
         return self::outsuccess(NULL);
     }
-    
+
     public function updateinfoOp()
     {
         $this->editOp();