From 296c7616eaa0cb51227325936073276491e0168c Mon Sep 17 00:00:00 2001 From: xiongxiaoyang <773861846@qq.com> Date: Tue, 22 Dec 2020 23:30:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E6=95=B0=E6=8D=AE=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exception/CommonExceptionHandler.java | 17 ++++++++++---- .../java2nb/novel/common/valid/AddGroup.java | 11 +++++++++ .../novel/common/valid/UpdateGroup.java | 11 +++++++++ .../com/java2nb/novel/user/entity/User.java | 18 +++++++++++++++ .../novel/user/controller/UserController.java | 20 +++++----------- .../novel/user/service/UserService.java | 23 +++++++++---------- .../user/service/impl/UserServiceImpl.java | 21 ++++++++--------- 7 files changed, 79 insertions(+), 42 deletions(-) create mode 100644 novel-common/src/main/java/com/java2nb/novel/common/valid/AddGroup.java create mode 100644 novel-common/src/main/java/com/java2nb/novel/common/valid/UpdateGroup.java diff --git a/novel-common/src/main/java/com/java2nb/novel/common/exception/CommonExceptionHandler.java b/novel-common/src/main/java/com/java2nb/novel/common/exception/CommonExceptionHandler.java index 78e7204..95e6431 100644 --- a/novel-common/src/main/java/com/java2nb/novel/common/exception/CommonExceptionHandler.java +++ b/novel-common/src/main/java/com/java2nb/novel/common/exception/CommonExceptionHandler.java @@ -1,10 +1,11 @@ package com.java2nb.novel.common.exception; import com.java2nb.novel.common.bean.ResultBean; +import com.java2nb.novel.common.enums.ResponseStatus; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.validation.BindException; import org.springframework.web.bind.annotation.ExceptionHandler; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestControllerAdvice; /** * 通用的异常处理器 @@ -13,10 +14,18 @@ import org.springframework.web.bind.annotation.ResponseBody; * @since 2020/5/23 * */ @Slf4j -@ControllerAdvice -@ResponseBody +@RestControllerAdvice public class CommonExceptionHandler { + /** + * 处理后台数据校验异常 + * */ + @ExceptionHandler(BindException.class) + public ResultBean handlerBindException(BindException e){ + log.error(e.getMessage(),e); + return ResultBean.fail(ResponseStatus.PARAM_ERROR); + } + /** * 处理业务异常 * */ diff --git a/novel-common/src/main/java/com/java2nb/novel/common/valid/AddGroup.java b/novel-common/src/main/java/com/java2nb/novel/common/valid/AddGroup.java new file mode 100644 index 0000000..a5ac936 --- /dev/null +++ b/novel-common/src/main/java/com/java2nb/novel/common/valid/AddGroup.java @@ -0,0 +1,11 @@ +package com.java2nb.novel.common.valid; + +/** + * 新增数据的校验分组 + * @author xiongxiaoyang + */ +public interface AddGroup { + + + +} diff --git a/novel-common/src/main/java/com/java2nb/novel/common/valid/UpdateGroup.java b/novel-common/src/main/java/com/java2nb/novel/common/valid/UpdateGroup.java new file mode 100644 index 0000000..f08260f --- /dev/null +++ b/novel-common/src/main/java/com/java2nb/novel/common/valid/UpdateGroup.java @@ -0,0 +1,11 @@ +package com.java2nb.novel.common.valid; + +/** + * 更新数据的校验分组 + * @author xiongxiaoyang + */ +public interface UpdateGroup { + + + +} diff --git a/novel-user/user-api/src/main/java/com/java2nb/novel/user/entity/User.java b/novel-user/user-api/src/main/java/com/java2nb/novel/user/entity/User.java index 3298f42..19fad54 100644 --- a/novel-user/user-api/src/main/java/com/java2nb/novel/user/entity/User.java +++ b/novel-user/user-api/src/main/java/com/java2nb/novel/user/entity/User.java @@ -1,48 +1,66 @@ package com.java2nb.novel.user.entity; +import com.java2nb.novel.common.valid.AddGroup; +import com.java2nb.novel.common.valid.UpdateGroup; import io.swagger.annotations.ApiModelProperty; import javax.annotation.Generated; +import javax.validation.constraints.*; import java.io.Serializable; import java.util.Date; public class User implements Serializable { + + @Null(groups = {AddGroup.class, UpdateGroup.class}) @ApiModelProperty(value = "主键") @Generated("org.mybatis.generator.api.MyBatisGenerator") private Long id; + @NotBlank(groups = {AddGroup.class},message="手机号不能为空!") + @Pattern(groups = {AddGroup.class},regexp="^1[3|4|5|6|7|8|9][0-9]{9}$",message="手机号格式不正确!") @ApiModelProperty(value = "登录名") @Generated("org.mybatis.generator.api.MyBatisGenerator") private String username; + @NotBlank(groups = {AddGroup.class},message="密码不能为空!") + @Null(groups = {UpdateGroup.class}) @ApiModelProperty(value = "登录密码") @Generated("org.mybatis.generator.api.MyBatisGenerator") private String password; + @Null(groups = {AddGroup.class}) @ApiModelProperty(value = "昵称") @Generated("org.mybatis.generator.api.MyBatisGenerator") private String nickName; + @Null(groups = {AddGroup.class}) @ApiModelProperty(value = "用户头像") @Generated("org.mybatis.generator.api.MyBatisGenerator") private String userPhoto; + @Null(groups = {AddGroup.class}) + @Min(value = 0,groups = {UpdateGroup.class}) + @Max(value = 1,groups = {UpdateGroup.class}) @ApiModelProperty(value = "用户性别,0:男,1:女") @Generated("org.mybatis.generator.api.MyBatisGenerator") private Byte userSex; + @Null(groups = {AddGroup.class,UpdateGroup.class}) @ApiModelProperty(value = "账户余额") @Generated("org.mybatis.generator.api.MyBatisGenerator") private Long accountBalance; + @Null(groups = {AddGroup.class,UpdateGroup.class}) @ApiModelProperty(value = "用户状态,0:正常") @Generated("org.mybatis.generator.api.MyBatisGenerator") private Byte status; + @Null(groups = {AddGroup.class,UpdateGroup.class}) @ApiModelProperty(value = "创建时间") @Generated("org.mybatis.generator.api.MyBatisGenerator") private Date createTime; + @Null(groups = {AddGroup.class,UpdateGroup.class}) @ApiModelProperty(value = "更新时间") @Generated("org.mybatis.generator.api.MyBatisGenerator") private Date updateTime; diff --git a/novel-user/user-service/src/main/java/com/java2nb/novel/user/controller/UserController.java b/novel-user/user-service/src/main/java/com/java2nb/novel/user/controller/UserController.java index cb4a7c7..6aac2ff 100644 --- a/novel-user/user-service/src/main/java/com/java2nb/novel/user/controller/UserController.java +++ b/novel-user/user-service/src/main/java/com/java2nb/novel/user/controller/UserController.java @@ -9,6 +9,8 @@ import com.java2nb.novel.common.bean.UserDetails; import com.java2nb.novel.common.cache.CacheService; import com.java2nb.novel.common.enums.ResponseStatus; import com.java2nb.novel.common.utils.RandomValidateCodeUtil; +import com.java2nb.novel.common.valid.AddGroup; +import com.java2nb.novel.common.valid.UpdateGroup; import com.java2nb.novel.user.entity.User; import com.java2nb.novel.user.entity.UserFeedback; import com.java2nb.novel.user.feign.BookFeignClient; @@ -22,6 +24,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.validation.BindingResult; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; @@ -54,13 +57,7 @@ public class UserController extends BaseController { */ @ApiOperation("用户登陆接口") @GetMapping("login") - public ResultBean> login(@Valid UserForm user, BindingResult result) { - //判断参数是否合法 - if (result.hasErrors()) { - log.info(result.getAllErrors().toString()); - return ResultBean.fail(ResponseStatus.PARAM_ERROR); - } - + public ResultBean login(User user) { //登陆 UserDetails userDetails = userService.login(user); @@ -77,13 +74,8 @@ public class UserController extends BaseController { */ @ApiOperation("用户注册接口") @PostMapping("register") - public ResultBean> register(@Valid UserForm user, @RequestParam(value = "velCode", defaultValue = "") String velCode, BindingResult result) { + public ResultBean register(@Validated({AddGroup.class}) User user, @RequestParam(value = "velCode", defaultValue = "") String velCode) { - //判断参数是否合法 - if (result.hasErrors()) { - log.info(result.getAllErrors().toString()); - return ResultBean.fail(ResponseStatus.PARAM_ERROR); - } //判断验证码是否正确 if (!velCode.equals(cacheService.get(RandomValidateCodeUtil.RANDOM_CODE_KEY))) { @@ -250,7 +242,7 @@ public class UserController extends BaseController { * */ @ApiOperation("人信息更新接口") @PostMapping("updateUserInfo") - public ResultBean updateUserInfo(User user, HttpServletRequest request) { + public ResultBean updateUserInfo(@Validated({UpdateGroup.class}) User user, HttpServletRequest request) { UserDetails userDetails = getUserDetails(request); if (userDetails == null) { return ResultBean.fail(ResponseStatus.NO_LOGIN); diff --git a/novel-user/user-service/src/main/java/com/java2nb/novel/user/service/UserService.java b/novel-user/user-service/src/main/java/com/java2nb/novel/user/service/UserService.java index e787a5e..742b2fb 100644 --- a/novel-user/user-service/src/main/java/com/java2nb/novel/user/service/UserService.java +++ b/novel-user/user-service/src/main/java/com/java2nb/novel/user/service/UserService.java @@ -29,12 +29,18 @@ public interface UserService { User queryByUsernameAndPassword(String username, String password); /** - * 用户登陆 - * - * @param form 用户登陆提交信息类 + * 用户注册 + * @param user 用户注册信息类 * @return jwt载体信息类 - */ - UserDetails login(UserForm form); + * */ + UserDetails register(User user); + + /** + * 用户登陆 + * @param user 用户登陆信息类 + * @return jwt载体信息类 + * */ + UserDetails login(User user); /** @@ -45,13 +51,6 @@ public interface UserService { */ List queryById(List ids); - /** - * 用户注册 - * - * @param form 用户注册提交信息类 - * @return jwt载体信息类 - */ - UserDetails register(UserForm form); /** * 查询小说是否已加入书架 diff --git a/novel-user/user-service/src/main/java/com/java2nb/novel/user/service/impl/UserServiceImpl.java b/novel-user/user-service/src/main/java/com/java2nb/novel/user/service/impl/UserServiceImpl.java index ec757ea..9621f45 100644 --- a/novel-user/user-service/src/main/java/com/java2nb/novel/user/service/impl/UserServiceImpl.java +++ b/novel-user/user-service/src/main/java/com/java2nb/novel/user/service/impl/UserServiceImpl.java @@ -79,9 +79,9 @@ public class UserServiceImpl implements UserService { } @Override - public UserDetails login(UserForm form) { + public UserDetails login(User user) { //根据用户名密码查询记录 - User user = queryByUsernameAndPassword(form.getUsername(), form.getPassword()); + user = queryByUsernameAndPassword(user.getUsername(), user.getPassword()); if (user == null) { throw new BusinessException(ResponseStatus.USERNAME_PASS_ERROR); } @@ -89,7 +89,7 @@ public class UserServiceImpl implements UserService { UserDetails userDetails = new UserDetails(); userDetails.setId(user.getId()); userDetails.setNickName(user.getNickName()); - userDetails.setUsername(form.getUsername()); + userDetails.setUsername(user.getUsername()); return userDetails; } @@ -104,11 +104,11 @@ public class UserServiceImpl implements UserService { } @Override - public UserDetails register(UserForm form) { + public UserDetails register(User user) { //查询用户名是否已注册 SelectStatementProvider selectStatement = select(count(UserDynamicSqlSupport.id)) .from(UserDynamicSqlSupport.user) - .where(UserDynamicSqlSupport.username, isEqualTo(form.getUsername())) + .where(UserDynamicSqlSupport.username, isEqualTo(user.getUsername())) .build() .render(RenderingStrategies.MYBATIS3); long count = userMapper.count(selectStatement); @@ -117,7 +117,7 @@ public class UserServiceImpl implements UserService { throw new BusinessException(ResponseStatus.USERNAME_EXIST); } User entity = new User(); - BeanUtils.copyProperties(form, entity); + BeanUtils.copyProperties(user, entity); //数据库生成注册记录 Long id = new IdWorker().nextId(); entity.setId(id); @@ -304,12 +304,9 @@ public class UserServiceImpl implements UserService { @Override public void updateUserInfo(Long userId, User user) { - User updateUser = new User(); - updateUser.setId(userId); - updateUser.setNickName(user.getNickName()); - updateUser.setUserSex(user.getUserSex()); - updateUser.setUpdateTime(new Date()); - userMapper.updateByPrimaryKeySelective(updateUser); + user.setId(userId); + user.setUpdateTime(new Date()); + userMapper.updateByPrimaryKeySelective(user); }