Browse Source

feat: 处理异常机制信息

master
niushuai233 3 years ago
parent
commit
2cd42e80d1
  1. 33
      src/main/java/cc/niushuai/bastionserver/common/aspect/AutoLogAspect.java
  2. 2
      src/main/java/cc/niushuai/bastionserver/common/base/controller/BaseController.java
  3. 15
      src/main/java/cc/niushuai/bastionserver/common/exception/BusinessException.java
  4. 2
      src/main/java/cc/niushuai/bastionserver/common/exception/GlobalExceptionHandler.java

33
src/main/java/cc/niushuai/bastionserver/common/aspect/AutoLogAspect.java

@ -1,15 +1,12 @@
package cc.niushuai.bastionserver.common.aspect; package cc.niushuai.bastionserver.common.aspect;
import cc.niushuai.bastionserver.common.api.dto.LogDTO; import cc.niushuai.bastionserver.common.api.dto.LogDTO;
import cc.niushuai.bastionserver.common.api.vo.Result;
import cc.niushuai.bastionserver.common.aspect.annotation.AutoLog; import cc.niushuai.bastionserver.common.aspect.annotation.AutoLog;
import cc.niushuai.bastionserver.common.constant.CommonConstant; import cc.niushuai.bastionserver.common.constant.CommonConstant;
import cc.niushuai.bastionserver.common.constant.enums.ModuleType;
import cc.niushuai.bastionserver.common.constant.enums.OperateTypeEnum; import cc.niushuai.bastionserver.common.constant.enums.OperateTypeEnum;
import cc.niushuai.bastionserver.common.system.vo.LoginUser; import cc.niushuai.bastionserver.common.system.vo.LoginUser;
import cc.niushuai.bastionserver.common.util.IpUtils; import cc.niushuai.bastionserver.common.util.IpUtils;
import cc.niushuai.bastionserver.common.util.SpringContextUtils; import cc.niushuai.bastionserver.common.util.SpringContextUtils;
import cc.niushuai.bastionserver.common.util.oConvertUtils;
import cc.niushuai.bastionserver.modules.base.service.BaseCommonService; import cc.niushuai.bastionserver.modules.base.service.BaseCommonService;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.PropertyFilter; import com.alibaba.fastjson.serializer.PropertyFilter;
@ -73,14 +70,9 @@ public class AutoLogAspect {
LogDTO dto = new LogDTO(); LogDTO dto = new LogDTO();
AutoLog syslog = method.getAnnotation(AutoLog.class); AutoLog syslog = method.getAnnotation(AutoLog.class);
if (syslog != null) { if (syslog != null) {
//update-begin-author:taoyan date:
String content = syslog.value();
if (syslog.module() == ModuleType.ONLINE) {
content = getOnlineLogContent(obj, content);
}
// 注解上的描述,操作日志内容 // 注解上的描述,操作日志内容
dto.setLogType(syslog.logType()); dto.setLogType(syslog.logType());
dto.setLogContent(content); dto.setLogContent(syslog.value());
} }
//请求的方法名 //请求的方法名
@ -181,29 +173,6 @@ public class AutoLogAspect {
return params; return params;
} }
/**
* online日志内容拼接
*
* @param obj
* @param content
* @return
*/
private String getOnlineLogContent(Object obj, String content) {
if (Result.class.isInstance(obj)) {
Result res = (Result) obj;
String msg = res.getMessage();
String tableName = res.getOnlTable();
if (oConvertUtils.isNotEmpty(tableName)) {
content += ",表名:" + tableName;
}
if (res.isSuccess()) {
content += "," + (oConvertUtils.isEmpty(msg) ? "操作成功" : msg);
} else {
content += "," + (oConvertUtils.isEmpty(msg) ? "操作失败" : msg);
}
}
return content;
}
/* private void saveSysLog(ProceedingJoinPoint joinPoint, long time, Object obj) { /* private void saveSysLog(ProceedingJoinPoint joinPoint, long time, Object obj) {

2
src/main/java/cc/niushuai/bastionserver/common/base/controller/BaseController.java

@ -251,7 +251,7 @@ public class BaseController<T, S extends IService<T>> {
boolean exists = service.getBaseMapper().exists(wrapper); boolean exists = service.getBaseMapper().exists(wrapper);
if (exists) { if (exists) {
throw new BusinessException("数据已存在"); throw new BusinessException("数据库中已存在该记录");
} }
} }

15
src/main/java/cc/niushuai/bastionserver/common/exception/BusinessException.java

@ -16,16 +16,13 @@ public class BusinessException extends RuntimeException {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private int code; private Integer code;
private String message; private String message;
private Object[] params; private Object[] params;
public BusinessException(String message) { public BusinessException(String message) {
super(message); this.code = CommonConstant.INTERNAL_SERVER_ERROR_500;
} this.message = message;
public BusinessException(Throwable cause) {
super(cause);
} }
public BusinessException(int code, String message) { public BusinessException(int code, String message) {
@ -34,17 +31,15 @@ public class BusinessException extends RuntimeException {
} }
public BusinessException(String message, Object... params) { public BusinessException(String message, Object... params) {
super(message);
this.code = CommonConstant.INTERNAL_SERVER_ERROR_500; this.code = CommonConstant.INTERNAL_SERVER_ERROR_500;
this.params = params;
this.message = StrUtil.format(message, params); this.message = StrUtil.format(message, params);
this.params = params;
} }
public BusinessException(int code, String message, Object... params) { public BusinessException(int code, String message, Object... params) {
super(message);
this.code = code; this.code = code;
this.params = params;
this.message = StrUtil.format(message, params); this.message = StrUtil.format(message, params);
this.params = params;
} }
public BusinessException(String message, Throwable cause) { public BusinessException(String message, Throwable cause) {

2
src/main/java/cc/niushuai/bastionserver/common/exception/GlobalExceptionHandler.java

@ -93,7 +93,7 @@ public class GlobalExceptionHandler {
public Result<?> handleDataIntegrityViolationException(DataIntegrityViolationException e) { public Result<?> handleDataIntegrityViolationException(DataIntegrityViolationException e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
//【issues/3624】数据库执行异常handleDataIntegrityViolationException提示有误 #3624 //【issues/3624】数据库执行异常handleDataIntegrityViolationException提示有误 #3624
return Result.error("执行数据库异常,违反了完整性例如:违反一约束、违反非空限制、字段内容超出长度等"); return Result.error("执行数据库异常,违反了完整性例如:违反一约束、违反非空限制、字段内容超出长度等");
} }
@ExceptionHandler(PoolException.class) @ExceptionHandler(PoolException.class)

Loading…
Cancel
Save