123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281 |
- <?php
- namespace app\api\controller;
- use AlibabaCloud\Client\AlibabaCloud;
- use AlibabaCloud\Client\Exception\ClientException;
- use AlibabaCloud\Client\Exception\ServerException;
- use app\common\model\StoreBanner;
- use app\common\model\TopSearch;
- use app\common\model\UserLevel;
- use Dm\Request\V20151123 as Dm;
- use think\cache\driver\Redis;
- use think\Db;
- /**
- * @title 不需要验证token接口
- * @controller Expedite
- * @package app\api\controller
- */
- class Expedite extends Base
- {
- public function initialize(){
- parent::initialize();
- parent::setUid();
- }
- /**
- * @title 获取首页轮播图
- * @desc 获取首页轮播图
- * @author qc
- * @url /api/Expedite/getBanner
- * @method GET
- * @header name:Authorization require:1 desc:Token
- * @param name:place type:int default:1 desc:展示位置1视频首页
- * @param name:num type:int default:5 desc:查询数量
- * @return name:cover type:srting default:-- desc:图片路径
- * @return name:link type:srting default:-- desc:链接
- */
- public function getBanner()
- {
- $num = input('get.num',5);
- $place = input('get.place',1);
- $list = StoreBanner::field('id,cover,link')
- ->where(['is_deleted'=>0,'place'=>$place])->limit(0,$num)
- ->order('sort desc ,id desc')->select()->toArray();
- $this->success('ok',['list'=>$list]);
- }
- /**
- * @title 获取会员等级设置
- * @desc 获取会员等级设置
- * @author qc
- * @url /api/Expedite/getUserLevelSet
- * @method GET
- * @header name:Authorization require:1 desc:Token
- * @return name:id type:int default:-- desc:等级id
- * @return name:name type:string default:-- desc:等级名称
- * @return name:logo type:string default:-- desc:图片
- * @return name:price type:array default:-- desc:价格设置【为空,,不能购买】
- * @return name:price.title type:string default:-- desc:标题
- * @return name:price.time type:string default:-- desc:时间(单位月)
- * @return name:price.price type:float default:-- desc:价格
- */
- public function getUserLevelSet()
- {
- $list = UserLevel::field('id,logo,name,price')->where("price is not null and price != ''")->select()->toArray();
- $this->success('ok',['list'=>$list]);
- }
- /**
- * @title 获取热搜设置
- * @desc 获取热搜设置
- * @author qc
- * @url /api/Expedite/getTopSearch
- * @method GET
- * @return name:title type:string default:-- desc:标题
- */
- public function getTopSearch()
- {
- $list = TopSearch::field('id,title')->where(['status'=>1,'is_deleted'=>0])->order('sort desc,id desc')->select()->toArray();
- $this->success('ok',['list'=>$list]);
- }
- /**
- * @title 发送短信验证码
- * @desc 发送短信验证码
- * @author qc
- * @url /api/Expedite/sendSms
- * @method POST
- * @tag 短信验证码
- * @param name:phone type:int require:1 default:-- desc:要获取验证码的手机号
- * @return name:code type:string default:-- desc:验证码
- */
- public function sendSms(){
- $phone = input('post.phone');
- if(empty($phone)) $this ->error('参数错误');
- $code = rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9);
- AlibabaCloud::accessKeyClient('LTAI5tJ5p12drZegeWVG33xZ', '82UWAiY5e5wH8tSkRvMtqVoGO0h8SB')
- ->regionId('cn-hangzhou')->asDefaultClient();
- try {
- $result = AlibabaCloud::rpc()
- ->product('Dysmsapi')
- ->version('2017-05-25')
- ->action('SendSms')
- ->method('POST')
- ->host('dysmsapi.aliyuncs.com')
- ->options([
- 'query' => [
- 'RegionId' => "cn-hangzhou",
- 'PhoneNumbers' => $phone,
- 'SignName' => "搞一下汽车电子",
- 'TemplateCode' => "SMS_234397351",
- 'TemplateParam' => json_encode(array("code"=>$code)),
- ],
- ])->request();
- $result = $result->toArray();
- if($result['Code'] == "OK") {
- $sms_data = array(
- 'phone'=>$phone,
- 'code'=>$code,
- 'result'=>$result['Message']
- );
- Db::name('store_member_sms')->insert($sms_data);
- $this->success('发送成功',['code'=>$code]);
- }else{
- $this->error('发送失败');
- }
- } catch (ClientException $e) {
- echo $e->getErrorMessage() . PHP_EOL;
- } catch (ServerException $e) {
- echo $e->getErrorMessage() . PHP_EOL;
- }
- }
- /**
- * @title 发送邮箱验证码
- * @desc 发送邮箱验证码
- * @author qc
- * @url /api/Expedite/emailSms
- * @method POST
- * @tag 邮箱验证码
- * @param name:email type:int require:1 default:-- desc:邮箱
- * @return name:code type:string default:-- desc:验证码
- */
- function emailSms(){
- $email = input('post.email');
- $code = rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9);
- require_once env('root_path').'/vendor/aliyunmail/aliyun-php-sdk-core/Config.php';
- $iClientProfile = \DefaultProfile::getProfile("cn-hangzhou", "LTAI5tJ5p12drZegeWVG33xZ", "82UWAiY5e5wH8tSkRvMtqVoGO0h8SB");
- $client = new \DefaultAcsClient($iClientProfile);
- $request = new Dm\SingleSendMailRequest();
- $request->setAccountName("gyx@yzm.gyxqcdz.com");
- $request->setFromAlias("[验证码]");
- $request->setAddressType(1);
- $request->setTagName("zonghuzhuche");
- $request->setReplyToAddress("true");
- $request->setToAddress($email);
- $request->setSubject("验证码");
- $html_body = '验证码:'.$code;
- $request->setHtmlBody($html_body);
- try {
- $send_res = $client->getAcsResponse($request);
- $sms_data = array(
- 'phone'=>$email,
- 'code'=>$code,
- 'result'=>'OK'
- );
- Db::name('store_member_sms')->insert($sms_data);
- $this->success('发送成功',['code'=>$code]);
- } catch (ClientException $e) {
- $this->error($e->getErrorMessage());
- // print_r($e->getErrorCode());
- // print_r($e->getErrorMessage());
- } catch (ServerException $e) {
- $this->error($e->getErrorMessage());
- // print_r($e->getErrorCode());
- // print_r($e->getErrorMessage());
- }
- }
- /**
- * @title 获取签名
- * @desc 获取签名
- * @url /api/Expedite/getWeChatSign
- * @method POST
- * @param name:url type:string default:-- desc:页面地址
- * @return name:appid type:string default:-- desc:appid
- * @return name:noncestr type:string default:-- desc:随机字符
- * @return name:timestamp type:string default:-- desc:时间戳
- * @return name:sign type:string default:-- desc:签名
- * @return name:ticket type:string default:-- desc:ticket
- **/
- public function getWeChatSign(){
- $urls = input('post.url');
- $appid = config('app.official_account')['appid'];
- $secret = config('app.official_account')['secret'];
- $redis = new Redis();
- $access_token = $redis->get('access_token');
- if (!$access_token){
- $access_token = '';
- $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret";
- $res= http_curl($url);
- if (isset($res['access_token'])){
- $redis->set('access_token',$res['access_token'],'7000');
- $access_token = $res['access_token'];
- }
- }
- $url2 ="https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".$access_token."&type=jsapi";
- $res2=http_curl($url2);
- if (!isset($res2) || $res2['errcode']!=0) $this->error('获取ticket失败');
- $timestamp = time();
- $noncestr = get32Str(15);
- $string = "jsapi_ticket=".$res2['ticket']."&noncestr=$noncestr×tamp=$timestamp&url=".$urls;
- $sign = sha1($string);
- $return = [
- 'appid'=>$appid,
- 'noncestr'=>$noncestr,
- 'timestamp'=>$timestamp,
- 'url'=>$urls,
- 'sign'=>$sign,
- 'ticket'=>$res2['ticket']
- ];
- $this->success('成功',$return);
- }
- /**
- * @title 获取平台文案设置
- * @desc 获取平台文案设置
- * @author qc
- * @url /api/Expedite/getSysConfig
- * @method GET
- * @param name:search_name type:string default:-- desc:根据下面名称查(不传查全部的)
- * @return name:agreement type:string default:-- desc:用户协议
- * @return name:about_us type:string default:-- desc:关于我们
- * @return name:privacy type:string default:-- desc:隐私政策
- * @return name:user_equity type:string default:-- desc:会员权益
- * @return name:customer_service type:string default:-- desc:客服设置
- * @return name:original_pact type:string default:-- desc:原创公约
- * @return name:app_name type:string default:-- desc:平台名称
- * @return name:app_logo type:string default:-- desc:平台logo
- */
- public function getSysConfig(){
- $search_name = input('get.search_name');
- $con_name = $search_name? [$search_name] : ['agreement','about_us','privacy','user_equity','customer_service','original_pact'];
- $set = Db::name('system_config')->where('name','in',$con_name)->select();
- $ret = [];
- foreach ($set as $value) {
- $ret[$value['name']]=$value['value'];
- }
- $this->success('获取成功',$ret);
- }
- /**
- * @title 获取客服设置
- * @desc 获取客服设置
- * @author qc
- * @url /api/Expedite/getServiceSet
- * @method GET
- * @return name:service_qr_code type:string default:-- desc:客服二维码
- * @return name:service_phone type:string default:-- desc:客服电话
- * @return name:service_email type:string default:-- desc:客服邮箱
- */
- public function getServiceSet(){
- $con_name = ['service_qr_code','service_phone','service_email'];
- $set = Db::name('system_config')->where('name','in',$con_name)->select();
- $ret = [];
- foreach ($set as $value) {
- $ret[$value['name']]=$value['value'];
- }
- $this->success('获取成功',$ret);
- }
- }
|