TestsController.php 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: qiuzijian
  5. * Date: 2021-05-18
  6. * Time: 15:09
  7. */
  8. namespace App\Http\Controllers;
  9. use Illuminate\Support\Facades\Config;
  10. use Illuminate\Support\Facades\DB;
  11. use Illuminate\Support\Facades\Input;
  12. use Illuminate\Support\Facades\Log;
  13. use Illuminate\Support\Facades\Redis;
  14. use Modules\Camera\Entities\CameraList;
  15. use Modules\Camera\Enum\CameraEnum;
  16. use Modules\Camera\Http\Controllers\Api\HaiKangController;
  17. use Modules\Camera\Http\Controllers\Api\TdwyController;
  18. use Modules\Camera\Jobs\CameraDownload;
  19. use Modules\Camera\Services\CameraServices;
  20. use Modules\Mine\Entities\MineList;
  21. use Modules\Mine\Entities\MineListExt;
  22. use Modules\Mine\Services\MineServices;
  23. use Modules\Mine\Enum\MineEnum;
  24. class TestsController {
  25. public function test()
  26. {
  27. $res = DB::connection('etl_zaoquan')->select("select * from news_column_list")->get();
  28. dd($res);
  29. //宁煤洗选重复摄像头
  30. //$this->xixuan_repeat();
  31. //新接入摄像头接口测试
  32. //$this->new_joggle();
  33. //乐橙token
  34. // $this->token();
  35. //乐橙直播列表
  36. // $this->list();
  37. //根据序列号获取直播地址和直播状态
  38. // $this->address();
  39. //区域下摄像头接口测试
  40. // $this->camera_list();
  41. //区域列表接口测试
  42. // $this->mine_list();
  43. }
  44. //区域列表接口测试
  45. public function mine_list(){
  46. $result = MineServices::getHaiKangArea(968, CameraEnum::REQUEST_TYPE_LOCAL);
  47. dd($result);
  48. }
  49. //区域下摄像头接口测试
  50. public function camera_list(){
  51. $result = CameraServices::getHaiKangCamera(968, '64018112582160000010', CameraEnum::CAMERA_TYPE_ALL);
  52. dd($result);
  53. }
  54. //直播列表
  55. public function list(){
  56. // At_0000bd7f06fa796842778d92b50d4d2d
  57. $url = 'https://openapi.lechange.cn/openapi/liveList';
  58. //当前的UTC时间戳
  59. $time= strtotime(date('Y-m-d H:i:s',time()));
  60. //随机字符串
  61. $nonce = md5(time());
  62. //授权信息之appid
  63. $appId='lc753b03152e3b4f1e';
  64. //授权信息之appSecret
  65. $appSecret='cc9b1224acd24571a5daf18e8c7f94';
  66. //拼接计算“签名原始串”
  67. $signStr="time:$time,nonce:$nonce,appSecret:$appSecret";
  68. //计算摘要 sign
  69. $sign=md5($signStr);
  70. //业务参数
  71. $params = [
  72. 'token'=>'At_0000bd7f06fa796842778d92b50d4d2d',
  73. 'queryRange'=>"1-99"
  74. ];
  75. //组装调用接口的body体内容
  76. $data = json_encode([
  77. 'system'=>
  78. [
  79. 'ver'=>'1.0',
  80. 'sign'=>$sign,
  81. 'appId'=>$appId,
  82. 'time'=>$time,
  83. 'nonce'=>$nonce
  84. ],
  85. 'params'=>empty($params)? new \stdClass():$params,
  86. 'id'=>'88'
  87. ]);
  88. //http调用
  89. $ret = $this->curl_post($data, $url);
  90. $utf8 = iconv('utf-8', 'UTF-8', $ret);
  91. //调用后返回输出
  92. // dd(nl2br($utf8));
  93. $aa = json_decode(nl2br($utf8), true);
  94. dd($aa['result']['data']);
  95. }
  96. //根据序列号获取直播地址和直播状态
  97. public function address(){
  98. // At_0000bd7f06fa796842778d92b50d4d2d
  99. $url = 'https://openapi.lechange.cn/openapi/getLiveStreamInfo';
  100. //当前的UTC时间戳
  101. $time= strtotime(date('Y-m-d H:i:s',time()));
  102. //随机字符串
  103. $nonce = md5(time());
  104. //授权信息之appid
  105. $appId='lc753b03152e3b4f1e';
  106. //授权信息之appSecret
  107. $appSecret='cc9b1224acd24571a5daf18e8c7f94';
  108. //拼接计算“签名原始串”
  109. $signStr="time:$time,nonce:$nonce,appSecret:$appSecret";
  110. //计算摘要 sign
  111. $sign=md5($signStr);
  112. //业务参数
  113. $params = [
  114. 'token'=>'At_0000bd7f06fa796842778d92b50d4d2d',
  115. 'deviceId'=>'6J0C716PAZ6CF87',
  116. 'channelId'=>22
  117. ];
  118. //组装调用接口的body体内容
  119. $data = json_encode([
  120. 'system'=>
  121. [
  122. 'ver'=>'1.0',
  123. 'sign'=>$sign,
  124. 'appId'=>$appId,
  125. 'time'=>$time,
  126. 'nonce'=>$nonce
  127. ],
  128. 'params'=>empty($params)? new \stdClass():$params,
  129. 'id'=>'88'
  130. ]);
  131. //http调用
  132. $ret = $this->curl_post($data, $url);
  133. $utf8 = iconv('utf-8', 'UTF-8', $ret);
  134. //调用后返回输出
  135. dd(nl2br($utf8 ));
  136. }
  137. public function token(){
  138. // At_0000bd7f06fa796842778d92b50d4d2d
  139. $url = 'https://openapi.lechange.cn:443/openapi/accessToken';
  140. //当前的UTC时间戳
  141. $time= strtotime(date('Y-m-d H:i:s',time()));
  142. //随机字符串
  143. $nonce = md5(time());
  144. //授权信息之appid
  145. $appId='lc753b03152e3b4f1e';
  146. //授权信息之appSecret
  147. $appSecret='cc9b1224acd24571a5daf18e8c7f94';
  148. //拼接计算“签名原始串”
  149. $signStr="time:$time,nonce:$nonce,appSecret:$appSecret";
  150. //计算摘要 sign
  151. $sign=md5($signStr);
  152. //业务参数
  153. $params = [];
  154. //组装调用接口的body体内容
  155. $data = json_encode([
  156. 'system'=>
  157. [
  158. 'ver'=>'1.0',
  159. 'sign'=>$sign,
  160. 'appId'=>$appId,
  161. 'time'=>$time,
  162. 'nonce'=>$nonce
  163. ],
  164. 'params'=>empty($params)? new \stdClass():$params,
  165. 'id'=>'88'
  166. ]);
  167. //http调用
  168. $ret = $this->curl_post($data, $url);
  169. $utf8 = iconv('utf-8', 'UTF-8', $ret);
  170. //调用后返回输出
  171. echo 'result:<br>'.nl2br($utf8 ).'<br>';
  172. }
  173. function curl_post($data,$url)
  174. {
  175. $ch = curl_init();
  176. $res= curl_setopt ($ch, CURLOPT_URL,$url);
  177. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  178. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  179. curl_setopt ($ch, CURLOPT_HEADER, 0);
  180. curl_setopt($ch, CURLOPT_POST, 1);
  181. curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  182. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  183. $result = curl_exec ($ch);
  184. curl_close($ch);
  185. if ($result == NULL) {
  186. return 0;
  187. }
  188. return $result;
  189. }
  190. //新接入摄像头接口测试
  191. public function new_joggle(){
  192. $mine_id_list = MineListExt::where('is_hak', 1)->pluck('mine_id')->all();
  193. // dd($mine_id_list);
  194. $result = MineServices::getHaiKangArea(4569, CameraEnum::REQUEST_TYPE_LOCAL);//配合修改mineext和haikangcontroller里打印
  195. dd($result);
  196. }
  197. //宁煤洗选重复摄像头
  198. public function xixuan_repeat(){
  199. $mine_all = DB::table('mine_list')->where('deleted_at',null)->get();//所有区域
  200. //宁煤下各矿在离线数量
  201. $mine_list = DB::table('mine_list')->where('parent_id',968)->where('deleted_at',null)->get();
  202. $mine_use = [];//宁煤下每个矿所有区域
  203. foreach($mine_all as $key=>$value){
  204. if(count(explode('|',$value->degree)) > 1){
  205. if(explode('|',$value->degree)[0] == 968 && explode('|',$value->degree)[1] == 2429){
  206. $mine_use[] = $value->id;
  207. }
  208. }
  209. }
  210. $total = DB::table('camera_list')
  211. ->select('camera_list.camera_name','camera_list.camera_status','mine_list.title')
  212. ->leftJoin('mine_list','mine_list.id','=','camera_list.mine_id')
  213. ->whereIn('camera_list.mine_id',$mine_use)
  214. ->where('camera_list.deleted_at',null)
  215. ->where('mine_list.deleted_at',null)
  216. ->orderBy('mine_list.title')
  217. ->get();
  218. // dd($total);
  219. $aa = [];
  220. foreach($total as $k=>$v){
  221. $aa[] = $v->camera_name;
  222. }
  223. $unique_arr = array_unique ( $aa );
  224. // dd($unique_arr);
  225. $repeat_arr = array_diff_assoc ( $aa, $unique_arr );
  226. return $repeat_arr;
  227. }
  228. }