SurfaceServices.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: qiuzijian
  5. * Date: 2021-05-31
  6. * Time: 09:20
  7. */
  8. namespace Modules\Mine\Services;
  9. use App\Enum\ApiEnum;
  10. use Illuminate\Support\Arr;
  11. use Illuminate\Support\Facades\Cache;
  12. use Illuminate\Support\Facades\Input;
  13. use Illuminate\Support\Facades\Log;
  14. use Modules\Admin\Enum\AdminEnum;
  15. use Modules\Camera\Enum\CameraEnum;
  16. use Modules\Mine\Entities\MineList;
  17. use Modules\Mine\Entities\WorkingSurface;
  18. use Modules\Mine\Entities\WorkingSurfaceCamera;
  19. use Modules\Mine\Enum\SurfaceEnum;
  20. use DB;
  21. class SurfaceServices{
  22. //获取工作面列表
  23. public static function getSurfaceList($staff_num)
  24. {
  25. $user = DB::table('users')->where('staff_num',$staff_num)->first();
  26. $mine_array = explode(';',$user->mine_role);
  27. $query = WorkingSurface::join(
  28. 'mine_list', 'working_surface.mine_id', '=', 'mine_list.id'
  29. )->whereIn('mine_id',$mine_array)->orderBy('working_surface.created_at', 'desc')->select(
  30. [
  31. 'working_surface.id',
  32. 'working_surface.surface_name',
  33. 'working_surface.working_area',
  34. 'mine_list.title'
  35. ]
  36. )->get();
  37. return $query;
  38. }
  39. //查询工作面详情
  40. public static function getSrufaceDetail($surface_id)
  41. {
  42. $query = WorkingSurface::join(
  43. 'mine_list', 'working_surface.mine_id', '=', 'mine_list.id'
  44. )->where('working_surface.id', $surface_id)->select(
  45. [
  46. 'mine_list.title',
  47. 'working_surface.surface_name',
  48. 'working_surface.working_area',
  49. ]
  50. )->first();
  51. return $query;
  52. }
  53. //添加工作面操作
  54. public static function addSurfaceList($params)
  55. {
  56. $result['status'] = true;
  57. $result['msg'] = AdminEnum::RETURN_SUCCESS;
  58. $res = WorkingSurface::insert(
  59. [
  60. 'mine_id' => $params['mine_id'],
  61. 'surface_name' => $params['surface_name'],
  62. 'working_area' => $params['working_area'],
  63. 'created_at' => date('Y-m-d H:i:s', time()),
  64. 'updated_at' => date('Y-m-d H:i:s', time()),
  65. ]
  66. );
  67. if (!$res) {
  68. $result['status'] = false;
  69. $result['msg'] = AdminEnum::DATABASE_ERROR;
  70. }
  71. return $result;
  72. }
  73. //编辑工作面操作
  74. public static function editSurfaceList($params)
  75. {
  76. $result['status'] = true;
  77. $result['msg'] = AdminEnum::RETURN_SUCCESS;
  78. //判断数据是否存在
  79. $query = WorkingSurface::find($params['id']);
  80. if (!$query) {
  81. $result['status'] = false;
  82. $result['msg'] = AdminEnum::RECORD_NOT_EXIST;
  83. return $result;
  84. }
  85. $res = WorkingSurface::where('id', $params['id'])->update(
  86. [
  87. 'mine_id' => $params['mine_id'],
  88. 'surface_name' => $params['surface_name'],
  89. 'working_area' => $params['working_area'],
  90. 'updated_at' => date('Y-m-d H:i:s', time()),
  91. ]
  92. );
  93. if (!$res) {
  94. $result['status'] = false;
  95. $result['msg'] = AdminEnum::DATABASE_ERROR;
  96. }
  97. return $result;
  98. }
  99. //删除工作面操作
  100. public static function delSurfaceList($params)
  101. {
  102. $result['status'] = true;
  103. $result['msg'] = AdminEnum::RETURN_SUCCESS;
  104. //判断数据是否存在
  105. $query = WorkingSurface::find($params['id']);
  106. if (!$query) {
  107. $result['status'] = false;
  108. $result['msg'] = AdminEnum::RECORD_NOT_EXIST;
  109. return $result;
  110. }
  111. $res = WorkingSurface::where('id', $params['id'])->delete();
  112. if (!$res) {
  113. $result['status'] = false;
  114. $result['msg'] = AdminEnum::DATABASE_ERROR;
  115. }
  116. return $result;
  117. }
  118. //更新摄像头与工作面关联
  119. public static function updateSrufaceCamera($params)
  120. {
  121. $query = WorkingSurfaceCamera::where('camera_id', $params['id'])->exists();
  122. if (!$query) {
  123. if ($params['surface_id']) {
  124. WorkingSurfaceCamera::insert(
  125. [
  126. 'surface_id' => $params['surface_id'],
  127. 'camera_id' => $params['id'],
  128. 'created_at' => date('Y-m-d H:i:s', time()),
  129. 'updated_at' => date('Y-m-d H:i:s', time()),
  130. ]
  131. );
  132. }
  133. } else {
  134. WorkingSurfaceCamera::where('camera_id', $params['id'])->update(
  135. [
  136. 'surface_id' => $params['surface_id'],
  137. 'updated_at' => date('Y-m-d H:i:s', time()),
  138. ]
  139. );
  140. }
  141. }
  142. //获取工作面列表
  143. public static function getApiSurfaceList($working_area = SurfaceEnum::WORKING_AREA_WORK)
  144. {
  145. $result['status'] = true;
  146. $result['msg'] = ApiEnum::RETURN_SUCCESS;
  147. $query = MineList::where('parent_id', 0)->select(
  148. [
  149. 'id as parent_id',
  150. 'title as mine_name',
  151. ]
  152. )->get()->toArray();
  153. foreach ($query as $key => $val) {
  154. $surface = WorkingSurface::where(
  155. [
  156. 'mine_id' => $val['parent_id'],
  157. 'working_area' => $working_area
  158. ]
  159. )->orderBy('created_at', 'desc')->select(
  160. [
  161. 'id as surface_id',
  162. 'surface_name'
  163. ]
  164. )->get()->toArray();
  165. $query[$key]['surface_list'] = $surface;
  166. }
  167. $result['data'] = $query;
  168. return $result;
  169. }
  170. }