zz 6 年之前
父节点
当前提交
8c5d83b2b8
共有 2 个文件被更改,包括 52 次插入1 次删除
  1. 1 1
      app/Modules/User/Services/ReadRecordService.php
  2. 51 0
      app/Modules/User/Services/UserSignService.php

+ 1 - 1
app/Modules/User/Services/ReadRecordService.php

@@ -20,7 +20,7 @@ class ReadRecordService
     //阅读记录数
     const RECORD_COUNT = 50;
 
-    private static $not_uid_key = ['last_read','send_order_id','sign_count','sign_counts','sign_info','sign_day','smart_push','inner_send_order_id','gxhp','property','bind_phone_status','ua'];
+    private static $not_uid_key = ['last_read','send_order_id','sign_count','sign_counts','sign_info','sign_day','smart_push','inner_send_order_id','gxhp','property','bind_phone_status','ua','sign_version'];
 
     /**
      * 获取

+ 51 - 0
app/Modules/User/Services/UserSignService.php

@@ -132,6 +132,57 @@ class UserSignService
         return $return_fee;
     }
 
+    public static function signV2($uid, $day)
+    {
+        \Log::info('signv2:uid:'.$uid.' day:'.$day);
+        //查看签到日期
+        $sign_day = ReadRecordService::getSignDay($uid);
+        if($sign_day == -1){
+            return false;
+        }
+        //已经签过到
+        if($sign_day == $day){
+            return false;
+        }
+
+        $count = ReadRecordService::getSignCountSimple($uid);
+        //记录签到日期
+        if($sign_day && $sign_day == date('Y-m-d',time()-86400)){
+            $continue = true;
+            //昨天有签过到
+            ReadRecordService::sign((int)$uid,true);
+            $count += 1;
+        }else{
+            $continue = false;
+            //昨天没有签过到
+            ReadRecordService::sign((int)$uid,false);
+            $count = 1;
+        }
+
+        $fee = 30;
+        if($count % 7 == 1){
+            $fee = 30;
+        }elseif($count % 7 == 3){
+            $fee = 120;
+        }elseif ($count % 7 == 0){
+            $fee = 150;
+        }else{
+            $fee = 50;
+        }
+        UserService::addBalance($uid, $fee, 0, $fee);
+        // 先扔到redis里面,异步更新user_sign表
+        $use_redis_user_sign = true;
+        if($use_redis_user_sign){
+            $sign_data = ['uid'=>$uid,'price'=>$fee,'day'=>$day,'sign_time'=>time(),'created_at'=>date('Y-m-d H:i:s'),'updated_at'=>date('Y-m-d H:i:s')];
+            Redis::sadd('user_sign:uid',$uid);
+            Redis::hset('user_sign:uid:info',$uid,json_encode($sign_data));
+            ReadRecordService::setSignInfo($uid,json_encode($sign_data));
+        }else{
+            UserSign::sign($uid, $day,$fee);
+        }
+        return $fee;
+    }
+
     public static function signToday($uid){
         return self::sign($uid,date('Y-m-d'));
     }