增加参数校验

This commit is contained in:
HandsomeNo2
2023-06-30 14:56:46 +08:00
parent a0183d1265
commit c602c6abc6
7 changed files with 46 additions and 12 deletions

View File

@@ -1,11 +1,11 @@
package com.abin.mallchat.common.common.utils;
import cn.hutool.core.util.ObjectUtil;
import com.abin.mallchat.common.common.exception.BusinessErrorEnum;
import com.abin.mallchat.common.common.exception.BusinessException;
import com.abin.mallchat.common.common.exception.CommonErrorEnum;
import com.abin.mallchat.common.common.exception.ErrorEnum;
import com.abin.mallchat.common.common.exception.*;
import lombok.SneakyThrows;
import org.hibernate.validator.HibernateValidator;
import org.springframework.validation.BindException;
import org.springframework.validation.BindingResult;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
@@ -43,21 +43,41 @@ public class AssertUtil {
}
/**
* 注解验证参数(全部校验,返回异常信息集合)
* 注解验证参数(全部校验,抛出异常)
* @param obj
*/
public static <T> List<String> allCheckValidate(T obj) {
public static <T> void allCheckValidateThrow(T obj) {
Set<ConstraintViolation<T>> constraintViolations = validator.validate(obj);
if (constraintViolations.size() > 0) {
List<String> errorMessages = new LinkedList<String>();
StringBuilder errorMsg = new StringBuilder();
Iterator<ConstraintViolation<T>> iterator = constraintViolations.iterator();
while (iterator.hasNext()) {
ConstraintViolation<T> violation = iterator.next();
errorMessages.add(violation.getMessage());
//拼接异常信息
errorMsg.append(violation.getPropertyPath().toString()).append(":").append(violation.getMessage()).append(",");
}
//去掉最后一个逗号
throwException(errorMsg.toString().substring(0,errorMsg.length()-1));
}
}
/**
* 注解验证参数(全部校验,返回异常信息集合)
* @param obj
*/
public static <T> Map<String,String> allCheckValidate(T obj) {
Set<ConstraintViolation<T>> constraintViolations = validator.validate(obj);
if (constraintViolations.size() > 0) {
Map<String,String> errorMessages= new HashMap<>();
Iterator<ConstraintViolation<T>> iterator = constraintViolations.iterator();
while (iterator.hasNext()) {
ConstraintViolation<T> violation = iterator.next();
errorMessages.put(violation.getPropertyPath().toString(),violation.getMessage());
}
return errorMessages;
}
return new LinkedList<String>();
return new HashMap<>();
}
//如果不是true则抛异常

View File

@@ -5,7 +5,8 @@ import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.List;
/**
@@ -19,6 +20,8 @@ import java.util.List;
@NoArgsConstructor
public class TextMsgReq {
@NotBlank(message = "内容不能为空")
@Size(max = 5,message = "消息内容过长服务器扛不住啊兄dei")
@ApiModelProperty("消息内容")
private String content;

View File

@@ -6,6 +6,7 @@ import com.abin.mallchat.common.chat.domain.entity.Message;
import com.abin.mallchat.common.chat.domain.entity.msg.FileMsgDTO;
import com.abin.mallchat.common.chat.domain.entity.msg.MessageExtra;
import com.abin.mallchat.common.chat.domain.enums.MessageTypeEnum;
import com.abin.mallchat.common.common.utils.AssertUtil;
import com.abin.mallchat.custom.chat.domain.vo.request.ChatMessageReq;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -29,6 +30,8 @@ public class FileMsgHandler extends AbstractMsgHandler {
@Override
public void checkMsg(ChatMessageReq request, Long uid) {
FileMsgDTO body = BeanUtil.toBean(request.getBody(), FileMsgDTO.class);
AssertUtil.allCheckValidateThrow(body);
}
@Override

View File

@@ -6,6 +6,7 @@ import com.abin.mallchat.common.chat.domain.entity.Message;
import com.abin.mallchat.common.chat.domain.entity.msg.ImgMsgDTO;
import com.abin.mallchat.common.chat.domain.entity.msg.MessageExtra;
import com.abin.mallchat.common.chat.domain.enums.MessageTypeEnum;
import com.abin.mallchat.common.common.utils.AssertUtil;
import com.abin.mallchat.custom.chat.domain.vo.request.ChatMessageReq;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -29,6 +30,8 @@ public class ImgMsgHandler extends AbstractMsgHandler {
@Override
public void checkMsg(ChatMessageReq request, Long uid) {
ImgMsgDTO body = BeanUtil.toBean(request.getBody(), ImgMsgDTO.class);
AssertUtil.allCheckValidateThrow(body);
}
@Override

View File

@@ -6,6 +6,7 @@ import com.abin.mallchat.common.chat.domain.entity.Message;
import com.abin.mallchat.common.chat.domain.entity.msg.MessageExtra;
import com.abin.mallchat.common.chat.domain.entity.msg.SoundMsgDTO;
import com.abin.mallchat.common.chat.domain.enums.MessageTypeEnum;
import com.abin.mallchat.common.common.utils.AssertUtil;
import com.abin.mallchat.custom.chat.domain.vo.request.ChatMessageReq;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -29,6 +30,8 @@ public class SoundMsgHandler extends AbstractMsgHandler {
@Override
public void checkMsg(ChatMessageReq request, Long uid) {
SoundMsgDTO body = BeanUtil.toBean(request.getBody(), SoundMsgDTO.class);
AssertUtil.allCheckValidateThrow(body);
}
@Override

View File

@@ -57,8 +57,7 @@ public class TextMsgHandler extends AbstractMsgHandler {
@Override
public void checkMsg(ChatMessageReq request, Long uid) {
TextMsgReq body = BeanUtil.toBean(request.getBody(), TextMsgReq.class);
AssertUtil.isNotEmpty(body.getContent(), "内容不能为空");
AssertUtil.isTrue(body.getContent().length() < 500, "消息内容过长服务器扛不住啊兄dei");
AssertUtil.allCheckValidateThrow(body);
//校验下回复消息
if (Objects.nonNull(body.getReplyMsgId())) {
Message replyMsg = messageDao.getById(body.getReplyMsgId());

View File

@@ -6,6 +6,7 @@ import com.abin.mallchat.common.chat.domain.entity.Message;
import com.abin.mallchat.common.chat.domain.entity.msg.MessageExtra;
import com.abin.mallchat.common.chat.domain.entity.msg.VideoMsgDTO;
import com.abin.mallchat.common.chat.domain.enums.MessageTypeEnum;
import com.abin.mallchat.common.common.utils.AssertUtil;
import com.abin.mallchat.custom.chat.domain.vo.request.ChatMessageReq;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -29,6 +30,8 @@ public class VideoMsgHandler extends AbstractMsgHandler {
@Override
public void checkMsg(ChatMessageReq request, Long uid) {
VideoMsgDTO body = BeanUtil.toBean(request.getBody(), VideoMsgDTO.class);
AssertUtil.allCheckValidateThrow(body);
}
@Override