Wind.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. return $this->dataRange()
  59. ->catchSearch()
  60. ->field('*')
  61. ->catchOrder()
  62. ->append(['type_name','depart_name'])
  63. ->creator()
  64. ->select();
  65. }
  66. /**
  67. * 获取风场类型(文本)
  68. */
  69. public function getTypeNameAttr($value)
  70. {
  71. $type_arr = [
  72. 'circle' => '圆形围栏',
  73. 'polygon' => '多边形围栏',
  74. ];
  75. return $type_arr[$this->getData('wind_shape')] ? : '未知';
  76. }
  77. public function getDepartmentIdAttr($value)
  78. {
  79. return json_decode($value,true);
  80. }
  81. public function getWindInfoAttr($value)
  82. {
  83. return json_decode($value, true);
  84. }
  85. public function getDepartNameAttr($value)
  86. {
  87. $id=$this->department_id;
  88. return Db::table('departments')->where('id', $id)->value('department_name');
  89. }
  90. public function searchNameAttr($query, $value, $data)
  91. {
  92. return $query->where('name','like','%'.$value.'%');
  93. }
  94. }