瀏覽代碼

force subscribe

zz 6 年之前
父節點
當前提交
9798062592

+ 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获取全部取关用户
      */

+ 42 - 43
app/Modules/OfficialAccount/Services/ForceSubscribeService.php

@@ -353,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)