SystemUser.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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 (!empty($data)) {
  24. $users = $query->whereIn('id', array_unique(array_column($data, $field)))->column($fields, 'id');
  25. foreach ($data as &$vo) {
  26. $vo[$target] = $users[$vo[$field]] ?? [];
  27. }
  28. return $users;
  29. } else {
  30. return $query->column($fields, 'id');
  31. }
  32. }
  33. /**
  34. * 格式化登录时间
  35. * @param string $value
  36. * @return string
  37. */
  38. public function getLoginAtAttr(string $value): string
  39. {
  40. return format_datetime($value);
  41. }
  42. /**
  43. * 格式化创建时间
  44. * @param string $value
  45. * @return string
  46. */
  47. public function getCreateAtAttr(string $value): string
  48. {
  49. return format_datetime($value);
  50. }
  51. }