代客下单修改,问题修复

This commit is contained in:
2025-11-18 14:55:26 +08:00
parent 67ec915181
commit 93273b796f
17 changed files with 174 additions and 117 deletions

View File

@@ -188,7 +188,7 @@ function returnGoodsIsUseVipPrice(
user: ShopUserInfo,
goods: BaseCartItem
) {
if (goods.is_time_discount) {
if (goods.is_time_discount || goods.isTimeDiscount) {
return false;
}
if (shopInfo.isMemberPrice != 1 || user.isVip != 1) {
@@ -213,15 +213,16 @@ function returnCanCalcGoodsList(
shopInfo: ShopInfo,
user: ShopUserInfo
) {
return canCalcGoodsArr.filter((goods) => {
console.log("goods");
console.log(goods);
if (
!coupon.discountShare &&
(goods.is_time_discount || goods.isTimeDiscount)
) {
return false;
}
if (
!coupon.vipPriceShare &&
returnGoodsIsUseVipPrice(shopInfo, user, goods)
@@ -290,14 +291,15 @@ export function returnCouponCanUse(args: couponCalcParams) {
return coupon.thresholdFoods.find((food) => food.id == v.productId);
});
}
canCalcGoodsArr = returnCanCalcGoodsList(
canCalcGoodsArr,
coupon,
shopInfo,
user
);
console.log("canCalcGoodsArr");
console.log(canCalcGoodsArr);
fullAmount = canCalcGoodsArr.reduce((pre, cur) => {
return (
pre +
@@ -332,8 +334,10 @@ export function returnCouponCanUse(args: couponCalcParams) {
reason: "当前选中的券不可与其他券同享",
};
}
// 满减券和折扣券计算门槛金额是否满足
if ([1, 3].includes(coupon.type)) {
if (canCalcGoodsArr.length <= 0) {
return {
canUse: false,
@@ -644,8 +648,8 @@ export function returnCouponProductDiscount(
return result;
}
// 返回买一送一券抵扣详情
/**
* 返回买一送一券抵扣详情
* @param canDikouGoodsArr 可抵扣商品列表
* @param coupon 优惠券
* @param user 用户信息
@@ -784,6 +788,7 @@ export function returnCanDikouGoods(
});
return result;
}
export const utils = {
returnGoodsPrice,
returnGoodsGroupMap,

View File

@@ -117,6 +117,7 @@ export function returnCanUseLimitTimeDiscount(
useVipPrice: boolean,
idKey = "product_id"
) {
goods={...goods,product_id:goods.product_id||goods.productId|| goods.id|| ''}
if (!limitTimeDiscount || !limitTimeDiscount.id) {
return false;
}
@@ -135,8 +136,12 @@ export function returnCanUseLimitTimeDiscount(
return true;
}
if (useVipPrice && goods.hasOwnProperty("memberPrice")) {
if (goods.memberPrice && goods.memberPrice * 1 <= 0) {
if ( goods.memberPrice * 1 <= 0) {
return true;
}else{
return false;
}
}
}
@@ -166,12 +171,18 @@ function returnLimitPrice(
const discountRate = new BigNumber(limitTimeDiscount.discountRate).dividedBy(
100
);
let canuseLimit=false;
if(goods.hasOwnProperty('isTimeDiscount')||goods.hasOwnProperty('is_time_discount')){
canuseLimit=goods.isTimeDiscount?true:goods.is_time_discount?true:false;
}else{
canuseLimit = returnCanUseLimitTimeDiscount(
goods,
limitTimeDiscount,
useVipPrice
);
}
const canuseLimit = returnCanUseLimitTimeDiscount(
goods,
limitTimeDiscount,
useVipPrice
);
if (canuseLimit) {
//可以使用限时折扣
if (limitTimeDiscount.discountPriority == "limit-time") {
@@ -183,6 +194,7 @@ function returnLimitPrice(
return result;
}
if (limitTimeDiscount.discountPriority == "vip-price") {
//会员价优先
if (useVipPrice && goods.memberPrice && goods.memberPrice * 1 > 0) {
//使用会员价
@@ -228,7 +240,8 @@ export function returnCalcPrice(
fullReductionActivitie.discountShare == 1 &&
fullReductionActivitie.vipPriceShare == 1
) {
//与限时折扣同享,与会员价同享
console.log("与限时折扣同享,与会员价同享", goods);
//与限时折扣同享,与会员价同享
return returnLimitPrice(goods, limitTimeDiscount, useVipPrice);
}
if (
@@ -316,7 +329,7 @@ export function filterOptimalFullReductionActivity(
// 第一步:基础筛选(未删除+当前店铺+活动进行中+就餐类型匹配)
const baseEligible = activities.filter((activity) => {
return (
activity.isDel !== true && // 未删除
// activity.isDel !== true && // 未删除
// activity.shopId === currentShopId && // 当前店铺
// activity.status === 2 && // 状态=2进行中
isDinnerTypeMatch(activity, currentDinnerType) && // 就餐类型匹配
@@ -1090,7 +1103,7 @@ export function calculateOrderCostSummary(
seatFee,
packFee
);
console.log("计算当前满减活动的门槛金额", usedFullReductionActivityFullAmount);
usedFullReductionThreshold = selectOptimalThreshold(
usedFullReductionActivity.thresholds,
usedFullReductionActivityFullAmount,
@@ -1098,7 +1111,6 @@ export function calculateOrderCostSummary(
goodsRealAmount,
usedFullReductionActivity.discountShare || 0 // 与限时折扣同享规则
);
// 2.4 计算满减实际减免金额
fullReductionAmount = calcFullReductionAmount(
baseAfterNewUserDiscount,

View File

@@ -29,6 +29,9 @@ export function canUseLimitTimeDiscount(
) {
shopInfo = shopInfo || {};
shopUserInfo = shopUserInfo || {};
if(shopInfo.isMemberPrice){
shopUserInfo.isMemberPrice=1
}
if (!limitTimeDiscountRes || !limitTimeDiscountRes.id) {
return false;
}
@@ -45,17 +48,15 @@ export function canUseLimitTimeDiscount(
return true;
}
if (limitTimeDiscountRes.discountPriority == "vip-price") {
if (shopUserInfo.isVip != 1 || shopUserInfo.isMemberPrice != 1) {
return true;
}
if (
shopUserInfo.isVip == 1 &&
shopUserInfo.isMemberPrice == 1 &&
goods.memberPrice * 1 <= 0
goods.memberPrice * 1 > 0
) {
return true;
return false;
}
return true;
}
return false;
@@ -138,7 +139,6 @@ export function returnPrice(args: returnPriceArgs) {
return memberPrice;
}
} else {
// console.log('不是会员或者没有启用会员价',goods,limitTimeDiscountRes);
//不是会员或者没有启用会员价
if (limitTimeDiscountRes && limitTimeDiscountRes.id && includesGoods) {
const price = returnLimitPrice({

View File

@@ -286,6 +286,7 @@ export interface ShopUserInfo {
isVip: number | null; //是否会员
discount: number | null; //用户折扣
isMemberPrice: number | null; //会员折扣与会员价是否同时使用
id?: number; //用户ID
}
/** 订单额外费用配置 */
export interface OrderExtraConfig {