Pārlūkot izejas kodu

Merge branch 'master' into stabble

zz 6 gadi atpakaļ
vecāks
revīzija
17884f3bdc

+ 3 - 3
app/Http/Middleware/ReadOauth.php

@@ -328,13 +328,13 @@ class ReadOauth
             return false;
         }
         //ForceSubscribeService::
-        $res = ForceSubscribeService::forceSubscribeUsersByUid(['uid' => $uid]);
+        $res = ForceSubscribeService::forceSubscribeUsersByUidAndAppid($appid, $uid);
         if ($res) return false;
 
-        $forcesubuser = ForceSubscribeService::forceSubscribeUsersByOpenid(['openid' => $openid]);
+        /*$forcesubuser = ForceSubscribeService::forceSubscribeUsersByOpenid(['openid' => $openid]);
         if ($forcesubuser) {
             return false;
-        }
+        }*/
 
         $send_order_id = ReadRecordService::getSendOrderId($uid);
         if ($send_order_id) {

+ 25 - 15
app/Modules/OfficialAccount/Models/ForceSubscribeUsers.php

@@ -129,7 +129,17 @@ class ForceSubscribeUsers extends Model
         return self::where(['openid' => $openid, 'is_subscribed' => 1])->first();
 
     }
-
+    //
+    static function forceSubscribeUsersByUidAndAppid($appid, $uid)
+    {
+        $result =   self::where(['uid' => $uid, 'appid' => $appid])->first();
+        if($result && $result ->is_subscribed ==0 ){
+            $result ->is_subscribed =1;
+            $result->save();
+            return false;
+        }
+        return $result;
+    }
     /**
      * openid获取强关用户
      */
@@ -662,20 +672,20 @@ class ForceSubscribeUsers extends Model
                     });
 
                     break;
-                 case 'd':
-                    # code...
-                    //6-13小时之间有过订阅记录
-                    
-                    $query->whereExists(function ($query) {
-                    		$query->select(DB::raw(1))
-                    		->from('orders')
-                    		->whereRaw('orders.uid =temp_force_subscribe_users.uid')
-                    		->whereRaw('orders.status="PAID"')
-                    		->where('orders.created_at','>',date('Y-m-d H:i:s', strtotime('-13 hour')))
-                    		->where('orders.created_at','<=',date('Y-m-d H:i:s', strtotime('-6 hour')))
-                    		->limit(1);
-                    });
-                    
+                 case 'd':
+                    # code...
+                    //6-13小时之间有过订阅记录
+                    
+                    $query->whereExists(function ($query) {
+                    		$query->select(DB::raw(1))
+                    		->from('orders')
+                    		->whereRaw('orders.uid =temp_force_subscribe_users.uid')
+                    		->whereRaw('orders.status="PAID"')
+                    		->where('orders.created_at','>',date('Y-m-d H:i:s', strtotime('-13 hour')))
+                    		->where('orders.created_at','<=',date('Y-m-d H:i:s', strtotime('-6 hour')))
+                    		->limit(1);
+                    });
+                    
                     break;
                 default:
                     # code...

+ 23 - 6
app/Modules/OfficialAccount/Models/TempForceSubscribeUsers.php

@@ -21,12 +21,12 @@ class TempForceSubscribeUsers extends Model
 
     }
     
-    /**
-     * 删除N天前的数据,保持最近几天热数据
-     */
-    static function deleteTempForceSubscribeUsersByTime($end_time)
-    {
-    	return self::where('last_interactive_time','<=',$end_time)->delete();
+    /**
+     * 删除N天前的数据,保持最近几天热数据
+     */
+    static function deleteTempForceSubscribeUsersByTime($end_time)
+    {
+    	return self::where('last_interactive_time','<=',$end_time)->delete();
     }
 
     /**
@@ -90,6 +90,23 @@ class TempForceSubscribeUsers extends Model
 
     }
 
+    static function forceSubscribeUsersByOpenidAndAC($openid, $appid = '', $distribution_channel_id = '')
+    {
+        $query = self::where('openid', $openid);
+        if ($appid) {
+            # code...
+            $query->where('appid', $appid);
+        }
+        if ($distribution_channel_id) {
+            # code...
+            $query->where('distribution_channel_id', $distribution_channel_id);
+        }
+
+
+        return $query->first();
+
+    }
+
     /**
      * 根据openid获取全部取关用户
      */

+ 70 - 62
app/Modules/OfficialAccount/Services/ForceSubscribeService.php

@@ -136,6 +136,15 @@ class ForceSubscribeService
     }
 
     /**
+     * 通过openid获取强关用户
+     */
+    static function forceSubscribeUsersByUidAndAppid($appid, $uid)
+    {
+
+        return ForceSubscribeUsers::forceSubscribeUsersByUidAndAppid($appid, $uid);
+    }
+
+    /**
      * 通过openid获取性别
      */
     static function getSexByOpenid($distribution_channel_id,$openid)
@@ -143,19 +152,19 @@ class ForceSubscribeService
     	return ForceSubscribeUsers::getSexByOpenid($distribution_channel_id,$openid);
     }
     
-    /**
-     * 通过openid获取性别,只根据强关书的性别
-     */
-    static function getSimpleSexByOpenid($distribution_channel_id,$openid)
-    {
-    	return ForceSubscribeUsers::getSimpleSexByOpenid($distribution_channel_id,$openid);
-    }
-    /**
-     * 通过uid获取性别,只根据强关书的性别
-     */
-    static function getSimpleSexByUid($uid)
-    {
-    	return ForceSubscribeUsers::getSimpleSexByUid($uid);
+    /**
+     * 通过openid获取性别,只根据强关书的性别
+     */
+    static function getSimpleSexByOpenid($distribution_channel_id,$openid)
+    {
+    	return ForceSubscribeUsers::getSimpleSexByOpenid($distribution_channel_id,$openid);
+    }
+    /**
+     * 通过uid获取性别,只根据强关书的性别
+     */
+    static function getSimpleSexByUid($uid)
+    {
+    	return ForceSubscribeUsers::getSimpleSexByUid($uid);
     }
     
 
@@ -344,54 +353,53 @@ class ForceSubscribeService
 
 
     }
-    
+
     /**
      * 更新强关用户最后交互时间
      */
     static function tempForceSubscribeUsersLastTimeUpdate($forceSubscribeUsersPrams) {
-    
-    	try {
-    
-    		$forceSubscribeUsers = ForceSubscribeUsers::getOneForceSubscribeUsersByOpenid($forceSubscribeUsersPrams['openid']);
-    
+
+        try {
+            $forceSubscribeUsers = ForceSubscribeUsers::forceSubscribeUsersByOpenidAndAC($forceSubscribeUsersPrams['openid'],$forceSubscribeUsersPrams['appid'],$forceSubscribeUsersPrams['distribution_channel_id']);
+
 //     		\Log::info('tempForceSubscribeUsersLastTimeUpdate:'.json_encode($forceSubscribeUsers));
-    		if(empty($forceSubscribeUsers)) {
-    
-    			return 2;
-    
-    		} else {
-    			$tempForceSubscribeUsers = TempForceSubscribeUsers::getOneForceSubscribeUsersByOpenid($forceSubscribeUsersPrams['openid']);
-    			if(!empty($tempForceSubscribeUsers)){
-    				\Log::info('exist_update_temp_force_subscribe_user:'.$forceSubscribeUsersPrams['openid']);
-    				$tempForceSubscribeUsers->last_interactive_time = $forceSubscribeUsers->last_interactive_time;
-    				$tempForceSubscribeUsers->bid = $forceSubscribeUsers->bid;
-    				$tempForceSubscribeUsers->is_subscribed = $forceSubscribeUsers->is_subscribed;
-    				$tempForceSubscribeUsers->subscribe_time = $forceSubscribeUsers->subscribe_time;
-    				$tempForceSubscribeUsers->unsubscribe_time = $forceSubscribeUsers->unsubscribe_time;
-    				$tempForceSubscribeUsers->save();
-    			} else{
-    				$tempForceSubscribeUsers = [
-    			       'uid'=>$forceSubscribeUsers->uid,
-    				   'openid'=>$forceSubscribeUsers->openid,
-    				   'appid'=>$forceSubscribeUsers->appid,
-    				   'bid'=>$forceSubscribeUsers->bid,
-    				   'is_subscribed'=>$forceSubscribeUsers->is_subscribed,
-    				   'subscribe_time'=>$forceSubscribeUsers->subscribe_time,
-    				   'unsubscribe_time'=>$forceSubscribeUsers->unsubscribe_time,
-    				   'distribution_channel_id'=>$forceSubscribeUsers->distribution_channel_id,
-    				   'last_interactive_time'=>$forceSubscribeUsersPrams['last_interactive_time'],
-    				];
-    				\Log::info('not_exist_create_temp_force_subscribe_user:'.$forceSubscribeUsersPrams['openid']);
-    				TempForceSubscribeUsers::firstOrCreate($tempForceSubscribeUsers);
-    			}
-    			
-    			return 1;
-    		}
-    
-    	} catch (\Exception $e) {
-    		// \Log($e);
-    		return 0;
-    	}
+            if(empty($forceSubscribeUsers)) {
+                \Log::info('empty_origin_update_temp_force_subscribe_user:'.$forceSubscribeUsersPrams['openid']);
+                return 2;
+
+            } else {
+                $tempForceSubscribeUsers = TempForceSubscribeUsers::forceSubscribeUsersByOpenidAndAC($forceSubscribeUsersPrams['openid'],$forceSubscribeUsersPrams['appid'],$forceSubscribeUsersPrams['distribution_channel_id']);
+                if(!empty($tempForceSubscribeUsers)){
+                    \Log::info('exist_update_temp_force_subscribe_user:'.$forceSubscribeUsersPrams['openid']);
+                    $tempForceSubscribeUsers->last_interactive_time = $forceSubscribeUsers->last_interactive_time;
+                    $tempForceSubscribeUsers->bid = $forceSubscribeUsers->bid;
+                    $tempForceSubscribeUsers->is_subscribed = $forceSubscribeUsers->is_subscribed;
+                    $tempForceSubscribeUsers->subscribe_time = $forceSubscribeUsers->subscribe_time;
+                    $tempForceSubscribeUsers->unsubscribe_time = $forceSubscribeUsers->unsubscribe_time;
+                    $tempForceSubscribeUsers->save();
+                } else{
+                    $tempForceSubscribeUsers = [
+                        'uid'=>$forceSubscribeUsers->uid,
+                        'openid'=>$forceSubscribeUsers->openid,
+                        'appid'=>$forceSubscribeUsers->appid,
+                        'bid'=>$forceSubscribeUsers->bid,
+                        'is_subscribed'=>$forceSubscribeUsers->is_subscribed,
+                        'subscribe_time'=>$forceSubscribeUsers->subscribe_time,
+                        'unsubscribe_time'=>$forceSubscribeUsers->unsubscribe_time,
+                        'distribution_channel_id'=>$forceSubscribeUsers->distribution_channel_id,
+                        'last_interactive_time'=>$forceSubscribeUsersPrams['last_interactive_time'],
+                    ];
+                    \Log::info('not_exist_create_temp_force_subscribe_user:'.$forceSubscribeUsersPrams['openid']);
+                    TempForceSubscribeUsers::firstOrCreate($tempForceSubscribeUsers);
+                }
+
+                return 1;
+            }
+
+        } catch (\Exception $e) {
+            // \Log($e);
+            return 0;
+        }
     }
 
     static function getOfficalAccountNickName($uid)
@@ -575,12 +583,12 @@ class ForceSubscribeService
     }
     
     // 指定用户的基础信息获取
-    static function simpleForceUserCountByPrams($uids, $param,$skip){
-    
-    	$forceSubscribes = ForceSubscribeUsers::simpleForceUserCountByPrams($uids, $param,$skip);
-    
-    	return $forceSubscribes;
-    
+    static function simpleForceUserCountByPrams($uids, $param,$skip){
+    
+    	$forceSubscribes = ForceSubscribeUsers::simpleForceUserCountByPrams($uids, $param,$skip);
+    
+    	return $forceSubscribes;
+    
     }