181 lines
4.6 KiB
PHP
181 lines
4.6 KiB
PHP
![]() |
<?php
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
// | 作者:修缘 联系QQ:278896498 QQ群:1054861244
|
|||
|
// | 声明:未经作者许可,禁止倒卖等商业运营,违者必究
|
|||
|
// | 另接php业务,网站制作、代理后台、gm后台、支付对接等
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
// | 创建时间: 2022/1/5 19:52
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
|
|||
|
|
|||
|
namespace app\admin\model;
|
|||
|
|
|||
|
|
|||
|
use app\admin\model\Level;
|
|||
|
use app\common\model\User;
|
|||
|
|
|||
|
class AgencyUser extends Model
|
|||
|
{
|
|||
|
protected $name = 'admin_user';
|
|||
|
protected $autoWriteTimestamp = true;
|
|||
|
|
|||
|
//可搜索字段
|
|||
|
protected $searchField = [
|
|||
|
'username',
|
|||
|
'nickname',
|
|||
|
'parent_id',
|
|||
|
];
|
|||
|
|
|||
|
//可作为条件的字段
|
|||
|
protected $whereField = ['level',];
|
|||
|
|
|||
|
protected $timeField = [
|
|||
|
'create_time'
|
|||
|
];
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* 初始化
|
|||
|
* Author:修缘
|
|||
|
* 联系QQ:278896498
|
|||
|
* Date: 2021/12/24 19:55
|
|||
|
*/
|
|||
|
public static function init()
|
|||
|
{
|
|||
|
self::event('before_insert', static function ($data) {
|
|||
|
//添加自动加密密码
|
|||
|
$data->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;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
}
|