From a10a934b40bcfba738527c85220dc2b16b26a8c4 Mon Sep 17 00:00:00 2001 From: GYJ <1157756119@qq.com> Date: Mon, 10 Feb 2025 10:44:46 +0800 Subject: [PATCH] =?UTF-8?q?cors=20=E5=BC=82=E5=B8=B8=E6=8B=A6=E6=88=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cash-api/api-config/pom.xml | 8 ++++ .../main/java/com/czg/config/CorsFilter.java | 28 ++++++++++++ .../czg/exception/CzgControllerAdvice.java | 45 +++++++++++++++++++ cash-api/pom.xml | 6 +++ .../czg/controller/SysParamController.java | 43 ++++++++++++++++++ .../czg/service/system/dto/SysParamsDTO.java | 11 +++++ .../service/impl/SysParamsServiceImpl.java | 7 +-- 7 files changed, 145 insertions(+), 3 deletions(-) create mode 100644 cash-api/api-config/src/main/java/com/czg/config/CorsFilter.java create mode 100644 cash-api/api-config/src/main/java/com/czg/exception/CzgControllerAdvice.java create mode 100644 cash-api/system-server/src/main/java/com/czg/controller/SysParamController.java diff --git a/cash-api/api-config/pom.xml b/cash-api/api-config/pom.xml index 46d17c12..5f077a7b 100644 --- a/cash-api/api-config/pom.xml +++ b/cash-api/api-config/pom.xml @@ -19,7 +19,15 @@ + + org.projectlombok + lombok + + + com.czg + cash-common-tools + diff --git a/cash-api/api-config/src/main/java/com/czg/config/CorsFilter.java b/cash-api/api-config/src/main/java/com/czg/config/CorsFilter.java new file mode 100644 index 00000000..38e0cac8 --- /dev/null +++ b/cash-api/api-config/src/main/java/com/czg/config/CorsFilter.java @@ -0,0 +1,28 @@ +package com.czg.config; + +import jakarta.servlet.*; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.context.annotation.Configuration; + +import java.io.IOException; + +/** + * @author GYJoker + */ +@Configuration +public class CorsFilter implements Filter { + @Override + public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) + throws IOException, ServletException { + HttpServletResponse response = (HttpServletResponse) resp; + HttpServletRequest reqs = (HttpServletRequest) req; + String curOrigin = reqs.getHeader("Origin"); + response.setHeader("Access-Control-Allow-Origin", curOrigin == null ? "true" : curOrigin); + response.setHeader("Access-Control-Allow-Methods", "*"); + response.setHeader("Access-Control-Max-Age", "3600"); + response.setHeader("Access-Control-Allow-Headers", "token"); + response.setHeader("Access-Control-Allow-Credentials", "true"); + chain.doFilter(req, resp); + } +} diff --git a/cash-api/api-config/src/main/java/com/czg/exception/CzgControllerAdvice.java b/cash-api/api-config/src/main/java/com/czg/exception/CzgControllerAdvice.java new file mode 100644 index 00000000..907b11a5 --- /dev/null +++ b/cash-api/api-config/src/main/java/com/czg/exception/CzgControllerAdvice.java @@ -0,0 +1,45 @@ +package com.czg.exception; + +import com.czg.resp.CzgRespCode; +import com.czg.resp.CzgResult; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.support.DefaultMessageSourceResolvable; +import org.springframework.http.HttpStatus; +import org.springframework.validation.ObjectError; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author GYJoker + */ +@RestControllerAdvice +@Slf4j +public class CzgControllerAdvice { + @ResponseBody + @ExceptionHandler(value = Exception.class) + @ResponseStatus(HttpStatus.OK) + public CzgResult errorHandler(Exception ex) { + setErrorLog(ex); + return CzgResult.failure(CzgRespCode.SYSTEM_ERROR); + } + + @ResponseBody + @ExceptionHandler(MethodArgumentNotValidException.class) + @ResponseStatus(HttpStatus.OK) + public CzgResult requestParamException(MethodArgumentNotValidException ex) { + setErrorLog(ex); + List allErrors = ex.getBindingResult().getAllErrors(); + String message = allErrors.stream().map(DefaultMessageSourceResolvable::getDefaultMessage).collect(Collectors.joining(";")); + return CzgResult.failure(CzgRespCode.PARAM_ERROR.getCode(), message); + } + + private void setErrorLog(Exception ex) { + log.error(ex.getMessage()); + } +} diff --git a/cash-api/pom.xml b/cash-api/pom.xml index bbc3aaa3..c3bba76f 100644 --- a/cash-api/pom.xml +++ b/cash-api/pom.xml @@ -41,5 +41,11 @@ tomcat-embed-core + + com.czg + api-config + 1.0.0 + + diff --git a/cash-api/system-server/src/main/java/com/czg/controller/SysParamController.java b/cash-api/system-server/src/main/java/com/czg/controller/SysParamController.java new file mode 100644 index 00000000..61a72bc3 --- /dev/null +++ b/cash-api/system-server/src/main/java/com/czg/controller/SysParamController.java @@ -0,0 +1,43 @@ +package com.czg.controller; + +import com.czg.group.InsertGroup; +import com.czg.group.UpdateGroup; +import com.czg.resp.CzgResult; +import com.czg.service.system.dto.SysParamsDTO; +import com.czg.service.system.service.SysParamsService; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +/** + * @author GYJoker + */ +@RequestMapping("/admin/sysParams") +@RestController +public class SysParamController { + + @Resource + private SysParamsService sysParamsService; + + /** + * 新增参数 + * + * @param paramsDTO 参数 + * @return 新增结果 + */ + @PostMapping + public CzgResult insertParams(@RequestBody @Validated({InsertGroup.class}) SysParamsDTO paramsDTO) { + return sysParamsService.insertParams(paramsDTO); + } + + /** + * 修改参数 + * @param paramsDTO 参数 + * @return 修改结果 + */ + @PutMapping + public CzgResult updateParams(@RequestBody @Validated({UpdateGroup.class}) SysParamsDTO paramsDTO) { + return sysParamsService.updateParams(paramsDTO); + } + +} diff --git a/cash-service/system-service/src/main/java/com/czg/service/system/dto/SysParamsDTO.java b/cash-service/system-service/src/main/java/com/czg/service/system/dto/SysParamsDTO.java index 9e90c113..cb86e8cb 100644 --- a/cash-service/system-service/src/main/java/com/czg/service/system/dto/SysParamsDTO.java +++ b/cash-service/system-service/src/main/java/com/czg/service/system/dto/SysParamsDTO.java @@ -1,5 +1,9 @@ package com.czg.service.system.dto; +import com.czg.group.InsertGroup; +import com.czg.group.UpdateGroup; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Data; /** @@ -7,9 +11,16 @@ import lombok.Data; */ @Data public class SysParamsDTO { + @NotNull(message = "id不能为空", groups = {UpdateGroup.class}) private Long id; + + @NotBlank(message = "参数编码不能为空", groups = {UpdateGroup.class, InsertGroup.class}) private String paramCode; + + @NotBlank(message = "参数值不能为空", groups = {UpdateGroup.class, InsertGroup.class}) private String paramValue; + + @NotNull(message = "参数类型不能为空", groups = {UpdateGroup.class, InsertGroup.class}) private Integer paramType; private String remark; } diff --git a/cash-service/system-service/src/main/java/com/czg/service/system/service/impl/SysParamsServiceImpl.java b/cash-service/system-service/src/main/java/com/czg/service/system/service/impl/SysParamsServiceImpl.java index 53de9e3f..b3de3197 100644 --- a/cash-service/system-service/src/main/java/com/czg/service/system/service/impl/SysParamsServiceImpl.java +++ b/cash-service/system-service/src/main/java/com/czg/service/system/service/impl/SysParamsServiceImpl.java @@ -1,14 +1,13 @@ package com.czg.service.system.service.impl; -import cn.dev33.satoken.session.SaSession; import com.czg.resp.CzgResult; import com.czg.sa.StpKit; import com.czg.service.system.dto.SysParamsDTO; -import com.mybatisflex.core.query.QueryWrapper; -import com.mybatisflex.spring.service.impl.ServiceImpl; import com.czg.service.system.entity.SysParams; import com.czg.service.system.mapper.SysParamsMapper; import com.czg.service.system.service.SysParamsService; +import com.mybatisflex.core.query.QueryWrapper; +import com.mybatisflex.spring.service.impl.ServiceImpl; import org.springframework.stereotype.Service; /** @@ -61,6 +60,8 @@ public class SysParamsServiceImpl extends ServiceImpl