Demo.php 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\controller\Api;
  4. use app\common\library\RsaUtil;
  5. use app\common\library\Wechat;
  6. use think\Db;
  7. /**
  8. * 示例接口
  9. */
  10. class Demo extends Api
  11. {
  12. //如果$noNeedLogin为空表示所有接口都需要登录才能请求
  13. //如果$noNeedRight为空表示所有接口都需要验证权限才能请求
  14. //如果接口已经设置无需登录,那也就无需鉴权了
  15. //
  16. // 无需登录的接口,*表示全部
  17. protected $noNeedLogin = ['*'];
  18. // 无需鉴权的接口,*表示全部
  19. protected $noNeedRight = ['*'];
  20. /**
  21. * 测试方法
  22. *
  23. * @ApiTitle (测试名称)
  24. * @ApiSummary (测试描述信息)
  25. * @ApiMethod (POST)
  26. * @ApiRoute (/api/demo/test/id/{id}/name/{name})
  27. * @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
  28. * @ApiParams (name="id", type="integer", required=true, description="会员ID")
  29. * @ApiParams (name="name", type="string", required=true, description="用户名")
  30. * @ApiParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据")
  31. * @ApiReturnParams (name="code", type="integer", required=true, sample="0")
  32. * @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
  33. * @ApiReturnParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
  34. * @ApiReturn ({
  35. 'code':'1',
  36. 'msg':'返回成功'
  37. })
  38. */
  39. public function test()
  40. {
  41. $a = '我要反馈一';
  42. $b = mb_substr($a,0,12) . ((mb_strlen($a) > 12) ? '...' : '');
  43. echo $b;
  44. }
  45. /**
  46. * 无需登录的接口
  47. *
  48. */
  49. public function test1()
  50. {
  51. error_reporting(E_ALL);
  52. /*$rs0 = Db::query('SHOW TABLE STATUS');
  53. dump($rs0);*/
  54. $rs1 = Db::connect('database_jsc')->query('SHOW TABLE STATUS');
  55. dump($rs1);
  56. $rs2 = Db::connect('database_jsc')->query('SELECT DATABASE()');
  57. dump($rs2);
  58. }
  59. public function test11(){
  60. $fields = Db::connect('database_jsc')->query('SHOW FULL COLUMNS FROM dp_wccn');
  61. dump($fields);
  62. $list = Db::connect('database_jsc')->name('dp_wccn')->limit(1,10)->select();
  63. dump($list);
  64. $fields = Db::connect('database_jsc')->query('SHOW FULL COLUMNS FROM sys_dept');
  65. dump($fields);
  66. $list = Db::connect('database_jsc')->name('sys_dept')->limit(1,10)->select();
  67. dump($list);
  68. // $this->success('返回成功', ['action' => 'test1']);
  69. }
  70. public function test111(){
  71. //定义变量
  72. $jzrs = 0; //居住人数
  73. $fwts = 0; //房屋套数
  74. $wgypzs = 0; //网格员配置数
  75. $zxyjdy = 0; //最小应急单元
  76. $wgsj = 0; //网格事件数
  77. $bjl = 0; //办结率
  78. //获取数据并过滤
  79. $shequ_list = Db::connect('database_jsc')->name('dp_wccn')->select();
  80. //dump($shequ_list);
  81. if(!empty($shequ_list)){
  82. //为空的都改为0
  83. foreach($shequ_list as $k => $v){
  84. foreach($v as $k1 => $v1){
  85. if(empty($v1)){
  86. $v1 = 0;
  87. }
  88. $v[$k1] = $v1;
  89. }
  90. $shequ_list[$k] = $v;
  91. }
  92. $jzrs = array_sum(array_column($shequ_list, 'jzrs'));
  93. $fwts = array_sum(array_column($shequ_list, 'fwts'));
  94. $wgypzs = array_sum(array_column($shequ_list, 'wgypzs'));
  95. $zxyjdy = array_sum(array_column($shequ_list, 'zxyjdy'));
  96. $wgsj = array_sum(array_column($shequ_list, 'wgsj'));
  97. $bjl = bcdiv(array_sum(array_column($shequ_list, 'bjl')),8,8);
  98. }
  99. //已经校验过的数据,最终推出
  100. dump((string)$jzrs);
  101. dump((string)$fwts);
  102. dump((string)$wgypzs);
  103. dump((string)$zxyjdy);
  104. dump((string)$wgsj);
  105. dump((string)$bjl);
  106. //分割线
  107. $jkdars = 0;//健康档案人数
  108. $whcss = 0;//文化场所数
  109. $smxykcs = 0;//市民学院课程数
  110. $sqhds = 0;//社区活动数
  111. $hdbms = 0;//活动报名数
  112. $hdmyd = 0;//活动满意度
  113. }
  114. /**
  115. * 需要登录的接口
  116. *
  117. */
  118. public function test2()
  119. {
  120. $data = [
  121. 'key1' => 'value1',
  122. 'key2' => 'value2',
  123. 'key3' => 'value3',
  124. 'key4' => 'value4',
  125. 'key5' => 'value5',
  126. ];
  127. $this->success('返回成功', $data);
  128. }
  129. public function send_minimsg(){
  130. $config = config('wxMiniProgram');
  131. $wechat = new Wechat($config['appid'],$config['secret']);
  132. //活动开始
  133. $template_id = $config['mini_msgid_order'];
  134. $data = [
  135. 'thing4' => ['value' => '活动名称'],
  136. 'thing6' => ['value' => '活动地址'],
  137. 'date5' => ['value' => '2025-06-27 14:00'],
  138. 'thing7' => ['value' => '明天开始,不要迟到哦'],
  139. ];
  140. $rs = $wechat->send($template_id,'odWcF7sjejGL7d-0DuCmbmbcH1yA',$data);
  141. dump($rs);
  142. //意见反馈
  143. $template_id = $config['mini_msgid_feedback'];
  144. $data = [
  145. 'thing4' => ['value' => '动画视频功能'],
  146. 'thing5' => ['value' => '无法上传'],
  147. 'thing6' => ['value' => '已经处理完毕了'],
  148. ];
  149. $rs = $wechat->send($template_id,'odWcF7sjejGL7d-0DuCmbmbcH1yA',$data);
  150. dump($rs);
  151. }
  152. /**
  153. * 需要登录且需要验证有相应组的权限
  154. *
  155. */
  156. public function test3()
  157. {
  158. $this->send_score(1, 1);
  159. }
  160. public function send_score($score, $grade_id)
  161. {
  162. $url = 'http://apip-gateway-nrouter-saas-gn-C.month.sdc.cs.icbc:8081/api/mybank/farm/farmplatf/updateVillagerIntegral/V1';
  163. $biz_content = [
  164. 'fSeqNo' => createUniqueNo('fseq', $grade_id),
  165. 'corpCode' => 'xingfulishequ',
  166. 'mobilePhone' => $this->auth->mobile,
  167. 'integralValue' => $score,
  168. 'integralType' => '',
  169. /* 'remark1' => '',
  170. 'remark2' => '',
  171. 'remark3' => '',
  172. 'remark4' => '',
  173. 'remark5' => '',
  174. 'remark6' => '',
  175. 'remark7' => '',*/
  176. ];
  177. $public_key = APP_PATH.'/common/certs/icbc/public_key.pem';
  178. $private_key = APP_PATH.'/common/certs/icbc/private_key.pem';
  179. $rsautil = new RsaUtil($public_key,$private_key);
  180. $sign = $rsautil->publicEncrypt(json_encode($biz_content));
  181. dump($sign);
  182. $data = [
  183. 'app_id' => '10000000000004096993',
  184. 'msg_id' => createUniqueNo('msg', $grade_id),
  185. 'format' => 'json',
  186. 'charset' => 'UTF-8',
  187. // 'encrypt_type'=> 'AES',
  188. 'sign_type' => 'RSA',
  189. 'sign' => $sign,
  190. 'timestamp' => date('Y-m-d H:i:s'),
  191. // 'ca' => '',
  192. 'biz_content' => $biz_content,
  193. ];
  194. $rs = curl_post($url, json_encode($data, JSON_UNESCAPED_UNICODE));
  195. dump($rs);
  196. }
  197. }