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()
{
$code = $this->request->get('code');
echo($code);
exit();
return $this->render('index');
}

View File

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

View File

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