Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/dev2' into dev2

chendayu 2 anni fa
parent
commit
540c88f309

+ 7 - 1
PCS/src/main/java/cn/cslg/permission/controller/TenantController.java

@@ -26,7 +26,13 @@ public class TenantController {
     @PostMapping("/add")
     @Operation(summary = "新增租户")
     public String addApplication(@RequestBody TenantVO tenantVo) {
-        return tenantService.addTenant(tenantVo);
+        Integer flag = tenantService.addTenant(tenantVo);
+        if(flag>0){
+            return  Response.success("租户新增成功");
+        }
+        else{
+            return  Response.success("租户管理员的账号已经存在");
+        }
     }
 
     @PostMapping("/addByInvitation")

+ 5 - 1
PCS/src/main/java/cn/cslg/permission/domain/Invitation.java

@@ -61,6 +61,10 @@ public class Invitation extends Model {
      */
     @TableField(value = "ADDRESS")
     private String address;
-
+    /**
+     * 联系人地址
+     */
+    @TableField(value = "COMPANY_NAME")
+    private String companyName;
 
 }

+ 51 - 8
PCS/src/main/java/cn/cslg/permission/service/TenantService.java

@@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.swagger.v3.oas.models.security.SecurityScheme;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.context.annotation.Lazy;
@@ -47,15 +48,17 @@ public class TenantService extends ServiceImpl<TenantEntityMapper, Tenant> {
     private final TenantService tenantService;
     private final InvitationService invitationService;
     private final LoginUtils loginUtils;
+    private final RoleService roleService;
+
     @Transactional(rollbackFor = Exception.class)
-    public String addTenant(TenantVO tenantVO) {
+    public Integer addTenant(TenantVO tenantVO) {
         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 Response.error("管理员账号已存在");
+            return -1;
         }
         //租户表保存租户信息
         Tenant tenant = new Tenant();
@@ -144,7 +147,7 @@ public class TenantService extends ServiceImpl<TenantEntityMapper, Tenant> {
         List<Integer> roles = new ArrayList<>();
         roles.add(role.getId());
         personRoleService.addAssociatePerRole(roles, personnel.getId());
-        return Response.success(true);
+        return tenant.getId();
     }
 
     @Transactional(rollbackFor = Exception.class)
@@ -216,6 +219,7 @@ public class TenantService extends ServiceImpl<TenantEntityMapper, Tenant> {
         List<Tenant> tenantPeople = this.list(lambdaQueryWrapper);
         return Response.success(setTenantToVO(tenantPeople));
     }
+
     public String queryPageList(TenantVO tenantVO) {
         LambdaQueryWrapper<Tenant> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.and((wrapper) -> wrapper.like(Tenant::getTenantName, tenantVO.getName())
@@ -279,7 +283,7 @@ public class TenantService extends ServiceImpl<TenantEntityMapper, Tenant> {
         }
         return tenantVOs;
     }
-
+    @Transactional(rollbackFor = Exception.class)
     public void addByInvitation(TenantVO tenantVo) {
         //根据邀请码查询是否存在
         LambdaQueryWrapper<Invitation> wrapper = new LambdaQueryWrapper<>();
@@ -307,13 +311,52 @@ public class TenantService extends ServiceImpl<TenantEntityMapper, Tenant> {
         if (tenantVo.getAddress() == null || tenantVo.getAddress().equals("")) {
             tenantVo.setAddress(invitation.getAddress());
         }
-        this.addTenant(tenantVo);
-        invitation.setIsInvalid(1);
+        //租户id
+        Integer tenantId =invitation.getTenant();
+        if (tenantId != null) {
+            //根据租户id获得租户管理员id
+            LambdaQueryWrapper<Role> wrapper1 = new LambdaQueryWrapper<>();
+            wrapper1.eq(Role::getTenantId, invitation.getTenant())
+                    .eq(Role::getRoleType, 2);
+            List<Role> roles = roleService.list(wrapper1);
+            if (roles.size() == 0) {
+                ThrowException.throwXiaoShiException("租户已创建,但未有租户管理员角色");
+            }
+            //保存管理员用户
+            PersonnelVO personnelVO1 = new PersonnelVO();
+            personnelVO1
+                    .setUsername(tenantVo.getUsername())
+                    .setName(tenantVo.getContacts())
+                    .setEmail(tenantVo.getEmail())
+                    .setState(tenantVo.getState())
+                    .setPassword(tenantVo.getPassword())
+                    .setTenant(tenantVo.getId())
+                    .setAddType(1);
+          Personnel  personnel = personnelService.addPersonnel(personnelVO1);
+            Role role = roles.get(0);
+            List<Integer> temrole = new ArrayList<>();
+            temrole.add(role.getId());
+            personRoleService.addAssociatePerRole(temrole, personnel.getId());
+        }
+        else {
+             tenantId = this.addTenant(tenantVo);
+            if(tenantId<0){
+                ThrowException.throwXiaoShiException("人员的账号已存在");
+            }
+            //查找同公司的激活码
+            invitation.setIsInvalid(1);
+            //邀请码表更新信息
+            invitation.updateById();
 
+        }
+        //查找同公司的激活码
+        invitation.setIsInvalid(1);
         //邀请码表更新信息
         invitation.updateById();
-        //return Response.success("添加成功");
-
+        //更新所有该公司的激活码的租户id
+        UpdateWrapper<Invitation> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("COMPANY_NAME",invitation.getCompanyName()).set("TENANT", tenantId);
+        invitationService.update(null, updateWrapper);
     }
 
     public Invitation queryByInvitation(String invitation) {