SpringBoot 在线协同办公小程序开发 全栈式项目实战

108 阅读1分钟

SpringBoot 在线协同办公小程序开发 全栈式项目实战

V:ititit111222333

`/**

  • @author Administrator */ @Api(value = "注册登录", tags = {"用于注册登录的相关接口"}) @RestController @RequestMapping({"/user"}) public class UserController {

    @Autowired private UserService userService;

    @ApiOperation(value = "用户名是否存在", notes = "用户名是否存在", httpMethod = "GET") @GetMapping("/queryUserNameIsExist") private IMOOCJSONResult queryUserNameIsExist(@RequestParam String username) { // 1. 判断用户名不能为空,为空则报错 if (StringUtils.isBlank(username)) { return IMOOCJSONResult.errorMsg("用户名不能为空"); } // 2. 查询用户在数据库中是否存在,存在则报错 boolean isExist = userService.queryUserNameIsExist(username); if (isExist) { return IMOOCJSONResult.errorMsg("用户名已存在");

     }
     // 3. 其余情况都是没有的情况,可以进行新增
     return IMOOCJSONResult.ok();
    

    }

    @ApiOperation(value = "用户注册", notes = "用户注册", httpMethod = "POST") @PostMapping("/register") public IMOOCJSONResult insertUser(@RequestBody UserBO userBO, HttpServletRequest request, HttpServletResponse response) {

     String username = userBO.getUsername();
     String password = userBO.getPassword();
     String confirmPassword = userBO.getConfirmPassword();
    
     // 1. 判断用户名和密码不为空
     if (StringUtils.isBlank(username) || StringUtils.isBlank(password) || StringUtils.isBlank(confirmPassword)) {
         return IMOOCJSONResult.errorMsg("用户名或密码不能为空");
     }
     // 2. 查询用户名是否存在
     boolean isExist = userService.queryUserNameIsExist(username);
     if (isExist) {
         return IMOOCJSONResult.errorMsg("用户名已存在");
     }
     // 3. 校验密码不能小于6位
     if (password.length() < PassWordConstants.SIX) {
         return IMOOCJSONResult.errorMsg("密码不能小于六位");
     }
     // 4. 确认密码是否一致
     if (!password.equals(confirmPassword)) {
         return IMOOCJSONResult.errorMsg("两次密码不一致");
     }
     // 5. 实现注册
     Users users = userService.insertUser(userBO);
    
     // 5. 设置敏感信息
     Users registerUser = setNullProperty(users);
    
     // 6.设置cookie信息
     CookieUtils.setCookie(request, response, "user", JsonUtils.objectToJson(registerUser), true);
    
     // 7. 返回注册后的用户id,便于前端做校验
     return IMOOCJSONResult.ok(registerUser.getId());
    

    }

    @ApiOperation(value = "用户登录", notes = "用户登录", httpMethod = "POST") @PostMapping("/login") public IMOOCJSONResult login(@RequestBody UserBO userBO, HttpServletRequest request, HttpServletResponse response) throws Exception {

     String username = userBO.getUsername();
     String password = userBO.getPassword();
    
     // 1. 判断用户名和密码不为空
     if (StringUtils.isBlank(username) || StringUtils.isBlank(password)) {
         return IMOOCJSONResult.errorMsg("用户名或密码不能为空");
     }
     // 2. 查询用户名是否存在
     Users loginUser = userService.queryUserForLogin(username, MD5Utils.getMD5Str(password));
     if (Objects.isNull(loginUser)) {
         return IMOOCJSONResult.errorMsg("用户名或密码不正确");
     }
     // 设置cookie
     CookieUtils.setCookie(request, response, "user", JsonUtils.objectToJson(loginUser), true);
     // 3. 登录用户信息
     return IMOOCJSONResult.ok(setNullProperty(loginUser));
    

    }

    //************************************************** 私有方法 ***********************************************//

    private Users setNullProperty(Users userResult) { userResult.setPassword(null); userResult.setMobile(null); userResult.setEmail(null); userResult.setCreatedTime(null); userResult.setUpdatedTime(null); userResult.setBirthday(null); return userResult; }

}`