MaintenanceMapper.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. namespace catchAdmin\hydraulic\model;
  3. use catcher\base\CatchModel as Model;
  4. use catchAdmin\system\model\SysDictData;
  5. use catchAdmin\permissions\model\DataRangScopeTrait;
  6. use \think\facade\Db;
  7. class maintenancemapper extends Model
  8. {
  9. use DataRangScopeTrait;
  10. // 表名
  11. public $name = 'maintenance_mapper';
  12. // 数据库字段映射
  13. public $field = array(
  14. 'id',
  15. // 设备类型
  16. 'device_type',
  17. // 唯一值
  18. 'value',
  19. // 名称
  20. 'name',
  21. //部件
  22. 'parts',
  23. //风机型号
  24. 'fan_model',
  25. // 创建人ID
  26. 'creator_id',
  27. // 创建时间
  28. 'created_at',
  29. // 更新时间
  30. 'updated_at',
  31. // 软删除
  32. 'deleted_at',
  33. );
  34. /**
  35. * 获取列表
  36. */
  37. public function getList()
  38. {
  39. $res = $this->dataRange()
  40. ->catchSearch()
  41. ->append(['device_type_name', 'creator_name', 'fan_model_name'])
  42. ->order($this->aliasField('id'), 'desc')
  43. ->paginate();
  44. return $res;
  45. }
  46. /**
  47. * 名称搜索
  48. */
  49. public function searchNameAttr($query, $value, $data)
  50. {
  51. return $query->where('name', 'like', '%' . $value . '%');
  52. }
  53. /**
  54. * 设备类型搜索
  55. */
  56. public function searchDeviceTypeAttr($query, $value, $data)
  57. {
  58. return $query->where('device_type', '=', $value);
  59. }
  60. /**
  61. * 设备类型名称
  62. */
  63. public function getDeviceTypeNameAttr()
  64. {
  65. $value = $this->getData('device_type');
  66. return (new SysDictData())->getValueByCode('Maintenance', $value) ?: '';
  67. }
  68. public function getFanModelAttr()
  69. {
  70. $value = $this->getData('fan_model');
  71. return $value ? intval($value) : null;
  72. }
  73. public function getFanModelNameAttr()
  74. {
  75. $value = $this->getData('fan_model');
  76. $where[] = ['device_type', '=', 4];
  77. $where[] = ['id', '=', $value];
  78. $name = Db::name('device_mold')->where($where)->value('name');
  79. return $name;
  80. }
  81. }