Operator.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. namespace addons\shopro\library;
  3. use app\admin\model\Admin;
  4. use app\admin\model\User;
  5. use app\admin\controller\shopro\user\User as ShoproUser;
  6. use app\common\model\User as CommonUser;
  7. class Operator
  8. {
  9. const OPER_TYPE = [
  10. 'admin' => '管理员',
  11. 'user' => '用户',
  12. 'system' => '系统'
  13. ];
  14. /**
  15. * 获取操作人
  16. */
  17. public static function get($user = NULL)
  18. {
  19. if ($user === NULL) {
  20. // 自动获取操作人
  21. $user = self::getDefaultOper();
  22. }
  23. if ($user instanceof Admin) {
  24. $oper = [
  25. 'id' => $user->id,
  26. 'name' => $user->nickname,
  27. 'avatar' => $user->avatar,
  28. 'type' => 'admin',
  29. 'type_text' => (self::OPER_TYPE)['admin']
  30. ];
  31. } elseif ($user instanceof User || $user instanceof ShoproUser || $user instanceof CommonUser) {
  32. $oper = [
  33. 'id' => $user->id,
  34. 'name' => $user->nickname,
  35. 'avatar' => $user->avatar,
  36. 'type' => 'user',
  37. 'type_text' => (self::OPER_TYPE)['user']
  38. ];
  39. } else {
  40. $oper = [
  41. 'id' => 0,
  42. 'name' => '',
  43. 'avatar' => '',
  44. 'type' => 'system',
  45. 'type_text' => (self::OPER_TYPE)['system']
  46. ];
  47. }
  48. return $oper;
  49. }
  50. /**
  51. * 解析操作人信息
  52. */
  53. public static function info($type, $user = NULL)
  54. {
  55. return [
  56. 'id' => $user['id'] ?? 0,
  57. 'name' => $user['nickname'] ?? '',
  58. 'avatar' => $user['avatar'] ?? '',
  59. 'type' => $type,
  60. 'type_text' => (self::OPER_TYPE)[$type]
  61. ];
  62. }
  63. /**
  64. * 获取默认操作人
  65. */
  66. private static function getDefaultOper()
  67. {
  68. $user = NULL;
  69. if (!request()->isCli()) {
  70. // 检测管理员登陆
  71. $user = auth_admin();
  72. if (!$user) {
  73. // 检测用户登陆
  74. $user = auth_user();
  75. }
  76. }
  77. return $user;
  78. }
  79. }