has('appid') ? $request->input('appid') : ''; if(empty($appid)) { return response()->error("PARAM_EMPTY"); } $openid = $request->has('openid') ? $request->input('openid') : ''; if(empty($openid)) { return response()->error("PARAM_EMPTY"); } $forceSubscribeUsers['appid'] = $appid; $forceSubscribeUsers['openid'] = $openid; $forceSubscribeUsersService = ForceSubscribeService::forceSubscribeUsersByAppidAndOpenId($forceSubscribeUsers); return response()->item(new ForceSubscribeUsersTransformer(), $forceSubscribeUsersService); } function forceSubscribeUsersByOpenidAndAppidAndChannelId(Request $request) { $appid = $request->has('appid') ? $request->input('appid') : ''; if(empty($appid)) { return response()->error("PARAM_EMPTY"); } $openid = $request->has('openid') ? $request->input('openid') : ''; if(empty($openid)) { return response()->error("PARAM_EMPTY"); } $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : ''; if(empty($distribution_channel_id)) { return response()->error("PARAM_EMPTY"); } $forceSubscribeUsers['appid'] = $appid; $forceSubscribeUsers['openid'] = $openid; $forceSubscribeUsers['distribution_channel_id'] = $distribution_channel_id; $forceSubscribeUsersService = ForceSubscribeService::forceSubscribeUsersByOpenidAndAppidAndChannelId($forceSubscribeUsers); return response()->item(new ForceSubscribeUsersTransformer(), $forceSubscribeUsersService); } /** * @apiDefine OfficialAccount 公众号 */ /** * @apiVersion 1.0.0 * @api {GET} OfficialAccount/forceSubscribeUsersByUid 通过uid获取强关用户 * @apiGroup OfficialAccount * @apiName forceSubscribeUsersByUid * @apiParam {Number} uid 用户id. * @apiSuccess {Number} uid 用户id. * @apiSuccess {Number} official_account_id 公众账号id. * @apiSuccess {Number} distribution_channel_id 分配的渠道id. * @apiSuccess {Number} openid 公众号openid. * @apiSuccess {Number} appid 微信appID. * @apiSuccess {Number} is_subscribed 是否强关. * @apiSuccess {String} subscribe_time 强关时间. * @apiSuccess {String} unsubscribe_time 取关时间. * @apiSuccess {String} last_interactive_time 强关用户与公众号最后交互时间. * @apiSuccessExample {json} Success-Response: * * { * "code": 0, * "msg": "", * "data": { * "uid": 12121212, * "official_account_id": 11111, * "distribution_channel_id": 2323213, * "appid": 112211, * "openid": 11232, * "is_subscribed": 0, * "subscribe_time": "2017-11-22 21:37:15", * "unsubscribe_time": "2017-11-22 22:36:50", * "last_interactive_time": "2017-11-22 22:36:50" * } * } */ function forceSubscribeUsersByUid(Request $request) { $uid = $request->has('uid') ? $request->input('uid') : ''; if(empty($uid)) { return response()->error("PARAM_EMPTY"); } $forceSubscribeUsers['uid'] = $uid; $forceSubscribeUsersService = ForceSubscribeService::forceSubscribeUsersByUid($forceSubscribeUsers); return response()->item(new ForceSubscribeUsersTransformer(), $forceSubscribeUsersService); } /** * @apiVersion 1.0.0 * @api {POST} OfficialAccount/addForceSubscribeUsers 增加强关用户 * @apiGroup OfficialAccount * @apiName addForceSubscribeUsers * @apiParam {Number} uid 用户id. * @apiParam {Number} official_account_id 公众账号id. * @apiParam {Number} distribution_channel_id 分配的渠道id. * @apiParam {Number} openid 公众号openid. * @apiParam {Number} appid 微信appID. * @apiParam {Number} is_subscribed 是否强关. * @apiParam {String} subscribe_time 强关时间. * @apiParam {String} unsubscribe_time 取关时间. * @apiParam {String} last_interactive_time 强关用户与公众号最后交互时间. * @apiSuccessExample {json} Success-Response: * * { * "code": 0, * "msg": "", * "data": [] * } */ function addForceSubscribeUsers(Request $request) { $uid = $request->has('uid') ? $request->input('uid') : ''; if(empty($uid)) { return response()->error("PARAM_EMPTY"); } $appid = $request->has('appid') ? $request->input('appid') : ''; if(empty($appid)) { return response()->error("PARAM_EMPTY"); } $openid = $request->has('openid') ? $request->input('openid') : ''; if(empty($openid)) { return response()->error("PARAM_EMPTY"); } $is_subscribed = $request->has('is_subscribed') ? $request->input('is_subscribed') : '1'; $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : ''; $last_interactive_time = date("Y-m-d H:i:s"); $unionid = $request->has('unionid') ? $request->input('unionid') : '1'; $province = $request->has('province') ? $request->input('province') : ''; $city = $request->has('city') ? $request->input('city') : ''; $country = $request->has('country') ? $request->input('country') : ''; $nick_name = $request->has('nick_name') ? $request->input('nick_name') : ''; $sex = $request->has('sex') ? $request->input('sex') : ''; $headimgurl = $request->has('head_img') ? $request->input('head_img') : ''; $forceSubscribeUsers['uid'] = $uid; $forceSubscribeUsers['appid'] = $appid; $forceSubscribeUsers['openid'] = $openid; $forceSubscribeUsers['nick_name'] = $nick_name; $forceSubscribeUsers['is_subscribed'] = $is_subscribed; $forceSubscribeUsers['distribution_channel_id'] = $distribution_channel_id; $forceSubscribeUsers['last_interactive_time'] = $last_interactive_time; $forceSubscribeUsers['unionid'] = $unionid; $forceSubscribeUsers['province'] = $province; $forceSubscribeUsers['city'] = $city; $forceSubscribeUsers['country'] = $country; $forceSubscribeUsers['sex'] = $sex; $forceSubscribeUsers['headimgurl'] = $headimgurl; $resultStatus = ForceSubscribeService::addForceSubscribeUsers($forceSubscribeUsers); // 更新交互中间表 $tempResultStatus = ForceSubscribeService::tempForceSubscribeUsersLastTimeUpdate($forceSubscribeUsers); // 插入关注记录表 $subscribe_record = [ 'appid'=>$appid, 'openid'=>$openid, 'distribution_channel_id'=>$distribution_channel_id, 'is_subscribed'=>1, 'subscribe_time'=>date('Y-m-d H:i:s'), ]; SubscribeRecord::create_subscribe_record($subscribe_record); if ($resultStatus == 1) { return response()->success(); }elseif ($resultStatus == 2) { return response()->error('ADDFORCESUBSCRIBEUSER_UNSUCCESSFUL'); }elseif ($resultStatus == 0) { return response()->error('ADDFORCESUBSCRIBEUSER_UNSUCCESSFUL'); }else{ return response()->error('ADDFORCESUBSCRIBEUSER_UNSUCCESSFUL'); } } /** * @apiVersion 1.0.0 * @api {GET} OfficialAccount/ForceSubscribeUsersLastTimeUpdate 强关用户与公众号最后交互时间更新 * @apiGroup OfficialAccount * @apiName ForceSubscribeUsersLastTimeUpdate * @apiParam {Number} openid 公众号openid. * @apiParam {String} last_interactive_time 强关用户与公众号最后交互时间. * @apiSuccessExample {json} Success-Response: * * { * "code": 0, * "msg": "", * "data": [] * } */ function forceSubscribeUsersLastTimeUpdate(Request $request) { $openid = $request->has('openid') ? $request->input('openid') : ''; \Log::info('forceSubscribeUsersLastTimeUpdate_start:'.$openid); if(empty($openid)) { return response()->error("PARAM_EMPTY"); } $last_interactive_time = $request->has('last_interactive_time') ? $request->input('last_interactive_time') : ''; if(empty($last_interactive_time)) { return response()->error("PARAM_EMPTY"); } $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : ''; $forceSubscribeUsers['distribution_channel_id'] = $distribution_channel_id; $appid = $request->has('appid') ? $request->input('appid') : ''; $forceSubscribeUsers['appid'] = $appid; $forceSubscribeUsers['openid'] = $openid; $forceSubscribeUsers['last_interactive_time'] = $last_interactive_time; $resultStatus = ForceSubscribeService::forceSubscribeUsersLastTimeUpdate($forceSubscribeUsers); // 更新交互中间表 $tempResultStatus = ForceSubscribeService::tempForceSubscribeUsersLastTimeUpdate($forceSubscribeUsers); if ($resultStatus == 1) { return response()->success(); }elseif ($resultStatus == 2) { return response()->error("FORCESUBSCRIBEUSER_NOT_FOUND"); }elseif ($resultStatus == 0) { return response()->error('UPDATEFORCESUBSCRIBEUSER_UNSUCCESSFUL'); }else{ return response()->error('UPDATEFORCESUBSCRIBEUSER_UNSUCCESSFUL'); } } /** * @apiVersion 1.0.0 * @api {GET} OfficialAccount/updateForceSubscribeUsers 强关用户强制更新uid * @apiGroup OfficialAccount * @apiName updateForceSubscribeUsers * @apiParam {Number} openid 公众号openid. * @apiParam {String} uid 强关用户uid. * @apiSuccessExample {json} Success-Response: * * { * "code": 0, * "msg": "", * "data": [] * } */ function updateForceSubscribeUsers(Request $request) { $openid = $request->has('openid') ? $request->input('openid') : ''; if(empty($openid)) { return response()->error("PARAM_EMPTY"); } $uid = $request->has('uid') ? $request->input('uid') : ''; if(empty($uid)) { return response()->error("PARAM_EMPTY"); } $forceSubscribeUsers = array(); $forceSubscribeUsers['openid'] = $openid; $forceSubscribeUsers['uid'] = $uid; $resultStatus = ForceSubscribeService::updateSubscribeUsersUid($forceSubscribeUsers); if ($resultStatus == 1) { return response()->success(); }elseif ($resultStatus == 2) { return response()->error("FORCESUBSCRIBEUSER_NOT_FOUND"); }elseif ($resultStatus == 0) { return response()->error('UPDATEFORCESUBSCRIBEUSER_UNSUCCESSFUL'); }else{ return response()->error('UPDATEFORCESUBSCRIBEUSER_UNSUCCESSFUL'); } } /** * @apiVersion 1.0.0 * @api {GET} OfficialAccount/cancelForceSubscribeUsers 取消用户强制关注 * @apiGroup OfficialAccount * @apiName cancelForceSubscribeUsers * @apiParam {Number} uid 用户id. * @apiParam {Number} openid 公众号openid. * @apiSuccessExample {json} Success-Response: * * { * "code": 0, * "msg": "", * "data": [] * } */ function cancelForceSubscribeUsers(Request $request) { // $uid = $request->has('uid') ? $request->input('uid') : ''; $openid = $request->has('openid') ? $request->input('openid') : ''; if(empty($openid)) { return response()->error("PARAM_EMPTY"); } $appid = $request->has('appid') ? $request->input('appid') : ''; if(empty($appid)) { return response()->error("PARAM_EMPTY"); } $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : ''; $forceSubscribeUsers['distribution_channel_id'] = $distribution_channel_id; $forceSubscribeUsers['openid'] = $openid; $forceSubscribeUsers['appid'] = $appid; $resultStatus = ForceSubscribeService::cancelForceSubscribeUsers($forceSubscribeUsers); $unsubscribe_data = [ 'openid'=>$openid, 'appid'=>$appid, 'is_subscribed'=>0, 'distribution_channel_id'=>$distribution_channel_id, 'unsubscribe_time'=>date('Y-m-d H:i:s') ]; // 更新交互中间表 $tempResultStatus = ForceSubscribeService::updateTempForceUser($unsubscribe_data); // 插入关注记录表 SubscribeRecord::create_subscribe_record($unsubscribe_data); if ($resultStatus == 1) { return response()->success(); }elseif ($resultStatus == 2) { return response()->error("FORCESUBSCRIBEUSER_NOT_FOUND"); }elseif ($resultStatus == 0) { return response()->error('UPDATEFORCESUBSCRIBEUSER_UNSUCCESSFUL'); }else{ return response()->error('CANCELFORCESUBSCRIBEUSER_UNSUCCESSFUL'); } } /** * @apiVersion 1.0.0 * @api {POST} OfficialAccount/subscribeForceSubscribeUsers 更新用户为强制关注 * @apiGroup OfficialAccount * @apiName addForceSubscribeUsers * @apiParam {Number} uid 用户id. * @apiParam {Number} official_account_id 公众账号id. * @apiParam {Number} distribution_channel_id 分配的渠道id. * @apiParam {Number} openid 公众号openid. * @apiParam {Number} appid 微信appID. * @apiParam {Number} is_subscribed 是否强关. * @apiParam {String} subscribe_time 强关时间. * @apiParam {String} unsubscribe_time 取关时间. * @apiParam {String} last_interactive_time 强关用户与公众号最后交互时间. * @apiSuccessExample {json} Success-Response: * * { * "code": 0, * "msg": "", * "data": [] * } */ function subscribeForceSubscribeUsers(Request $request) { $appid = $request->has('appid') ? $request->input('appid') : ''; if(empty($appid)) { return response()->error("PARAM_EMPTY"); } $openid = $request->has('openid') ? $request->input('openid') : ''; if(empty($openid)) { return response()->error("PARAM_EMPTY"); } $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : ''; $last_interactive_time = date("Y-m-d H:i:s"); $forceSubscribeUsers = ForceSubscribeUsers::getOneForceSubscribeUsersByOpenid($openid); if(count($forceSubscribeUsers) > 0){ $forceSubscribeUsers = $forceSubscribeUsers->toArray(); } $forceSubscribeUsers['appid'] = $appid; $forceSubscribeUsers['openid'] = $openid; $forceSubscribeUsers['distribution_channel_id'] = $distribution_channel_id; $forceSubscribeUsers['last_interactive_time'] = $last_interactive_time; $resultStatus = ForceSubscribeService::subscribeForceSubscribeUsers($forceSubscribeUsers); ForceSubscribeService::tempSubscribeForceSubscribeUsers($forceSubscribeUsers); // 插入关注记录表 $subscribe_record = [ 'appid'=>$appid, 'openid'=>$openid, 'distribution_channel_id'=>$distribution_channel_id, 'is_subscribed'=>1, 'subscribe_time'=>date('Y-m-d H:i:s'), ]; SubscribeRecord::create_subscribe_record($subscribe_record); if ($resultStatus == 1) { return response()->success(); }elseif ($resultStatus == 2) { return response()->error("FORCESUBSCRIBEUSER_NOT_FOUND"); }elseif ($resultStatus == 0) { return response()->error('UPDATEFORCESUBSCRIBEUSER_UNSUCCESSFUL'); }else{ return response()->error('CANCELFORCESUBSCRIBEUSER_UNSUCCESSFUL'); } } //------------------------------------方法测试-- function testSendTextOfficialMsg(Request $request) { $user['uid'] = 13; $user['last_interactive_time'] = '2017-12-19 01:11:12'; $user['distribution_channel_id'] = 1; $user['appid'] = 'wxdbc486f1b4f6a8c3'; $user['openid'] = 'oAcqg1Lc9cjEPznNcjU_6oi1Wj0s'; $user['is_subscribed'] = 1; $user['id'] = 16; $user['bid'] = 3; // CustomMsgService::add_news_top_book_test($user); CustomMsgService::add_news_top_book(); return response()->success(['success'=>1]); } function forceSubscribeUserCountByChannelIdAndDate(Request $request) { $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : ''; if(empty($distribution_channel_id)) { return response()->error("PARAM_EMPTY"); } $startTime = $request->has('startTime') ? $request->input('startTime') : ''; if(empty($startTime)) { return response()->error("PARAM_EMPTY"); } $endTime = $request->has('endTime') ? $request->input('endTime') : ''; if(empty($startTime)) { return response()->error("PARAM_EMPTY"); } $usersCount = ForceSubscribeService::forceSubscribeUserCountByChannelIdAndDate($distribution_channel_id,$startTime,$endTime); return response()->success($usersCount); } function customerImgUrlByChannelId(Request $request) { $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : ''; if(empty($distribution_channel_id)) { return response()->error("PARAM_EMPTY"); } $distributionChannelSetting = CustomMsgService::customerImgUrlByChannelId($distribution_channel_id); if (!empty($distributionChannelSetting)) { # code... return response()->success($distributionChannelSetting['customer_img_url']); }else{ return response()->success(['data'=>0]); } } /** * 得到素材强关的映射关系(distribution_channel_id,openid => uid) * @param Request $request */ function getMaterialForceSubscribeMapping(Request $request) { $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : ''; if(empty($distribution_channel_id)) { return response()->error("PARAM_EMPTY"); } $openid = $request->has('openid') ? $request->input('openid') : ''; if(empty($openid)) { return response()->error("PARAM_EMPTY"); } $material_force_subscribe_mapping = ForceSubscribeService::getMaterialForceSubscribeMapping($distribution_channel_id,$openid); return response()->success($material_force_subscribe_mapping); } function uploadCustomerImgUrl(Request $request) { $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : ''; if(empty($distribution_channel_id)) { return response()->error("PARAM_EMPTY"); } // dd($request->hasFile('photo')); if ($request->hasFile('photo')) { // dd(11); // $imagePath = $path = $request->photo->store('images'); $file = $request->file('photo'); $ossImgBackData = $this->ossObject()->uploadFile(env('OSS_BUCKET','yueduyun'), 'service/customimage_'.$distribution_channel_id.'_'.time().'.'.$file->getClientOriginalName(), $file->path()); $ossImg = $ossImgBackData['oss-request-url']; $customerImgPram['distribution_channel_id'] = $distribution_channel_id; $customerImgPram['customer_img_url'] = $ossImg; $sustomMsgService = CustomMsgService::updateCustomerImgUrl($customerImgPram); return response()->item(new CustomMsgControllerTransformer(), $sustomMsgService); } } function ossObject() { $accessKeyId = env('OSS_ACCESS_ID'); $accessKeySecret = env('OSS_ACCESS_KEY'); $endpoint = env('OSS_END_POINT'); $ossClient = null; try { $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); } catch (OssException $e) { return null; } return $ossClient; } }