<?php
|
|
namespace app\common\model\plus\shareholder;
|
|
use app\common\model\BaseModel;
|
use app\common\model\plus\agent\User as AgentUserModel;
|
use app\common\model\plus\team\User as TeamUserModel;
|
use app\common\model\plus\team\Order as TeamOrderModel;
|
use app\common\model\plus\team\Referee as TeamRefereeModel;
|
/**
|
* 股东申请模型
|
*/
|
class Apply extends BaseModel
|
{
|
protected $name = 'shareholder_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 becomeShareholderByAgent($userId, $become_type, $appId)
|
{
|
// 验证是否设置
|
$config = Setting::getItem('basic', $appId);
|
if (empty($config['is_open'])) {
|
return false;
|
}
|
$agent = AgentUserModel::detail($userId);
|
if (!$agent) {
|
return false;
|
}
|
$becomeShareholder = false;
|
//分销商总数
|
if ($config['become'] == '40') {
|
$agent_total = $agent['first_num'] + $agent['second_num'] + $agent['third_num'];
|
if ($agent_total >= $config['totalfxs_down']) {
|
$becomeShareholder = true;
|
}
|
}
|
//分销佣金总数
|
if ($config['become'] == '50') {
|
$agent_money = $agent['total_money'] + $agent['money'] + $agent['freeze_money'];
|
if ($agent_money >= $config['total_money']) {
|
$becomeShareholder = true;
|
}
|
}
|
// 新增股东用户
|
if ($becomeShareholder) {
|
User::add($userId, [
|
'referee_id' => $agent['referee_id'], //推荐人id
|
'app_id' => $appId,
|
]);
|
}
|
return true;
|
}
|
|
/**
|
* 根据团队分红判断成为股东
|
* @param $userId
|
* @param $appId
|
* @return bool
|
*/
|
public function becomeShareholderByTeam($userId, $become_type, $appId)
|
{
|
// 验证是否设置
|
$config = Setting::getItem('basic', $appId);
|
if (empty($config['is_open'])) {
|
return false;
|
}
|
$teamUser = TeamUserModel::detail($userId);
|
if (!$teamUser) {
|
return false;
|
}
|
if (User::isshareholderUser($userId)) {
|
return false;
|
}
|
$becomeShareholder = false;
|
//团队总业绩
|
if ($config['become'] == '70') {
|
$total_money = TeamOrderModel::getOrderAllPrice($userId);
|
if ($config['self_buy_money']) {
|
$total_money += $teamUser['user']['expend_money'];
|
}
|
if ($total_money >= $config['total_team_money']) {
|
$becomeShareholder = true;
|
}
|
}
|
//团队总人数
|
if ($config['become'] == '80') {
|
if ($teamUser['total_num'] >= $config['total_team_user']) {
|
$becomeShareholder = true;
|
}
|
}
|
if ($config['become'] == '110'){
|
$subordinateUserId=(new TeamRefereeModel())->where(['heads_id'=>$userId])->column('user_id');
|
$subordinateUserId[]=$userId;
|
$vipNum=(new \app\common\model\user\User)->getRefereeGradeCount($subordinateUserId,$config['referee_grade_ids']);
|
$supplierNum=(new \app\common\model\supplier\Supplier())->getSubordinateNum($subordinateUserId);
|
$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']){
|
$becomeShareholder = true;
|
}
|
}
|
// 新增股东用户
|
if ($becomeShareholder) {
|
User::add($userId, [
|
'referee_id' => $teamUser['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];
|
}
|
|
}
|