代客下单修改,问题修复
This commit is contained in:
@@ -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,
|
||||
|
||||
32
lib/goods.ts
32
lib/goods.ts
@@ -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,
|
||||
|
||||
14
lib/limit.ts
14
lib/limit.ts
@@ -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({
|
||||
|
||||
@@ -286,6 +286,7 @@ export interface ShopUserInfo {
|
||||
isVip: number | null; //是否会员
|
||||
discount: number | null; //用户折扣
|
||||
isMemberPrice: number | null; //会员折扣与会员价是否同时使用
|
||||
id?: number; //用户ID
|
||||
}
|
||||
/** 订单额外费用配置 */
|
||||
export interface OrderExtraConfig {
|
||||
|
||||
Reference in New Issue
Block a user