|
@@ -336,12 +336,13 @@ public class TenantService extends ServiceImpl<TenantEntityMapper, Tenant> {
|
|
.setTenant(tenantId)
|
|
.setTenant(tenantId)
|
|
.setAddType(1);
|
|
.setAddType(1);
|
|
Personnel personnel = personnelService.addPersonnel(personnelVO1);
|
|
Personnel personnel = personnelService.addPersonnel(personnelVO1);
|
|
|
|
+ invitation.setPersonnelId(personnel.getId());
|
|
Role role = roles.get(0);
|
|
Role role = roles.get(0);
|
|
List<Integer> temrole = new ArrayList<>();
|
|
List<Integer> temrole = new ArrayList<>();
|
|
temrole.add(role.getId());
|
|
temrole.add(role.getId());
|
|
personRoleService.addAssociatePerRole(temrole, personnel.getId());
|
|
personRoleService.addAssociatePerRole(temrole, personnel.getId());
|
|
} else {
|
|
} else {
|
|
- tenantId = this.addTenant(tenantVo);
|
|
|
|
|
|
+ tenantId = this.addTenant2(tenantVo, invitation);
|
|
if (tenantId < 0) {
|
|
if (tenantId < 0) {
|
|
ThrowException.throwXiaoShiException("人员的账号已存在");
|
|
ThrowException.throwXiaoShiException("人员的账号已存在");
|
|
}
|
|
}
|
|
@@ -374,13 +375,13 @@ public class TenantService extends ServiceImpl<TenantEntityMapper, Tenant> {
|
|
if (invitation.getIsInvalid().equals(1)) {
|
|
if (invitation.getIsInvalid().equals(1)) {
|
|
ThrowException.throwXiaoShiException("邀请码已被使用");
|
|
ThrowException.throwXiaoShiException("邀请码已被使用");
|
|
}
|
|
}
|
|
- //保存管理员用户
|
|
|
|
|
|
+ //保存管理员用户
|
|
Integer personId = invitation.getPersonnelId();
|
|
Integer personId = invitation.getPersonnelId();
|
|
- if(personId==null){
|
|
|
|
|
|
+ if (personId == null) {
|
|
ThrowException.throwXiaoShiException("此邀请码初始数据有误,请联系管理员");
|
|
ThrowException.throwXiaoShiException("此邀请码初始数据有误,请联系管理员");
|
|
}
|
|
}
|
|
//根据人员id获得人员信息
|
|
//根据人员id获得人员信息
|
|
- Personnel personnel =personnelService.getById(personId);
|
|
|
|
|
|
+ Personnel personnel = personnelService.getById(personId);
|
|
personnel.setPersonnelPassword(SecureUtil.md5(tenantVo.getPassword()));
|
|
personnel.setPersonnelPassword(SecureUtil.md5(tenantVo.getPassword()));
|
|
personnel.setPersonnelStatus(1);
|
|
personnel.setPersonnelStatus(1);
|
|
personnel.updateById();
|
|
personnel.updateById();
|
|
@@ -403,4 +404,105 @@ public class TenantService extends ServiceImpl<TenantEntityMapper, Tenant> {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ public Integer addTenant2(TenantVO tenantVO, Invitation invitation) {
|
|
|
|
+ Personnel personnel = new Personnel();
|
|
|
|
+
|
|
|
|
+ LambdaQueryWrapper<Personnel> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
+ queryWrapper.eq(Personnel::getPersonnelUserName, tenantVO.getUsername());
|
|
|
|
+ List<Personnel> personnelList = personnelService.list(queryWrapper);
|
|
|
|
+ if (personnelList.size() != 0) {
|
|
|
|
+ return -1;
|
|
|
|
+ }
|
|
|
|
+ //租户表保存租户信息
|
|
|
|
+ Tenant tenant = new Tenant();
|
|
|
|
+ tenant
|
|
|
|
+ .setTenantName(tenantVO.getName())
|
|
|
|
+ .setTenantAddress(tenantVO.getAddress())
|
|
|
|
+ .setTenantContacts(tenantVO.getContacts())
|
|
|
|
+ .setTenantEmail(tenantVO.getEmail())
|
|
|
|
+ .setTenantDescription((tenantVO.getDescribe()))
|
|
|
|
+ .setTenantQuota((tenantVO.getNumber()))
|
|
|
|
+ .setTenantStatus(tenantVO.getState())
|
|
|
|
+ .setTenantType(tenantVO.getType())
|
|
|
|
+ .setTenantVipType(tenantVO.getTenantVipType());
|
|
|
|
+ if (tenantVO.getAddType() == null) {
|
|
|
|
+ tenant.setCreateUser(StpUtil.getLoginIdAsInt());
|
|
|
|
+ }
|
|
|
|
+ boolean suc = tenant.insert();
|
|
|
|
+ if (suc) {
|
|
|
|
+ //更新客户
|
|
|
|
+ if (tenantVO.getClientId() != null && tenantVO.getClientId() > 0) {
|
|
|
|
+ Client client = clientService.getById(tenantVO.getClientId());
|
|
|
|
+ client.setTenantId(tenant.getId());
|
|
|
|
+ client.updateById();
|
|
|
|
+ }
|
|
|
|
+ //保存管理员用户
|
|
|
|
+ PersonnelVO personnelVO1 = new PersonnelVO();
|
|
|
|
+ personnelVO1
|
|
|
|
+ .setUsername(tenantVO.getUsername())
|
|
|
|
+ .setName(tenantVO.getContacts())
|
|
|
|
+ .setEmail(tenantVO.getEmail())
|
|
|
|
+ .setState(tenantVO.getState())
|
|
|
|
+ .setPassword(tenantVO.getPassword())
|
|
|
|
+ .setTenant(tenant.getId())
|
|
|
|
+ .setAddType(1);
|
|
|
|
+ personnel = personnelService.addPersonnel(personnelVO1);
|
|
|
|
+ invitation.setPersonnelId(personnel.getId());
|
|
|
|
+ tenant.setPersonnelId(personnel.getId());
|
|
|
|
+ tenant.updateById();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //角色功能权限关联表,角色表保存信息
|
|
|
|
+ //根据租户会员类型查询功能权限
|
|
|
|
+ Integer tenantVipType = tenantVO.getTenantVipType();
|
|
|
|
+ List<AssoTenantVipTypeAndFunctionVO> assoTenantVipTypeAndFunctionVOS = assoTenantVipTypeFunctionMapper.selectByTenantVipTypeId(tenantVipType);
|
|
|
|
+ List<List<Integer>> functions = new ArrayList<>();
|
|
|
|
+ for (AssoTenantVipTypeAndFunctionVO assoTenantVipTypeAndFunctionVO : assoTenantVipTypeAndFunctionVOS) {
|
|
|
|
+ String functionModifyPath = assoTenantVipTypeAndFunctionVO.getFunctionModifyPath();
|
|
|
|
+ //将以逗号分隔的功能组件树字符串路径转换为Integer集合
|
|
|
|
+ List<Integer> function = Arrays.stream(functionModifyPath.split(",")).map(Integer::parseInt).collect(Collectors.toList());
|
|
|
|
+ functions.add(function);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<RoleVO.Permission> permissions = new ArrayList<>();
|
|
|
|
+ List<Integer> ids = new ArrayList<>(); //作为判断是否有重复functionId的标识
|
|
|
|
+ functions.forEach(item -> {
|
|
|
|
+ if (item.size() > 1) {
|
|
|
|
+ //从第二个开始遍历
|
|
|
|
+ for (int i = 1; i < item.size(); i++) {
|
|
|
|
+ if (!ids.contains(item.get(i))) {
|
|
|
|
+ ids.add(item.get(i));
|
|
|
|
+ RoleVO.Permission permission = new RoleVO.Permission();
|
|
|
|
+ DataVO dataVO = new DataVO();
|
|
|
|
+ dataVO.setId(0);
|
|
|
|
+ permission.setData(dataVO);
|
|
|
|
+ permission.setFunctionId(item.get(i));
|
|
|
|
+ permissions.add(permission);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ RoleVO roleVO = new RoleVO();
|
|
|
|
+ roleVO.setTenant(tenant.getId());
|
|
|
|
+ roleVO.setName(tenantVO.getName() + "管理员");
|
|
|
|
+ roleVO.setRemark("管理租户下所拥有的功能");
|
|
|
|
+ roleVO.setPermissionData(permissions);
|
|
|
|
+ Role role = new Role();
|
|
|
|
+ role
|
|
|
|
+ .setRoleName(roleVO.getName())
|
|
|
|
+ .setRoleDescription(roleVO.getRemark())
|
|
|
|
+ .setTenantId(roleVO.getTenant())
|
|
|
|
+ .setRoleType(2);
|
|
|
|
+ role.insert();
|
|
|
|
+ roleVO.setId(role.getId());
|
|
|
|
+ roleFunctionDataService.add(roleVO);
|
|
|
|
+ List<Integer> roles = new ArrayList<>();
|
|
|
|
+ roles.add(role.getId());
|
|
|
|
+ personRoleService.addAssociatePerRole(roles, personnel.getId());
|
|
|
|
+ return tenant.getId();
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|