'subscribe',
'data' => ['openid'=>'','uid'=>$uid]
);
$send = new \App\Jobs\SendStatisticsList($send_data);
$job = ($send)->onConnection('rabbitmq')->delay(0)->onQueue('send_statistics_list');
dispatch($job);
} catch (\Exception $e) {
\Log::info('add_subscribe_statistics_ept:'.$e->getMessage());
}
}
/**
* 增加强关用户
*/
static function addForceSubscribeUsers($forceSubscribeUsersPrams) {
try {
\Log::info('~~~~~~~~~~~~~~~~~~~addForceSubscribeUsers~~~~~~~~~~~~~~~~~~~~'."\n");
$officialAccount = OfficialAccount::officialAccountByAppid($forceSubscribeUsersPrams['appid']);
if (!empty($officialAccount)) {
# code...
$forceSubscribeUsers = ForceSubscribeUsers::forceSubscribeUsersByOpenidAndAC($forceSubscribeUsersPrams['openid'],$forceSubscribeUsersPrams['appid'],$officialAccount['distribution_channel_id']);
// dd($forceSubscribeUsers);
if(empty($forceSubscribeUsers)) {
// $data = $request->all();
$bid = Redis::hget('force_subscribe_from_bid',$forceSubscribeUsersPrams['appid'].'_'.$forceSubscribeUsersPrams['uid']);
if (empty($bid)) {
# code...
$bid = '0';
}
$sendOrderId = Redis::hget('force_subscribe_from_send_order_id',$forceSubscribeUsersPrams['appid'].'_'.$forceSubscribeUsersPrams['uid']);
if (empty($sendOrderId)) {
# code...
$sendOrderId = '0';
}
if($bid && $sendOrderId){
$send_order_bid = Redis::hget('sendOrderIdToBid',$sendOrderId);
if(!$send_order_bid){
$send_order_info = SendOrderService::getById($sendOrderId);
if($send_order_info){
$send_order_bid = $send_order_info->book_id;
Redis::hset('sendOrderIdToBid',$sendOrderId,$send_order_bid);
}
}
if($send_order_bid && $bid == $send_order_bid){
$key = 'accurateSendOrderSubscribeNum:bid:%s:send_order_id:'.$sendOrderId;
Redis::sadd(sprintf($key,$bid),$forceSubscribeUsersPrams['uid']);
}
}
$data['is_subscribed'] = 1;
$data['subscribe_time'] = date("Y-m-d H:i:s");
$data['last_interactive_time'] = $forceSubscribeUsersPrams['last_interactive_time'];
$data['uid'] = $forceSubscribeUsersPrams['uid'];
$data['appid'] = $forceSubscribeUsersPrams['appid'];
$data['openid'] = $forceSubscribeUsersPrams['openid'];
$data['distribution_channel_id'] = $forceSubscribeUsersPrams['distribution_channel_id'];
$data['bid'] = $bid;
$data['send_order_id'] = $sendOrderId;
$data['official_account_id'] = isset($forceSubscribeUsersPrams['official_account_id'])?$forceSubscribeUsersPrams['official_account_id']:0;
$forceSubscribeUsers = ForceSubscribeUsers::create($data);
//Redis::hset('www.zhuishuyun.com'.'force_subscribe:scene:'.$forceSubscribeUsersPrams['uid'].':'.$forceSubscribeUsersPrams['appid'], 'is_subscribe', '[{is_subscribed:1},{subscribe_time:'.date("Y-m-d H:i:s").'}]');
//在Redis中记录一个appid下每天的强关用户数量
Redis::hincrby('day_appid_fans_nums_appid:add:'.$forceSubscribeUsersPrams['appid'],date("Y-m-d"),1);
Redis::hincrby('day_appid_fans_nums_appid:add:'.$forceSubscribeUsersPrams['appid'],'total',1);
// $user['openid'] = $forceSubscribeUsersPrams['openid'];
// $user['unionid'] = $forceSubscribeUsersPrams['unionid'];
// $user['distribution_channel_id'] = $forceSubscribeUsersPrams['distribution_channel_id'];
$user['province'] = isset($forceSubscribeUsersPrams['province']) ? $forceSubscribeUsersPrams['province'] : '';
$user['nickname'] = isset($forceSubscribeUsersPrams['nick_name']) ? $forceSubscribeUsersPrams['nick_name'] : '';
$user['city'] = isset($forceSubscribeUsersPrams['city']) ? $forceSubscribeUsersPrams['city'] : '';
$user['country'] = isset($forceSubscribeUsersPrams['country']) ? $forceSubscribeUsersPrams['country'] : '';
$user['head_img'] = isset($forceSubscribeUsersPrams['headimgurl']) ? $forceSubscribeUsersPrams['headimgurl'] : '';
$user['sex'] = isset($forceSubscribeUsersPrams['sex']) ? $forceSubscribeUsersPrams['sex'] : '';
$user['id'] = isset($forceSubscribeUsersPrams['uid']) ? $forceSubscribeUsersPrams['uid'] : '';
\Log::info('~~~~~~~~~~~~~~~~~~~addForceSubscribeUsers~~~~~~~~~~~~~~~~~~~~'."\n");
\Log::info($user);
UserService::updateInfo($user['id'],$user);
// UserService::addUser($user);
// 新关统计
\Log::info('addForceSubscribeUsers_redis_new:'.$forceSubscribeUsersPrams['uid']);
$sub_key = 'gzh_new_sub:'.$forceSubscribeUsersPrams['appid'].':'.date('Y-m-d');
Redis::SADD($sub_key,$forceSubscribeUsersPrams['uid']);
//Redis::EXPIRE($sub_key,24*3600*3);
self::add_subscribe_statistics($forceSubscribeUsersPrams['uid']);
return 1;
} else {
$forceSubscribeUsers['is_subscribed'] = 1;
$forceSubscribeUsers['subscribe_time'] = date("Y-m-d H:i:s");
$forceSubscribeUsers->save();
//Redis::hset('www.zhuishuyun.com'.'force_subscribe:scene:'.$forceSubscribeUsersPrams['uid'].':'.$forceSubscribeUsersPrams['appid'], 'is_subscribe', '[{is_subscribed:1},{subscribe_time:'.date("Y-m-d H:i:s").'}]');
Redis::hincrby('day_appid_fans_nums_appid:add:'.$forceSubscribeUsersPrams['appid'],date("Y-m-d"),1);
Redis::hincrby('day_appid_fans_nums_appid:add:'.$forceSubscribeUsersPrams['appid'],'total',1);
// $user['openid'] = $forceSubscribeUsersPrams['openid'];
// $user['unionid'] = $forceSubscribeUsersPrams['unionid'];
// $user['distribution_channel_id'] = $forceSubscribeUsersPrams['distribution_channel_id'];
$user['province'] = isset($forceSubscribeUsersPrams['province']) ? $forceSubscribeUsersPrams['province'] : '';
$user['nickname'] = isset($forceSubscribeUsersPrams['nick_name']) ? $forceSubscribeUsersPrams['nick_name'] : '';
$user['city'] = isset($forceSubscribeUsersPrams['city']) ? $forceSubscribeUsersPrams['city'] : '';
$user['country'] = isset($forceSubscribeUsersPrams['country']) ? $forceSubscribeUsersPrams['country'] : '';
$user['head_img'] = isset($forceSubscribeUsersPrams['headimgurl']) ? $forceSubscribeUsersPrams['headimgurl'] : '';
$user['sex'] = isset($forceSubscribeUsersPrams['sex']) ? $forceSubscribeUsersPrams['sex'] : '';
$user['id'] = isset($forceSubscribeUsersPrams['uid']) ? $forceSubscribeUsersPrams['uid'] : '';
\Log::info('~~~~~~~~~~~~~~~~~addForceSubscribeUsers~~~~~~~~~~~~~~~~'."\n");
//\Log::info($user);
UserService::updateInfo($user['id'],$user);
// 老关统计
\Log::info('addForceSubscribeUsers_redis_old:'.$forceSubscribeUsersPrams['uid']);
$sub_key = 'gzh_old_sub:'.$forceSubscribeUsersPrams['appid'].':'.date('Y-m-d');
Redis::SADD($sub_key,$forceSubscribeUsersPrams['uid']);
Redis::EXPIRE($sub_key,24*3600*3);
self::add_subscribe_statistics($forceSubscribeUsersPrams['uid']);
return 1;
}
}
} catch (\Exception $e) {
// \Log($e);
return 0;
}
}
/**
* 更新强关用户uid
*/
static function updateSubscribeUsersUid($forceSubscribeUsersPrams) {
try {
$forceSubscribeUsers = ForceSubscribeUsers::getOneForceSubscribeUsersByOpenid($forceSubscribeUsersPrams['openid']);
if(empty($forceSubscribeUsers)) {
return 2;
} else {
\Log::info('updateSubscribeUsersUid,openid'. $forceSubscribeUsersPrams['openid']. ' old_uid:'.$forceSubscribeUsers->uid.' new_uid:'.$forceSubscribeUsersPrams['uid']);
$forceSubscribeUsers['uid'] = $forceSubscribeUsersPrams['uid'];
$forceSubscribeUsers->save();
return 1;
}
} catch (\Exception $e) {
\Log::info($e->getMessage());
return 0;
}
}
/**
* 更新强关用户最后交互时间
*/
static function forceSubscribeUsersLastTimeUpdate($forceSubscribeUsersPrams) {
try {
$forceSubscribeUsers = ForceSubscribeUsers::forceSubscribeUsersByOpenidAndAC($forceSubscribeUsersPrams['openid'],$forceSubscribeUsersPrams['appid'],$forceSubscribeUsersPrams['distribution_channel_id']);
if(empty($forceSubscribeUsers)) {
return 2;
} else {
$forceSubscribeUsers['last_interactive_time'] = $forceSubscribeUsersPrams['last_interactive_time'];
$forceSubscribeUsers->save();
return 1;
}
} catch (\Exception $e) {
// \Log($e);
return 0;
}
}
/**
* 更新强关用户最后交互时间
*/
static function tempForceSubscribeUsersLastTimeUpdate($forceSubscribeUsersPrams) {
try {
$forceSubscribeUsers = ForceSubscribeUsers::forceSubscribeUsersByOpenidAndAC($forceSubscribeUsersPrams['openid'],$forceSubscribeUsersPrams['appid'],$forceSubscribeUsersPrams['distribution_channel_id']);
// \Log::info('tempForceSubscribeUsersLastTimeUpdate:'.json_encode($forceSubscribeUsers));
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_user2:'.$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;
// 跨渠道迁移的bug
$tempForceSubscribeUsers->distribution_channel_id = $forceSubscribeUsers->distribution_channel_id;
$tempForceSubscribeUsers->uid = $forceSubscribeUsers->uid;
// \Log::info('$tempForceSubscribeUsers:'.json_encode($tempForceSubscribeUsers));
$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::info('tempForceSubscribeUsersLastTimeUpdate_ept:'.$e->getMessage());
return 0;
}
}
static function getOfficalAccountNickName($uid)
{
return ForceSubscribeUsers::getOfficalAccountNickName($uid);
}
/**
* 强关用户取关
*/
static function cancelForceSubscribeUsers($forceSubscribeUsersPrams) {
try {
\Log::info('cancelForceSubscribeUsers_start:'.$forceSubscribeUsersPrams['openid']);
$forceSubscribeUsers = ForceSubscribeUsers::forceAllSubscribeUsersByOpenid($forceSubscribeUsersPrams['openid']);
if(count($forceSubscribeUsers)>0) {
for ($i=0; $i < count($forceSubscribeUsers); $i++) {
# code...
$cancelforceSubscribeUsers = $forceSubscribeUsers[$i];
$cancelforceSubscribeUsers['is_subscribed'] = 0;
$cancelforceSubscribeUsers['unsubscribe_time'] = date("Y-m-d H:i:s");
$cancelforceSubscribeUsers->save();
\Log::info('cancelForceSubscribeUsers_id:'.$cancelforceSubscribeUsers->id);
Redis::hincrby('day_appid_fans_nums_appid:cancel:'.$forceSubscribeUsersPrams['appid'],date("Y-m-d"),1);
Redis::hincrby('day_appid_fans_nums_appid:cancel:'.$forceSubscribeUsersPrams['appid'],'total',1);
$theCancelForceSubscribeUserArray = $cancelforceSubscribeUsers->toArray();
$send_data=array(
'type'=>'unsubscribe_user',
'data' => $theCancelForceSubscribeUserArray
);
$delay = 0;
$job = (new SendStatisticsList($send_data))->onConnection('rabbitmq')->delay($delay)->onQueue('send_statistics_list');
dispatch($job);
}
return 1;
} else {
return 2;
}
} catch (\Exception $e) {
\Log::info('cancelForceSubscribeUsers_ept:'.$e->getMessage());
return 0;
}
}
/**
* 强制关注
*/
static function subscribeForceSubscribeUsers($forceSubscribeUsersPrams) {
try {
// 老关统计
\Log::info('subscribeForceSubscribeUsers_redis_old:'.$forceSubscribeUsersPrams['uid']);
$sub_key = 'gzh_old_sub:'.$forceSubscribeUsersPrams['appid'].':'.date('Y-m-d');
Redis::SADD($sub_key,$forceSubscribeUsersPrams['uid']);
Redis::EXPIRE($sub_key,24*3600*3);
self::add_subscribe_statistics($forceSubscribeUsersPrams['uid']);
$forceSubscribeUsers = ForceSubscribeUsers::forceAllUnSubscribeUsersByOpenid($forceSubscribeUsersPrams['openid']);
// \Log::info($forceSubscribeUsers);
if(count($forceSubscribeUsers)>0) {
// \Log::info(count($forceSubscribeUsers));
for ($i=0; $i < count($forceSubscribeUsers); $i++) {
# code...
// \Log::info($forceSubscribeUsers[$i]['is_subscribed']);
// \Log::info($forceSubscribeUsers[$i]['subscribe_time']);
$forceSubscribeUsers[$i]['is_subscribed'] = 1;
$forceSubscribeUsers[$i]['subscribe_time'] = date("Y-m-d H:i:s");
$forceSubscribeUsers[$i]['last_interactive_time'] = date("Y-m-d H:i:s");
$forceSubscribeUsers[$i]->save();
Redis::hincrby('day_appid_fans_nums_appid:add:'.$forceSubscribeUsersPrams['appid'],date("Y-m-d"),1);
Redis::hincrby('day_appid_fans_nums_appid:add:'.$forceSubscribeUsersPrams['appid'],'total',1);
//Redis::hset('www.zhuishuyun.com'.'force_subscribe:scene:'.$forceSubscribeUsers[$i]['uid'].':'.$forceSubscribeUsersPrams['appid'], 'is_subscribe', '[{is_subscribed:1},{subscribe_time:'.date("Y-m-d H:i:s").'}]');
}
return 1;
} else {
return 2;
}
} catch (\Exception $e) {
\Log::info('subscribeForceSubscribeUsers_ept:'.$e->getMessage());
return 0;
}
}
/**
* temp表强制关注
*/
static function tempSubscribeForceSubscribeUsers($forceSubscribeUsersPrams) {
try {
\Log::info('tempSubscribeForceSubscribeUsers2:'.$forceSubscribeUsersPrams['openid']);
$forceSubscribeUsers = TempForceSubscribeUsers::forceAllUnSubscribeUsersByOpenid($forceSubscribeUsersPrams['openid']);
if(count($forceSubscribeUsers)>0) {
for ($i=0; $i < count($forceSubscribeUsers); $i++) {
$forceSubscribeUsers[$i]['is_subscribed'] = 1;
$forceSubscribeUsers[$i]['subscribe_time'] = date("Y-m-d H:i:s");
$forceSubscribeUsers[$i]['last_interactive_time'] = date("Y-m-d H:i:s");
$forceSubscribeUsers[$i]->save();
}
return 1;
} else {
return 2;
}
} catch (\Exception $e) {
return 0;
}
}
//获取推广带来的净关粉丝总数
static function getFansNum($send_order_id)
{
return ForceSubscribeUsers::getFansNum($send_order_id);
}
//获取推广带来的新关粉丝总数
static function getNewFansNum($send_order_id)
{
return ForceSubscribeUsers::getNewFansNum($send_order_id);
}
//根据模板消息传的各项条件检索用户
static function forceUserCountByTemplatePrams($appids,$distribution_channel_id,$subscribe_time,$sex,$balance,$category_id,$order_type,$skip){
$forceSubscribes = ForceSubscribeUsers::forceUserCountByTemplatePrams($appids,$distribution_channel_id,$subscribe_time,$sex,$balance,$category_id,$order_type,$skip);
return $forceSubscribes;
}
//根据客服消息传的各项条件检索用户
static function forceUserCountByCustomPrams($appids,$distribution_channel_id,$subscribe_time,$sex,$balance,$category_id,$order_type,$sign_time,$skip,$subscribe_time_attach=''){
$forceSubscribes = ForceSubscribeUsers::forceUserCountByCustomPrams($appids,$distribution_channel_id,$subscribe_time,$sex,$balance,$category_id,$order_type,$sign_time,$skip,$subscribe_time_attach);
return $forceSubscribes;
}
// 指定用户的基础信息获取
static function simpleForceUserCountByPrams($uids, $param,$skip){
$forceSubscribes = ForceSubscribeUsers::simpleForceUserCountByPrams($uids, $param,$skip);
return $forceSubscribes;
}
// 根据渠道号和日期获取强关用户数量
/**
* startTime endTime 如果两个参数都传会查询这两个时间段内的的强关用户数量
* startTime endTime 如果只传一个,则会查询当天的强关用户数量,传哪个都可以
* startTime endTime 如果都不传, 则会获取该渠道下的所有强关用户数量
*/
static function forceSubscribeUserCountByChannelIdAndDate($distribution_channel_id,$startTime,$endTime){
return ForceSubscribeUsers::forceSubscribeUserCountByChannelIdAndDate($distribution_channel_id,$startTime,$endTime);
}
/**
* 获取全服务号粉丝
*/
static function getFullOfficialAccountUsers($appid,$next_openid){
// \Log::info('getFullOfficialAccountUsers_start,appid:'.$appid.' next_openid:'.$next_openid);
$result = array();
try {
$timestamp = time();
$params = array("next_openid"=>$next_openid,'gzh_app_id'=>$appid,"timestamp"=>$timestamp);
$sign = get_sign($params);
$res = self::getUserClient()->request("GET","get_full_official_account_users",
['query'=>['next_openid'=>$next_openid,'gzh_app_id'=>$appid,'timestamp'=>$timestamp,'sign'=>$sign],'connect_timeout' => 10]
)->getBody()->getContents();
// \Log::info($res);
$res = object_to_array(json_decode($res));
// 组装格式,方便后面统一处理
$openids= isset($res['data']['data']['openid'])?$res['data']['data']['openid']:array();
$result['openids'] = array();
if(!empty($openids)){
foreach($openids as $key=> $openid){
$result['openids'][$key]['openid'] = $openid;
}
}
$result['next_openid'] = isset($res['data']['next_openid'])?$res['data']['next_openid']:'';
$result['count'] = isset($res['data']['count'])?$res['data']['count']:0;
$result['total'] = isset($res['data']['total'])?$res['data']['total']:0;
//\Log::info('getFullOfficialAccountUsers_end,appid:'.$appid.' next_openid:'.$result['next_openid'].' count:'.$result['count'].' total:'.$result['total'].' num:'.count($result['openids']));
} catch (\Exception $e) {
\Log::info($e);
}
return $result;
}
/**
* 获取客服消息有效公众号用户
*/
static function getCustomActiveOfficialAccountUsers($appid,$next_openid)
{
$result = array();
try {
$key = 'gzh_custom:openid:'.$appid;
$start = !$next_openid ? 0 : Redis::zrank($key,$next_openid);
$end = $start + 10000;
$total = 0;
$openids = Redis::zrangebyscore($key,$start,$end);
$result['openids'] = array();
if($openids){
foreach($openids as $key=> $openid){
$result['openids'][$key]['openid'] = $openid;
}
}
$result['next_openid'] = 0;
$result['count'] = count($openids);
$result['total'] = 100;
} catch (\Exception $e) {
\Log::info($e);
}
return $result;
}
/**
* 获取单个粉丝信息
*/
static function getUserInfo($appid,$openid){
\Log::info('getUserInfo_start,appid:'.$appid.' openid:'.$openid);
$result = array();
try {
$timestamp = time();
$params = array("openid"=>$openid,'gzh_app_id'=>$appid,"timestamp"=>$timestamp);
$sign = get_sign($params);
$res = self::getUserClient()->request("GET","get_userinfo",
['query'=>['openid'=>$openid,'gzh_app_id'=>$appid,'timestamp'=>$timestamp,'sign'=>$sign],'connect_timeout' => 10]
)->getBody()->getContents();
$res = object_to_array(json_decode($res));
$result['nickname'] = isset($res['data']['nickname'])?$res['data']['nickname']:0;
\Log::info('getUserInfo_end,appid:'.$appid.' openid:'.$openid.' nickname:'.$result['nickname']);
} catch (\Exception $e) {
\Log::info('getUserInfo_ept:'.$e->getMessage());
}
return $result;
}
static function getUserInfoAll($appid,$openid){
\Log::info('getUserInfo_start,appid:'.$appid.' openid:'.$openid);
$result = array();
try {
$timestamp = time();
$params = array("openid"=>$openid,'gzh_app_id'=>$appid,"timestamp"=>$timestamp);
$sign = get_sign($params);
$res = self::getUserClient()->request("GET","get_userinfo",
['query'=>['openid'=>$openid,'gzh_app_id'=>$appid,'timestamp'=>$timestamp,'sign'=>$sign],'connect_timeout' => 10]
)->getBody()->getContents();
$res = object_to_array(json_decode($res));
if(isset($res['data']) && !empty($res['data'])){
return $res['data'];
}
} catch (\Exception $e) {
\Log::info('getUserInfo_ept:'.$e->getMessage());
}
return $result;
}
/**
* 占位符替换
* @param unknown_type $content
* @param unknown_type $type
* @return string
*/
static public function change_placeholder($content,$params){
\Log::info('change_placeholder_before:'.$content);
$wx_name = isset($params['nickname'])?$params['nickname']:'';
$content = str_replace('{wx_name}',$wx_name,$content);
\Log::info('change_placeholder_end:'.$content);
return $content;
}
static public function getUserClient(){
return new Client(['base_uri' => env('MEDIA_API_BASE_URI')]);
}
/**
* 获取派单的枪管用户
* @param int $send_order_id
* @param int $distribution_channel_id
* @return mixed
*/
static public function getUidByParam(int $send_order_id,int $distribution_channel_id){
return ForceSubscribeUsers::where('send_order_id',$send_order_id)->where('distribution_channel_id',$distribution_channel_id)->select('uid')->limit(100)->get();
}
/**
* 获取云栖迁移的特殊回复
* @param unknown_type $distribution_channel_id
* @param unknown_type $openid
*/
static public function getYqMoveReply($distribution_channel_id,$openid){
$text = '';
$encode_distribution_channel_id = encodeDistributionChannelId($distribution_channel_id);
// 检查是否第一次
$move_user = YqMove::getUser($distribution_channel_id,$openid);
// 是否订阅大于50章的用户
$is_big_50_user = isset($move_user['read_count']) && $move_user['read_count'] >= 50 ? '1':'0';
$yq_distribution_channel_id = isset($move_user['yq_distribution_channel_id']) && $move_user['yq_distribution_channel_id'] ? $move_user['yq_distribution_channel_id']:$distribution_channel_id;
$encode_yq_distribution_channel_id = encodeDistributionChannelId($yq_distribution_channel_id);
$not_recommend_old_sites = array('4042','4043','4044');
\Log::info('getYqMoveReply:zsy_distribution_channel_id:'.$distribution_channel_id.' yq_distribution_channel_id:'.$yq_distribution_channel_id.' openid:'.$openid.' is_big_50_user:'.$is_big_50_user);
// 已经迁移过用户的文案
if(!empty($move_user)){
if($is_big_50_user == '0'){
$text = "点击进入新站\n\n";
$text .= "点击查看最近阅读";
}else{
if(in_array($distribution_channel_id,$not_recommend_old_sites)){
\Log::info('not_recommend_old_site:'.$distribution_channel_id.' openid:'.$openid);
$text = "点击进入新站\n\n";
$text .= "点击查看最近阅读";
}else{
$text = "追书云:点此进入新站,看海量优质小说\n\n".
"云栖:点此进入老站继续阅读 \n";
}
}
}
// 第一次回复的文案
else
{
$text = "点击进入新站\n\n";
$text .= "点击查看最近阅读";
}
return $text;
}
/**
* @param $distribution_channel
* 获取老用户关注数
*/
public static function getOldUserNewSubsribeNum($params){
return ForceSubscribeUsers::getOldUserNewSubsribeNum($params);
}
/**
* 临时表数据更新 客服消息交互修改后版本
*/
static function updateTempForceUser($params)
{
TempForceSubscribeUsers::updateInfo($params);
}
/**
* 获取强关用户属性
* @param $openids
*/
static function getForceUsersNickname($openids = [])
{
return ForceSubscribeUserProperty::getForceUsersNickname($openids);
}
static function getForceUsersNicknameByOpenid($openid){
$nick_name_info = ForceSubscribeUserProperty::getForceUsersNicknameByOpenid($openid);
if($nick_name_info){
return $nick_name_info->current_nickname;
}
return '';
}
}