admin/app/common/model/user/User.php
@@ -3,15 +3,20 @@
namespace app\common\model\user;
use app\common\model\plus\team\Referee as TeamRefereeModel;
use app\common\library\helper;
use app\common\model\BaseModel;
use app\common\model\plus\bonus\Setting as bonusSettingModel;
use app\common\model\plus\team\User as TeamUserModel;
use app\common\model\user\Grade as GradeModel;
use app\common\model\user\PointsLog as PointsLogModel;
use app\common\model\supplier\User as SupplierUserModel;
use app\common\model\store\Clerk as StoreClerkModel;
use app\common\model\user\User as RealUserModel;
use app\common\model\user\User as UserModel;
use app\common\model\settings\Setting as SettingModel;
use app\common\model\plus\agent\Referee as RefereeModel;
use app\shop\model\plus\agent\User as AgentUserModel;
use think\facade\Db; // by lyzflash
use app\common\model\plus\bonus\User as BonusUserModel;
use app\common\model\user\ConsumptionLog as ConsumptionLogModel;
@@ -22,6 +27,15 @@
{
    protected $pk = 'user_id';
    protected $name = 'user';
    public static function getOperatingSubsidy($referee_id, $setting)
    {
        $count=self::where('referee_id',$referee_id)->where('grade_id','in',$setting['referee_grade_ids'])->count();
        if ($count>=$setting['referee_grade_count']){
            return true;
        }
        return false;
    }
    /**
     * 修改器
@@ -45,6 +59,13 @@
    public function grade()
    {
        return $this->belongsTo('app\\common\\model\\user\\Grade', 'grade_id', 'grade_id');
    }
    /**
     * 关联分会表
     */
    public function branch()
    {
        return $this->hasOne('app\\common\\model\\branch\\Branch', 'branch_id', 'branch_id');
    }
    /**
@@ -175,7 +196,7 @@
    /**
     * 累积用户的可用积分
     */
    public function setIncPoints($points, $describe, $decPoints = 0, $upgrade = true)
    public function setIncPoints($points, $describe, $decPoints = 0, $upgrade = true, $is_brand = 0)
    {
        // 新增积分变动明细
        PointsLogModel::add([
@@ -187,6 +208,10 @@
        // 更新用户可用积分
        $data['points'] = ($this['points'] + $points + $decPoints <= 0) ? 0 : $this['points'] + $points + $decPoints;
        if ($is_brand == 1){
            // 用户可用积分
            $data['brand_points'] = ($this['brand_points'] + $points + $decPoints <= 0) ? 0 : $this['brand_points'] + $points + $decPoints;
        }
        // 用户总积分
        if ($points > 0) {
            $data['total_points'] = $this['total_points'] + $points;
@@ -390,4 +415,38 @@
        return $this->where('referee_id', 'in', $user_id)->where('grade_id', 'in', $referee_grade_ids)->count();
    }
    public function editReferee($data)
    {
        // 开启事务
        $this->startTrans();
        try {
            // 删除原推荐人关系
            (new AgentUserModel)->onDeleteReferee($this['user_id']);
            //更新推荐人的数量 by yj
            (new RealUserModel())->setOnInvite($this['user_id'],$data['referee_id']);
            // 修改用户推荐人
            (new RealUserModel())->where('user_id', '=', $this['user_id'])->update([
                'referee_id' => $data['referee_id']
            ]);
            // 修改团队的推荐人 by yj
            (new TeamUserModel())->where('user_id', '=', $this['user_id'])->update([
                'referee_id' => $data['referee_id']
            ]);
            // 记录推荐人关系,
            $data['referee_id'] > 0 && RefereeModel::updateRelation($this['user_id'], $data['referee_id']);
            //处理变动用户底下的团队推荐人信息  by yj
            (new AgentUserModel)->onTeamReferee($this['user_id']);
            // 重建团队分红关系  by yj
            $data['referee_id'] > 0 && TeamRefereeModel::createTeam($data['referee_id']);
            $this->commit();
            return true;
        } catch (\Exception $e) {
            $this->error = $e->getMessage();
            $this->rollback();
            return false;
        }
    }
}