From 60e36fb1d13433e877ad9f610fd0240ff752b085 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 11 Nov 2025 11:45:05 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/user/UShopUserController.java | 6 ++- .../user/UShopConsumeDiscountController.java | 20 ++----- .../czg/exception/CzgControllerAdvice.java | 12 ++++- .../com/czg/market/entity/SmsPushEvent.java | 2 +- .../czg/exception/OrderValidateException.java | 39 ++++++++++++++ .../service/impl/ShopUserFlowServiceImpl.java | 2 - .../service/impl/OrderInfoServiceImpl.java | 53 ++++++++++--------- 7 files changed, 85 insertions(+), 49 deletions(-) create mode 100644 cash-common/cash-common-tools/src/main/java/com/czg/exception/OrderValidateException.java diff --git a/cash-api/account-server/src/main/java/com/czg/controller/user/UShopUserController.java b/cash-api/account-server/src/main/java/com/czg/controller/user/UShopUserController.java index aa193c67..abd891ed 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/user/UShopUserController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/user/UShopUserController.java @@ -3,7 +3,10 @@ package com.czg.controller.user; import com.czg.account.dto.shopuser.ShopUserAddDTO; import com.czg.account.dto.shopuser.ShopUserDetailDTO; import com.czg.account.dto.shopuser.ShopUserVipCardDTO; -import com.czg.account.entity.*; +import com.czg.account.entity.MemberPointsLog; +import com.czg.account.entity.ShopInfo; +import com.czg.account.entity.ShopUser; +import com.czg.account.entity.ShopUserFlow; import com.czg.account.service.MemberPointsLogService; import com.czg.account.service.ShopUserFlowService; import com.czg.account.service.UShopUserService; @@ -16,7 +19,6 @@ import com.czg.sa.StpKit; import com.czg.utils.MyQueryWrapper; import com.czg.utils.PageUtil; import com.mybatisflex.core.paginate.Page; -import com.mybatisflex.core.query.QueryCondition; import com.mybatisflex.core.query.QueryWrapper; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; diff --git a/cash-api/market-server/src/main/java/com/czg/controller/user/UShopConsumeDiscountController.java b/cash-api/market-server/src/main/java/com/czg/controller/user/UShopConsumeDiscountController.java index da06588b..34e99387 100644 --- a/cash-api/market-server/src/main/java/com/czg/controller/user/UShopConsumeDiscountController.java +++ b/cash-api/market-server/src/main/java/com/czg/controller/user/UShopConsumeDiscountController.java @@ -1,26 +1,14 @@ package com.czg.controller.user; -import com.czg.account.dto.shopuser.ShopUserAddDTO; -import com.czg.account.dto.shopuser.ShopUserDetailDTO; -import com.czg.account.dto.shopuser.ShopUserVipCardDTO; -import com.czg.account.entity.MemberPointsLog; -import com.czg.account.entity.ShopUser; -import com.czg.account.entity.ShopUserFlow; -import com.czg.account.service.MemberPointsLogService; -import com.czg.account.service.PointsExchangeRecordService; -import com.czg.account.service.ShopUserFlowService; -import com.czg.account.service.ShopUserService; -import com.czg.annotation.Debounce; import com.czg.market.entity.MkShopConsumeDiscountRecord; import com.czg.market.service.MkShopConsumeDiscountRecordService; import com.czg.resp.CzgResult; import com.czg.sa.StpKit; -import com.czg.utils.PageUtil; -import com.mybatisflex.core.paginate.Page; -import com.mybatisflex.core.query.QueryWrapper; import jakarta.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; /** * 新客立减相关 diff --git a/cash-common/cash-common-api-config/src/main/java/com/czg/exception/CzgControllerAdvice.java b/cash-common/cash-common-api-config/src/main/java/com/czg/exception/CzgControllerAdvice.java index b674dd51..352c205a 100644 --- a/cash-common/cash-common-api-config/src/main/java/com/czg/exception/CzgControllerAdvice.java +++ b/cash-common/cash-common-api-config/src/main/java/com/czg/exception/CzgControllerAdvice.java @@ -113,6 +113,14 @@ public class CzgControllerAdvice { return CzgResult.failure(ex.getCode(), ex.getMsg()); } + @ResponseBody + @ExceptionHandler(OrderValidateException.class) + @ResponseStatus(HttpStatus.OK) + public CzgResult handleOrderValidateException(OrderValidateException ex) { + log.error("订单校验异常:{}", ex.getMessage()); + return CzgResult.failure(ex.getCode(), ex.getMsg()); + } + /** * 支付成功 * 支付金额为零的统一处理 @@ -127,7 +135,7 @@ public class CzgControllerAdvice { */ @ExceptionHandler(OrderCancelException.class) public CzgResult handleOrderCancelException() { - return CzgResult.failure(701,"订单已过期,请重新下单"); + return CzgResult.failure(701, "订单已过期,请重新下单"); } /** @@ -155,6 +163,6 @@ public class CzgControllerAdvice { private void setErrorLog(Exception ex) { log.error(ex.getMessage()); - log.error("错误",ex); + log.error("错误", ex); } } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SmsPushEvent.java b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SmsPushEvent.java index 056f6fbb..98efa890 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SmsPushEvent.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SmsPushEvent.java @@ -68,7 +68,7 @@ public class SmsPushEvent implements Serializable { private String userId; /** - * 0待发送 1 发送中 2发送成功 -1失败 + * 0待发送 1 发送中 2发送完成 -1失败 */ private Integer status; diff --git a/cash-common/cash-common-tools/src/main/java/com/czg/exception/OrderValidateException.java b/cash-common/cash-common-tools/src/main/java/com/czg/exception/OrderValidateException.java new file mode 100644 index 00000000..269637f8 --- /dev/null +++ b/cash-common/cash-common-tools/src/main/java/com/czg/exception/OrderValidateException.java @@ -0,0 +1,39 @@ +package com.czg.exception; + +import com.czg.resp.CzgRespCode; + +import java.io.Serial; + +/** + * @author ww + * @description + */ +public class OrderValidateException extends RuntimeException{ + @Serial + private static final long serialVersionUID = 1L; + + private int code; + private String msg; + + public OrderValidateException(String msg) { + super(msg); + this.code = CzgRespCode.FAILURE.getCode(); + this.msg = msg; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopUserFlowServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopUserFlowServiceImpl.java index ec761f88..b7e46ec1 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopUserFlowServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopUserFlowServiceImpl.java @@ -5,9 +5,7 @@ import cn.hutool.poi.excel.ExcelWriter; import com.czg.account.entity.ShopUserFlow; import com.czg.account.service.ShopInfoService; import com.czg.account.service.ShopUserFlowService; -import com.czg.account.service.ShopUserService; import com.czg.account.vo.ShopUserFlowVO; -import com.czg.account.vo.SysUserDetailVO; import com.czg.service.account.mapper.ShopUserFlowMapper; import com.czg.utils.PageUtil; import com.github.pagehelper.PageHelper; diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java index 60b11b97..0f49f40e 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java @@ -23,6 +23,7 @@ import com.czg.enums.ShopUserFlowBizEnum; import com.czg.exception.ApiNotPrintException; import com.czg.exception.CzgException; import com.czg.exception.OrderCancelException; +import com.czg.exception.OrderValidateException; import com.czg.market.dto.MkDiscountActivityDTO; import com.czg.market.entity.MkDiscountThreshold; import com.czg.market.entity.MkShopCouponRecord; @@ -342,17 +343,17 @@ public class OrderInfoServiceImpl extends ServiceImpl 0 || param.getPointsDiscountAmount().compareTo(BigDecimal.ZERO) > 0; if (usePointsDeduction) { if (pointSetting == null || !pointSetting.getEnableDeduction().equals(1)) { - throw new ValidateException("生成支付订单失败,该店铺未开启积分抵扣"); + throw new OrderValidateException("生成支付订单失败,该店铺未开启积分抵扣"); } if (param.getUserId() == null) { - throw new ValidateException("生成支付订单失败,请选择用户后再使用积分抵扣"); + throw new OrderValidateException("生成支付订单失败,请选择用户后再使用积分抵扣"); } //霸王餐 if (param.isFreeDine() && !param.isWithPoints()) { - throw new ValidateException("生成支付订单失败,霸王餐不支持积分抵扣"); + throw new OrderValidateException("生成支付订单失败,霸王餐不支持积分抵扣"); } } else { if (param.getPointsNum() != 0 || param.getPointsDiscountAmount().compareTo(BigDecimal.ZERO) != 0) { - throw new ValidateException("生成支付订单失败,积分抵扣数量或金额不正确"); + throw new OrderValidateException("生成支付订单失败,积分抵扣数量或金额不正确"); } } if (param.getPointsNum() > 0 && (!param.isFreeDine() || param.isWithPoints())) { if (pointSetting == null || !pointSetting.getEnableDeduction().equals(1)) { - throw new ValidateException("生成支付订单失败,该店铺未开启积分抵扣"); + throw new OrderValidateException("生成支付订单失败,该店铺未开启积分抵扣"); } if (param.getUserId() == null) { - throw new ValidateException("生成支付订单失败,请选择用户后再使用积分抵扣"); + throw new OrderValidateException("生成支付订单失败,请选择用户后再使用积分抵扣"); } } else if (param.getPointsDiscountAmount().compareTo(BigDecimal.ZERO) > 0) { - throw new ValidateException("生成支付订单失败,已使用积分抵扣,积分数量不正确"); + throw new OrderValidateException("生成支付订单失败,已使用积分抵扣,积分数量不正确"); } ShopUser shopUser = null; if (param.getUserId() != null) { @@ -399,14 +400,14 @@ public class OrderInfoServiceImpl extends ServiceImpl 0 && !shopUser.getIsVip().equals(1) && pointSetting.getDeductionGroup().contains("vip")) { - throw new ValidateException("生成支付订单失败,该店铺仅会员可使用积分抵扣"); + throw new OrderValidateException("生成支付订单失败,该店铺仅会员可使用积分抵扣"); } orderInfo.setUserId(userInfo.getId()); } //会员价校验 if (param.isVipPrice() && (shopUser == null || shopUser.getIsMemberPrice() == null || shopUser.getIsMemberPrice() == 0 || shopUser.getIsVip().equals(0))) { - throw new ValidateException("生成支付订单失败,仅会员可使用会员价"); + throw new OrderValidateException("生成支付订单失败,仅会员可使用会员价"); } List orderDetails = orderDetailService.queryChain().eq(OrderDetail::getOrderId, param.getOrderId()).select().list(); @@ -430,7 +431,7 @@ public class OrderInfoServiceImpl extends ServiceImpl 0) { if (pointSetting.getMinPaymentAmount().compareTo(newTotalAmount) > 0) { - throw new ValidateException("生成支付订单失败,未满足积分抵扣最低门槛"); + throw new OrderValidateException("生成支付订单失败,未满足积分抵扣最低门槛"); } if (pointSetting.getMaxDeductionRatio().multiply(newTotalAmount).compareTo(param.getPointsDiscountAmount()) < 0) { - throw new ValidateException("生成支付订单失败,积分抵扣金额已超出最大抵扣金额"); + throw new OrderValidateException("生成支付订单失败,积分抵扣金额已超出最大抵扣金额"); } BigDecimal pointAmount = new BigDecimal(param.getPointsNum()).divide(new BigDecimal(pointSetting.getEquivalentPoints()), 2, RoundingMode.DOWN); if (pointAmount.compareTo(param.getPointsDiscountAmount()) != 0) { - throw new ValidateException("生成支付订单失败,积分抵扣金额不正确"); + throw new OrderValidateException("生成支付订单失败,积分抵扣金额不正确"); } newTotalAmount = newTotalAmount.subtract(param.getPointsDiscountAmount()); } @@ -529,7 +530,7 @@ public class OrderInfoServiceImpl extends ServiceImpl list = couponRecordService.list(couponRecordQuery); if (CollUtil.isEmpty(list) || param.getCouponList().size() > list.size()) { - throw new ValidateException("生成支付订单失败,优惠券不可用"); + throw new OrderValidateException("生成支付订单失败,优惠券不可用"); } Map couponRecordMap = list.stream().collect(Collectors.toMap(MkShopCouponRecord::getType, t -> t)); AtomicBoolean otherCouponShare = new AtomicBoolean(true); @@ -636,7 +637,7 @@ public class OrderInfoServiceImpl extends ServiceImpl couponFoodIds = new ArrayList<>(); @@ -653,7 +654,7 @@ public class OrderInfoServiceImpl extends ServiceImpl