diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopActivateController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopActivateController.java index 09ce069a3..6abb5a3ab 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopActivateController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopActivateController.java @@ -13,6 +13,7 @@ import java.util.List; /** * 店铺充值活动管理 + * * @author ww * @description */ @@ -29,8 +30,8 @@ public class ShopActivateController { */ @SaAdminCheckPermission("activate:list") @GetMapping - public CzgResult> detail() { - return CzgResult.success(shopActivateService.getList()); + public CzgResult> detail(@RequestParam(required = false) Long shopId) { + return CzgResult.success(shopActivateService.getList(shopId)); } /** diff --git a/cash-api/account-server/src/main/java/com/czg/controller/user/UserShopActivateController.java b/cash-api/account-server/src/main/java/com/czg/controller/user/UserShopActivateController.java index 1a2ae03ab..05b953962 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/user/UserShopActivateController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/user/UserShopActivateController.java @@ -6,6 +6,7 @@ import com.czg.resp.CzgResult; import jakarta.annotation.Resource; 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; import java.util.List; @@ -25,8 +26,8 @@ public class UserShopActivateController { * 店铺充值活动列表 */ @GetMapping - public CzgResult> detail() { - return CzgResult.success(shopActivateService.getList()); + public CzgResult> detail(@RequestParam(required = false) Long shopId) { + return CzgResult.success(shopActivateService.getList(shopId)); } } diff --git a/cash-api/order-server/src/main/java/com/czg/controller/OrderPayController.java b/cash-api/order-server/src/main/java/com/czg/controller/OrderPayController.java index 64f201ec4..a37083d18 100644 --- a/cash-api/order-server/src/main/java/com/czg/controller/OrderPayController.java +++ b/cash-api/order-server/src/main/java/com/czg/controller/OrderPayController.java @@ -121,7 +121,7 @@ public class OrderPayController { * 获取店铺订单支付URL */ @PostMapping("/shopPayApi/orderPayUrl") - public CzgResult getOrderPayUrl(Long shopId, Long orderId, @RequestParam(required = false) String extend, + public CzgResult getOrderPayUrl(@RequestHeader Long shopId, Long orderId, @RequestParam(required = false) String extend, @RequestParam(required = false) CheckOrderPay checkOrderPay) { AssertUtil.isNull(shopId, "店铺id不能为空"); AssertUtil.isNull(orderId, "订单Id不能为空"); diff --git a/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java b/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java index b2cf4a178..d0c397228 100644 --- a/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java +++ b/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java @@ -64,12 +64,14 @@ public class SaTokenConfigure implements WebMvcConfigurer { ApplicationInfo.routePrefix = ""; SaRouter.match("/user/**").notMatch("/user/login", "/user/test", "/user/geo/**", "/user/home/**") + .notMatch("/pay/**") + .notMatch("/notify/**") .check(r -> MyStpLogic.CLIENT_LOGIC.checkLogin()) .setHit(true) // .match("/**") .notMatch("/user/**") + .notMatch("/pay/**") .notMatch("/admin/auth/**") - .notMatch("/notify/**") .check(r -> MyStpLogic.ADMIN_LOGIC.checkLogin()); })).addPathPatterns("/**"); diff --git a/cash-common/cash-common-sa-token/src/main/java/com/czg/sa/MyStpLogic.java b/cash-common/cash-common-sa-token/src/main/java/com/czg/sa/MyStpLogic.java index cb8fc24ef..e49e9a068 100644 --- a/cash-common/cash-common-sa-token/src/main/java/com/czg/sa/MyStpLogic.java +++ b/cash-common/cash-common-sa-token/src/main/java/com/czg/sa/MyStpLogic.java @@ -2,6 +2,7 @@ package com.czg.sa; import cn.dev33.satoken.config.SaTokenConfig; import cn.dev33.satoken.context.SaHolder; +import cn.dev33.satoken.context.model.SaRequest; import cn.dev33.satoken.dao.SaTokenDao; import cn.dev33.satoken.exception.NotPermissionException; import cn.dev33.satoken.fun.SaFunction; @@ -84,8 +85,14 @@ public class MyStpLogic { shopId = info instanceof Long l ? l : null; errType = 0; } else { - String header = SaHolder.getRequest().getHeader("shopId"); - shopId = StrUtil.isBlank(header) ? null : Long.parseLong(header); + SaRequest request = SaHolder.getRequest(); + String requestParam = request.getParam("shopId"); + if (StrUtil.isBlank(requestParam)) { + String header = request.getHeader("shopId"); + shopId = StrUtil.isBlank(header) ? null : Long.parseLong(header); + }else { + shopId = Long.parseLong(requestParam); + } errType = 1; } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopActivateService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopActivateService.java index f0089a5b3..594e2b6c8 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopActivateService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopActivateService.java @@ -16,7 +16,7 @@ import java.util.List; */ public interface ShopActivateService extends IService { - List getList(); + List getList(Long shopId); Boolean add(ShopActivateDTO activateDTO); diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopActivateServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopActivateServiceImpl.java index 4c767c7d4..1acddb0e5 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopActivateServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopActivateServiceImpl.java @@ -49,9 +49,9 @@ public class ShopActivateServiceImpl extends ServiceImpl getList() { + public List getList(Long shopId) { List activateDtoS = queryChain().select() - .eq(ShopActivate::getShopId, StpKit.USER.getShopId()) + .eq(ShopActivate::getShopId, shopId == null ? StpKit.USER.getShopId() : shopId) .orderBy(ShopActivate::getAmount, true) .listAs(ShopActivateDTO.class); for (ShopActivateDTO activateDTO : activateDtoS) { diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/PayServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/PayServiceImpl.java index 2d1a9da42..029691327 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/PayServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/PayServiceImpl.java @@ -194,7 +194,7 @@ public class PayServiceImpl implements PayService { if (payParam.getCheckOrderPay().getOrderId() == null) { orderInfo = orderInfoService.createPayOrder(payParam.getShopId(), payParam.getCheckOrderPay().getOrderAmount(), payParam.getCheckOrderPay().getRemark()); - }else { + } else { orderInfo = orderInfoService.getById(payParam.getCheckOrderPay().getOrderId()); } String payOrderNo = orderInfo.getPlatformType() + IdUtil.getSnowflakeNextId(); @@ -432,6 +432,7 @@ public class PayServiceImpl implements PayService { isPay = false; refPayOrderNo = ""; } + orderInfo.setStatus(OrderStatusEnums.PART_REFUND.getCode()); if (CollUtil.isNotEmpty(param.getRefundDetails())) { for (OrderDetail refundDetail : param.getRefundDetails()) { AssertUtil.isNull(refundDetail.getNum(), "退单数量不能为空"); @@ -475,10 +476,30 @@ public class PayServiceImpl implements PayService { } orderDetail.setRefundNo(refPayOrderNo); orderDetail.setRefundRemark(orderDetail.getRefundRemark() + param.getRefundReason()); + if (orderDetail.getNum().compareTo(orderDetail.getRefundNum().add(orderDetail.getReturnNum())) == 0) { + orderDetail.setStatus(OrderStatusEnums.REFUND.getCode()); + } else { + orderDetail.setStatus(OrderStatusEnums.PART_REFUND.getCode()); + + } orderDetailService.updateById(orderDetail); } } else { refundAmountTotal = param.getRefundAmount(); + if (isPay) { + orderDetailService.updateChain() + .eq(OrderDetail::getOrderId, param.getOrderId()) + .setRaw(OrderDetail::getRefundNum, "num-refund_num") + .setRaw(OrderDetail::getReturnAmount, "pay_amount") + .set(OrderDetail::getStatus, OrderStatusEnums.REFUND.getCode()) + .update(); + } else { + orderDetailService.updateChain() + .eq(OrderDetail::getOrderId, param.getOrderId()) + .setRaw(OrderDetail::getReturnNum, "num") + .set(OrderDetail::getStatus, OrderStatusEnums.REFUND.getCode()) + .update(); + } } //总退款金额 //TODO 退款 券 未处理 @@ -501,7 +522,7 @@ public class PayServiceImpl implements PayService { .bizEnum(ShopUserFlowBizEnum.ORDER_REFUND) .build(); shopUserService.updateMoney(orderInfo.getShopId(), shopUserMoneyEditDTO); - } else { + } else if (!orderInfo.getPayType().equals(PayEnums.CASH_PAY.getValue())) { //退款 param.getRefundAmount() refundOrder(orderInfo.getShopId(), orderInfo.getId(), orderInfo.getPayOrderId(), refPayOrderNo, param.getRefundReason(), param.getRefundAmount()); @@ -515,9 +536,25 @@ public class PayServiceImpl implements PayService { if (orderInfo.getRefundAmount().compareTo(orderInfo.getPayAmount()) < 0) { throw new ValidateException("退单失败,可退金额不足"); } - //退款 refundAmountTotal - refundOrder(orderInfo.getShopId(), orderInfo.getId(), orderInfo.getPayOrderId(), - refPayOrderNo, param.getRefundReason(), refundAmountTotal); + //非现金退款 + if (!param.isCash()) { + if (orderInfo.getPayType().equals(PayEnums.VIP_PAY.getValue())) { + ShopUser shopUser = shopUserService.getShopUserInfo(orderInfo.getShopId(), orderInfo.getUserId()); + //会员支付 退钱 + ShopUserMoneyEditDTO shopUserMoneyEditDTO = ShopUserMoneyEditDTO.builder() + .id(shopUser.getId()) + .money(param.getRefundAmount()) + .type(1) + .relationId(orderInfo.getId()) + .bizEnum(ShopUserFlowBizEnum.ORDER_REFUND) + .build(); + shopUserService.updateMoney(orderInfo.getShopId(), shopUserMoneyEditDTO); + } else if (!orderInfo.getPayType().equals(PayEnums.CASH_PAY.getValue())) { + //退款 param.getRefundAmount() + refundOrder(orderInfo.getShopId(), orderInfo.getId(), orderInfo.getPayOrderId(), + refPayOrderNo, param.getRefundReason(), param.getRefundAmount()); + } + } } } else { orderInfo.setOrderAmount(orderInfo.getOrderAmount().subtract(refundAmountTotal));