This commit is contained in:
hucs
2025-02-21 15:12:21 +08:00
parent b14d937b49
commit 27e984ee7b

View File

@@ -26,13 +26,11 @@ import com.starry.admin.modules.order.service.IPlayOrderComplaintInfoService;
import com.starry.admin.modules.order.service.IPlayOrderEvaluateInfoService;
import com.starry.admin.modules.order.service.IPlayOrderInfoService;
import com.starry.admin.modules.shop.module.entity.PlayClerkGiftInfoEntity;
import com.starry.admin.modules.shop.module.entity.PlayCouponDetailsEntity;
import com.starry.admin.modules.shop.module.entity.PlayCouponInfoEntity;
import com.starry.admin.modules.shop.module.entity.PlayGiftInfoEntity;
import com.starry.admin.modules.shop.module.vo.PlayCommodityInfoVo;
import com.starry.admin.modules.shop.service.IPlayClerkGiftInfoService;
import com.starry.admin.modules.shop.service.IPlayCommodityInfoService;
import com.starry.admin.modules.shop.service.IPlayCouponInfoService;
import com.starry.admin.modules.shop.service.IPlayGiftInfoService;
import com.starry.admin.modules.shop.service.*;
import com.starry.admin.modules.weichat.entity.*;
import com.starry.admin.modules.weichat.entity.clerk.PlayClerkUserInfoResultVo;
import com.starry.admin.modules.weichat.entity.costom.PlayCustomHideLevelStateEditVo;
@@ -60,6 +58,7 @@ import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.Objects;
/**
* @author admin
@@ -111,6 +110,8 @@ public class WxCustomController {
@Resource
private IPlayCouponInfoService playCouponInfoService;
@Resource
private IPlayCouponDetailsService couponDetailsService;
@Resource
private WxCustomMpService wxCustomMpService;
@@ -278,12 +279,20 @@ public class WxCustomController {
PlayCommodityInfoVo commodityInfo = playCommodityInfoService.queryCommodityInfo(vo.getCommodityId(), clerkUserInfo.getLevelId());
BigDecimal couponMoney = BigDecimal.ZERO;
for (String couponId : vo.getCouponIds()) {
PlayCouponInfoEntity couponInfo = playCouponInfoService.selectPlayCouponInfoById(couponId);
PlayCouponDetailsEntity couponDetailsEntity = couponDetailsService.getById(couponId);
if (Objects.isNull(couponDetailsEntity)) {
throw new CustomException("优惠券不存在");
}
PlayCouponInfoEntity couponInfo = playCouponInfoService.selectPlayCouponInfoById(couponDetailsEntity.getCouponId());
String couponReasonForUnavailableUse = playCouponInfoService.getCouponReasonForUnavailableUse(couponInfo, "0", vo.getCommodityId(), vo.getCommodityQuantity(), commodityInfo.getCommodityPrice());
if (StrUtil.isNotBlank(couponReasonForUnavailableUse)) {
throw new CustomException("优惠券不可用");
}
if (couponInfo.getDiscountType().equals("0")) {
couponMoney = couponMoney.add(couponInfo.getDiscountAmount());
}
}
@@ -291,6 +300,11 @@ public class WxCustomController {
BigDecimal money = commodityInfo.getCommodityPrice().multiply(new BigDecimal(vo.getCommodityQuantity()));
money = money.subtract(couponMoney);
if (money.compareTo(BigDecimal.ZERO) < 1) {
money = BigDecimal.ZERO;
}
if (money.compareTo(customUserInfo.getAccountBalance()) > 0) {
throw new ServiceException("余额不足", 998);
}