<?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]; } }
|