Wind.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. namespace catchAdmin\wind\model;
  3. use catcher\base\CatchModel as Model;
  4. use catchAdmin\permissions\model\DataRangScopeTrait;
  5. use \think\facade\Db;
  6. class Wind extends Model
  7. {
  8. use DataRangScopeTrait;
  9. // 表名
  10. public $name = 'wind';
  11. // 数据库字段映射
  12. public $field = array(
  13. 'id',
  14. // 风场名称
  15. 'name',
  16. // 编号
  17. 'number',
  18. // 所属部门
  19. 'department_id',
  20. // 风场地址
  21. 'address',
  22. // 维保设备数量
  23. 'maintenance_count',
  24. // 泵设备数量
  25. 'pump_count',
  26. //风场形状
  27. 'wind_shape',
  28. //风场区域经纬度信息
  29. 'wind_info',
  30. //风场边缘颜色
  31. 'side_color',
  32. //风场内部颜色
  33. 'inside_color',
  34. // 备注
  35. 'remark',
  36. // 创建人ID
  37. 'creator_id',
  38. // 创建时间
  39. 'created_at',
  40. // 更新时间
  41. 'updated_at',
  42. // 软删除
  43. 'deleted_at',
  44. );
  45. public function getList()
  46. {
  47. // 分页列表
  48. return $this->dataRange()
  49. ->catchSearch()
  50. ->field('*')
  51. ->catchOrder()
  52. ->append(['type_name', 'depart_name'])
  53. ->creator()
  54. ->paginate();
  55. }
  56. public function getWindList()
  57. {
  58. // 不分页
  59. return $this->dataRange()
  60. ->catchSearch()
  61. ->field('*')
  62. ->catchOrder()
  63. ->append(['type_name', 'depart_name'])
  64. ->creator()
  65. ->select();
  66. }
  67. /**
  68. * 获取风场类型(文本)
  69. */
  70. public function getTypeNameAttr($value)
  71. {
  72. $type_arr = [
  73. 'circle' => '圆形围栏',
  74. 'polygon' => '多边形围栏',
  75. ];
  76. return $type_arr[$this->getData('wind_shape')] ?: '未知';
  77. }
  78. public function getDepartmentIdAttr($value)
  79. {
  80. return json_decode($value, true);
  81. }
  82. public function getWindInfoAttr($value)
  83. {
  84. return json_decode($value, true);
  85. }
  86. public function getDepartNameAttr($value)
  87. {
  88. $id = $this->department_id;
  89. return Db::table('departments')->where('id', $id)->value('department_name');
  90. }
  91. public function searchNameAttr($query, $value, $data)
  92. {
  93. return $query->where('name', 'like', '%' . $value . '%');
  94. }
  95. }