123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- <?php
- namespace app\controller\api;
- use laytp\controller\Api;
- use app\service\ConfServiceFacade;
- // use app\service\IpServiceFacade;
- /**
- * 获取系统配置
- */
- class Conf extends Api
- {
- // 无需登录的接口,*表示全部
- public $noNeedLogin = ['getGroupConf'];
- /*@formatter:off*/
- /**
- *
- * @ApiTitle (需要登录的接口需要登录的接口需要登录的接口需要登录的接口)
- * @ApiSummary (需要登录的接口详细描述)
- * @ApiMethod (POST)
- * @ApiRoute (/api.demo/test)
- * @ApiHeaders (name="token", type="string", required="true", description="请求的Token")
- * @ApiParams (name="id", type="integer", required="true", description="会员ID")
- * @ApiParams (name="name", type="string", required="true", description="用户名")
- * @ApiReturnParams (name="code", type="integer", description="接口返回码.0=常规正确码,表示常规操作成功;1=常规错误码,客户端仅需提示msg;其他返回码与具体业务相关。框架实现了的唯一其他返回码:10401,前端需要跳转至登录界面。在一个复杂的交互过程中,你可能需要自行定义其他返回码")
- * @ApiReturnParams (name="msg", type="string", description="返回描述")
- * @ApiReturnParams (name="time", type="integer", description="请求时间,Unix时间戳,单位秒")
- * @ApiReturnParams (name="data", type="object", description="返回的数据对象")
- * @ApiReturnParams (name="data.id", type="string", description="参数id的值")
- * @ApiReturnParams (name="data.name", type="string", description="参数name的值")
- * @ApiReturn
- ({
- "code": 0,
- "msg": "返回成功",
- "time": 1591168410,
- "data": {
- "id": "",
- "name": ""
- }
- })
- /**
- * 获取某个分组下所有的配置项
- */
- public function getGroupConf()
- {
- global $_GPC;
- // print_r($_GPC);
- $group = $this->request->param('group');
- if($group == 'system.ai' || $group=='system.pay' || $group=='plugin.ali_oss' || $group=='plugin.qiniu_kodo'){
- return $this->success('返回成功', []);
- }
- $platform = $this->request->header('platform','wxMiniProgram');
- $return = ConfServiceFacade::groupGet($group, true);
- if($platform == 'wxOfficialAccount'){
- $systemWechat = ConfServiceFacade::groupGet('system.wechat', true);
- // print_r($systemWechat);
- if(!empty($systemWechat['appid'])){
- $wechatAppid = $systemWechat['appid'];
- $return['wechat_appid'] = $wechatAppid;
- }
- }
- // $info = \app\model\Sk::orderRaw("rand() , id desc")->where(['uniacid'=>$_GPC['uniacid'],'status'=>1])->limit(1)->select()->toArray();
- // if(!empty($info)){
- // $return['sk'] = $this->encrypt($info[0]['sk'],'hello_wike');
- // }
- return $this->success('获取成功', $return);
- }
- /*@formatter:off*/
- /**
- * @ApiTitle (无需登录的接口)
- * @ApiSummary (无需登录的接口详细描述)
- * @ApiMethod (POST)
- * @ApiRoute (/api.demo/test1)
- * @ApiReturnParams (name="code", type="integer", description="接口返回码.0=常规正确码,表示常规操作成功;1=常规错误码,客户端仅需提示msg;其他返回码与具体业务相关。框架实现了的唯一其他返回码:10401,前端需要跳转至登录界面。在一个复杂的交互过程中,你可能需要自行定义其他返回码")
- * @ApiReturnParams (name="msg", type="string", description="返回描述")
- * @ApiReturnParams (name="time", type="integer", description="请求时间,Unix时间戳,单位秒")
- * @ApiReturnParams (name="data", type="object", description="返回的数据对象")
- * @ApiReturnParams (name="data.action", type="string", description="固定返回test1")
- * @ApiReturn
- ({
- "code": 0,
- "msg": "返回成功",
- "time": 1591168410,
- "data": {
- "action": "test1"
- }
- })
- */
- /*@formatter:on*/
- public function test1()
- {
- return $this->success('返回成功', ['action' => 'test1']);
- }
- /*@formatter:off*/
- /**
- * @ApiTitle (参数传递array的接口)
- * @ApiSummary (参数传递array的接口详细描述)
- * @ApiMethod (POST)
- * @ApiRoute (/api.demo/arrayParam)
- * @ApiParams (name="id", type="string", required="true", description="ID")
- * @ApiParams (name="name", type="array", required="true", description="数组中的值")
- * @ApiParams (name="array[key]", type="array", required="true", description="数组中的值")
- * @ApiReturnParams (name="code", type="integer", description="接口返回码.0=常规正确码,表示常规操作成功;1=常规错误码,客户端仅需提示msg;其他返回码与具体业务相关。框架实现了的唯一其他返回码:10401,前端需要跳转至登录界面。在一个复杂的交互过程中,你可能需要自行定义其他返回码")
- * @ApiReturnParams (name="msg", type="string", description="返回描述")
- * @ApiReturnParams (name="time", type="integer", description="请求时间,Unix时间戳,单位秒")
- * @ApiReturnParams (name="data", type="object", description="返回的数据对象")
- * @ApiReturnParams (name="data.action", type="string", description="固定返回test1")
- * @ApiReturn
- ({
- "code": 0,
- "msg": "返回成功",
- "time": 1591168410,
- "data": {
- "action": "test1"
- }
- })
- */
- /*@formatter:on*/
- public function arrayParam()
- {
- return $this->success('返回成功', $this->request->param('i'));
- }
- public function encrypt($str, $key){
- $mixStr = md5(date('Y-m-d H:i:s').rand(1000,10000));
- $tmp = '';
- $strLen = strlen($str);
- for($i=0, $j=0; $i<$strLen; $i++, $j++){
- $j = $j == 32 ? 0 : $j;
- $tmp .= $mixStr[$j].($str[$i] ^ $mixStr[$j]);
- }
- return base64_encode($this->bind_key($tmp, $key));
- }
- public function decrypt($str, $key){
- $str = $this->bind_key(base64_decode($str), $key);
- $strLen = strlen($str);
- $tmp = '';
- for($i=0; $i<$strLen; $i++){
- $tmp .= $str[$i] ^ $str[++$i];
- }
- return $tmp;
- }
- public function bind_key($str, $key){
- $encrypt_key = md5($key);
- $tmp = '';
- $strLen = strlen($str);
- for($i=0, $j=0; $i<$strLen; $i++, $j++){
- $j = $j == 32 ? 0 : $j;
- $tmp .= $str[$i] ^ $encrypt_key[$j];
- }
- return $tmp;
- }
- }
|