| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302 | <?phpnamespace App\Http\Controllers\Wechat\OfficialAccount;use App\Http\Controllers\Channel\BaseController;use App\Modules\OfficialAccount\Services\OfficialAccountService;use App\Modules\OfficialAccount\Models\OfficialAccount;use App\Modules\OfficialAccount\Models\ForceSubscribeUsers;use App\Http\Controllers\Wechat\OfficialAccount\Transformers\OfficialAccountTransformer;use App\Modules\Book\Services\BookConfigService;use App\Modules\OfficialAccount\Models\WechatTemplates;use App\Modules\OfficialAccount\Models\WechatTemplateMsgs;use App\Modules\OfficialAccount\Models\WechatPublicTemplates;use Illuminate\Http\Request;use GuzzleHttp\Client;use App\Libs\OSS;use Redis;use App\Jobs\SendTestEmail;class WechatTestController extends BaseController{    //------------------Test  OfficialAccointsController    // 通过渠道号获取所有服务号     --Manage    function allOfficialAccountBydistributionChannelId(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");        }        \Log::info('-------------------获取当前渠道下的所有服务号-----------------------------------');        \Log::info($distribution_channel_id);        $officialAccount['distribution_channel_id'] = $distribution_channel_id;        $officialAccountService = OfficialAccountService::allOfficialAccountBydistributionChannelId($officialAccount);                return response()->collection(new OfficialAccountTransformer(), $officialAccountService);    }    // 通过渠道号获取服务号数量     --Manage    function officialAccountCountByChannelId(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");        }        $officialAccount['distribution_channel_id'] = $distribution_channel_id;        $officialAccountService = OfficialAccountService::officialAccountCountByChannelId($officialAccount);        return response()->success(['official_num'=>$officialAccountService]);    }    // sign加密    function getSignTest(Request $request){//        $appid = $request->has('appid') ? $request->input('appid') : '';////        if(empty($appid)) {//            return response()->error("PARAM_EMPTY");//        }////        $timestamp = $request->has('timestamp') ? $request->input('timestamp') : '';////        if(empty($timestamp)) {//            return response()->error("PARAM_EMPTY");//        }////        $params = array("authorizer_appid"=>$appid,"timestamp"=>$timestamp);////        $sign = get_sign($params);////        return response()->success(['sign'=>$sign]);                $timestamp = 1519359397;        $official_accounts = 'wx1affdca495a3ab1e';        $params = array("authorizer_appid"=>$official_accounts,"timestamp"=>$timestamp);        $sign = get_sign($params);        try {            $mediaCustomerJson = $this->getUserClient()->request("GET","auto_set_menu_and_template_test",                ['query'=>['authorizer_appid'=>$official_accounts,'timestamp'=>$timestamp,'sign'=>$sign],'connect_timeout' => 10]            )->getBody()->getContents();        } catch (\Exception $e) {            \Log::info($e);        }        return response()->success(['status'=>'1']);    }//    // 更新公众号信息至Redis//    function updateOfficialToRedisTest(Request $request)//    {//        $allOfficialAccounts = OfficialAccount::getAllOfficialAccountDB();//        if(count($allOfficialAccounts)>0){//            for ($i=0; $i < count($allOfficialAccounts); $i++) {//                $official_accounts = $allOfficialAccounts[$i];//                $officialAccountArray = $official_accounts->toArray();////                dd(json_encode($officialAccountArray));//                Redis::hset('official_account_info:app_id:'.$official_accounts['appid'], 'official_account_info', json_encode($officialAccountArray));//////            }//        }////        dd(1);//        return response()->success(['sign'=>count($allOfficialAccounts)]);////    }    // 更新公众号信息至Redis    function getOfficialFromRedis(Request $request)    {        $appid = $request->has('appid') ? $request->input('appid') : '';        if(empty($appid)) {            return response()->error("PARAM_EMPTY");        }        $officialMsg =  Redis::hget('official_account_info:app_id:'.$appid, 'official_account_info');        $official_object = json_decode($officialMsg);        return response()->success(['official_account_info'=>$official_object]);    }    // 获取模板或者客服信息Redis    function getWechatMsgRedis(Request $request)    {        $task_id = $request->has('task_id') ? $request->input('task_id') : '';        if(empty($task_id)) {            return response()->error("PARAM_EMPTY");        }        $officialMsg =  Redis::hget('send_wechat_msg:task_id:'.$task_id, 'wechat_msg');        \Log::info($officialMsg);        $official_object = json_decode($officialMsg);        return response()->success(['official_account_info'=>$official_object]);    }    // 通过appid获取公众号    function officialAccountByAppidTestRedis(Request $request)    {        $appid = $request->has('appid') ? $request->input('appid') : '';        if(empty($appid)) {            return response()->error("PARAM_EMPTY");        }        $officialAccountPrams['appid'] = $appid;        $officialAccountService = OfficialAccountService::officialAccountByAppid($officialAccountPrams);        return response()->item(new OfficialAccountTransformer(), $officialAccountService);    }    // 获取模板或者客服信息Redis    function testSendMailDelayQueue(Request $request)    {        $test = '这是一条测试的Email信息。。。。';        /**         *  通过Job方式发送模板消息-----queue         */        $job = (new SendTestEmail($test))->onConnection('rabbitmq')->delay(20);        dispatch($job);        return response()->success(['send_email_queue_delay_test'=>$test]);    }    // 所有公众号发送模板消息    function updateOfficialToRedisTest(Request $request)    {        $allOfficialAccounts = OfficialAccount::getAllOfficialAccountDB();        if(count($allOfficialAccounts)>0){            for ($i=0; $i < count($allOfficialAccounts); $i++) {                $official_accounts = $allOfficialAccounts[$i];                $wechatTemplates = WechatTemplates::wechatTemplateByAppidAndTemplateId($official_accounts['appid'],'TM405959659');                if(empty($wechatTemplates)) {                    \Log::info('send_template5555555555:======未找到模板');                }else{                    $wechatTemplateMsgs['appid'] = $official_accounts['appid'];                    $wechatTemplateMsgs['distribution_channel_id'] = $official_accounts['distribution_channel_id'];                    $wechatTemplateMsgs['status'] = '1';                    $wechatTemplateMsgs['del_flag'] = 0;                    $wechatTemplateMsgs['user_num'] = 0;                    $wechatTemplateMsgs['name'] = '2018狗年春节钜惠';                    $wechatTemplateMsgs['send_time'] = '2018-02-14 20:30:21';                    $wechatTemplateMsgs['template_content'] = '[{"first.DATA":["尊敬的会员: 恭喜您抽中双节双重大礼包!","#ff0000"]},{"keynote1.DATA":["充50送50 、充108送128!书币翻倍读不停!","#0099ff"]},{"keynote2.DATA":["活动时间2月14日-2月21日","#ff0000"]},{"remark.DATA":["点击【详情】,立即领取限时大礼包>>>","#0099ff"]}]';                    $wechatTemplateMsgs['redirect_url'] = 'https://site'.$official_accounts['distribution_channel_id'].'.leyuee.com/sale/springactivity?token=1JMfs0yjYR1CV6Bsf8ZWlp34WIYsg61d';                    $wechatTemplateMsgs['remark'] = '';                    $wechatTemplateMsgs['subscribe_time'] = 'z';                    $wechatTemplateMsgs['sex'] = 'z';                    $wechatTemplateMsgs['balance'] = 'z';                    $wechatTemplateMsgs['order_type'] = 'z';                    $wechatTemplateMsgs['category_id'] = 'z';                    $wechatTemplateMsgs['template_id'] = $wechatTemplates['template_id'];                    $templateMsgs = WechatTemplateMsgs::create($wechatTemplateMsgs);                    $officialAccountArray = $templateMsgs->toArray();                    Redis::hset('send_wechat_msg:task_id:'.$templateMsgs['id'], 'wechat_msg', json_encode($officialAccountArray));                }            }        }        return response()->success(['sign'=>count($allOfficialAccounts)]);    }        // 根据用户id获取推荐的书籍    function getSimpleChannelBook(Request $request){    	$uid = $request->get('uid');    	$num = 6;    	$bid =1;    	$books = BookConfigService::getSimpleChannelBookLoop($bid,$num,$uid);    	return response()->success($books);    }//    // 获取模板或者客服信息Redis//    function updateOfficialToRedisTest(Request $request)//    {//////        $timestamp = 1517556929;////        $allOfficialAccounts = OfficialAccount::getAllOfficialAccountDB();//        if(count($allOfficialAccounts)>0){//            for ($i=0; $i < count($allOfficialAccounts); $i++) {////                $official_accounts = $allOfficialAccounts[$i];//                $params = array("authorizer_appid"=>$official_accounts['appid'],"timestamp"=>$timestamp);//                $sign = get_sign($params);////                try {////                    $mediaCustomerJson = $this->getUserClient()->request("GET","auto_set_menu_and_template_test",//                        ['query'=>['authorizer_appid'=>$official_accounts['appid'],'timestamp'=>$timestamp,'sign'=>$sign],'connect_timeout' => 3]//                    )->getBody()->getContents();////                } catch (\Exception $e) {//                    \Log::info($e);//                }//////            }//        }////        return response()->success(['sign'=>count($allOfficialAccounts)]);////    }//    public function getUserClient(){        // return new Client(['base_uri' => 'http://118.31.133.29/api/']);        return new Client(['base_uri' => 'http://zsyauth.aizhuishu.com/oauth/']);    }    }
 |