diff --git a/app/backend/modules/member/controllers/MemberController.php b/app/backend/modules/member/controllers/MemberController.php index 909c6bf6..7dea97e8 100644 --- a/app/backend/modules/member/controllers/MemberController.php +++ b/app/backend/modules/member/controllers/MemberController.php @@ -516,45 +516,48 @@ class MemberController extends BaseController } // 处理分销商相关信息 $agentLevelId = $data[$currentMemberInfo['mobile']]['分销商熊猫画等级ID'] ?? 0; - $agentCulturalLevelId = $data[$currentMemberInfo['mobile']]['分销商文创等级ID'] ?? 0; - if(in_array($currentMemberInfo['uid'],$hasAgentUid)){ - // 修改 - $updateAgentData[] = [ - 'id' => $hasAgentList[$currentMemberInfo['uid']]['id'], - 'agent_level_id' => $agentLevelId, - 'cultural_level_id' => $agentCulturalLevelId, - ]; - }else{ - // 添加 - $insertAgentData[] = [ - 'uniacid' => $uniacid, - 'member_id' => $currentMemberInfo['uid'], - 'parent_id' => $parentId, - 'parent' => $relation, - 'agent_level_id' => $agentLevelId, - 'cultural_level_id' => $agentCulturalLevelId, - 'created_at' => time(), - 'updated_at' => time(), - ]; + if((int)$agentLevelId > 0){ + if(in_array($currentMemberInfo['uid'],$hasAgentUid)){ + // 修改 + $updateAgentData[] = [ + 'id' => $hasAgentList[$currentMemberInfo['uid']]['id'], + 'agent_level_id' => $agentLevelId, + // 'cultural_level_id' => $agentCulturalLevelId, + ]; + }else{ + // 添加 + $insertAgentData[] = [ + 'uniacid' => $uniacid, + 'member_id' => $currentMemberInfo['uid'], + 'parent_id' => $parentId, + 'parent' => $relation, + 'agent_level_id' => $agentLevelId, + // 'cultural_level_id' => $agentCulturalLevelId, + 'created_at' => time(), + 'updated_at' => time(), + ]; + } } // 处理经销商信息 $teamDividendLevelId = $data[$currentMemberInfo['mobile']]['经销商熊猫画等级ID'] ?? 0; - $teamDividendCulturalLevelId = $data[$currentMemberInfo['mobile']]['经销商文创等级ID'] ?? 0; - if(in_array($currentMemberInfo['uid'],$hasTeamDividendUid)){ - // 修改 - TeamDividendAgencyModel::changeLevel($hasTeamDividendList[$currentMemberInfo['uid']]['id'],$teamDividendLevelId,''); - TeamDividendAgencyModel::changeLevel($hasTeamDividendList[$currentMemberInfo['uid']]['id'],$teamDividendCulturalLevelId,'cultural'); - }else{ - // 添加 - TeamDividendAgencyModel::addTeamAgency([ - 'uniacid' => $uniacid, - 'uid' => $currentMemberInfo['uid'], - 'parent_id' => $parentId, - 'relation' => $relation, - 'level' => $teamDividendLevelId, - 'cultural_level_id' => $teamDividendCulturalLevelId, - 'upgrade_at' => time(), - ]); + // $teamDividendCulturalLevelId = $data[$currentMemberInfo['mobile']]['经销商文创等级ID'] ?? 0; + if((int)$teamDividendLevelId > 0){ + if(in_array($currentMemberInfo['uid'],$hasTeamDividendUid)){ + // 修改 + TeamDividendAgencyModel::changeLevel($hasTeamDividendList[$currentMemberInfo['uid']]['id'],$teamDividendLevelId,''); + // TeamDividendAgencyModel::changeLevel($hasTeamDividendList[$currentMemberInfo['uid']]['id'],$teamDividendCulturalLevelId,'cultural'); + }else{ + // 添加 + TeamDividendAgencyModel::addTeamAgency([ + 'uniacid' => $uniacid, + 'uid' => $currentMemberInfo['uid'], + 'parent_id' => $parentId, + 'relation' => $relation, + 'level' => $teamDividendLevelId, + // 'cultural_level_id' => $teamDividendCulturalLevelId, + 'upgrade_at' => time(), + ]); + } } } diff --git a/app/backend/modules/survey/controllers/SurveyController.php b/app/backend/modules/survey/controllers/SurveyController.php index c0a25418..7bdfb1c2 100644 --- a/app/backend/modules/survey/controllers/SurveyController.php +++ b/app/backend/modules/survey/controllers/SurveyController.php @@ -913,6 +913,9 @@ class SurveyController extends BaseController{ 'ims_yz_users_profile', 'ims_yz_role', 'ims_yz_permission', + 'ims_yz_coupon', + 'ims_yz_goods_rebate', + 'ims_yz_goods_cultural_order_fund_log', // 经销商相关 'ims_yz_team_dividend_level', @@ -943,8 +946,8 @@ class SurveyController extends BaseController{ // 获取全部数据库列表 $tables = $this->getAllTable(); // 获取存在数据的表 - // $hasTable = $this->getHasDataTable($tables,$notCleanUp); - // debug($hasTable); + $hasTable = $this->getHasDataTable($tables,$notCleanUp); + debug($hasTable); diff --git a/plugins/team-dividend/src/models/TeamDividendAgencyModel.php b/plugins/team-dividend/src/models/TeamDividendAgencyModel.php index af3fb438..ec325ae8 100644 --- a/plugins/team-dividend/src/models/TeamDividendAgencyModel.php +++ b/plugins/team-dividend/src/models/TeamDividendAgencyModel.php @@ -11,6 +11,7 @@ use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Support\Facades\DB; use Illuminate\Validation\Rule; use Yunshop\TeamDividend\observers\DealerObserver; +use Yunshop\TeamDividend\services\UpgradeService; class TeamDividendAgencyModel extends BackendModel { @@ -297,4 +298,118 @@ class TeamDividendAgencyModel extends BackendModel return true; } + + + public function addTeamAgency($agentData){ + // 其他验证 + $agency_model = new \Yunshop\TeamDividend\admin\models\TeamDividendAgencyModel(); + $agency_model->fill($agentData); + $validator = $agency_model->validator(); + if ($validator->fails()) { + throw new \Exception($validator->messages()->first()); + } else { + if ($agency_model->save()) { + // 升级后等级 + $c_level = TeamDividendLevelModel::with(['hasOneUpgradeSet'])->find($agentData['level']); + // 升级前等级 + $o_level = NULL; + // 升级日志 + Uplog::addLog($agency_model, $o_level, $c_level); + + + // if((int)$agentData['cultural_level_id'] > 0){ + // // 升级后等级 + // $c_c_level = TeamDividendLevelModel::with(['hasOneUpgradeSet'])->find((int)$agentData['cultural_level_id']); + // // 升级前等级 + // $o_c_level = NULL; + // // 升级日志 + // Uplog::addLog($agency_model, $o_c_level, $c_c_level); + // } + + + //签合同 + $data=[ + 'member_id'=>$agentData['uid'], + 'created_at' => time(), + ]; + event(new \app\common\events\plugin\TeamDividendEvent($data)); + //激活码 + $upgrade_set = (new UpgradeService())->getUpgradeById($agentData['level']); + + if ($upgrade_set) { + $set = \Setting::get('plugin.team_dividend'); + if ($set['is_activation_code'] && $upgrade_set[0]->code_num) { + $level_list = TeamDividendLevelModel::getList()->get(); + $code_num = unserialize($upgrade_set[0]->code_num); + foreach($level_list as $key => $level) { + if($code_num['level_'.$level->id]) { + (new UpgradeService())->senCode($agentData['uid'], $code_num['level_'.$level->id], $level->id, $level->level_name); + } + } + \Log::debug('激活码'); + } + } + (new UpgradeService())->becomeAgencyNotify($agentData['uid']); + + }else{ + throw new \Exception('添加失败'); + } + } + } + + public function changeLevel($id,$levelId,$leveType){ + $agency = TeamDividendAgencyModel::find($id); + + // 等级类型:''=普通等级,cultural=文创等级 + // if((string)$leveType == 'cultural'){ + // $level = $agency->cultural_level_id; + // $agency->cultural_level_id = $levelId; + // $agency->cultural_upgrade_at = time(); + // }else{ + $level = $agency->level; + $agency->level = $levelId; + $agency->upgrade_at = time(); + // } + + // 升级后等级 + $c_level = TeamDividendLevelModel::with(['hasOneUpgradeSet'])->find($leveType == 'cultural' ? $agency->cultural_level_id : $agency->level); + // 升级前等级 + $o_level = TeamDividendLevelModel::with(['hasOneUpgradeSet'])->find($level); + + + if($c_level && $o_level && $c_level->level_type != $o_level->level_type ){ + // 非默认等级 且 类型不一致,升级失败 + return false; + } + + + if ($agency->save()) { + // 升级日志 + Uplog::addLog($agency, $o_level, $c_level); + + if ($c_level->level_weight > $o_level->level_weight) { + //激活码 + $upgrade_set = (new UpgradeService())->getUpgradeById($agency->level); + + if ($upgrade_set) { + $set = \Setting::get('plugin.team_dividend'); + if ($set['is_activation_code'] && $upgrade_set[0]->code_num) { + $level_list = TeamDividendLevelModel::getList()->get(); + $code_num = (is_array($upgrade_set[0]->code_num) ? $upgrade_set[0]->code_num : unserialize($upgrade_set[0]->code_num)) ?: []; + foreach($level_list as $key => $level) { + if($code_num['level_'.$level->id]) { + (new UpgradeService())->senCode($agency->uid, $code_num['level_'.$level->id], $level->id, $level->level_name); + } + } + \Log::debug('激活码'); + } + } + + //代理商升级通知 + (new UpgradeService())->agencyUpgradeNotify($agency->uid, $o_level->level_name, $o_level->dividend_ratio_name, $agency->level); + } + } + } + + } \ No newline at end of file