TestsController.php 7.9 KB

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