Jiashicang.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  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. private 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. $shequ_list = Db::name('dp_wccn')->select();
  55. //dump($shequ_list);
  56. if(!empty($shequ_list)){
  57. //为空的都改为0
  58. foreach($shequ_list as $k => $v){
  59. foreach($v as $k1 => $v1){
  60. if(empty($v1)){
  61. $v1 = 0;
  62. }
  63. $v[$k1] = $v1;
  64. }
  65. $shequ_list[$k] = $v;
  66. }
  67. $jzrs = array_sum(array_column($shequ_list, 'jzrs'));
  68. $fwts = array_sum(array_column($shequ_list, 'fwts'));
  69. $wgypzs = array_sum(array_column($shequ_list, 'wgypzs'));
  70. $zxyjdy = array_sum(array_column($shequ_list, 'zxyjdy'));
  71. $wgsj = array_sum(array_column($shequ_list, 'wgsj'));
  72. $bjs = array_sum(array_column($shequ_list, 'bjs'));
  73. //$bjl = bcdiv(array_sum(array_column($shequ_list, 'bjl')),count($shequ_list),8); // 办结率总和 / 社区数量
  74. $bjl = bcdiv($bjs,$wgsj,8);// 总办结数 / 总网格事件数
  75. }
  76. //分割线
  77. $result = [
  78. 'czrk' => (string)$jzrs,//居住人数
  79. 'fwts' => (string)$fwts,//房屋套数
  80. 'wgypzs' => (string)$wgypzs,//网格员配置数
  81. 'zxyjdys' => (string)$zxyjdy,//最小应急单元
  82. 'wgsjs' => (string)$wgsj,//网格事件数
  83. 'wgsjbjl' => (string)$bjl,//办结率
  84. //没有的
  85. 'dyrs' => '0', //党员人数
  86. 'sqzmj' => '0', //社区总面积
  87. 'gdcw' => '0', //固定车位
  88. 'tfd' => '0', //停放点
  89. ];
  90. return $result;
  91. }
  92. //社区小程序 推送数据
  93. private function shequ_data(){
  94. $sqhds = Db::name('unishop_product')->whereNull('deletetime')->where('switch',1)->count();//社区活动数
  95. $hdbms = Db::name('unishop_order')->whereNull('deletetime')->where('have_paid','gt',0)->where('status',1)->count();//活动报名数,志愿报名数
  96. $gonghang_data = Db::name('dp_gonghang')->where('id',1)->find();
  97. $jkdars = $gonghang_data['jkdars'];//健康档案人数
  98. $whcss = $gonghang_data['whcss'];//文化场所数
  99. $smxykcs = $gonghang_data['smxykcs'];//市民学院课程数, 社区教育课程数
  100. $hdmyd = $gonghang_data['hdmyd'];//活动满意度
  101. $ddgz_djd = $gonghang_data['ddgz_djd'];//订单跟踪(待接单)
  102. $ddgz_fwz = $gonghang_data['ddgz_fwz'];//订单跟踪(服务中)
  103. $ddgz_wcpj = $gonghang_data['ddgz_wcpj'];//订单跟踪(完成评价)
  104. $mxbjds = $gonghang_data['mxbjds'];//慢性病建档数
  105. $result = [
  106. 'jkdars' => $jkdars,//
  107. 'whhdcss' => $whcss,//
  108. 'sqjykcs' => $smxykcs,//市民学院课程数, 社区教育课程数
  109. 'hdmyd' => $hdmyd,//
  110. // 'ddgzdjd' => $ddgz_djd,
  111. // 'ddgzfwz' => $ddgz_fwz,
  112. // 'ddgzwcpj' => $ddgz_wcpj,
  113. 'mxbjds' => $mxbjds,//
  114. 'sqhds' => (string)$sqhds,//
  115. 'zybms' => (string)$hdbms,//活动报名数,志愿报名数
  116. //没有的
  117. 'wlwjcs' => '0', //物联网检测数
  118. 'ywypdjds' => '0', //育无忧派单接单数
  119. ];
  120. return $result;
  121. }
  122. /**
  123. * 需要登录且需要验证有相应组的权限
  124. */
  125. public function test3()
  126. {
  127. $this->send_score(1, 1);
  128. }
  129. public function index(){
  130. echo 140;
  131. }
  132. public function send(){
  133. $shequ_data = $this->shequ_data();
  134. $zfw_data = $this->zfw_data();
  135. $data = array_merge($shequ_data,$zfw_data);
  136. $biz_content = [
  137. 'batchDate' => date('Ymd'),
  138. 'corpCode' => 'icbc',
  139. // 'dataType' => '1',//1-幸福里;2-政法委
  140. 'instId' => '440112006',//机构号: 文冲街道固定为440112006
  141. 'data' => json_encode($data),
  142. ];
  143. $public_key = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwFgHD4kzEVPdOj03ctKM7KV+16bWZ5BMNgvEeuEQwfQYkRVwI9HFOGkwNTMn5hiJXHnlXYCX+zp5r6R52MY0O7BsTCLT7aHaxsANsvI9ABGx3OaTVlPB59M6GPbJh0uXvio0m1r/lTW3Z60RU6Q3oid/rNhP3CiNgg0W6O3AGqwIDAQAB';
  144. $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=';
  145. $data = [
  146. 'app_id' => '10000000000004096993',
  147. 'msg_id' => createUniqueNo('msg', 1),
  148. 'format' => 'json',
  149. 'charset' => 'UTF-8',
  150. 'encrypt_type'=> 'AES',
  151. 'sign_type' => 'RSA',
  152. ];
  153. $client = new \DefaultIcbcClient($data['app_id'],$private_key,$data['sign_type'],$data['charset'],$data['format'],$public_key,'','','','');
  154. $request = [
  155. 'serviceUrl' => 'https://122.238.8.99:8082/api/mybank/farm/farmplatf/syncCommunityData',
  156. 'serviceUrl' => 'https://gw.dccnet.com.cn:8082/api/mybank/farm/farmplatf/syncCommunityData',
  157. 'method' => 'POST',
  158. 'isNeedEncrypt' => false,
  159. 'extraParams' => null,
  160. 'biz_content' => $biz_content,
  161. ];
  162. $resp = $client->execute($request,$data['msg_id'],'');
  163. $respObj = json_decode($resp,true);
  164. dump($respObj);exit;
  165. if($respObj["return_code"] == 0){ //sucess
  166. echo $respObj["return_msg"];
  167. }else{//fail
  168. echo $respObj["return_msg"];
  169. }
  170. }
  171. public function senddata(){
  172. $url = 'https://gw.dccnet.com.cn:8082/api/mybank/farm/farmplatf/syncCommunityData';
  173. //$url = 'http://apip-gateway-nrouter-saas-gn-C.month.sdc.cs.icbc:8081/api/mybank/farm/farmplatf/syncCommunityData';
  174. $data = $this->shequ_data();
  175. $biz_content = [
  176. 'batchDate' => date('Ymd'),
  177. 'corpCode' => 'icbc',
  178. 'dataType' => '1',//1-幸福里;2-政法委
  179. 'data' => json_encode($data),
  180. ];
  181. $public_key = APP_PATH.'/common/certs/icbc/public_test.pem';
  182. $private_key = APP_PATH.'/common/certs/icbc/private_test.pem';
  183. $rsautil = new RsaUtil($public_key,$private_key);
  184. $sign = $rsautil->publicEncrypt(json_encode($biz_content));
  185. $data = [
  186. 'app_id' => '10000000000004096993',
  187. 'msg_id' => createUniqueNo('msg', 1),
  188. 'format' => 'json',
  189. 'charset' => 'UTF-8',
  190. 'encrypt_type'=> 'AES',
  191. 'sign_type' => 'RSA',
  192. 'sign' => $sign,
  193. 'timestamp' => date('Y-m-d H:i:s'),
  194. // 'ca' => '',
  195. 'biz_content' => $biz_content,
  196. ];
  197. $rs = curl_post($url, json_encode($data, JSON_UNESCAPED_UNICODE));
  198. dump($rs);
  199. }
  200. public function send_score($score, $grade_id)
  201. {
  202. $url = 'http://apip-gateway-nrouter-saas-gn-C.month.sdc.cs.icbc:8081/api/mybank/farm/farmplatf/updateVillagerIntegral/V1';
  203. $biz_content = [
  204. 'fSeqNo' => createUniqueNo('fseq', $grade_id),
  205. 'corpCode' => 'xingfulishequ',
  206. 'mobilePhone' => $this->auth->mobile,
  207. 'integralValue' => $score,
  208. 'integralType' => '',
  209. /* 'remark1' => '',
  210. 'remark2' => '',
  211. 'remark3' => '',
  212. 'remark4' => '',
  213. 'remark5' => '',
  214. 'remark6' => '',
  215. 'remark7' => '',*/
  216. ];
  217. $public_key = APP_PATH.'/common/certs/icbc/public_key.pem';
  218. $private_key = APP_PATH.'/common/certs/icbc/private_key.pem';
  219. $rsautil = new RsaUtil($public_key,$private_key);
  220. $sign = $rsautil->publicEncrypt(json_encode($biz_content));
  221. dump($sign);
  222. $data = [
  223. 'app_id' => '10000000000004096993',
  224. 'msg_id' => createUniqueNo('msg', $grade_id),
  225. 'format' => 'json',
  226. 'charset' => 'UTF-8',
  227. // 'encrypt_type'=> 'AES',
  228. 'sign_type' => 'RSA',
  229. 'sign' => $sign,
  230. 'timestamp' => date('Y-m-d H:i:s'),
  231. // 'ca' => '',
  232. 'biz_content' => $biz_content,
  233. ];
  234. $rs = curl_post($url, json_encode($data, JSON_UNESCAPED_UNICODE));
  235. dump($rs);
  236. }
  237. }