SystemUser.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace app\admin\model;
  3. use think\Model;
  4. /**
  5. * 系统用户数据模型
  6. * Class SystemUser
  7. * @package app\admin\model
  8. */
  9. class SystemUser extends Model
  10. {
  11. /**
  12. * 获取用户数据
  13. * @param array $map 数据查询规则
  14. * @param array $data 用户数据集合
  15. * @param string $field 原外连字段
  16. * @param string $target 关联目标字段
  17. * @param string $fields 关联数据字段
  18. * @return array
  19. */
  20. public function items(array $map, array &$data = [], string $field = 'uuid', string $target = 'user_info', string $fields = 'username,nickname,headimg,status,is_deleted'): array
  21. {
  22. $query = $this->where($map)->order('sort desc,id desc');
  23. if (count($data) > 0) {
  24. $users = $query->whereIn('id', array_unique(array_column($data, $field)))->column($fields, 'id');
  25. foreach ($data as &$vo) $vo[$target] = $users[$vo[$field]] ?? [];
  26. return $users;
  27. } else {
  28. return $query->column($fields, 'id');
  29. }
  30. }
  31. /**
  32. * 格式化登录时间
  33. * @param string $value
  34. * @return string
  35. */
  36. public function getLoginAtAttr(string $value): string
  37. {
  38. return format_datetime($value);
  39. }
  40. /**
  41. * 格式化创建时间
  42. * @param string $value
  43. * @return string
  44. */
  45. public function getCreateAtAttr(string $value): string
  46. {
  47. return format_datetime($value);
  48. }
  49. }