Jiashicang.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\controller\Api;
  4. use app\common\library\RsaUtil;
  5. use think\Db;
  6. include_once EXTEND_PATH.'icbc\DefaultIcbcClient.php';
  7. /**
  8. * 驾驶舱数据
  9. */
  10. class Jiashicang extends Api
  11. {
  12. // 无需登录的接口,*表示全部
  13. protected $noNeedLogin = ['*'];
  14. // 无需鉴权的接口,*表示全部
  15. protected $noNeedRight = ['*'];
  16. /**
  17. * 政法委
  18. * 链接数据库
  19. */
  20. public function test1()
  21. {
  22. $rs1 = Db::connect('database_jsc')->query('SHOW TABLE STATUS');
  23. dump($rs1);
  24. $rs2 = Db::connect('database_jsc')->query('SELECT DATABASE()');
  25. dump($rs2);
  26. }
  27. /**
  28. * 政法委
  29. * 链接表
  30. */
  31. public function test11()
  32. {
  33. $fields = Db::connect('database_jsc')->query('SHOW FULL COLUMNS FROM dp_wccn');
  34. dump($fields);
  35. $list = Db::connect('database_jsc')->name('dp_wccn')->limit(1,10)->select();
  36. dump($list);
  37. /*$fields = Db::connect('database_jsc')->query('SHOW FULL COLUMNS FROM sys_dept');
  38. dump($fields);
  39. $list = Db::connect('database_jsc')->name('sys_dept')->limit(1,10)->select();
  40. dump($list);*/
  41. }
  42. //政法委
  43. //查询关键数据
  44. public function zfw_data(){
  45. //定义变量
  46. $jzrs = 0; //居住人数
  47. $fwts = 0; //房屋套数
  48. $wgypzs = 0; //网格员配置数
  49. $zxyjdy = 0; //最小应急单元
  50. $wgsj = 0; //网格事件数
  51. $bjl = 0; //办结率
  52. //获取数据并过滤
  53. $shequ_list = Db::connect('database_jsc')->name('dp_wccn')->select();
  54. //dump($shequ_list);
  55. if(!empty($shequ_list)){
  56. //为空的都改为0
  57. foreach($shequ_list as $k => $v){
  58. foreach($v as $k1 => $v1){
  59. if(empty($v1)){
  60. $v1 = 0;
  61. }
  62. $v[$k1] = $v1;
  63. }
  64. $shequ_list[$k] = $v;
  65. }
  66. $jzrs = array_sum(array_column($shequ_list, 'jzrs'));
  67. $fwts = array_sum(array_column($shequ_list, 'fwts'));
  68. $wgypzs = array_sum(array_column($shequ_list, 'wgypzs'));
  69. $zxyjdy = array_sum(array_column($shequ_list, 'zxyjdy'));
  70. $wgsj = array_sum(array_column($shequ_list, 'wgsj'));
  71. $bjs = array_sum(array_column($shequ_list, 'bjs'));
  72. //$bjl = bcdiv(array_sum(array_column($shequ_list, 'bjl')),count($shequ_list),8); // 办结率总和 / 社区数量
  73. $bjl = bcdiv($bjs,$wgsj,8);// 总办结数 / 总网格事件数
  74. }
  75. //已经校验过的数据,最终推出
  76. dump((string)$jzrs);
  77. dump((string)$fwts);
  78. dump((string)$wgypzs);
  79. dump((string)$zxyjdy);
  80. dump((string)$wgsj);
  81. dump((string)$bjl);
  82. //分割线
  83. }
  84. //社区小程序 推送数据
  85. private function shequ_data(){
  86. $sqhds = Db::name('unishop_product')->whereNull('deletetime')->where('switch',1)->count();//社区活动数
  87. $hdbms = Db::name('unishop_order')->whereNull('deletetime')->where('have_paid','gt',0)->where('status',1)->count();//活动报名数
  88. $gonghang_data = Db::name('dp_gonghang')->where('id',1)->find();
  89. $jkdars = $gonghang_data['jkdars'];//健康档案人数
  90. $whcss = $gonghang_data['whcss'];//文化场所数
  91. $smxykcs = $gonghang_data['smxykcs'];//市民学院课程数
  92. $hdmyd = $gonghang_data['hdmyd'];//活动满意度
  93. $ddgz_djd = $gonghang_data['ddgz_djd'];//订单跟踪(待接单)
  94. $ddgz_fwz = $gonghang_data['ddgz_fwz'];//订单跟踪(服务中)
  95. $ddgz_wcpj = $gonghang_data['ddgz_wcpj'];//订单跟踪(完成评价)
  96. $mxbjds = $gonghang_data['mxbjds'];//慢性病建档数
  97. $result = [
  98. 'jkdars' => $jkdars,
  99. 'whcss' => $whcss,
  100. 'smxykcs' => $smxykcs,
  101. 'hdmyd' => $hdmyd,
  102. 'ddgzdjd' => $ddgz_djd,
  103. 'ddgzfwz' => $ddgz_fwz,
  104. 'ddgzwcpj' => $ddgz_wcpj,
  105. 'mxbjds' => $mxbjds,
  106. 'sqhds' => (string)$sqhds,
  107. 'hdbms' => (string)$hdbms,
  108. ];
  109. return $result;
  110. }
  111. /**
  112. * 需要登录且需要验证有相应组的权限
  113. */
  114. public function test3()
  115. {
  116. $this->send_score(1, 1);
  117. }
  118. public function index(){
  119. echo 140;
  120. }
  121. public function send(){
  122. $data = $this->shequ_data();
  123. $biz_content = [
  124. 'batchDate' => date('Ymd'),
  125. 'corpCode' => 'icbc',
  126. 'dataType' => '1',//1-幸福里;2-政法委
  127. 'data' => json_encode($data),
  128. ];
  129. $public_key = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwFgHD4kzEVPdOj03ctKM7KV+16bWZ5BMNgvEeuEQwfQYkRVwI9HFOGkwNTMn5hiJXHnlXYCX+zp5r6R52MY0O7BsTCLT7aHaxsANsvI9ABGx3OaTVlPB59M6GPbJh0uXvio0m1r/lTW3Z60RU6Q3oid/rNhP3CiNgg0W6O3AGqwIDAQAB';
  130. $private_key = 'MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCR8/ZvKPAdZzsyvapySvztQm56s1N59ynKMOWpUbK4c5MNWMl+q3dvsp+UiSAx2TAeGkYfW3W6nO/3Y0hAZki99fmuzpPujEeHhs79HNwGZYQjN71Vck2JeflTq8jpL+9/up0Kz2nbwtZDMKTTEgbfNeO24gV1bmvD2kQ9j66RIyuXSDwQbVbQfl6LiqKoJm3rbtsbwX1Ytc0/Szslyor1VdPZWnHDMm3m78Hqu7X3vL6K7fAW/4FVbeKV7vWjvyiTQfETmuADqMdsqV5YeqUZWE/Dnzg+6JV/3L9nJ8f+/mPlh8k1h1oW035GrADKFKf1M2ujKKeHICnj7qKCdBeNAgMBAAECggEAHkh+U2YtHAy1Tbvox7ojbJ8iCTd4FJBiDV/D5zPaX0crtdM8S5oMOBLZ5ZnmIjGsODK/ZfY2ITg62huxfBs88J0+5zRZoV9d4BLqk74PMQyTNDN2h2omCGZUgzXbg/a8PMZdm0aZ8k0k4+AN8vWEk3+89c9Dzq/QkFyTWCqdz+Mp9NkcOjA255kj5/D1q9Zj0x9VcmKg3oTtrKL/dkspUxVaMKXcpo6J4AszC05tT3N0SNLhcq51I6B9QdbYsYCkP9whPNYIl/y4dN4QnNEivQzA5/ltr5DDQZc7Xke1+SpJN+ylBOBJ8yvNoDnuxx0xEWuNJ5bUzyri/DNjZRKNQQKBgQDKkxn5R4Q3rChI/KVIXHMecTs9fXN5pbnA8UKU6ZeTl+wHffxwRieHZJJp1nDcQ5i8YXCtqEJcJGFn3T0rEjVCJ/RVHclFO+TjYaK9HtyNJLPrvKmAzjCzV1yPfe4qmpgJddzZI7Vii2uFgklixvhkoY74hwSJtvLPTO0p0xrYdQKBgQC4cgfpCMLYlaHQGz+dAEf4IewQpwBGn7XShCpiXGFciGZZEIzvJMzXP7yo8pDMHQbB4kQsTRRG2fcdHGWI5VQGHPqG5O0tUueKGUlSg7j8Y/Pp8ZrBGSrlilAf17I/u9MC7Xe2ZRVGNgPDYAyjMEGmClI0n2+aN6b4CFVBjYmfuQKBgEKO9KDIE7QrF41rnW7aGWTuNVWty2wzvIWdf4/n9EqlRwLrLS9CjahZrhWiRLDKcPusVFZqi2s09OAoe/mT4PXcpNX2lHPwCvN+1/allje10HvrIBJXLP8v/BSVftR2uO+azzZ1GhrHzksulKgk0eZWguA7lI0fFEZycxYj65UlAoGAD9p1RZlkLfuGgf2llRgOF4zK3o+MHYXiuep0PioUkECFE4ixpGh0Vtf6nkbjHTgteYK6O1iQsppPfCgRrheQBkp9WhTZMfkbP6p2u+nof4ET2PrUQ16naj1eL655erLpKypADORZVMSVxDhAPdKLAfuHH1DI5ed8qXsF4PGKb7kCgYEAm/d+daT6YsbHDZlJ/J9Q8rRkKmiqj43NGQSHKg6Z6BEDibm8wRmj3Itu1N6XVChuaH+ekJzvUnZ/q1nyYzGvy6bOHYn3ziF9aH7wuhcRZ4qARmKDnzTBLg2QXBK1+400O3LJ+sAH/yuH/Y4hzRE6YMxBQpdYfnlJcIFVimAsT1w=';
  131. $sign = '';
  132. $data = [
  133. 'app_id' => '10000000000004096993',
  134. 'msg_id' => createUniqueNo('msg', 1),
  135. 'format' => 'json',
  136. 'charset' => 'UTF-8',
  137. 'encrypt_type'=> 'AES',
  138. 'sign_type' => 'RSA',
  139. 'sign' => $sign,
  140. 'timestamp' => date('Y-m-d H:i:s'),
  141. // 'ca' => '',
  142. 'biz_content' => $biz_content,
  143. ];
  144. $client = new \DefaultIcbcClient($data['app_id'],$private_key,$data['sign_type'],$data['charset'],$data['format'],$public_key,'','','','');
  145. $request = [
  146. 'serviceUrl' => 'https://gw.dccnet.com.cn:8082/api/mybank/farm/farmplatf/syncCommunityData',
  147. 'method' => 'POST',
  148. 'isNeedEncrypt' => false,
  149. 'extraParams' => null,
  150. 'biz_content' => $biz_content,
  151. ];
  152. $resp = $client->execute($request,$data['msg_id'],'');
  153. $respObj = json_decode($resp,true);
  154. dump($respObj);exit;
  155. if($respObj["return_code"] == 0){ //sucess
  156. echo $respObj["return_msg"];
  157. }else{//fail
  158. echo $respObj["return_msg"];
  159. }
  160. }
  161. public function senddata(){
  162. $url = 'https://gw.dccnet.com.cn:8082/api/mybank/farm/farmplatf/syncCommunityData';
  163. //$url = 'http://apip-gateway-nrouter-saas-gn-C.month.sdc.cs.icbc:8081/api/mybank/farm/farmplatf/syncCommunityData';
  164. $data = $this->shequ_data();
  165. $biz_content = [
  166. 'batchDate' => date('Ymd'),
  167. 'corpCode' => 'icbc',
  168. 'dataType' => '1',//1-幸福里;2-政法委
  169. 'data' => json_encode($data),
  170. ];
  171. $public_key = APP_PATH.'/common/certs/icbc/public_test.pem';
  172. $private_key = APP_PATH.'/common/certs/icbc/private_test.pem';
  173. $rsautil = new RsaUtil($public_key,$private_key);
  174. $sign = $rsautil->publicEncrypt(json_encode($biz_content));
  175. $data = [
  176. 'app_id' => '10000000000004096993',
  177. 'msg_id' => createUniqueNo('msg', 1),
  178. 'format' => 'json',
  179. 'charset' => 'UTF-8',
  180. 'encrypt_type'=> 'AES',
  181. 'sign_type' => 'RSA',
  182. 'sign' => $sign,
  183. 'timestamp' => date('Y-m-d H:i:s'),
  184. // 'ca' => '',
  185. 'biz_content' => $biz_content,
  186. ];
  187. $rs = curl_post($url, json_encode($data, JSON_UNESCAPED_UNICODE));
  188. dump($rs);
  189. }
  190. public function send_score($score, $grade_id)
  191. {
  192. $url = 'http://apip-gateway-nrouter-saas-gn-C.month.sdc.cs.icbc:8081/api/mybank/farm/farmplatf/updateVillagerIntegral/V1';
  193. $biz_content = [
  194. 'fSeqNo' => createUniqueNo('fseq', $grade_id),
  195. 'corpCode' => 'xingfulishequ',
  196. 'mobilePhone' => $this->auth->mobile,
  197. 'integralValue' => $score,
  198. 'integralType' => '',
  199. /* 'remark1' => '',
  200. 'remark2' => '',
  201. 'remark3' => '',
  202. 'remark4' => '',
  203. 'remark5' => '',
  204. 'remark6' => '',
  205. 'remark7' => '',*/
  206. ];
  207. $public_key = APP_PATH.'/common/certs/icbc/public_key.pem';
  208. $private_key = APP_PATH.'/common/certs/icbc/private_key.pem';
  209. $rsautil = new RsaUtil($public_key,$private_key);
  210. $sign = $rsautil->publicEncrypt(json_encode($biz_content));
  211. dump($sign);
  212. $data = [
  213. 'app_id' => '10000000000004096993',
  214. 'msg_id' => createUniqueNo('msg', $grade_id),
  215. 'format' => 'json',
  216. 'charset' => 'UTF-8',
  217. // 'encrypt_type'=> 'AES',
  218. 'sign_type' => 'RSA',
  219. 'sign' => $sign,
  220. 'timestamp' => date('Y-m-d H:i:s'),
  221. // 'ca' => '',
  222. 'biz_content' => $biz_content,
  223. ];
  224. $rs = curl_post($url, json_encode($data, JSON_UNESCAPED_UNICODE));
  225. dump($rs);
  226. }
  227. }