优惠券问题修复

This commit is contained in:
2025-09-29 18:28:05 +08:00
parent b51c613c82
commit a71e265763
2 changed files with 115 additions and 85 deletions

View File

@@ -18,6 +18,7 @@ export function returnGoodsPrice(goods, user, shopInfo) {
if (goods.discount_sale_amount * 1 > 0) {
return goods.discount_sale_amount;
}
console.log('returnGoodsPrice:shopInfo',shopInfo);
if(shopInfo&&!shopInfo.isMemberPrice){
return goods.salePrice;
}
@@ -151,6 +152,18 @@ export function returnCouponCanUse(args) {
return pre + returnGoodsPrice(cur, user,shopInfo) * cur.num;
}, 0);
}
if(user.isVip&&!coupon.vipPriceShare){
return {
canUse: false,
reason: "非会员可用"
};
}
if(selCoupon.length>0&&!selCoupon[0].otherCouponShare){
return {
canUse: false,
reason: "当前选中的券不可与其他券同享"
};
}
// 没有符合条件的商品
if (!isDikouAll && canCalcGoodsArr.length === 0) {
@@ -264,18 +277,19 @@ export function calcDiscountGoodsArrPrice(discountGoodsArr, discountNum, user,sh
* @param user 用户信息
* @param goodsOrderPrice 商品订单金额
* @param selCoupon 已选择的优惠券列表
* @param shopInfo 店铺信息
*/
export function returnCouponDiscount(arr, coupon, user, goodsOrderPrice, selCoupon) {
export function returnCouponDiscount(arr, coupon, user, goodsOrderPrice, selCoupon,shopInfo) {
const canDikouGoodsArr = returnCanDikouGoodsArr(arr, selCoupon, user);
console.log('canDikouGoodsArr', canDikouGoodsArr);
if (coupon.type == 2) {
return returnCouponProductDiscount(canDikouGoodsArr, coupon, user, goodsOrderPrice);
return returnCouponProductDiscount(canDikouGoodsArr, coupon, user, shopInfo);
}
if (coupon.type == 6) {
return returnCouponBuyOneGiveOneDiscount(canDikouGoodsArr, coupon, user, goodsOrderPrice);
return returnCouponBuyOneGiveOneDiscount(canDikouGoodsArr, coupon, user, shopInfo);
}
if (coupon.type == 4) {
return returnSecoendDiscount(canDikouGoodsArr, coupon, user, goodsOrderPrice);
return returnSecoendDiscount(canDikouGoodsArr, coupon, user, shopInfo);
}
if (coupon.type == 3) {
return returnCouponZhekouDiscount(canDikouGoodsArr, coupon, user, goodsOrderPrice, selCoupon);
@@ -331,8 +345,9 @@ export function returnCouponZhekouDiscount(
* @param canDikouGoodsArr 可抵扣商品列表
* @param coupon 优惠券
* @param user 用户信息
* @param shopInfo 店铺信息
*/
export function returnCouponProductDiscount(canDikouGoodsArr, coupon, user) {
export function returnCouponProductDiscount(canDikouGoodsArr, coupon, user,shopInfo) {
const {
useFoods,
discountNum,
@@ -362,7 +377,7 @@ export function returnCouponProductDiscount(canDikouGoodsArr, coupon, user) {
discountGoodsArr = discountSelGoodsArr.slice(0, discountNum);
}
}
const result = calcDiscountGoodsArrPrice(discountGoodsArr, discountNum, user);
const result = calcDiscountGoodsArrPrice(discountGoodsArr, discountNum, user,shopInfo);
return result;
}