文章目录
JSR303 校验:
分组校验 :
-
首先导入依赖:
<!-- JSR303 校验--> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>2.0.1.Final</version> </dependency> <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> <version>6.0.16.Final</version> </dependency>
-
创建两个分组 一个增加一个更新
package com.ds.common.valid; /** * 新增数据 Group * */ public interface AddGroup { } package com.ds.common.valid; /** * 更新数据 Group * */ public interface UpdateGroup { }
-
之后在要设置的校验的字段上添加校验即可:
package com.ds.model.model; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import java.util.Date; import com.ds.common.valid.AddGroup; import com.ds.common.valid.UpdateGroup; import com.ds.model.model.base.BaseEntity; import lombok.Data; import javax.validation.constraints.Email; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; /** * * * @author ds * @email DS@gmail.com * @date 2023-05-15 09:48:17 */ @Data @TableName("ds_user") public class DsUserEntity extends BaseEntity { private static final long serialVersionUID = 1L; /** * 届 */ @NotNull(message = "届不能为空",groups ={UpdateGroup.class, AddGroup.class} ) private String term; /** * 用户名 */ @NotNull(message = "用户名不能为空",groups ={UpdateGroup.class, AddGroup.class} ) private String username; /** * 学号 */ @NotNull(message = "学号不能为空",groups ={UpdateGroup.class, AddGroup.class} ) private String studentNumber; /** * 性别 */ @NotNull(message = "性别不能为空",groups ={UpdateGroup.class, AddGroup.class}) private String gender; /** * QQ */ @NotNull(message = "QQ不能为空",groups ={UpdateGroup.class, AddGroup.class} ) private String qq; /** * 手机号 */ @NotNull(message = "手机号不能为空",groups ={UpdateGroup.class, AddGroup.class} ) @Pattern(regexp = "^1[3-9]\\d{9}$",message = "必须是一个合法的手机号",groups = {AddGroup.class,UpdateGroup.class}) private String phone; /** * 邮箱 */ @NotNull(message = "邮箱不能为空",groups ={UpdateGroup.class, AddGroup.class} ) @Email(message = "必须是一个合法的邮箱",groups ={UpdateGroup.class, AddGroup.class}) private String mail; /** * 加入年份 */ private String joinTime; /** * 年级和班级 */ @NotNull(message = "年级和班级不能为空",groups ={UpdateGroup.class, AddGroup.class} ) private String gradeAndClass; /** * 离校年份 */ private String graduateTime; /** * 目前所在地 */ private String currentLocation; /** * 目前工作单位 */ private String currentCompany; /** * 岗位 */ private String post; /** * 角色 */ private String role; /** * 钉钉userId */ private String dingUserId; /** * 钉钉部门id */ private Long deptId; /** * 状态(0 表示在工作室,1表示已退出, 2 表示未加入) */ private Integer status; }
-
之后在 接口上标注那个分组 使用 @Validated({AddGroup.class}) 这样就可以在我们调用接口的时候实现对前端传递回来的数据在后端再次进行校验字段值是否正确
/** * 保存 */ @Transactional //事务 @ApiOperation("保存用户信息") @PostMapping("/save") public Result save(@Validated({AddGroup.class}) @RequestBody DsUserEntity dsUser){ if(dsUserService.save(dsUser)){ // 向钉钉中增加用户 DingUser dingUser = new DingUser(); dingUser.setUserid(dsUser.getDingUserId()); dingUser.setName(dsUser.getUsername()); dingUser.setMobile(dsUser.getPhone()); dingUser.setTelephone(dsUser.getPhone()); dingUser.setEmail(dsUser.getMail()); dingUser.setTitle(dsUser.getPost()); List<Long> dept_id = new ArrayList<>(); dept_id.add(dsUser.getDeptId()); dingUser.setDept_id_list(dept_id); Result result = dingFeignClient.addDingUser(dingUser); if(result.getCode()!=200){ throw new ERPException(201,"保存失败"); } } return Result.ok(); }