quanwei
2026-01-17 e1e2fe5710a5b5cd9c19bd3aa99c998a1a613ca8
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;
@@ -54,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');
    }
    /**
@@ -399,4 +411,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;
        }
    }
}