Jelajahi Sumber

add:中台增加权限管理(新增账户)

lyx 1 Minggu lalu
induk
melakukan
7071d66638

+ 16 - 0
alien-entity/src/main/java/shop/alien/entity/store/LifeSys.java

@@ -29,6 +29,22 @@ public class LifeSys {
     @ApiModelProperty(value = "角色id")
     private String roleId;
 
+    @ApiModelProperty(value = "真实姓名")
+    @TableField("real_name")
+    private String realName;
+
+    @ApiModelProperty(value = "联系电话")
+    @TableField("phone")
+    private String phone;
+
+    @ApiModelProperty(value = "邮箱")
+    @TableField("email")
+    private String email;
+
+    @ApiModelProperty(value = "所属部门ID")
+    @TableField("department_id")
+    private String departmentId;
+
     @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
     @TableField("delete_flag")
     @TableLogic

+ 48 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/SystemUserAddDto.java

@@ -0,0 +1,48 @@
+package shop.alien.entity.store.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * 系统用户新增DTO
+ *
+ * @author system
+ * @since 2025-12-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "SystemUserAddDto对象", description = "系统用户新增信息")
+public class SystemUserAddDto {
+
+    @ApiModelProperty(value = "用户名", required = true)
+    private String userName;
+
+    @ApiModelProperty(value = "真实姓名", required = true)
+    private String realName;
+
+    @ApiModelProperty(value = "联系电话", required = true)
+    private String phone;
+
+    @ApiModelProperty(value = "邮箱", required = true)
+    private String email;
+
+    @ApiModelProperty(value = "密码(初始密码)", required = true)
+    private String password;
+
+    @ApiModelProperty(value = "角色ID列表(支持多角色选择)", required = true)
+    private String roleIds;
+
+    @ApiModelProperty(value = "所属部门ID", required = true)
+    private String departmentId;
+
+    @ApiModelProperty(value = "备注说明")
+    private String remark;
+
+    @ApiModelProperty(value = "启用状态 1:启用 0:禁用,默认为1")
+    private Integer status = 1;
+}
+

+ 13 - 1
alien-store/src/main/java/shop/alien/store/controller/SystemController.java

@@ -8,7 +8,7 @@ import shop.alien.entity.result.R;
 import shop.alien.entity.store.LifeSys;
 import shop.alien.entity.store.UserLoginInfo;
 import shop.alien.entity.store.dto.SystemLoginDto;
-import shop.alien.entity.store.dto.SystemRegisterDto;
+import shop.alien.entity.store.dto.SystemUserAddDto;
 import shop.alien.entity.store.vo.SystemLoginVo;
 import shop.alien.store.service.SystemService;
 import shop.alien.util.common.TokenInfo;
@@ -53,6 +53,18 @@ public class SystemController {
         return R.success("退出成功");
     }
 
+    @ApiOperation("新增系统用户账号")
+    @ApiOperationSupport(order = 3)
+    @PostMapping(value = "/addUser")
+    public R<LifeSys> addUser(@RequestBody SystemUserAddDto addDto) {
+        log.info("SystemController.addUser => userName={}, realName={}, phone={}, email={}, departmentId={},roleIds={}",
+                addDto.getUserName(), addDto.getRealName(), addDto.getPhone(), 
+                addDto.getEmail(), addDto.getDepartmentId(),addDto.getRoleIds());
+        return systemService.addUser(addDto);
+    }
+
+
+
 /**
  * 废弃
   */

+ 9 - 0
alien-store/src/main/java/shop/alien/store/service/SystemService.java

@@ -3,6 +3,7 @@ package shop.alien.store.service;
 import shop.alien.entity.result.R;
 import shop.alien.entity.store.LifeSys;
 import shop.alien.entity.store.UserLoginInfo;
+import shop.alien.entity.store.dto.SystemUserAddDto;
 import shop.alien.entity.store.vo.SystemLoginVo;
 
 /**
@@ -27,4 +28,12 @@ public interface SystemService {
      */
     R<LifeSys> register(String userName, String password, String roleId);
 
+    /**
+     * 新增系统用户账号
+     *
+     * @param addDto 新增用户信息
+     * @return R<LifeSys>
+     */
+    R<LifeSys> addUser(SystemUserAddDto addDto);
+
 }

+ 56 - 1
alien-store/src/main/java/shop/alien/store/service/impl/SystemServiceImpl.java

@@ -9,6 +9,7 @@ import org.springframework.util.StringUtils;
 import shop.alien.entity.result.R;
 import shop.alien.entity.store.LifeSys;
 import shop.alien.entity.store.UserLoginInfo;
+import shop.alien.entity.store.dto.SystemUserAddDto;
 import shop.alien.entity.store.vo.SystemLoginVo;
 import shop.alien.store.config.BaseRedisService;
 import shop.alien.mapper.LifeSysMapper;
@@ -70,7 +71,7 @@ public class SystemServiceImpl implements SystemService {
         );
         if (lifeSys != null && lifeSys.getUserPassword().equals(encryptToMD5(password))) {
             Map<String, String> tokenMap = new HashMap<>();
-            tokenMap.put("phone", "123456");
+            tokenMap.put("phone", lifeSys.getPhone());
             tokenMap.put("userName", lifeSys.getUserName());
             tokenMap.put("userId", String.valueOf(lifeSys.getId()));
             tokenMap.put("userType", "web");
@@ -130,6 +131,60 @@ public class SystemServiceImpl implements SystemService {
         return R.fail("注册失败,请稍后重试");
     }
 
+    @Override
+    public R<LifeSys> addUser(SystemUserAddDto addDto) {
+        // 校验用户名是否已存在
+        LambdaQueryWrapper<LifeSys> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(LifeSys::getUserName, addDto.getUserName());
+        LifeSys existingUser = lifeSysMapper.selectOne(queryWrapper);
+        if (existingUser != null) {
+            return R.fail("该用户名已存在,请更换其他用户名");
+        }
+
+        // 校验邮箱是否已存在
+        LambdaQueryWrapper<LifeSys> emailQueryWrapper = new LambdaQueryWrapper<>();
+        emailQueryWrapper.eq(LifeSys::getEmail, addDto.getEmail());
+        LifeSys existingEmail = lifeSysMapper.selectOne(emailQueryWrapper);
+        if (existingEmail != null) {
+            return R.fail("该邮箱已被使用,请更换其他邮箱");
+        }
+
+/*        // 校验手机号是否已存在
+        LambdaQueryWrapper<LifeSys> phoneQueryWrapper = new LambdaQueryWrapper<>();
+        phoneQueryWrapper.eq(LifeSys::getPhone, addDto.getPhone());
+        LifeSys existingPhone = lifeSysMapper.selectOne(phoneQueryWrapper);
+        if (existingPhone != null) {
+            return R.fail("该手机号已被使用,请更换其他手机号");
+        }*/
+
+        // 创建新用户
+        LifeSys lifeSys = new LifeSys();
+        lifeSys.setUserName(addDto.getUserName());
+        lifeSys.setRealName(addDto.getRealName());
+        lifeSys.setPhone(addDto.getPhone());
+        lifeSys.setEmail(addDto.getEmail());
+        // 密码使用MD5加密后存储
+//        lifeSys.setUserPassword(encryptToMD5(addDto.getPassword()));
+        lifeSys.setUserPassword(addDto.getPassword());
+
+        // 处理多角色:将角色ID列表转换为逗号分隔的字符串
+        lifeSys.setRoleId(addDto.getRoleIds());
+        
+        lifeSys.setDepartmentId(addDto.getDepartmentId());
+        lifeSys.setRemark(addDto.getRemark());
+        lifeSys.setStatus(addDto.getStatus() != null ? addDto.getStatus() : 1);
+        lifeSys.setDeleteFlag(0); // 未删除
+
+        // 保存用户
+        int result = lifeSysMapper.insert(lifeSys);
+        if (result > 0) {
+            // 清除密码信息,避免返回到前端
+            lifeSys.setUserPassword(null);
+            return R.data(lifeSys, "新增账号成功");
+        }
+        return R.fail("新增账号失败,请稍后重试");
+    }
+
     public static String encryptToMD5(String input) {
         try {
             // 获取 MD5 算法的 MessageDigest 实例