diff --git a/app/common/logic/CompanyLogic.php b/app/common/logic/CompanyLogic.php index 02c5a836d..b2c2ddc03 100644 --- a/app/common/logic/CompanyLogic.php +++ b/app/common/logic/CompanyLogic.php @@ -268,7 +268,19 @@ class CompanyLogic extends BaseLogic // 如果更改了公司类型,则更改公司后台账号和前台账号的角色,以及任务安排 $editCompany = Company::where(['id'=>$params['id']])->find(); + + if($editCompany['company_type'] != $params['company_type']) { + if($editCompany['company_type'] == 30){ + // 平台公司 删除用户角色和任务安排 修改用户角色 + Db::rollback(); + throw new Exception('不可将已创建的平台公司变更为其他类型公司'); + } + if($params['company_type'] == 30){ + // 平台公司 删除用户角色和任务安排 修改用户角色 + Db::rollback(); + throw new Exception('不可将已创建的企业变更为平台公司'); + } if($editCompany['company_type']==16){ // 镇合伙人公司 $oldAdminRoleId = 3; @@ -283,7 +295,6 @@ class CompanyLogic extends BaseLogic $oldAdminRoleId = 7; //后台角色 } - if($params['company_type']==16){ $adminRoleId = 3; $userGroupId = 4; @@ -299,13 +310,23 @@ class CompanyLogic extends BaseLogic } // 更新后台账户角色 - AdminRole::where(['admin_id'=>$params['admin_id'], 'role_id'=>$oldAdminRoleId])->update(['role_id'=>$adminRoleId]); + $adminRoleModel = AdminRole::where(['admin_id'=>$params['admin_id'], 'role_id'=>$oldAdminRoleId])->findOrEmpty(); + if (!empty($adminRoleModel)) { + $adminRoleModel->save(['role_id'=>$adminRoleId]); + } // 更新前台账户角色 - User::where(['admin_id'=>$params['admin_id'], 'company_id'=>$editCompany['id']])->update(['group_id'=>$userGroupId]); + $userModel = User::where(['admin_id'=>$params['admin_id'], 'company_id'=>$editCompany['id']])->findOrEmpty(); + if (!empty($userModel)) { + $userModel->save(['group_id'=>$userGroupId]); + } // 更新任务安排公司类型 - TaskScheduling::where(['company_id'=>$params['id'], 'company_type'=>$editCompany['company_type']])->update(['company_type'=>$params['company_type']]); + $taskScheduleModel = TaskScheduling::where(['company_id'=>$params['id'], 'company_type'=>$editCompany['company_type']])->findOrEmpty(); + if (!empty($taskScheduleModel)) { + $taskScheduleModel->save(['company_type'=>$params['company_type']]); + } + } @@ -314,7 +335,7 @@ class CompanyLogic extends BaseLogic // if($params['company_type']==16){ // AdminLogic::insertRole($admin_id, [3]); // } - $user_id=User::where(['admin_id'=>$params['admin_id'], 'company_id'=>$editCompany['id']])->value('id'); + $user_id=User::where(['admin_id'=>$params['admin_id'], 'company_id'=> $params['id']])->value('id'); $arr['admin_id']=$admin_id; $arr['user_id']=$user_id;