Conf.php 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <?php
  2. namespace app\controller\api;
  3. use laytp\controller\Api;
  4. use app\service\ConfServiceFacade;
  5. // use app\service\IpServiceFacade;
  6. /**
  7. * 获取系统配置
  8. */
  9. class Conf extends Api
  10. {
  11. // 无需登录的接口,*表示全部
  12. public $noNeedLogin = ['getGroupConf'];
  13. /*@formatter:off*/
  14. /**
  15. *
  16. * @ApiTitle (需要登录的接口需要登录的接口需要登录的接口需要登录的接口)
  17. * @ApiSummary (需要登录的接口详细描述)
  18. * @ApiMethod (POST)
  19. * @ApiRoute (/api.demo/test)
  20. * @ApiHeaders (name="token", type="string", required="true", description="请求的Token")
  21. * @ApiParams (name="id", type="integer", required="true", description="会员ID")
  22. * @ApiParams (name="name", type="string", required="true", description="用户名")
  23. * @ApiReturnParams (name="code", type="integer", description="接口返回码.0=常规正确码,表示常规操作成功;1=常规错误码,客户端仅需提示msg;其他返回码与具体业务相关。框架实现了的唯一其他返回码:10401,前端需要跳转至登录界面。在一个复杂的交互过程中,你可能需要自行定义其他返回码")
  24. * @ApiReturnParams (name="msg", type="string", description="返回描述")
  25. * @ApiReturnParams (name="time", type="integer", description="请求时间,Unix时间戳,单位秒")
  26. * @ApiReturnParams (name="data", type="object", description="返回的数据对象")
  27. * @ApiReturnParams (name="data.id", type="string", description="参数id的值")
  28. * @ApiReturnParams (name="data.name", type="string", description="参数name的值")
  29. * @ApiReturn
  30. ({
  31. "code": 0,
  32. "msg": "返回成功",
  33. "time": 1591168410,
  34. "data": {
  35. "id": "",
  36. "name": ""
  37. }
  38. })
  39. /**
  40. * 获取某个分组下所有的配置项
  41. */
  42. public function getGroupConf()
  43. {
  44. global $_GPC;
  45. // print_r($_GPC);
  46. $group = $this->request->param('group');
  47. if($group == 'system.ai' || $group=='system.pay' || $group=='plugin.ali_oss' || $group=='plugin.qiniu_kodo'){
  48. return $this->success('返回成功', []);
  49. }
  50. $platform = $this->request->header('platform','wxMiniProgram');
  51. $return = ConfServiceFacade::groupGet($group, true);
  52. if($platform == 'wxOfficialAccount'){
  53. $systemWechat = ConfServiceFacade::groupGet('system.wechat', true);
  54. // print_r($systemWechat);
  55. if(!empty($systemWechat['appid'])){
  56. $wechatAppid = $systemWechat['appid'];
  57. $return['wechat_appid'] = $wechatAppid;
  58. }
  59. }
  60. // $info = \app\model\Sk::orderRaw("rand() , id desc")->where(['uniacid'=>$_GPC['uniacid'],'status'=>1])->limit(1)->select()->toArray();
  61. // if(!empty($info)){
  62. // $return['sk'] = $this->encrypt($info[0]['sk'],'hello_wike');
  63. // }
  64. return $this->success('获取成功', $return);
  65. }
  66. /*@formatter:off*/
  67. /**
  68. * @ApiTitle (无需登录的接口)
  69. * @ApiSummary (无需登录的接口详细描述)
  70. * @ApiMethod (POST)
  71. * @ApiRoute (/api.demo/test1)
  72. * @ApiReturnParams (name="code", type="integer", description="接口返回码.0=常规正确码,表示常规操作成功;1=常规错误码,客户端仅需提示msg;其他返回码与具体业务相关。框架实现了的唯一其他返回码:10401,前端需要跳转至登录界面。在一个复杂的交互过程中,你可能需要自行定义其他返回码")
  73. * @ApiReturnParams (name="msg", type="string", description="返回描述")
  74. * @ApiReturnParams (name="time", type="integer", description="请求时间,Unix时间戳,单位秒")
  75. * @ApiReturnParams (name="data", type="object", description="返回的数据对象")
  76. * @ApiReturnParams (name="data.action", type="string", description="固定返回test1")
  77. * @ApiReturn
  78. ({
  79. "code": 0,
  80. "msg": "返回成功",
  81. "time": 1591168410,
  82. "data": {
  83. "action": "test1"
  84. }
  85. })
  86. */
  87. /*@formatter:on*/
  88. public function test1()
  89. {
  90. return $this->success('返回成功', ['action' => 'test1']);
  91. }
  92. /*@formatter:off*/
  93. /**
  94. * @ApiTitle (参数传递array的接口)
  95. * @ApiSummary (参数传递array的接口详细描述)
  96. * @ApiMethod (POST)
  97. * @ApiRoute (/api.demo/arrayParam)
  98. * @ApiParams (name="id", type="string", required="true", description="ID")
  99. * @ApiParams (name="name", type="array", required="true", description="数组中的值")
  100. * @ApiParams (name="array[key]", type="array", required="true", description="数组中的值")
  101. * @ApiReturnParams (name="code", type="integer", description="接口返回码.0=常规正确码,表示常规操作成功;1=常规错误码,客户端仅需提示msg;其他返回码与具体业务相关。框架实现了的唯一其他返回码:10401,前端需要跳转至登录界面。在一个复杂的交互过程中,你可能需要自行定义其他返回码")
  102. * @ApiReturnParams (name="msg", type="string", description="返回描述")
  103. * @ApiReturnParams (name="time", type="integer", description="请求时间,Unix时间戳,单位秒")
  104. * @ApiReturnParams (name="data", type="object", description="返回的数据对象")
  105. * @ApiReturnParams (name="data.action", type="string", description="固定返回test1")
  106. * @ApiReturn
  107. ({
  108. "code": 0,
  109. "msg": "返回成功",
  110. "time": 1591168410,
  111. "data": {
  112. "action": "test1"
  113. }
  114. })
  115. */
  116. /*@formatter:on*/
  117. public function arrayParam()
  118. {
  119. return $this->success('返回成功', $this->request->param('i'));
  120. }
  121. public function encrypt($str, $key){
  122. $mixStr = md5(date('Y-m-d H:i:s').rand(1000,10000));
  123. $tmp = '';
  124. $strLen = strlen($str);
  125. for($i=0, $j=0; $i<$strLen; $i++, $j++){
  126. $j = $j == 32 ? 0 : $j;
  127. $tmp .= $mixStr[$j].($str[$i] ^ $mixStr[$j]);
  128. }
  129. return base64_encode($this->bind_key($tmp, $key));
  130. }
  131. public function decrypt($str, $key){
  132. $str = $this->bind_key(base64_decode($str), $key);
  133. $strLen = strlen($str);
  134. $tmp = '';
  135. for($i=0; $i<$strLen; $i++){
  136. $tmp .= $str[$i] ^ $str[++$i];
  137. }
  138. return $tmp;
  139. }
  140. public function bind_key($str, $key){
  141. $encrypt_key = md5($key);
  142. $tmp = '';
  143. $strLen = strlen($str);
  144. for($i=0, $j=0; $i<$strLen; $i++, $j++){
  145. $j = $j == 32 ? 0 : $j;
  146. $tmp .= $str[$i] ^ $encrypt_key[$j];
  147. }
  148. return $tmp;
  149. }
  150. }