文件
mashangyoujiu/Application/Delivery/Controller/CommonController.class.php

167 行
4.8 KiB
PHP
可执行文件

<?php
namespace Delivery\Controller;
use addons\paotui\library\BaiduApi\AipNlp;
use addons\paotui\library\Map;
use addons\paotui\service\Config as PaotuiConfig;
use app\admin\model\paotui\Config;
use app\admin\model\paotui\GoodsType;
use app\admin\model\paotui\TemplateIds;
use app\admin\model\paotui\Times;
use app\common\controller\Api;
use app\common\exception\UploadException;
use app\common\library\Upload;
use EasyWeChat\Factory;
/**
* 公共接口
*/
class Common extends BaseController
{
protected $noNeedLogin = ['nlp_address','get_template_ids','regions','get_poi_nearby','decryptData','times','goods_type','getBPrice'];
protected $noNeedRight = '*';
/**
* 获取当前开通城市
*/
public function city(){
$this->success("请求成功",PaotuiConfig::get('city'));
}
/**
* 获取模板消息ID
*/
public function get_template_ids(){
$code = $this->request->post("code","");
if(empty($code)){
$this->success('请求成功',[]);
}
$templateIdsModel = new TemplateIds();
$templateIdsList = $templateIdsModel->where(['code'=>['in',explode(",",$code)]])->column("template_id");
$this->success('请求成功',$templateIdsList);
}
/**
* 获取保价金额
*/
public function getBPrice(){
$b_price = $this->request->post("b_price");
$postService = new \addons\paotui\service\Post();
$this->success("请求成功",$postService->getBPrice($b_price));
}
/**
* 小程序解码
*/
public function decryptData(){
$configModel = new Config();
$config = $configModel->where(['group'=>'mini'])->column("name,value");
$encryptedData = $this->request->request('encryptedData');
$iv = $this->request->request('iv');
$code = $this->request->request("code");
$options = [
'app_id' => $config['mini_appid'],
'secret' => $config['mini_appsecret'],
];
$app = Factory::miniProgram($options);
$sns = $app->auth->session($code);
if(!empty($sns['session_key'])){
$data = $app->encryptor->decryptData($sns['session_key'],$iv,$encryptedData);
$this->success("请求成功",$data);
}else{
$this->success("请求失败");
}
}
/**
* 获取预约时间段
* type 1帮取、帮送
*/
public function times(){
$type = $this->request->post("type",1);
$times = new Times();
$timesList = $times->where(['type'=>$type])->order("weigh asc")->column("times");
foreach ($timesList as &$v){
$v = str_replace(" ","",$v);
}
$this->success("请求成功",$timesList);
}
/**
*物品类型
*/
public function goods_type(){
$goodsTypeModel = new GoodsType();
$goodsType = $goodsTypeModel->order("weigh asc")->column('goods_type');
$this->success('请求成功',$goodsType);
}
/**
* 上传文件
* @ApiMethod (POST)
* @param File $file 文件流
*/
public function upload()
{
$attachment = null;
//默认普通上传文件
$file = $this->request->file('file');
try {
$upload = new Upload($file);
$attachment = $upload->upload();
} catch (UploadException $e) {
$this->error($e->getMessage());
}
$this->success(__('Uploaded successful'), ['url' => $attachment->url, 'fullurl' => cdnurl($attachment->url, true)]);
}
/**
* 智能识别地址
*/
public function nlp_address(){
$content = $this->request->post("content");
$content = str_replace(array("\r\n", "\r", "\n"), " ", $content);
$configModel = new Config();
$config = $configModel->where(['group'=>'base'])->column("name,value");
$appid = $config['bd_appid'];
$api_key = $config['bd_api_key'];
$secret_key = $config['bd_secret_key'];
if(strpos($content,$config['city']) === false){
$content = str_replace("/",'',$config['city']).$content;
}
$client = new AipNlp($appid, $api_key, $secret_key);
$address = $client->address($content);
if(!empty($address['city'])){
$address['province'] = str_replace('北京市',"北京",$address['province']);
$address['province'] = str_replace('天津市',"天津",$address['province']);
$address['province'] = str_replace('上海市',"上海",$address['province']);
$address['province'] = str_replace('重庆市',"重庆",$address['province']);
}
$this->success('请求成功',$address);
}
}