CameraServices.php 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  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. 'created_at' => date('Y-m-d H:i:s'),
  50. 'updated_at' => date('Y-m-d H:i:s'),
  51. ]
  52. );
  53. if (!$res) {
  54. $result['status'] = false;
  55. $result['msg'] = AdminEnum::DATABASE_ERROR;
  56. }
  57. return $result;
  58. }
  59. //生成摄像头请求链接
  60. public static function makeCameraUrl($params)
  61. {
  62. $url = 'rtsp://' . $params['user_name'] . ':' . $params['password'] . '@';
  63. $url .= $params['ip'] . ':' . $params['port'] . '/' . 'h264' . '/' . 'ch' . $params['com_number'] . '/';
  64. $url .= 'sub/av_stream'; //sub 子码流
  65. // $url .= 'main/av_stream'; //main 主码流
  66. return $url;
  67. }
  68. //编辑摄像头链接
  69. public static function editCameraList($params)
  70. {
  71. $result['status'] = true;
  72. $result['msg'] = AdminEnum::RETURN_SUCCESS;
  73. $camera_url = self::makeCameraUrl($params);
  74. //判断记录是否存在
  75. $query = CameraList::find($params['id']);
  76. if (!$query) {
  77. $result['status'] = false;
  78. $result['msg'] = AdminEnum::RECORD_NOT_EXIST;
  79. return $result;
  80. }
  81. //通过ip+端口+通道号作为唯一标识判断数据是否存在
  82. $query = CameraList::where(
  83. [
  84. 'ip' => $params['ip'],
  85. 'port' => $params['port'],
  86. 'com_number' => $params['com_number'],
  87. ]
  88. )->where('id', '!=', $params['id'])->first();
  89. if ($query) {
  90. $result['status'] = false;
  91. $result['msg'] = AdminEnum::RECORD_ALREADY_EXIST;
  92. return $result;
  93. }
  94. //更新动作
  95. $res = CameraList::where('id', $params['id'])->update(
  96. [
  97. 'mine_id' => $params['mine_id'],
  98. 'ip' => $params['ip'],
  99. 'port' => $params['port'],
  100. 'user_name' => $params['user_name'],
  101. 'password' => $params['password'],
  102. 'com_number' => $params['com_number'],
  103. 'camera_name' => $params['camera_name'],
  104. // 'status' => $params['status'],
  105. 'camera_url' => $camera_url,
  106. 'updated_at' => date('Y-m-d H:i:s'),
  107. ]
  108. );
  109. if (!$res) {
  110. $result['status'] = false;
  111. $result['msg'] = AdminEnum::DATABASE_ERROR;
  112. }
  113. return $result;
  114. }
  115. //删除摄像头列表记录
  116. public static function delCameraList($params)
  117. {
  118. $result['status'] = true;
  119. $result['msg'] = AdminEnum::RETURN_SUCCESS;
  120. //判断字段是否存在
  121. $query = CameraList::find($params['id']);
  122. if (!$query) {
  123. $result['status'] = false;
  124. $result['msg'] = AdminEnum::RECORD_NOT_EXIST;
  125. return $result;
  126. }
  127. $res = CameraList::where('id', $params['id'])->delete();
  128. if (!$res) {
  129. $result['status'] = false;
  130. $result['msg'] = AdminEnum::DATABASE_ERROR;
  131. }
  132. return $result;
  133. }
  134. //添加摄像头链接生成字段
  135. public static function addCameraFieldList($params)
  136. {
  137. $result['status'] = true;
  138. $result['msg'] = AdminEnum::RETURN_SUCCESS;
  139. //判断字段是否已存在
  140. $query = CameraFieldList::where('field_name', $params['field_name'])->first();
  141. if ($query) {
  142. $result['status'] = false;
  143. $result['msg'] = AdminEnum::RECORD_ALREADY_EXIST;
  144. return $result;
  145. }
  146. //入库动作
  147. $res = CameraFieldList::insert(
  148. [
  149. 'field_name' => $params['field_name'],
  150. 'created_at' => date('Y-m-d H:i:s'),
  151. 'updated_at' => date('Y-m-d H:i:s'),
  152. ]
  153. );
  154. if (!$res) {
  155. $result['status'] = false;
  156. $result['msg'] = AdminEnum::DATABASE_ERROR;
  157. }
  158. return $result;
  159. }
  160. //编辑摄像头链接生成字段
  161. public static function editCameraFieldList($params)
  162. {
  163. $result['status'] = true;
  164. $result['msg'] = AdminEnum::RETURN_SUCCESS;
  165. //判断字段是否存在
  166. $query = CameraFieldList::find($params['id']);
  167. if (!$query) {
  168. $result['status'] = false;
  169. $result['msg'] = AdminEnum::RECORD_NOT_EXIST;
  170. return $result;
  171. }
  172. $res = CameraFieldList::where('id', $params['id'])->update(
  173. [
  174. 'field_name' => $params['field_name'],
  175. 'updated_at' => date('Y-m-d H:i:s'),
  176. ]
  177. );
  178. if (!$res) {
  179. $result['status'] = false;
  180. $result['msg'] = AdminEnum::DATABASE_ERROR;
  181. }
  182. return $result;
  183. }
  184. //删除摄像头链接生成字段
  185. public static function delCameraFieldList($params)
  186. {
  187. $result['status'] = true;
  188. $result['msg'] = AdminEnum::RETURN_SUCCESS;
  189. //判断字段是否存在
  190. $query = CameraFieldList::find($params['id']);
  191. if (!$query) {
  192. $result['status'] = false;
  193. $result['msg'] = AdminEnum::RECORD_NOT_EXIST;
  194. return $result;
  195. }
  196. $res = CameraFieldList::where('id', $params['id'])->delete();
  197. if (!$res) {
  198. $result['status'] = false;
  199. $result['msg'] = AdminEnum::DATABASE_ERROR;
  200. }
  201. return $result;
  202. }
  203. }