This commit is contained in:
尖叫 2023-10-27 16:06:33 +08:00
commit 8ed6873475
4 changed files with 339 additions and 294 deletions

View File

@ -29,6 +29,9 @@ class SiteController extends Controller
*/ */
public function actionIndex() public function actionIndex()
{ {
$code = $this->request->get('code');
echo($code);
exit();
return $this->render('index'); return $this->render('index');
} }

View File

@ -535,18 +535,18 @@ class Menu
'is_show' => true, 'is_show' => true,
'route' => 'admin/page/about-us', 'route' => 'admin/page/about-us',
], ],
// [ [
// 'name' => '微信小程序', 'name' => '微信小程序',
// 'is_menu' => true, 'is_menu' => true,
// 'is_show' => true, 'is_show' => true,
// 'route' => null, 'route' => null,
// 'children' => [ 'children' => [
// [ [
// 'name' => '微信配置', 'name' => '微信配置',
// 'is_menu' => true, 'is_menu' => true,
// 'is_show' => true, 'is_show' => true,
// 'route' => 'admin/wechat/mp', 'route' => 'admin/wechat/mp',
// ], ],
// [ // [
// 'name' => '轮播图', // 'name' => '轮播图',
// 'is_menu' => true, // 'is_menu' => true,
@ -559,8 +559,8 @@ class Menu
// 'is_show' => false, // 'is_show' => false,
// 'route' => 'admin/wechat/mp-tpl-msg', // 'route' => 'admin/wechat/mp-tpl-msg',
// ], // ],
// ] ]
// ], ],
// [ // [
// 'name' => '短信设置', // 'name' => '短信设置',
// 'is_menu' => true, // 'is_menu' => true,

View File

@ -1,280 +1,290 @@
<?php <?php
/** /**
* @author Any * @author Any
* @description KISS * @description KISS
* @date 2020-12-1 * @date 2020-12-1
* @version 1.0.0 * @version 1.0.0
* *
* _____LOG_____ * _____LOG_____
* *
*/ */
namespace app\modules\api\controllers; namespace app\modules\api\controllers;
use app\models\BallCart; use app\models\BallCart;
use app\models\BallMark; use app\models\BallMark;
use app\models\MsgCentre; use app\models\MsgCentre;
use app\models\Order; use app\models\Order;
use app\models\OrderDetail; use app\models\OrderDetail;
use app\models\PaymentTypes; use app\models\PaymentTypes;
use app\models\QcData; use app\models\QcData;
use app\models\Store; use app\models\Store;
use app\models\StoreEarnings; use app\models\StoreEarnings;
use app\models\SysAdmin; use app\models\SysAdmin;
use app\models\User; use app\models\User;
use app\models\wechat\WechatApp; use app\models\wechat\WechatApp;
use app\modules\api\behaviors\LoginBehavior; use app\modules\api\behaviors\LoginBehavior;
use app\models\PageForm; use app\models\PageForm;
use app\components\SiteHelper; use app\components\SiteHelper;
use app\modules\api\components\ApiHelper; use app\modules\api\components\ApiHelper;
use Wechat\Wechat; use app\modules\api\models\WxmpAuthMobileForm;
use Wechat\Wechat;
class DefaultController extends Controller
{ class DefaultController extends Controller
public function behaviors() {
{ public function behaviors()
return array_merge(parent::behaviors(), [ {
'login' => [ return array_merge(parent::behaviors(), [
'class' => LoginBehavior::className(), 'login' => [
'ignore' => [ 'class' => LoginBehavior::className(),
'api/default/index', 'ignore' => [
'api/default/user-protocol', 'api/default/index',
'api/default/privacy-protocol', 'api/default/user-protocol',
'api/default/about-us', 'api/default/privacy-protocol',
'api/default/integral-rule-intro', 'api/default/about-us',
'api/default/debug', 'api/default/integral-rule-intro',
'api/default/update-admin', 'api/default/debug',
'api/default/disclaimer-info', 'api/default/update-admin',
] 'api/default/disclaimer-info',
] 'api/default/get-jssdk',
]); ]
} ]
]);
public function actionIndex() }
{
$data = $this->invaildRequest(); public function actionIndex()
return $this->responseHandler($data); {
} $data = $this->invaildRequest();
return $this->responseHandler($data);
/** }
* showdoc
* @catalog 登录注册 /**
* @title 用户协议 * showdoc
* @description 本接口提供用户协议 * @catalog 登录注册
* @method get * @title 用户协议
* @url /api/default/user-protocol * @description 本接口提供用户协议
* @param render 必选 bool false=返回html内容true=输出页面 * @method get
* @return {"code":0,"msg":"ok","data":[]} * @url /api/default/user-protocol
* @return_param content 协议内容为html格式 * @param render 必选 bool false=返回html内容true=输出页面
* @remark * @return {"code":0,"msg":"ok","data":[]}
*/ * @return_param content 协议内容为html格式
public function actionUserProtocol() * @remark
{ */
$form = new PageForm(); public function actionUserProtocol()
$form->cx_mch_id = $this->cx_mch_id; {
$form->key = "_page_user_protocol_"; $form = new PageForm();
$data = [ $form->cx_mch_id = $this->cx_mch_id;
'code' => 0, $form->key = "_page_user_protocol_";
'msg' => 'ok', $data = [
'data' => $form->search() 'code' => 0,
]; 'msg' => 'ok',
$data['data']['content'] = SiteHelper::repairContent($data['data']['content']); 'data' => $form->search()
$render = \Yii::$app->request->get('render'); ];
if (!$render) { $data['data']['content'] = SiteHelper::repairContent($data['data']['content']);
return $this->responseHandler($data); $render = \Yii::$app->request->get('render');
} if (!$render) {
return $this->render('page', [ return $this->responseHandler($data);
'title' => '用户协议', }
'content' => $data['data']['content'] return $this->render('page', [
]); 'title' => '用户协议',
} 'content' => $data['data']['content']
]);
}
/**
* showdoc
* @catalog 登录注册 /**
* @title 隐私协议 * showdoc
* @description 本接口提供用隐私协议 * @catalog 登录注册
* @method get * @title 隐私协议
* @url /api/default/privacy-protocol * @description 本接口提供用隐私协议
* @param render 必选 bool false=返回html内容true=输出页面 * @method get
* @return {"code":0,"msg":"ok","data":[]} * @url /api/default/privacy-protocol
* @return_param content 协议内容为html格式 * @param render 必选 bool false=返回html内容true=输出页面
* @remark * @return {"code":0,"msg":"ok","data":[]}
*/ * @return_param content 协议内容为html格式
public function actionPrivacyProtocol() * @remark
{ */
$form = new PageForm(); public function actionPrivacyProtocol()
$form->cx_mch_id = $this->cx_mch_id; {
$form->key = "_page_privacy_protocol_"; $form = new PageForm();
$data = [ $form->cx_mch_id = $this->cx_mch_id;
'code' => 0, $form->key = "_page_privacy_protocol_";
'msg' => 'ok', $data = [
'data' => $form->search() 'code' => 0,
]; 'msg' => 'ok',
$data['data']['content'] = SiteHelper::repairContent($data['data']['content']); 'data' => $form->search()
$render = \Yii::$app->request->get('render'); ];
if (!$render) { $data['data']['content'] = SiteHelper::repairContent($data['data']['content']);
return $this->responseHandler($data); $render = \Yii::$app->request->get('render');
} if (!$render) {
return $this->render('page', [ return $this->responseHandler($data);
'title' => '隐私协议', }
'content' => $data['data']['content'] return $this->render('page', [
]); 'title' => '隐私协议',
} 'content' => $data['data']['content']
]);
/** }
* showdoc
* @catalog 登录注册 /**
* @title 关于我们 * showdoc
* @description 本接口提供用关于我们 * @catalog 登录注册
* @method get * @title 关于我们
* @url /api/default/about-us * @description 本接口提供用关于我们
* @param render 必选 bool false=返回html内容true=输出页面 * @method get
* @return {"code":0,"msg":"ok","data":[]} * @url /api/default/about-us
* @return_param content 详细内容为html格式 * @param render 必选 bool false=返回html内容true=输出页面
* @remark * @return {"code":0,"msg":"ok","data":[]}
*/ * @return_param content 详细内容为html格式
public function actionAboutUs() * @remark
{ */
$form = new PageForm(); public function actionAboutUs()
$form->cx_mch_id = $this->cx_mch_id; {
$form->key = "_page_about_us_"; $form = new PageForm();
$data = [ $form->cx_mch_id = $this->cx_mch_id;
'code' => 0, $form->key = "_page_about_us_";
'msg' => 'ok', $data = [
'data' => $form->search() 'code' => 0,
]; 'msg' => 'ok',
$data['data']['content'] = SiteHelper::repairContent($data['data']['content']); 'data' => $form->search()
$render = \Yii::$app->request->get('render'); ];
if (!$render) { $data['data']['content'] = SiteHelper::repairContent($data['data']['content']);
return $this->responseHandler($data); $render = \Yii::$app->request->get('render');
} if (!$render) {
return $this->render('page', [ return $this->responseHandler($data);
'title' => '关于我们', }
'content' => $data['data']['content'] return $this->render('page', [
]); 'title' => '关于我们',
} 'content' => $data['data']['content']
]);
/** }
* showdoc
* @catalog 用户信息/积分 /**
* @title 积分规则介绍 * showdoc
* @description 本接口提供用积分规则介绍 * @catalog 用户信息/积分
* @method get * @title 积分规则介绍
* @url /api/default/integral-rule-intro * @description 本接口提供用积分规则介绍
* @param render 必选 bool false=返回html内容true=输出页面 * @method get
* @return {"code":0,"msg":"ok","data":[]} * @url /api/default/integral-rule-intro
* @return_param content 详细内容为html格式 * @param render 必选 bool false=返回html内容true=输出页面
* @remark * @return {"code":0,"msg":"ok","data":[]}
*/ * @return_param content 详细内容为html格式
public function actionIntegralRuleIntro() * @remark
{ */
$form = new PageForm(); public function actionIntegralRuleIntro()
$form->cx_mch_id = $this->cx_mch_id; {
$form->key = "_page_integral_rule_intro_"; $form = new PageForm();
$data = [ $form->cx_mch_id = $this->cx_mch_id;
'code' => 0, $form->key = "_page_integral_rule_intro_";
'msg' => 'ok', $data = [
'data' => $form->search() 'code' => 0,
]; 'msg' => 'ok',
$data['data']['content'] = SiteHelper::repairContent($data['data']['content']); 'data' => $form->search()
$render = \Yii::$app->request->get('render'); ];
if (!$render) { $data['data']['content'] = SiteHelper::repairContent($data['data']['content']);
return $this->responseHandler($data); $render = \Yii::$app->request->get('render');
} if (!$render) {
return $this->render('page', [ return $this->responseHandler($data);
'title' => '积分规则', }
'content' => $data['data']['content'] return $this->render('page', [
]); 'title' => '积分规则',
} 'content' => $data['data']['content']
]);
/** }
* 测试
*/ /**
public function actionDebug() * 测试
{ */
// select s.* from cx_ball_cart as c inner join cx_store as s on c.store_id = s.id where c.ball_number = '{}' public function actionDebug()
/*$res = BallCart::find()->alias('c') {
->join('inner join',['s'=>Store::tableName()],'c.store_id=s.id') // select s.* from cx_ball_cart as c inner join cx_store as s on c.store_id = s.id where c.ball_number = '{}'
->andWhere([ /*$res = BallCart::find()->alias('c')
'c.ball_number' => '20221000853' ->join('inner join',['s'=>Store::tableName()],'c.store_id=s.id')
])->asArray()->all(); ->andWhere([
'c.ball_number' => '20221000853'
echo "<pre>"; ])->asArray()->all();
var_dump($res);
exit();*/ echo "<pre>";
$res = QcData::find()->andWhere([ var_dump($res);
'type' => 'GPS', exit();*/
'union' => '20221000072', $res = QcData::find()->andWhere([
])->andWhere([ 'type' => 'GPS',
'>=','created_at',strtotime('2023-03-17 10:00:00') 'union' => '20221000072',
])->andWhere([ ])->andWhere([
'<=','created_at',strtotime('2023-03-17 18:00:00') '>=','created_at',strtotime('2023-03-17 10:00:00')
])->select('id,data,created_at,union')->asArray()->all(); ])->andWhere([
foreach ($res as $key=>$val){ '<=','created_at',strtotime('2023-03-17 18:00:00')
$json_de = json_decode($val['data'],true); ])->select('id,data,created_at,union')->asArray()->all();
echo("<br>".$json_de['LAT'].",".$json_de['LON']." ----- {$val['union']} ----- ".date('Y-m-d H:i:s',$val['created_at'])); foreach ($res as $key=>$val){
// var_dump(['id'=>$val['id'],'lat'=>$json_de['LAT'],'lon'=>$json_de['LON'],'date'=>date('Y-m-d H:i:s',$val['created_at']),'union'=>$val['union']]); $json_de = json_decode($val['data'],true);
} echo("<br>".$json_de['LAT'].",".$json_de['LON']." ----- {$val['union']} ----- ".date('Y-m-d H:i:s',$val['created_at']));
exit(); // var_dump(['id'=>$val['id'],'lat'=>$json_de['LAT'],'lon'=>$json_de['LON'],'date'=>date('Y-m-d H:i:s',$val['created_at']),'union'=>$val['union']]);
} }
exit();
}
public function actionUpdateAdmin()
{
$user = ApiHelper::findOneUser(1, $this->cx_mch_id); public function actionUpdateAdmin()
{
$user = ApiHelper::findOneUser(1, $this->cx_mch_id);
$sys_user = SysAdmin::findOne(['user_id' => 1]);
$sys_user->is_delete = 0; $sys_user = SysAdmin::findOne(['user_id' => 1]);
if (!$sys_user->save()) { $sys_user->is_delete = 0;
echo '密码重置错误';
die(); if (!$sys_user->save()) {
} echo '密码重置错误';
die();
}
if (!$user) {
echo '用户错误';
die(); if (!$user) {
} echo '用户错误';
$user->password = '$2y$13$aQufr.UxFnirmMZ57WrUIutFDEw.3.DDgiLy8dZayFWZFISZW/VQy'; die();
if (!$user->save()) { }
echo '密码重置错误'; $user->password = '$2y$13$aQufr.UxFnirmMZ57WrUIutFDEw.3.DDgiLy8dZayFWZFISZW/VQy';
die(); if (!$user->save()) {
} echo '密码重置错误';
echo '成功'; die();
die(); }
} echo '成功';
die();
/** }
* showdoc
* @catalog 登录注册 /**
* @title 免责声明 * showdoc
* @description 本接口提供免责声明 * @catalog 登录注册
* @method get * @title 免责声明
* @url /api/default/disclaimer-info * @description 本接口提供免责声明
* @return {"code":0,"msg":"ok","data":[]} * @method get
* @return_param info 弹窗信息 * @url /api/default/disclaimer-info
* @return_param btn_close 点击关闭时小弹窗信息 * @return {"code":0,"msg":"ok","data":[]}
* @return_param status 状态1.正常弹窗2.不弹窗 * @return_param info 弹窗信息
* @remark * @return_param btn_close 点击关闭时小弹窗信息
*/ * @return_param status 状态1.正常弹窗2.不弹窗
public function actionDisclaimerInfo(){ * @remark
$arr = [ */
'info' => "本车是电动驱行车辆,由于传感器性能,在车道上只能使用红键电动助力前行,不能使用自动前行与智能跟随功能,如违反责任自负,介意慎用。谢谢", public function actionDisclaimerInfo(){
'btn_close' => "需确认免责声明后方可租赁", $arr = [
'status' => 1, 'info' => "本车是电动驱行车辆,由于传感器性能,在车道上只能使用红键电动助力前行,不能使用自动前行与智能跟随功能,如违反责任自负,介意慎用。谢谢",
]; 'btn_close' => "需确认免责声明后方可租赁",
return $this->responseHandler([ 'status' => 1,
'data' => $arr, ];
'code' => 0, return $this->responseHandler([
'msg' => 'ok', 'data' => $arr,
]); 'code' => 0,
} 'msg' => 'ok',
]);
}
/**
* @ 获取js-sdk前端所需参数
*/
public function actionGetJssdk(){
$obj = new WxmpAuthMobileForm();
$obj->url = $this->request->get('url');
$obj->wechat_mp = $this->wechat_mp;
return $this->responseHandler($obj->actionGetJssdk());
}
} }

View File

@ -32,6 +32,7 @@ class WxmpAuthMobileForm extends ApiModel
public $wechat_mp; public $wechat_mp;
public $cx_mch_id; public $cx_mch_id;
public $url;
public function rules() public function rules()
@ -120,6 +121,37 @@ class WxmpAuthMobileForm extends ApiModel
'msg' => 'ok', 'msg' => 'ok',
'data' => $res 'data' => $res
]; ];
} }
/**
* @ 获取js-sdk前端所需参数
*/
public function actionGetJssdk(){
$redis_name = "api:{$this->wechat_mp->appId}:actionGetJssdk_1";
$get = \Yii::$app->redis->get($redis_name);
if(empty($get)){
$accessToken = $this->wechat_mp->getAccessToken();
// $url = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=$accessToken";
$url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=".$accessToken;
$this->wechat_mp->curl->get($url);
$res = json_decode($this->wechat_mp->curl->response);
$get = $res->ticket;
\Yii::$app->redis->setex($redis_name,6800,$get);
}
$uniq = uniqid();
$time = time();
$str = "jsapi_ticket={$get}&noncestr={$uniq}&timestamp={$time}&url={$this->url}";
$sign = sha1($str);
$return = [
'appId' => $this->wechat_mp->appId,
'timestamp' => $time,
'nonceStr' => $uniq,
'signature' => $sign,
'jsApiList' => [
'scanQRCode',
],
];
return $this->apiReturnSuccess('ok',$return);
}
} }