Jiashicang.php 11 KB

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