SystemUser.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | ThinkAdmin
  4. // +----------------------------------------------------------------------
  5. // | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
  6. // +----------------------------------------------------------------------
  7. // | 官方网站: https://thinkadmin.top
  8. // +----------------------------------------------------------------------
  9. // | 开源协议 ( https://mit-license.org )
  10. // | 免费声明 ( https://thinkadmin.top/disclaimer )
  11. // +----------------------------------------------------------------------
  12. // | gitee 代码仓库:https://gitee.com/zoujingli/ThinkAdmin
  13. // | github 代码仓库:https://github.com/zoujingli/ThinkAdmin
  14. // +----------------------------------------------------------------------
  15. namespace app\admin\model;
  16. use think\admin\Model;
  17. use think\model\relation\HasOne;
  18. /**
  19. * 系统用户模型
  20. * Class SystemUser
  21. * @package app\admin\model
  22. */
  23. class SystemUser extends Model
  24. {
  25. /**
  26. * 日志名称
  27. * @var string
  28. */
  29. protected $oplogName = '系统用户';
  30. /**
  31. * 日志类型
  32. * @var string
  33. */
  34. protected $oplogType = '系统用户管理';
  35. /**
  36. * 获取用户数据
  37. * @param array $map 数据查询规则
  38. * @param array $data 用户数据集合
  39. * @param string $field 原外连字段
  40. * @param string $target 关联目标字段
  41. * @param string $fields 关联数据字段
  42. * @return array
  43. */
  44. public function items(array $map, array &$data = [], string $field = 'uuid', string $target = 'user_info', string $fields = 'username,nickname,headimg,status,is_deleted'): array
  45. {
  46. $query = $this->where($map)->order('sort desc,id desc');
  47. if (count($data) > 0) {
  48. $users = $query->whereIn('id', array_unique(array_column($data, $field)))->column($fields, 'id');
  49. foreach ($data as &$vo) $vo[$target] = $users[$vo[$field]] ?? [];
  50. return $users;
  51. } else {
  52. return $query->column($fields, 'id');
  53. }
  54. }
  55. /**
  56. * 关联身份权限
  57. * @return HasOne
  58. */
  59. public function userinfo(): HasOne
  60. {
  61. return $this->hasOne(SystemBase::class, 'code', 'usertype')->where([
  62. 'type' => '身份权限', 'status' => 1, 'deleted' => 0,
  63. ]);
  64. }
  65. /**
  66. * 格式化登录时间
  67. * @param string $value
  68. * @return string
  69. */
  70. public function getLoginAtAttr(string $value): string
  71. {
  72. return format_datetime($value);
  73. }
  74. /**
  75. * 格式化创建时间
  76. * @param string $value
  77. * @return string
  78. */
  79. public function getCreateAtAttr(string $value): string
  80. {
  81. return format_datetime($value);
  82. }
  83. }