<?php namespace app\api\model\plus\team; use app\common\model\plus\team\Referee as RefereeModel; use app\common\model\plus\shareholder\Apply as ShareholderApplyModel; /** * 队长推荐关系模型 */ class Referee extends RefereeModel { /** * 隐藏字段 */ protected $hidden = []; /** * 创建推荐关系 */ public static function createRelation($user_id, $referee_id) { // 队长基本设置 $setting = Setting::getItem('basic'); // 是否开启分销功能 if (!$setting['is_open']) { return false; } // 自分享 if ($user_id == $referee_id) { return false; } // # 记录一级推荐关系 // 判断当前用户是否已存在推荐关系 if (self::isExistReferee($user_id)) { return false; } // 如果上级不是队长,获取上级的队长 if (!User::isteamUser($referee_id)) { $referee_id = self::getHeadsId($referee_id); } // 新增关系记录 $model = new self; $model->add($referee_id, $user_id, 1); return true; } /** * 新增关系记录 */ private function add($heads_id, $user_id, $level = 1) { // 新增推荐关系 $app_id = self::$app_id; $create_time = time(); $this->insert(compact('heads_id', 'user_id', 'app_id', 'create_time')); // 记录队长成员数量 User::setMemberInc($heads_id); //根据团队人数判断股东 by yj $shareholderModel = new ShareholderApplyModel; $shareholderModel->becomeShareholderByTeam($heads_id, 80, $app_id); // 更新股东等级 by yj event('ShareholderUserGrade', $heads_id); return true; } /** * 是否已存在推荐关系 */ private static function isExistReferee($user_id) { return !!(new static())->where(['user_id' => $user_id])->find(); } }
|