SystemBase.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace app\admin\model;
  3. use think\Model;
  4. /**
  5. * 数据字典数据模型
  6. * Class SystemBase
  7. * @package app\admin\model
  8. * @method \think\db\Query distinct(bool $true)
  9. */
  10. class SystemBase extends Model
  11. {
  12. /**
  13. * 获取指定数据列表
  14. * @param string $type 数据类型
  15. * @param array $data 外围数据
  16. * @param string $field 外链字段
  17. * @param string $bind 绑定字段
  18. * @return array
  19. */
  20. public function items(string $type, array &$data = [], string $field = 'base_code', string $bind = 'base_info'): array
  21. {
  22. $map = ['status' => 1, 'deleted' => 0, 'type' => $type];
  23. $bases = $this->where($map)->order('sort desc,id desc')->column('code,name,content', 'code');
  24. if (count($data) > 0) foreach ($data as &$vo) $vo[$bind] = $bases[$vo[$field]] ?? [];
  25. return $bases;
  26. }
  27. /**
  28. * 获取所有数据类型
  29. * @param boolean $simple
  30. * @return array
  31. */
  32. public function types(bool $simple = false): array
  33. {
  34. $types = $this->where(['deleted' => 0])->distinct(true)->column('type');
  35. if (empty($types) && empty($simple)) $types = ['身份权限'];
  36. return $types;
  37. }
  38. /**
  39. * 格式化创建时间
  40. * @param string $value
  41. * @return string
  42. */
  43. public function getCreateAtAttr(string $value): string
  44. {
  45. return format_datetime($value);
  46. }
  47. }