| | |
| | | <?php
|
| | |
|
| | | namespace app\common\model\plus\team;
|
| | |
|
| | | use app\common\model\BaseModel;
|
| | | use app\common\model\plus\agent\User as AgentUserModel;
|
| | |
|
| | | /**
|
| | | * 队长申请模型
|
| | | */
|
| | | class Apply extends BaseModel
|
| | | {
|
| | | protected $name = 'team_apply';
|
| | | protected $pk = 'apply_id';
|
| | |
|
| | | /**
|
| | | * 申请状态
|
| | | * @var array
|
| | | */
|
| | | public $applyStatus = [
|
| | | 10 => '待审核',
|
| | | 20 => '审核通过',
|
| | | 30 => '驳回',
|
| | | ];
|
| | |
|
| | | /**
|
| | | * 申请时间
|
| | | * @param $value
|
| | | * @return false|string
|
| | | */
|
| | | public function getApplyTimeAttr($value)
|
| | | {
|
| | | return date('Y-m-d H:i:s', $value);
|
| | | }
|
| | |
|
| | | /**
|
| | | * 审核时间
|
| | | * @param $value
|
| | | * @return false|int|string
|
| | | */
|
| | | public function getAuditTimeAttr($value)
|
| | | {
|
| | | return $value > 0 ? date('Y-m-d H:i:s', $value) : 0;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 关联推荐人表
|
| | | * @return \think\model\relation\BelongsTo
|
| | | */
|
| | | public function referee()
|
| | | {
|
| | | return $this->belongsTo('app\common\model\user\User', 'referee_id')
|
| | | ->field(['user_id', 'nickName']);
|
| | | }
|
| | |
|
| | | /**
|
| | | * 销商申请记录详情
|
| | | * @param $where
|
| | | * @return array|\think\Model|null
|
| | | * @throws \think\db\exception\DataNotFoundException
|
| | | * @throws \think\db\exception\DbException
|
| | | * @throws \think\db\exception\ModelNotFoundException
|
| | | */
|
| | | public static function detail($where)
|
| | | {
|
| | | $filter = is_array($where) ? $where : ['apply_id' => $where];
|
| | | return (new static())->where($filter)->find();
|
| | | }
|
| | |
|
| | | /**
|
| | | * 根据分销判断成为队长
|
| | | * @param $userId
|
| | | * @param $appId
|
| | | * @return bool
|
| | | */
|
| | | public function becomeTeamByAgent($userId, $become_type, $appId)
|
| | | {
|
| | | //log_write($become_type);
|
| | | // 验证是否设置
|
| | | $config = Setting::getItem('basic', $appId);
|
| | | if (empty($config['is_open'])) {
|
| | | return false;
|
| | | }
|
| | | if ($config['become'] != $become_type) {
|
| | | return false;
|
| | | }
|
| | | $agent = AgentUserModel::detail($userId);
|
| | | if (!$agent) {
|
| | | return false;
|
| | | }
|
| | | $becomeTeam = false;
|
| | | //分销商总数
|
| | | if ($become_type == '40') {
|
| | | $agent_total = $agent['first_num'] + $agent['second_num'] + $agent['third_num'];
|
| | | if ($agent_total >= $config['totalfxs_down']) {
|
| | | $becomeTeam = true;
|
| | | }
|
| | | }
|
| | | //分销佣金总数
|
| | | if ($become_type == '50') {
|
| | | $agent_money = $agent['total_money'] + $agent['money'] + $agent['freeze_money'];
|
| | | if ($agent_money >= $config['total_money']) {
|
| | | $becomeTeam = true;
|
| | | }
|
| | | }
|
| | | // 新增队长用户
|
| | | if ($becomeTeam) {
|
| | | User::add($userId, [
|
| | | 'referee_id' => $agent['referee_id'], //推荐人id
|
| | | 'app_id' => $appId,
|
| | | ]);
|
| | | }
|
| | | return true;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 审核状态
|
| | | * @param $value
|
| | | * @return array
|
| | | */
|
| | | public function getApplyStatusAttr($value)
|
| | | {
|
| | | $method = [10 => '待审核', 20 => '审核通过', '30' => '驳回'];
|
| | | return ['text' => $method[$value], 'value' => $value];
|
| | | }
|
| | |
|
| | | /**
|
| | | * 审核方式
|
| | | * @param $value
|
| | | * @return array
|
| | | */
|
| | | public function getApplyTypeAttr($value)
|
| | | {
|
| | | $method = [10 => '后台审核', 20 => '无需审核'];
|
| | | return ['text' => $method[$value], 'value' => $value];
|
| | | }
|
| | |
|
| | | } |
| | | <?php
namespace app\common\model\plus\team;
use app\common\model\BaseModel;
use app\common\model\order\Order as OrderModel;
use app\common\model\plus\agent\User as AgentUserModel;
/**
* 队长申请模型
*/
class Apply extends BaseModel
{
protected $name = 'team_apply';
protected $pk = 'apply_id';
/**
* 申请状态
* @var array
*/
public $applyStatus = [
10 => '待审核',
20 => '审核通过',
30 => '驳回',
];
/**
* 申请时间
* @param $value
* @return false|string
*/
public function getApplyTimeAttr($value)
{
return date('Y-m-d H:i:s', $value);
}
/**
* 审核时间
* @param $value
* @return false|int|string
*/
public function getAuditTimeAttr($value)
{
return $value > 0 ? date('Y-m-d H:i:s', $value) : 0;
}
/**
* 关联推荐人表
* @return \think\model\relation\BelongsTo
*/
public function referee()
{
return $this->belongsTo('app\common\model\user\User', 'referee_id')
->field(['user_id', 'nickName']);
}
/**
* 销商申请记录详情
* @param $where
* @return array|\think\Model|null
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public static function detail($where)
{
$filter = is_array($where) ? $where : ['apply_id' => $where];
return (new static())->where($filter)->find();
}
/**
* 根据分销判断成为队长
* @param $userId
* @param $appId
* @return bool
*/
public function becomeTeamByAgent($userId, $become_type, $appId)
{
//log_write($become_type);
// 验证是否设置
$config = Setting::getItem('basic', $appId);
if (empty($config['is_open'])) {
return false;
}
if ($config['become'] != $become_type) {
return false;
}
$agent = AgentUserModel::detail($userId);
if (!$agent) {
return false;
}
$becomeTeam = false;
//分销商总数
if ($become_type == '40') {
$agent_total = $agent['first_num'] + $agent['second_num'] + $agent['third_num'];
if ($agent_total >= $config['totalfxs_down']) {
$becomeTeam = true;
}
}
//分销佣金总数
if ($become_type == '50') {
$agent_money = $agent['total_money'] + $agent['money'] + $agent['freeze_money'];
if ($agent_money >= $config['total_money']) {
$becomeTeam = true;
}
}
if($become_type == '70'){
$vipNum=(new \app\common\model\user\User)->getRefereeGradeCount([$userId],$config['referee_grade_ids']);
$supplierNum=(new \app\common\model\supplier\Supplier)->getSubordinateNum([$userId]);
$user=(new \app\common\model\user\User)->where(['user_id'=>$userId,'is_delete'=>0])->find();
if ($vipNum >= $config['totalvip_down'] && $supplierNum >= $config['totalsh_down']&&$user['purchase_count']>=$config['purchase_count']) {
$becomeTeam = true;
}else if(!empty($config['team_buy_product_ids'])){
if(OrderModel::getOrderProductIds($user['user_id'],$config['team_buy_product_ids'],true)){
$becomeTeam=true;
}
}
}
// 新增队长用户
if ($becomeTeam) {
User::add($userId, [
'referee_id' => $agent['referee_id'], //推荐人id
'app_id' => $appId,
]);
}
return true;
}
/**
* 审核状态
* @param $value
* @return array
*/
public function getApplyStatusAttr($value)
{
$method = [10 => '待审核', 20 => '审核通过', '30' => '驳回'];
return ['text' => $method[$value], 'value' => $value];
}
/**
* 审核方式
* @param $value
* @return array
*/
public function getApplyTypeAttr($value)
{
$method = [10 => '后台审核', 20 => '无需审核'];
return ['text' => $method[$value], 'value' => $value];
}
} |