Browse Source

用户管理接口 接口

chejianzheng 3 months ago
parent
commit
9ecd2f457f

+ 3 - 0
portal-service-common/src/main/java/com/hfln/portal/common/request/tenant/TenantAdminAddParam.java

@@ -31,4 +31,7 @@ public class TenantAdminAddParam {
 
     @Schema(description = "用户名")
     private String userName;
+
+    @Schema(description = "主键id, 有就是更新,没有就是新增")
+    private Long userId;
 }

+ 39 - 16
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/WebTenantGatewayImpl.java

@@ -156,24 +156,47 @@ public class WebTenantGatewayImpl implements WebTenantGateway {
     }
 
     @Override
+    @Transactional
     public void addTenantAdmin(TenantAdminAddParam req) {
-        // 1. 检查账号是否已存在
-        AdminUserInfo exist = adminUserService.queryByAccount(req.getAccount());
-        if (Objects.nonNull(exist)) {
-            throw new BizException(ErrorEnum.USER_ALREADY_EXISTS.getErrorCode(), ErrorEnum.USER_ALREADY_EXISTS.getErrorMessage());
+
+        if (req.getUserId() == null) {
+            // 1. 检查账号是否已存在
+            AdminUserInfo exist = adminUserService.queryByAccount(req.getAccount());
+            if (Objects.nonNull(exist)) {
+                throw new BizException(ErrorEnum.USER_ALREADY_EXISTS.getErrorCode(), ErrorEnum.USER_ALREADY_EXISTS.getErrorMessage());
+            }
+            //2.保存新用户到 admin_user_info 表
+            AdminUserInfo adminUserInfo = CopyUtils.copy(req, AdminUserInfo.class);
+            adminUserInfo.setPassword(PasswordUtil.encrypt(req.getPassword()));
+            adminUserInfo.setUserType(AdminUserType.USER_ADMIN.getCode());
+            adminUserInfo.setTenantId(req.getTenantId());
+            adminUserService.save(adminUserInfo);
+
+            //3.保存用户角色到 tbl_user_role 表
+            TblUserRole userRole = new TblUserRole();
+            userRole.setUserId(adminUserInfo.getUserId());
+            userRole.setRoleId(req.getRoleId());
+            tblUserRoleService.save(userRole);
+        } else {
+
+            AdminUserInfo exist = adminUserService.queryByAccount(req.getAccount());
+            if (exist != null && exist.getUserId() != req.getUserId()) {
+                throw new BizException(ErrorEnum.USER_ALREADY_EXISTS.getErrorCode(), ErrorEnum.USER_ALREADY_EXISTS.getErrorMessage());
+            }
+            //2.保存新用户到 admin_user_info 表
+            BeanUtils.copyProperties(req, exist);
+            exist.setPassword(PasswordUtil.encrypt(req.getPassword()));
+            exist.setUserType(AdminUserType.USER_ADMIN.getCode());
+            exist.setTenantId(req.getTenantId());
+            adminUserService.updateAllById(exist);
+
+            //3.保存用户角色到 tbl_user_role 表
+            tblUserRoleService.delByUserId(exist.getUserId());
+            TblUserRole userRole = new TblUserRole();
+            userRole.setUserId(exist.getUserId());
+            userRole.setRoleId(req.getRoleId());
+            tblUserRoleService.save(userRole);
         }
-        //2.保存新用户到 admin_user_info 表
-        AdminUserInfo adminUserInfo = CopyUtils.copy(req, AdminUserInfo.class);
-        adminUserInfo.setPassword(PasswordUtil.encrypt(req.getPassword()));
-        adminUserInfo.setUserType(AdminUserType.USER_ADMIN.getCode());
-        adminUserInfo.setTenantId(req.getTenantId());
-        adminUserService.save(adminUserInfo);
-
-        //3.保存用户角色到 tbl_user_role 表
-        TblUserRole userRole = new TblUserRole();
-        userRole.setUserId(adminUserInfo.getUserId());
-        userRole.setRoleId(req.getRoleId());
-        tblUserRoleService.save(userRole);
     }
 
     @Override

+ 4 - 0
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mapper/TblUserRoleMapper.java

@@ -2,6 +2,7 @@ package com.hfln.portal.infrastructure.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.hfln.portal.infrastructure.po.TblUserRole;
+import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -9,4 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface TblUserRoleMapper extends BaseMapper<TblUserRole> {
+
+    @Delete("DELETE FROM tbl_user_role WHERE userId = #{userId}")
+    int delByUserId(Long userId);
 } 

+ 2 - 0
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/TblUserRoleService.java

@@ -5,6 +5,8 @@ import com.hfln.portal.infrastructure.po.TblUserRole;
 
 public interface TblUserRoleService extends IService<TblUserRole> {
     TblUserRole getByUserId(Long userId);
+
+    int delByUserId(Long userId);
     // 这里可以扩展自定义方法接口
 
 }

+ 5 - 0
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/TblUserRoleServiceImpl.java

@@ -21,4 +21,9 @@ public class TblUserRoleServiceImpl extends ServiceImpl<TblUserRoleMapper, TblUs
         queryWrapper.eq(TblUserRole::getIsDeleted, BasePO.DeleteFlag.NOT_DELETED);
         return this.baseMapper.selectOne(queryWrapper);
     }
+
+    @Override
+    public int delByUserId(Long userId) {
+        return this.baseMapper.delByUserId(userId);
+    }
 }