Device.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <?php
  2. namespace catchAdmin\device\model;
  3. use catcher\base\CatchModel as Model;
  4. use catchAdmin\device\model\search\DeviceSearch;
  5. use catchAdmin\device\model\get\DeviceGet;
  6. use catchAdmin\permissions\model\DataRangScopeTrait;
  7. class Device extends Model
  8. {
  9. use DeviceSearch;
  10. use DeviceGet;
  11. use DataRangScopeTrait;
  12. // 表名
  13. public $name = 'devices';
  14. // 数据库字段映射
  15. public $field = array(
  16. 'id',
  17. // GPS编号
  18. 'imei',
  19. // 标签编号
  20. 'rfid',
  21. // 设备名称
  22. 'name',
  23. // 设备型号
  24. 'model',
  25. // 关联物体
  26. 'bind_id',
  27. // 所属部门
  28. 'department_id',
  29. // ICCID
  30. 'iccid',
  31. // 应用场景
  32. 'scenario',
  33. // SIM卡号
  34. 'sim_no',
  35. // 经度
  36. 'longitude',
  37. // 纬度
  38. 'latitude',
  39. // 在线时间
  40. 'online_time',
  41. // 地址
  42. 'address',
  43. // 定位模式
  44. 'loc_mode',
  45. // 软件版本
  46. 'soft_ver',
  47. // 硬件版本
  48. 'hard_ver',
  49. // 备注
  50. 'remark',
  51. 'wifi_macs',
  52. 'wifi_online_time',
  53. 'wifi_longitude',
  54. 'wifi_latitude',
  55. 'loc_ploy_state',
  56. // 创建人ID
  57. 'creator_id',
  58. // 创建时间
  59. 'created_at',
  60. // 更新时间
  61. 'updated_at',
  62. // 软删除
  63. 'deleted_at',
  64. );
  65. /**
  66. * 获取设备列表
  67. */
  68. public function getList()
  69. {
  70. $res = $this->dataRange()
  71. ->catchSearch()
  72. ->append(['status_icon','status_text','last_online_time'])
  73. ->order([$this->aliasField('online_time')=> 'desc','wifi_online_time'=>'desc', $this->aliasField('id') => 'desc'])
  74. ->paginate();
  75. return $res;
  76. }
  77. public function queryLocationList(){
  78. $res = $this->dataRange()
  79. ->catchSearch()
  80. ->append(['status_icon','status_text','last_online_time'])
  81. ->order([$this->aliasField('online_time')=> 'desc','wifi_online_time'=>'desc', $this->aliasField('id') => 'desc'])
  82. ->select()
  83. ->each(function($item, $key) {
  84. if($item['online_time']<$item['wifi_online_time']){
  85. $item['longitude']=$item['wifi_longitude'];
  86. $item['latitude']=$item['wifi_latitude'];
  87. }
  88. })->toArray();
  89. return $res;
  90. }
  91. /**
  92. * 获取设备列表
  93. */
  94. public function getDeviceList($field, $order)
  95. {
  96. $res = $this->dataRange()
  97. ->catchSearch()
  98. ->append(['depart_name', 'device_state', 'alarm_state_text', 'bind_number', 'creator_user', 'model_text','net_state','loc_mode_text'])
  99. ->order($this->aliasField($field), $order)
  100. ->paginate();
  101. return $res;
  102. }
  103. /**
  104. * 获取设备导出列表
  105. */
  106. public function getDevicesExportList()
  107. {
  108. $res = $this->dataRange()
  109. ->catchSearch()
  110. ->append(['depart_name', 'device_state', 'alarm_state_text', 'bind_number', 'creator_user', 'model_text','net_state','loc_mode_text','alarm_reason'])
  111. ->order($this->aliasField('id'), 'desc')
  112. ->select();
  113. return $res;
  114. }
  115. }