diff --git a/cash-api/market-server/src/main/java/com/czg/task/BirthdayGiftTask.java b/cash-api/market-server/src/main/java/com/czg/task/BirthdayGiftTask.java index 3b5c6d5aa..debcf2c6b 100644 --- a/cash-api/market-server/src/main/java/com/czg/task/BirthdayGiftTask.java +++ b/cash-api/market-server/src/main/java/com/czg/task/BirthdayGiftTask.java @@ -31,7 +31,7 @@ public class BirthdayGiftTask { /** * 生日有礼奖励发放 */ -// @Scheduled(cron = "0 0 12 * * ?") + @Scheduled(cron = "0 0 0 * * ?") public void deliver() { birthdayGiftService.deliver(); } 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 6e35d28e2..f54cc3ca0 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 @@ -73,21 +73,21 @@ public class MyStpLogic { public void switchTo(boolean isMain, Long id, String account, Long shopId, String shopName, LoginType loginType, boolean isAdmin) { StpLogic logic = getLogic(); long headId = logic.getLoginIdAsLong(); - - logic.getSaTokenDao().set(splicingKeyTokenValue(logic.getTokenValue()), id.toString(), logic.getTokenTimeout()); + // 设置主店id + Object mainShopId = logic.getSession().get("mainShopId"); SaSession session = logic.getSession(); + Object parentId1 = session.get("headShopId"); + logic.getSaTokenDao().set(splicingKeyTokenValue(logic.getTokenValue()), id.toString(), logic.getTokenTimeout()); + session = logic.getSession(); if (session == null) { logic.createLoginSession(id); session = logic.getSession(); } // 主店没有headShopId - Object parentId1 = session.get("headShopId"); if (!isMain && parentId1 == null) { session.set("headId", headId); } - // 设置主店id - Object mainShopId = session.get("mainShopId"); session.set("userId", id).set("isAdmin", isAdmin).set("isManager", loginType.equals(LoginType.MANAGER)) .set("loginType", loginType).set("account", account).set("shopId", shopId).set("shopName", shopName) .set("mainShopId", mainShopId); diff --git a/cash-common/cash-common-service/src/main/java/com/czg/order/dto/CheckOrderPay.java b/cash-common/cash-common-service/src/main/java/com/czg/order/dto/CheckOrderPay.java index d86da7ae1..c9fded500 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/order/dto/CheckOrderPay.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/order/dto/CheckOrderPay.java @@ -5,6 +5,7 @@ import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; import java.io.Serializable; import java.math.BigDecimal; @@ -17,10 +18,16 @@ import java.util.List; * @since 2025-02-13 */ @Data - @NoArgsConstructor @AllArgsConstructor +@Accessors(chain = true) public class CheckOrderPay implements Serializable { + /** + * 是否霸王餐 + */ + private boolean isFreeDine; + private boolean withCoupon = true; + private boolean withPoints = true; @NotNull(message = "订单id不可为空") private Long orderId; diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java index b29c0c9ff..31ef748d6 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java @@ -177,6 +177,7 @@ public class AuthorizationServiceImpl implements AuthorizationService { } redisService.del(RedisCst.LOGIN_CODE + loginDTO.uuid()); + System.out.println(StpKit.USER.getMainShopId()); return new LoginVO(StpKit.USER.getTokenInfo(), promissionList, loginDTO.loginType(), shopInfo, shopStaff); } diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkBirthdayGiftServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkBirthdayGiftServiceImpl.java index 00ef4f434..c32038af4 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkBirthdayGiftServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkBirthdayGiftServiceImpl.java @@ -174,9 +174,9 @@ public class MkBirthdayGiftServiceImpl extends ServiceImpl 0) { + // 满减活动校验 不为霸王餐 霸王餐不参与满减 + if (!param.isFreeDine() && param.getDiscountActAmount().compareTo(BigDecimal.ZERO) > 0) { //检查满减活动是否开启 discountAct = discountActService.checkDiscountAct(orderInfo.getShopId(), CollUtil.isNotEmpty(param.getCouponList()), param.isVipPrice(), @@ -347,8 +348,10 @@ public class OrderInfoServiceImpl extends ServiceImpl 0) { + if ((param.isFreeDine() && param.isWithPoints()) || (!param.isFreeDine() && param.getPointsNum() > 0)) { if (pointSetting == null || !pointSetting.getEnableDeduction().equals(1)) { throw new ValidateException("生成支付订单失败,该店铺未开启积分抵扣"); } @@ -392,8 +395,9 @@ public class OrderInfoServiceImpl extends ServiceImpl orderDetails = orderDetailService.queryChain().eq(OrderDetail::getOrderId, orderInfo.getId()).select().list(); - //总商品支付金额 不包含打包费 用来计算后续 - BigDecimalDTO totalAmount = new BigDecimalDTO(BigDecimal.ZERO); - //最终打包费 - BigDecimalDTO packAmount = new BigDecimalDTO(BigDecimal.ZERO); - BigDecimalDTO tempAmount = new BigDecimalDTO(BigDecimal.ZERO); - orderInfoService.getOrderAmount(orderDetails, totalAmount, packAmount, tempAmount, payParam.isAllPack(), payParam.getUserAllPack(), false); - BigDecimal total = totalAmount.getPrice().add(packAmount.getPrice()); - if (total.compareTo(freeConfig.getRechargeThreshold()) < 0) { - throw new CzgException("霸王餐满" + freeConfig.getRechargeThreshold() + "可用,当前订单金额为" + total); - } - BigDecimal payAmount = (totalAmount.getPrice().add(packAmount.getPrice()).add(orderInfo.getSeatAmount())) - .multiply(new BigDecimal(freeConfig.getMultiple())).setScale(2, RoundingMode.HALF_UP); - if (payAmount.compareTo(payParam.getAmount()) != 0) { - log.info("霸王餐应支付金额:{} 其中 打包费{} 餐位费{},充值金额为:{}", - payAmount, packAmount.getPrice(), orderInfo.getSeatAmount(), payParam.getAmount()); - throw new ValidateException("霸王餐支付金额不正确"); - } - orderDetailService.updateBatch(orderDetails); + + CheckOrderPay checkOrderPay = BeanUtil.copyProperties(payParam, CheckOrderPay.class); + orderInfoService.checkOrderPay(checkOrderPay.setFreeDine(true).setWithCoupon(freeConfig.getWithCoupon()).setWithPoints(freeConfig.getWithPoints())); return true; } return false; @@ -493,6 +469,7 @@ public class PayServiceImpl implements PayService { @Override @Transactional public CzgResult> ltPayVip(String clintIp, VipPayParamDTO payParam) { + // 霸王餐校验 boolean isFree = checkPayVip(payParam); ShopUser shopUser = shopUserService.getById(payParam.getShopUserId()); AssertUtil.isNull(shopUser, "充值失败 该店铺用户不存在");