'int' ]; protected $updateTime = false; /** * 更新用户事件 * @param Model $user */ public static function onAfterUpdate($user) { event('user.update'); } protected function setAddTimeAttr($value) { return time(); } protected function setAddIpAttr($value) { return app('request')->ip(); } protected function setLastTimeAttr($value) { return time(); } protected function setLastIpAttr($value) { return app('request')->ip(); } /** * 链接会员登陆设置表 * @return \think\model\relation\HasOne */ public function systemUserLevel() { return $this->hasOne(SystemUserLevel::class, 'id', 'level'); } /** * 关联用户分组 * @return \think\model\relation\HasOne */ public function userGroup() { return $this->hasOne(UserGroup::class, 'id', 'group_id'); } /** * 关联自己 * @return \think\model\relation\HasOne */ public function spreadUser() { return $this->hasOne(self::class, 'uid', 'spread_uid'); } /** * 关联自己 * @return \think\model\relation\HasOne */ public function spreadCount() { return $this->hasMany(User::class, 'spread_uid', 'uid'); } /** * 关联用户标签关系 * @return \think\model\relation\HasMany */ public function LabelRelation() { return $this->hasMany(UserLabelRelation::class, 'uid', 'uid'); } /** * 关联用户标签 * @return \think\model\relation\HasManyThrough */ public function label() { return $this->hasManyThrough(UserLabel::class, UserLabelRelation::class, 'uid', 'id', 'uid', 'label_id'); } /** * 关联用户地址 * @return \think\model\relation\HasMany */ public function address() { return $this->hasMany(UserAddress::class, 'uid', 'uid'); } /** * 关联提现 * @return \think\model\relation\HasMany */ public function extract() { return $this->hasMany(UserExtract::class, 'uid', 'uid'); } /** * 关联订单 * @return User|\think\model\relation\HasMany */ public function order() { return $this->hasMany(StoreOrder::class, 'uid', 'uid'); } /** * 关联分销等级 * @return \think\model\relation\HasOne */ public function agentLevel() { return $this->hasOne(AgentLevel::class, 'id', 'agent_level')->where('is_del', 0)->where('status', 1); } /** * 关联积分数据 * @return \think\model\relation\HasMany */ public function bill() { return $this->hasMany(UserBill::class, 'uid', 'uid'); } /** * 关联佣金数据 * @return \think\model\relation\HasMany */ public function brokerage() { return $this->hasMany(UserBrokerage::class, 'uid', 'uid'); } /** * 关联余额数据 * @return \think\model\relation\HasMany */ public function money() { return $this->hasMany(UserMoney::class, 'uid', 'uid'); } /** * 用户uid * @param Model $query * @param $value */ public function searchUidAttr($query, $value) { if (is_array($value)) $query->whereIn('uid', $value); else $query->where('uid', $value); } /** * 账号搜索器 * @param Model $query * @param $value */ public function searchAccountAttr($query, $value) { $query->where('account', $value); } /** * 密码搜索器 * @param Model $query * @param $value */ public function searchPwdAttr($query, $value) { $query->where('pwd', $value); } /** * uid范围查询搜索器 * @param Model $query * @param $value */ public function searchUidsAttr($query, $value) { $query->whereIn('uid', $value); } /** * 模糊条件搜索器 * @param Model $query * @param $value */ public function searchStoreLikeAttr($query, $value) { $query->where('uid|phone', 'LIKE', "%$value%"); } /** * 模糊条件搜索器 * @param Model $query * @param $value */ public function searchLikeAttr($query, $value) { $query->where('account|nickname|phone|real_name|uid', 'LIKE', "%$value%"); } /** * 手机号搜索器 * @param Model $query * @param $value */ public function searchPhoneAttr($query, $value) { if (is_array($value)) { $query->whereIn('phone', $value); } else { $query->where('phone', $value); } } /** * 分组搜索器 * @param Model $query * @param $value */ public function searchGroupIdAttr($query, $value) { $query->where('group_id', $value); } /** * 是否推广人搜索器 * @param Model $query * @param $value */ public function searchIsPromoterAttr($query, $value) { $query->where('is_promoter', $value); } /** * 状态搜索器 * @param Model $query * @param $value */ public function searchStatusAttr($query, $value) { $query->where('status', $value); } /** * 会员等级搜索器 * @param Model $query * @param $value */ public function searchLevelAttr($query, $value) { $query->where('level', $value); } /** * 推广人uid搜索器 * @param Model $query * @param $value */ public function searchSpreadUidAttr($query, $value) { $query->where('spread_uid', $value); } /** * 推广人uid不等于搜索器 * @param Model $query * @param $value */ public function searchNotSpreadUidAttr($query, $value) { $query->where('spread_uid', '<>', $value); } /** * 推广人时间搜索器 * @param Model $query * @param $value */ public function searchSpreadTimeAttr($query, $value) { if ($value) { if (is_array($value)) { if (count($value) == 2) $query->whereTime('spread_time', $value[0], $value[1]); } else { $query->whereTime('spread_time', $value); } } } /** * 用户类型搜索器 * @param Model $query * @param $value */ public function searchUserTypeAttr($query, $value) { if ($value != '') $query->where('user_type', $value); } /** * 购买次数搜索器 * @param Model $query * @param $value */ public function searchPayCountAttr($query, $value) { if ($value !== '') { if ($value == -1) { $query->where('pay_count', '>', 0); } else { $query->where('pay_count', $value); } } } /** * 用户推广资格 * @param Model $query * @param $value */ public function searchSpreadOpenAttr($query, $value) { if ($value != '') $query->where('spread_open', $value); } public function searchNicknameAttr($query, $value) { $query->where('nickname', "like", "%" . $value . "%"); } /** * bar_code搜索器 * @param Model $query * @param $value */ public function searchBarCodeAttr($query, $value) { if ($value != '') $query->where('bar_code', $value); } }