Admin.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\common\model\system\admin;
  12. use app\common\model\BaseModel;
  13. use app\common\model\system\auth\Role;
  14. use app\common\model\system\merchant\MerchantRegion;
  15. class Admin extends BaseModel
  16. {
  17. /**
  18. * @return string
  19. * @author xaboy
  20. * @day 2020-03-30
  21. */
  22. public static function tablePk(): string
  23. {
  24. return 'admin_id';
  25. }
  26. /**
  27. * @return string
  28. * @author xaboy
  29. * @day 2020-03-30
  30. */
  31. public static function tableName(): string
  32. {
  33. return 'system_admin';
  34. }
  35. /**
  36. * @param $value
  37. * @return array
  38. * @author xaboy
  39. * @day 2020-03-30
  40. */
  41. public function getRolesAttr($value)
  42. {
  43. return array_map('intval', explode(',', $value));
  44. }
  45. public function getRegionIdsAttr($value)
  46. {
  47. if ($value) {
  48. $value = explode(',',$value);
  49. // 移除第一个元素
  50. array_shift($value);
  51. // 移除最后一个元素
  52. array_pop($value);
  53. }
  54. return $value;
  55. }
  56. public function getRegionNameAttr()
  57. {
  58. return MerchantRegion::whereIn('region_id',$this->region_ids)->column('name');
  59. }
  60. /**
  61. * @param $value
  62. * @return string
  63. * @author xaboy
  64. * @day 2020-03-30
  65. */
  66. public function setRolesAttr($value)
  67. {
  68. return implode(',', $value);
  69. }
  70. /**
  71. * @param bool $isArray
  72. * @return array|string
  73. * @author xaboy
  74. * @day 2020-04-09
  75. */
  76. public function roleNames($isArray = false)
  77. {
  78. $roleNames = Role::getDB()->whereIn('role_id', $this->roles)->column('role_name');
  79. return $isArray ? $roleNames : implode(',', $roleNames);
  80. }
  81. public function searchRealNameAttr($query,$value)
  82. {
  83. $query->whereLike('real_name',"%{$value}%");
  84. }
  85. }