password = base64_encode(password_hash($data->password, 1)); // 自动生成邀请码 // do { // $invite_code = get_rand_str(); // $old = (new static())::where('role',$invite_code)->find('invite_code'); // } while ($old != null); // $data->invite_code = $invite_code; }); //修改密码自动加密 self::event('before_update', function ($data) { $old = (new static())::get($data->id); if ($data->password !== $old->password) { $data->password = base64_encode(password_hash($data->password, 1)); } }); } /** * 关联代理等级 * Author:修缘 * 联系QQ:278896498 * Date: 2021/12/24 3:43 */ public function agencyLevel() { return $this->belongsTo(Level::class, 'level', 'id'); } public function playerAccount() { return $this->hasMany(User::class,'invite', 'invite'); } public function parent() { return $this->belongsTo(AgencyUser::class, 'parent_id', 'id'); } public function grandpa() { return $this->belongsTo(AgencyUser::class,'grandpa_id', 'id'); } public static function get_agency_relation(int $id = 0) { return self::where(['id' => $id])->with([ 'parent' => function ($query) { $query->field('id, username, parent_id, grandpa_id'); }, 'grandpa' => function ($query) { $query->field('id, username, parent_id, grandpa_id'); }, ])->field('id, username, level, parent_id, grandpa_id')->find(); } /** * 查询代理用户 * Author:修缘 * 联系QQ:278896498 * Date: 2021/12/24 19:35 */ public function scopeRole($query) { $query->where('role', 2); } /** * 可用上级代理 * Author:修缘 * 联系QQ:278896498 * Date: 2021/12/24 19:35 */ public function scopeParent($query) { $query->where(['level' => [1,2]]); } /** * 获取直属下级代理 * Author:修缘 * 联系QQ:278896498 * Date: 2021/12/24 21:45 */ public function scopeDirectlySon($query, $user) { if (in_array(2, $user->role)) { $query->where('parent_id', $user->id); } else { $query->where(['parent_id' => 0, 'grandpa_id' => 0]); } } // 代理获取所有下级代理 含间接 public function scopeProgeny($query, $user) { if (in_array(2, $user->role)) { $query->whereIn('parent_id|grandpa_id', $user->id); } else { $query->whereIn('role', 2); } } public function scopeSon($query, $son_agency) { $query->whereIn('username', $son_agency); } public static function bank_type() { $type = [ 1 => lang('alipay_name'), 2 => lang('WeChat_name'), 3 => lang('qq_name'), 4 => lang('boc_name'), 5 => lang('icbc_name'), 6 => lang('ccb_name'), 7 => lang('abchina_name'), 8 => lang('cmbchina_name'), 9 => lang('psbc_name'), 10 => lang('bankcomm_name'), 11 => lang('cash_name'), 12 => lang('else_name'), ]; return $type; } }