You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SystemStoreStaff.php 4.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. <?php
  2. namespace app\model\store;
  3. use app\model\user\User;
  4. use app\model\work\WorkMember;
  5. use crmeb\basic\BaseModel;
  6. use crmeb\traits\ModelTrait;
  7. use think\Model;
  8. /**
  9. * 店员模型
  10. * Class SystemStoreStaff
  11. * @package app\model\store
  12. */
  13. class SystemStoreStaff extends BaseModel
  14. {
  15. use ModelTrait;
  16. /**
  17. * 数据表主键
  18. * @var string
  19. */
  20. protected $pk = 'id';
  21. /**
  22. * 模型名称
  23. * @var string
  24. */
  25. protected $name = 'system_store_staff';
  26. /**
  27. * @var string[]
  28. */
  29. protected $hidden = [
  30. 'last_ip'
  31. ];
  32. /**
  33. * @return \think\model\relation\HasOne
  34. */
  35. public function workMember()
  36. {
  37. return $this->hasOne(WorkMember::class, 'uid', 'uid');
  38. }
  39. /**
  40. * 规则修改器
  41. * @param $value
  42. * @return string
  43. */
  44. public function setRolesAttr($value)
  45. {
  46. if ($value) {
  47. return is_array($value) ? implode(',', $value) : $value;
  48. }
  49. return '';
  50. }
  51. /**
  52. * @param $value
  53. * @return array|false|string[]
  54. */
  55. public function getRolesAttr($value)
  56. {
  57. if ($value) {
  58. return is_string($value) ? explode(',', $value) : $value;
  59. }
  60. return [];
  61. }
  62. /**
  63. * user用户表一对一关联
  64. * @return \think\model\relation\HasOne
  65. */
  66. public function user()
  67. {
  68. return $this->hasOne(User::class, 'uid', 'uid', false)->field(['uid', 'nickname', 'delete_time'])->bind([
  69. 'nickname' => 'nickname',
  70. 'delete_time' => 'delete_time',
  71. ]);
  72. }
  73. /**
  74. * 门店表一对一关联
  75. * @return \think\model\relation\HasOne
  76. */
  77. public function store()
  78. {
  79. return $this->hasOne(SystemStore::class, 'id', 'store_id')->field(['id', 'name'])->bind([
  80. 'name' => 'name'
  81. ]);
  82. }
  83. /**
  84. * 时间戳获取器转日期
  85. * @param $value
  86. * @return false|string
  87. */
  88. public static function getAddTimeAttr($value)
  89. {
  90. return date('Y-m-d H:i:s', $value);
  91. }
  92. public function searchAccountAttr($query, $value)
  93. {
  94. if ($value) $query->where('account', $value);
  95. }
  96. public function searchPhoneAttr($query, $value)
  97. {
  98. if ($value) $query->where('phone', $value);
  99. }
  100. /**
  101. * 权限规格状态搜索器
  102. * @param Model $query
  103. * @param $value
  104. */
  105. public function searchStatusAttr($query, $value)
  106. {
  107. if ($value != '') {
  108. $query->where('status', $value);
  109. }
  110. }
  111. /**
  112. * 权限等级搜索器
  113. * @param Model $query
  114. * @param $value
  115. */
  116. public function searchLevelAttr($query, $value)
  117. {
  118. if (is_array($value)) {
  119. $query->where('level', $value[0], $value[1]);
  120. } else {
  121. $query->where('level', $value);
  122. }
  123. }
  124. /**
  125. * 是否有核销权限搜索器
  126. * @param Model $query
  127. * @param $value 用户uid
  128. */
  129. public function searchIsStatusAttr($query, $value)
  130. {
  131. $query->where(['uid' => $value, 'status' => 1, 'verify_status' => 1]);
  132. }
  133. /**
  134. * uid搜索器
  135. * @param Model $query
  136. * @param $value
  137. */
  138. public function searchUidAttr($query, $value)
  139. {
  140. $query->where('uid', $value);
  141. }
  142. /**
  143. * 门店id搜索器
  144. * @param Model $query
  145. * @param $value
  146. */
  147. public function searchStoreIdAttr($query, $value)
  148. {
  149. if ($value !== '') {
  150. $query->where('store_id', $value);
  151. }
  152. }
  153. /**
  154. * 角色
  155. * @param $query
  156. * @param $value
  157. */
  158. public function searchRolesAttr($query, $value)
  159. {
  160. if ($value) {
  161. $query->where('find_in_set(' . $value . ',`roles`)');
  162. }
  163. }
  164. /**
  165. * 是否是管理员
  166. * @param $query
  167. * @param $value
  168. */
  169. public function searchIsAdminAttr($query, $value)
  170. {
  171. if ($value !== '') {
  172. $query->where('is_admin', $value);
  173. }
  174. }
  175. /**
  176. * 是否删除
  177. * @param $query
  178. * @param $value
  179. */
  180. public function searchIsDelAttr($query, $value)
  181. {
  182. if ($value !== '') {
  183. $query->where('is_del', $value);
  184. }
  185. }
  186. /**
  187. * 是否接收通知
  188. * @param $query
  189. * @param $value
  190. */
  191. public function searchNotifyAttr($query, $value)
  192. {
  193. if ($value !== '') {
  194. $query->where('notify', $value);
  195. }
  196. }
  197. }