Browse Source

feat:新增用户

WangJiaHui 2 months ago
parent
commit
77a9ec42d6

+ 75 - 0
src/main/java/com/joa/backend/constant/UserConstants.java

@@ -0,0 +1,75 @@
+package com.joa.backend.constant;
+
+public class UserConstants {
+    /**
+     * 平台内系统用户的唯一标志
+     */
+    public static final String SYS_USER = "SYS_USER";
+
+    /** 正常状态 */
+    public static final String NORMAL = "0";
+
+    /** 异常状态 */
+    public static final String EXCEPTION = "1";
+
+    /** 用户封禁状态 */
+    public static final String USER_DISABLE = "1";
+
+    /** 角色正常状态 */
+    public static final String ROLE_NORMAL = "0";
+
+    /** 角色封禁状态 */
+    public static final String ROLE_DISABLE = "1";
+
+    /** 部门正常状态 */
+    public static final String DEPT_NORMAL = "0";
+
+    /** 部门停用状态 */
+    public static final String DEPT_DISABLE = "1";
+
+    /** 字典正常状态 */
+    public static final String DICT_NORMAL = "0";
+
+    /** 是否为系统默认(是) */
+    public static final String YES = "Y";
+
+    /** 是否菜单外链(是) */
+    public static final String YES_FRAME = "0";
+
+    /** 是否菜单外链(否) */
+    public static final String NO_FRAME = "1";
+
+    /** 菜单类型(目录) */
+    public static final String TYPE_DIR = "M";
+
+    /** 菜单类型(菜单) */
+    public static final String TYPE_MENU = "C";
+
+    /** 菜单类型(按钮) */
+    public static final String TYPE_BUTTON = "F";
+
+    /** Layout组件标识 */
+    public final static String LAYOUT = "Layout";
+
+    /** ParentView组件标识 */
+    public final static String PARENT_VIEW = "ParentView";
+
+    /** InnerLink组件标识 */
+    public final static String INNER_LINK = "InnerLink";
+
+    /** 校验是否唯一的返回标识 */
+    public final static boolean UNIQUE = true;
+    public final static boolean NOT_UNIQUE = false;
+
+    /**
+     * 用户名长度限制
+     */
+    public static final int USERNAME_MIN_LENGTH = 2;
+    public static final int USERNAME_MAX_LENGTH = 20;
+
+    /**
+     * 密码长度限制
+     */
+    public static final int PASSWORD_MIN_LENGTH = 5;
+    public static final int PASSWORD_MAX_LENGTH = 20;
+}

+ 17 - 3
src/main/java/com/joa/backend/controller/SysUserController.java

@@ -4,12 +4,13 @@ import com.joa.backend.constant.HttpStatus;
 import com.joa.backend.entity.SysUser;
 import com.joa.backend.service.ISysUserService;
 import com.joa.backend.utils.ResultUtils;
+import com.joa.backend.utils.SecurityUtils;
+import com.joa.backend.utils.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
 
 @RestController
 @RequestMapping("/sys/user")
@@ -23,4 +24,17 @@ public class SysUserController {
     public ResultUtils list(SysUser sysUser){
         return new ResultUtils(HttpStatus.SUCCESS,"请求成功",userService.selectSysUserAll(sysUser));
     }
+
+    @PostMapping
+    public ResultUtils add(@RequestBody SysUser sysUser){
+        if (!userService.checkUserNameUnique(sysUser)){
+            return ResultUtils.error("新增用户:"+sysUser.getUserName()+"失败,登陆账号已存在");
+        }
+        else if (StringUtils.isNotEmpty(sysUser.getPhone()) && !userService.checkPhoneUnique(sysUser)) {
+            return ResultUtils.error("新增用户:"+sysUser.getUserName()+"失败,手机号码已存在");
+        }else if (StringUtils.isNotEmpty(sysUser.getEmail()) && !userService.checkEmailUnique(sysUser)){
+            return ResultUtils.error("新增用户:"+sysUser.getUserName()+"失败,邮箱账号已存在");
+        }
+//        sysUser.setCreateBy(SecurityUtils);
+    }
 }

+ 17 - 0
src/main/java/com/joa/backend/mapper/SysUserMapper.java

@@ -7,5 +7,22 @@ import java.util.List;
 
 @Mapper
 public interface SysUserMapper {
+
+
     List<SysUser> selectSysUserAll(SysUser sysUser);
+
+    /**
+     * 校验用户名是否唯一
+     */
+    SysUser checkUserNameUnique(String userName);
+
+    /**
+     * 校验手机号是否唯一
+     */
+    SysUser checkPhoneUnique(String phone);
+
+    /**
+     * 校验邮箱是否唯一
+     */
+    SysUser checkEmailUnique(String email);
 }

+ 6 - 0
src/main/java/com/joa/backend/service/ISysUserService.java

@@ -6,4 +6,10 @@ import java.util.List;
 
 public interface ISysUserService {
     List<SysUser> selectSysUserAll(SysUser sysUser);
+
+    boolean checkUserNameUnique(SysUser sysUser);
+
+    boolean checkPhoneUnique(SysUser sysUser);
+
+    boolean checkEmailUnique(SysUser sysUser);
 }

+ 35 - 0
src/main/java/com/joa/backend/service/impl/SysUserServiceImpl.java

@@ -1,8 +1,11 @@
 package com.joa.backend.service.impl;
 
+import com.joa.backend.constant.UserConstants;
 import com.joa.backend.entity.SysUser;
 import com.joa.backend.mapper.SysUserMapper;
 import com.joa.backend.service.ISysUserService;
+import com.joa.backend.utils.StringUtils;
+import io.netty.util.internal.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -16,4 +19,36 @@ public class SysUserServiceImpl implements ISysUserService {
     public List<SysUser> selectSysUserAll(SysUser sysUser) {
         return sysUserMapper.selectSysUserAll(sysUser);
     }
+
+    @Override
+    public boolean checkUserNameUnique(SysUser sysUser) {
+        Long userId = StringUtils.isNull(sysUser.getUserId()) ? -1L : sysUser.getUserId();
+        SysUser info = sysUserMapper.checkUserNameUnique(sysUser.getUserName());
+        if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()){
+            return UserConstants.NOT_UNIQUE;
+        }
+        return UserConstants.UNIQUE;
+    }
+
+    @Override
+    public boolean checkPhoneUnique(SysUser sysUser) {
+        Long userId = StringUtils.isNull(sysUser.getUserId()) ? -1L : sysUser.getUserId();
+        SysUser info = sysUserMapper.checkPhoneUnique(sysUser.getPhone());
+        if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()){
+            return UserConstants.NOT_UNIQUE;
+        }
+        return UserConstants.UNIQUE;
+    }
+
+    @Override
+    public boolean checkEmailUnique(SysUser sysUser) {
+        Long userId = StringUtils.isNull(sysUser.getUserId()) ? -1L : sysUser.getUserId();
+        SysUser info = sysUserMapper.checkEmailUnique(sysUser.getEmail());
+        if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()){
+            return UserConstants.NOT_UNIQUE;
+        }
+        return UserConstants.UNIQUE;
+    }
+
+
 }

+ 1 - 0
src/main/java/com/joa/backend/utils/SecurityUtils.java

@@ -1,6 +1,7 @@
 package com.joa.backend.utils;
 
 import com.joa.backend.constant.Constants;
+import com.joa.backend.constant.HttpStatus;
 import org.springframework.util.PatternMatchUtils;
 
 import java.util.Collection;

+ 1 - 1
src/main/resources/application.properties

@@ -37,7 +37,7 @@ spring.datasource.druid.stat-view-servlet.login-password=1xcVhgzDruid!
 spring.datasource.druid.stat-view-servlet.allow=
 
 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
-spring.datasource.url=jdbc:mysql://localhost:3306/joa?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+spring.datasource.url=jdbc:mysql://123.249.88.169:3306/joa?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
 spring.datasource.username=root
 spring.datasource.password=1xcVhgzMysql!
 

+ 12 - 0
src/main/resources/mappers/SysUserMapper.xml

@@ -63,4 +63,16 @@
 
 
     </select>
+
+    <select id="checkUserNameUnique" parameterType="String" resultMap="SysUserResult">
+        select user_id,user_name from sys_user where user_name = #{userName} and del_flag = '0' limit 1
+    </select>
+
+    <select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult">
+        select user_id,phone from sys_user where phone = #{phone} and del_flag = '0' limit 1
+    </select>+
+
+    <select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
+        select user_id,email from sys_user where email = #{email} and del_flag = '0' limit 1
+    </select>
 </mapper>