isset($appid) ? $appid : '', 'openid' => isset($openid) ? $openid : ''])->first(); } /** * 根据openid和appid获取强关用户 */ static function get_user_by_offset($distribution_channel_id,$limit,$offset,$start_time) { return self::where('distribution_channel_id', $distribution_channel_id) ->where('last_interactive_time','>=',$start_time) ->select('uid','openid') ->limit($limit) ->offset($offset) ->get(); } /** * 删除N天前的数据,保持最近几天热数据 */ static function deleteTempForceSubscribeUsersByTime($end_time) { while (true) { $affect_rows = self::where('last_interactive_time','<=',$end_time)->limit(50000)->delete(); if(!$affect_rows) break; sleep(1); } return true; //return self::where('last_interactive_time','<=',$end_time)->delete(); } /** * 获取所有强关用户 */ static function forceSubscribeUsersAllOf() { return self::where('is_subscribed', 1)->get(); } /** * 根据uid获取强关用户 */ static function forceSubscribeUsersByUid($uid) { return self::where(['uid' => $uid, 'is_subscribed' => 1])->first(); } /** * 根据openid获取一个强关用户 */ static function forceSubscribeUsersByOpenid($openid, $appid = '') { return self::where(['openid' => $openid, 'is_subscribed' => 1])->first(); } /** * openid获取强关用户 */ static function getOneForceSubscribeUsersByOpenid($openid) { return self::where('openid', $openid)->first(); } /** * 根据openid获取强关用户 */ 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获取强关用户 */ static function forceSubscribeUsersByOpenidAndChannelId($openid, $distribution_channel_id) { return self::where(['openid' => $openid, 'distribution_channel_id' => $distribution_channel_id])->first(); } /** * 根据openid获取一个取关用户 */ static function forceUnSubscribeUsersByOpenid($openid) { return self::where(['openid' => $openid, 'is_subscribed' => 0])->first(); } /** * 根据openid获取全部取关用户 */ static function forceAllUnSubscribeUsersByOpenid($openid) { return self::where(['openid' => $openid, 'is_subscribed' => 0])->get(); } /** * 根据appid获取强关用户 */ static function forceSubscribeUsersByAppid($appid) { return self::where(['appid' => $appid, 'is_subscribed' => 1])->get(); } /** * 根据appid获取强关用户数量 */ static function forceSubscribeUsersCountByAppid($appid) { return self::where(['appid' => $appid, 'is_subscribed' => 1])->count(); } }