فهرست منبع

签到表用redis暂存

zhoulj 6 سال پیش
والد
کامیت
2cbdfb0de1

+ 7 - 3
app/Console/Commands/Tool/TestSmartPush.php

@@ -8,7 +8,7 @@ namespace App\Console\Commands\Tool;
 use Log;
 use Illuminate\Console\Command;
 use App\Modules\User\Services\UserService;
-
+use App\Modules\User\Services\UserSignService;
 use App\Modules\Book\Services\BookConfigService;
 
 use App\Modules\OfficialAccount\Services\ForceSubscribeService;
@@ -57,8 +57,12 @@ class TestSmartPush extends Command
         
 //         $result = OfficialAccountService::get_short_url($distribution_channel_id,$url);
         
-        $result = ReadRecordService::getFirstReadRecord($uid);
-        \Log::info($result);
+//         $result = ReadRecordService::getFirstReadRecord($uid);
+        for($i =109861725;$i<=109861735;$i++){
+        	UserSignService::signToday($i);
+        }
+        
+        
         
         print_r("======智能推送测试 【任务执行结束】=====".date("y-m-d H:i:s"."\n"));
         print_r('memory_used:'.memory_get_usage()."\n");

+ 3 - 2
app/Modules/User/Services/ReadRecordService.php

@@ -415,7 +415,7 @@ class ReadRecordService
      * 签到次数和日期
      * @param int $uid
      */
-    public static function sign(int $uid,bool $is_incr):void{
+    public static function sign(int $uid,bool $is_incr){
         try{
             if($is_incr){
                 Redis::hincrby('book_read:' . $uid,'sign_counts',1);
@@ -424,8 +424,9 @@ class ReadRecordService
             }
             self::setSignDay($uid);
         }catch (\Exception $e){
-
+        	\Log::info('sign_ept:'.$e->getMessage());
         }
+        return;
     }
 
     /**

+ 11 - 1
app/Modules/User/Services/UserSignService.php

@@ -10,6 +10,7 @@ use App\Modules\OfficialAccount\Models\ForceSubscribeUsers;
 use Hashids;
 use App\Modules\Book\Services\BookConfigService;
 use DB;
+use Redis;
 use App\Modules\User\Services\UserService;
 use App\Modules\Activity\Services\ActivityService;
 
@@ -81,6 +82,7 @@ class UserSignService
      */
     public static function sign($uid, $day)
     {
+    	\Log::info('sign:uid:'.$uid.' day:'.$day);
         //查看签到日期
         $sign_day = ReadRecordService::getSignDay($uid);
         if($sign_day == -1){
@@ -117,7 +119,15 @@ class UserSignService
             $fee += 150;
         }
         UserService::addBalance($uid, $fee, 0, $fee);
-        UserSign::sign($uid, $day,$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));
+        }else{
+        	UserSign::sign($uid, $day,$fee);
+        }
         return $return_fee;
     }