CameraServices.php 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: qiuzijian
  5. * Date: 2021-04-20
  6. * Time: 15:33
  7. */
  8. namespace Modules\Camera\Services;
  9. use Illuminate\Support\Facades\Cache;
  10. use Illuminate\Support\Facades\Log;
  11. use Modules\Admin\Enum\AdminEnum;
  12. use Modules\Camera\Entities\CameraFieldList;
  13. use Modules\Camera\Entities\CameraList;
  14. use Modules\Camera\Enum\CameraEnum;
  15. class CameraServices
  16. {
  17. //添加摄像头链接
  18. public static function addCameraList($params)
  19. {
  20. $result['status'] = true;
  21. $result['msg'] = AdminEnum::RETURN_SUCCESS;
  22. //通过ip+端口+通道号作为唯一标识判断数据是否存在
  23. $query = CameraList::where(
  24. [
  25. 'ip' => $params['ip'],
  26. 'port' => $params['port'],
  27. 'com_number' => $params['com_number'],
  28. ]
  29. )->first();
  30. if ($query) {
  31. $result['status'] = false;
  32. $result['msg'] = AdminEnum::RECORD_ALREADY_EXIST;
  33. return $result;
  34. }
  35. $camera_url = self::makeCameraUrl($params);
  36. //入库动作
  37. $res = CameraList::insert(
  38. [
  39. 'mine_id' => $params['mine_id'],
  40. 'ip' => $params['ip'],
  41. 'port' => $params['port'],
  42. 'user_name' => $params['user_name'],
  43. 'password' => $params['password'],
  44. 'com_number' => $params['com_number'],
  45. 'camera_name' => $params['camera_name'],
  46. 'revert_id' => CameraEnum::CAMERA_DEFAULT_REVERT_ID,
  47. // 'status' => $params['status'],
  48. 'camera_url' => $camera_url,
  49. 'sort' => $params['sort'],
  50. 'created_at' => date('Y-m-d H:i:s'),
  51. 'updated_at' => date('Y-m-d H:i:s'),
  52. ]
  53. );
  54. if (!$res) {
  55. $result['status'] = false;
  56. $result['msg'] = AdminEnum::DATABASE_ERROR;
  57. }
  58. return $result;
  59. }
  60. //生成摄像头请求链接
  61. public static function makeCameraUrl($params)
  62. {
  63. $url = 'rtsp://' . $params['user_name'] . ':' . $params['password'] . '@';
  64. $url .= $params['ip'] . ':' . $params['port'] . '/' . 'h264' . '/' . 'ch' . $params['com_number'] . '/';
  65. $url .= 'sub/av_stream'; //sub 子码流
  66. // $url .= 'main/av_stream'; //main 主码流
  67. return $url;
  68. }
  69. //编辑摄像头链接
  70. public static function editCameraList($params)
  71. {
  72. $result['status'] = true;
  73. $result['msg'] = AdminEnum::RETURN_SUCCESS;
  74. $camera_url = self::makeCameraUrl($params);
  75. //判断记录是否存在
  76. $query = CameraList::find($params['id']);
  77. if (!$query) {
  78. $result['status'] = false;
  79. $result['msg'] = AdminEnum::RECORD_NOT_EXIST;
  80. return $result;
  81. }
  82. //通过ip+端口+通道号作为唯一标识判断数据是否存在
  83. $query = CameraList::where(
  84. [
  85. 'ip' => $params['ip'],
  86. 'port' => $params['port'],
  87. 'com_number' => $params['com_number'],
  88. ]
  89. )->where('id', '!=', $params['id'])->first();
  90. if ($query) {
  91. $result['status'] = false;
  92. $result['msg'] = AdminEnum::RECORD_ALREADY_EXIST;
  93. return $result;
  94. }
  95. //更新动作
  96. $res = CameraList::where('id', $params['id'])->update(
  97. [
  98. 'mine_id' => $params['mine_id'],
  99. 'ip' => $params['ip'],
  100. 'port' => $params['port'],
  101. 'user_name' => $params['user_name'],
  102. 'password' => $params['password'],
  103. 'com_number' => $params['com_number'],
  104. 'camera_name' => $params['camera_name'],
  105. // 'status' => $params['status'],
  106. 'camera_url' => $camera_url,
  107. 'sort' => $params['sort'],
  108. 'updated_at' => date('Y-m-d H:i:s'),
  109. ]
  110. );
  111. if (!$res) {
  112. $result['status'] = false;
  113. $result['msg'] = AdminEnum::DATABASE_ERROR;
  114. }
  115. return $result;
  116. }
  117. //删除摄像头列表记录
  118. public static function delCameraList($params)
  119. {
  120. $result['status'] = true;
  121. $result['msg'] = AdminEnum::RETURN_SUCCESS;
  122. //判断字段是否存在
  123. $query = CameraList::find($params['id']);
  124. if (!$query) {
  125. $result['status'] = false;
  126. $result['msg'] = AdminEnum::RECORD_NOT_EXIST;
  127. return $result;
  128. }
  129. $res = CameraList::where('id', $params['id'])->delete();
  130. if (!$res) {
  131. $result['status'] = false;
  132. $result['msg'] = AdminEnum::DATABASE_ERROR;
  133. }
  134. return $result;
  135. }
  136. //添加摄像头链接生成字段
  137. public static function addCameraFieldList($params)
  138. {
  139. $result['status'] = true;
  140. $result['msg'] = AdminEnum::RETURN_SUCCESS;
  141. //判断字段是否已存在
  142. $query = CameraFieldList::where('field_name', $params['field_name'])->first();
  143. if ($query) {
  144. $result['status'] = false;
  145. $result['msg'] = AdminEnum::RECORD_ALREADY_EXIST;
  146. return $result;
  147. }
  148. //入库动作
  149. $res = CameraFieldList::insert(
  150. [
  151. 'field_name' => $params['field_name'],
  152. 'created_at' => date('Y-m-d H:i:s'),
  153. 'updated_at' => date('Y-m-d H:i:s'),
  154. ]
  155. );
  156. if (!$res) {
  157. $result['status'] = false;
  158. $result['msg'] = AdminEnum::DATABASE_ERROR;
  159. }
  160. return $result;
  161. }
  162. //编辑摄像头链接生成字段
  163. public static function editCameraFieldList($params)
  164. {
  165. $result['status'] = true;
  166. $result['msg'] = AdminEnum::RETURN_SUCCESS;
  167. //判断字段是否存在
  168. $query = CameraFieldList::find($params['id']);
  169. if (!$query) {
  170. $result['status'] = false;
  171. $result['msg'] = AdminEnum::RECORD_NOT_EXIST;
  172. return $result;
  173. }
  174. $res = CameraFieldList::where('id', $params['id'])->update(
  175. [
  176. 'field_name' => $params['field_name'],
  177. 'updated_at' => date('Y-m-d H:i:s'),
  178. ]
  179. );
  180. if (!$res) {
  181. $result['status'] = false;
  182. $result['msg'] = AdminEnum::DATABASE_ERROR;
  183. }
  184. return $result;
  185. }
  186. //删除摄像头链接生成字段
  187. public static function delCameraFieldList($params)
  188. {
  189. $result['status'] = true;
  190. $result['msg'] = AdminEnum::RETURN_SUCCESS;
  191. //判断字段是否存在
  192. $query = CameraFieldList::find($params['id']);
  193. if (!$query) {
  194. $result['status'] = false;
  195. $result['msg'] = AdminEnum::RECORD_NOT_EXIST;
  196. return $result;
  197. }
  198. $res = CameraFieldList::where('id', $params['id'])->delete();
  199. if (!$res) {
  200. $result['status'] = false;
  201. $result['msg'] = AdminEnum::DATABASE_ERROR;
  202. }
  203. return $result;
  204. }
  205. }