yang 4 tahun lalu
induk
melakukan
267b063b1d

+ 41 - 8
lift-system-service/src/main/java/cn/com/ty/lift/system/settings/service/impl/MaintenanceCompanyServiceImpl.java

@@ -2,6 +2,7 @@ package cn.com.ty.lift.system.settings.service.impl;
 
 import cn.com.ty.lift.common.constants.ApiConstants;
 import cn.com.ty.lift.common.constants.CommonEnum;
+import cn.com.ty.lift.common.constants.DefaultMenuConstants;
 import cn.com.ty.lift.common.utils.ProjectUtils;
 import cn.com.ty.lift.system.homepage.dao.dto.request.LiftDataRequest;
 import cn.com.ty.lift.system.homepage.dao.dto.response.LiftDataResponse;
@@ -11,14 +12,20 @@ import cn.com.ty.lift.system.homepage.dao.model.CountDataModel;
 import cn.com.ty.lift.system.homepage.dao.model.LiftMapDataModel;
 import cn.com.ty.lift.system.settings.dao.entity.MaintenanceCompany;
 import cn.com.ty.lift.system.settings.dao.entity.MtCompanyAttestation;
-import cn.com.ty.lift.system.settings.dao.entity.model.*;
+import cn.com.ty.lift.system.settings.dao.entity.model.CompanyActiveVo;
+import cn.com.ty.lift.system.settings.dao.entity.model.ConfirmCompanyResponse;
+import cn.com.ty.lift.system.settings.dao.entity.model.MaintenanceCompanyRequest;
+import cn.com.ty.lift.system.settings.dao.entity.model.TeamInfoResponse;
 import cn.com.ty.lift.system.settings.dao.mapper.MaintenanceCompanyMapper;
 import cn.com.ty.lift.system.settings.service.IMaintenanceCompanyService;
 import cn.com.ty.lift.system.settings.service.IMtCompanyAttestationService;
 import cn.com.ty.lift.system.user.dao.entity.MtCompanyUser;
 import cn.com.ty.lift.system.user.dao.entity.Role;
+import cn.com.ty.lift.system.user.dao.entity.RoleMenu;
 import cn.com.ty.lift.system.user.dao.entity.UserRole;
+import cn.com.ty.lift.system.user.dao.entity.model.MenuRequest;
 import cn.com.ty.lift.system.user.service.*;
+import cn.com.ty.lift.system.user.service.impl.RoleMenuService;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -74,6 +81,9 @@ public class MaintenanceCompanyServiceImpl extends ServiceImpl<MaintenanceCompan
     @Resource
     private MtCompanyAttestationServiceImpl mtCompanyAttestationServiceImpl;
 
+    @Resource
+    private RoleMenuService roleMenuService;
+
     @Override
     public RestResponse list(MaintenanceCompanyRequest maintenanceCompanyRequest) {
         IPage<MaintenanceCompany> maintenanceCompanyPage = new Page<>(
@@ -149,7 +159,7 @@ public class MaintenanceCompanyServiceImpl extends ServiceImpl<MaintenanceCompan
     public RestResponse updateMaintenanceCompany(MaintenanceCompanyRequest maintenanceCompanyRequest) {
         //获取公司id,前端传的字段是id
         MtCompanyAttestation mtCompanyAttestation = mtCompanyAttestationService.getById(maintenanceCompanyRequest.getId());
-        if(mtCompanyAttestation == null){
+        if (mtCompanyAttestation == null) {
             return RestResponse.fail(ApiConstants.RESULT_ERROR, "用户申请信息不存在");
         }
         Long companyId = mtCompanyAttestation.getMtCompanyId();
@@ -165,17 +175,40 @@ public class MaintenanceCompanyServiceImpl extends ServiceImpl<MaintenanceCompan
         //更新企业菜单信息
         String menuIds = menuService.getAllMenuButtonIds(maintenanceCompanyRequest.getMenuIds());
         // 重新分配菜单和角色
-        CompanyAttestationRequest companyAttestationRequest = new CompanyAttestationRequest();
-        companyAttestationRequest.setDefaultAssign(0);
-        companyAttestationRequest.setMenuIds(menuIds);
-        //删除原有分配的角色
-        roleService.remove(new QueryWrapper<Role>().lambda().eq(Role::getCompanyId, companyId));
+        menuService.companyMenu(new MenuRequest(companyId, menuIds));
         //重新分配菜单和角色
-        mtCompanyAttestationServiceImpl.assignRoleAndMenu(companyAttestationRequest, companyId);
+        assignRoleAndMenu(companyId, menuIds);
         this.updateById(maintenanceCompany);
         return RestResponse.success(null, ApiConstants.RESULT_SUCCESS, "更新公司信息成功");
     }
 
+    @SuppressWarnings("all")
+    private RestResponse assignRoleAndMenu(Long companyId, String menuIds) {
+        //公司分配菜单
+        menuService.companyMenu(new MenuRequest(companyId, menuIds));
+        //获取当前企业的企业管理员,设置企业管理员菜单
+        Role enterpriseAdminRole = roleService.getOne(new QueryWrapper<Role>()
+                .eq("company_id", companyId)
+                .eq("code", CommonEnum.DefaultRole.ENTERPRISE_ADMIN.getCode()));
+        if (enterpriseAdminRole == null) {
+            return RestResponse.fail(ApiConstants.RESULT_ERROR, "企业管理员不存在,无法通过审核");
+        }
+        long[] enterpriseMenuIds = ProjectUtils.getLongIdArrayFromIds(menuIds);
+        DefaultMenuConstants.DEFAULT_ROLE_MENUIDS.put(CommonEnum.DefaultRole.ENTERPRISE_ADMIN.getCode(),
+                enterpriseMenuIds);
+        //只给企业管理员分配
+        List<RoleMenu> needSaveRoleMenuList = new ArrayList<>();
+        for (long menuId : enterpriseMenuIds) {
+            RoleMenu roleMenu = new RoleMenu();
+            roleMenu.setMenuId(menuId);
+            roleMenu.setRoleId(enterpriseAdminRole.getId());
+            needSaveRoleMenuList.add(roleMenu);
+        }
+        roleMenuService.saveBatch(needSaveRoleMenuList);
+        return null;
+    }
+
+
     @Override
     public RestResponse ownList(MaintenanceCompanyRequest maintenanceCompanyRequest) {
         //获取关联关系