Commit da5e7ae4 by xiaoer.li@freemud.com

fix:套餐折扣

parent 59fcb90d
...@@ -307,8 +307,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -307,8 +307,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, allCartGoodsList , allCartGoodsList
, new ArrayList<>() //券 , new ArrayList<>() //券
, null //加价购商品 , null //加价购商品
, deliveryAmount , deliveryAmount);
, 0);
// //
sharingCartService.distribute(discountResult sharingCartService.distribute(discountResult
...@@ -426,8 +425,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -426,8 +425,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, cartGoodsList , cartGoodsList
, null //券 , null //券
, null //加价购商品 , null //加价购商品
, deliveryAmount , deliveryAmount);
, 0);
sharingCartService.distribute(discountResult sharingCartService.distribute(discountResult
, cartGoodsList , cartGoodsList
...@@ -577,8 +575,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -577,8 +575,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, cartGoodsList , cartGoodsList
, coupons , coupons
, sendGoods , sendGoods
, deliveryAmount , deliveryAmount);
, shoppingCartInfoRequestVo.getReachStoreType());
sharingCartService.distribute(calculationSharingDiscountResult sharingCartService.distribute(calculationSharingDiscountResult
, cartGoodsList , cartGoodsList
, shoppingCartGoodsResponseVo , shoppingCartGoodsResponseVo
...@@ -779,8 +776,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -779,8 +776,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, cartGoodsList , cartGoodsList
, coupons , coupons
, shoppingCartInfoRequestVo.getSendGoods() , shoppingCartInfoRequestVo.getSendGoods()
, deliveryAmount , deliveryAmount);
, shoppingCartInfoRequestVo.getReachStoreType());
//直接利用促销返回做均摊 //直接利用促销返回做均摊
sharingEquallyService.equally(discountResult sharingEquallyService.equally(discountResult
......
...@@ -347,7 +347,7 @@ public class CalculationCommonService { ...@@ -347,7 +347,7 @@ public class CalculationCommonService {
for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount discount : calculationGoods.getDiscounts()) { for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount discount : calculationGoods.getDiscounts()) {
ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto(); ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto();
activityDiscountsDto.setActivityCode(discount.getActivityCode()); activityDiscountsDto.setActivityCode(discount.getActivityCode());
activityDiscountsDto.setActivityName(discount.getActivityName()); activityDiscountsDto.setActivityName(this.convertName(discount.getType(), discount.getActivityName()));
activityDiscountsDto.setActivityType(this.convertType(discount.getType())); activityDiscountsDto.setActivityType(this.convertType(discount.getType()));
activityDiscountsDto.setDiscountAmount(discount.getDiscount().intValue()); activityDiscountsDto.setDiscountAmount(discount.getDiscount().intValue());
activityDiscountsDtoList.add(activityDiscountsDto); activityDiscountsDtoList.add(activityDiscountsDto);
...@@ -616,6 +616,15 @@ public class CalculationCommonService { ...@@ -616,6 +616,15 @@ public class CalculationCommonService {
return newType; return newType;
} }
public String convertName(Integer type, String activityCode) {
Integer newType = 310;
String code = activityCode;
if (newType.equals(type)) {
code = "setMeal";
}
return code;
}
@Data @Data
@NoArgsConstructor @NoArgsConstructor
public static class BlockRow { public static class BlockRow {
......
...@@ -63,9 +63,9 @@ public class CalculationSharingDiscountService { ...@@ -63,9 +63,9 @@ public class CalculationSharingDiscountService {
, boolean isMember , boolean isMember
, List<CartGoods> cartGoodsList, List<CalculationSharingDiscountRequestDto.CalculationDiscountCoupon> coupons , List<CartGoods> cartGoodsList, List<CalculationSharingDiscountRequestDto.CalculationDiscountCoupon> coupons
, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList , List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList
, Long deliveryAmount, Integer reachStoreType) { , Long deliveryAmount) {
CalculationSharingDiscountRequestDto calculationSharingDiscountRequestDto = this.commonSharingDto(partnerId, storeId, userId, appId, orderType, reachStoreType); CalculationSharingDiscountRequestDto calculationSharingDiscountRequestDto = this.commonSharingDto(partnerId, storeId, userId, appId, orderType);
// 校验后有效的商品券map // 校验后有效的商品券map
HashMap<String, CheckSpqInfoResponseDto> validCouponMap = new HashMap<>(16); HashMap<String, CheckSpqInfoResponseDto> validCouponMap = new HashMap<>(16);
...@@ -290,7 +290,7 @@ public class CalculationSharingDiscountService { ...@@ -290,7 +290,7 @@ public class CalculationSharingDiscountService {
* @param orderType * @param orderType
* @return * @return
*/ */
private CalculationSharingDiscountRequestDto commonSharingDto(String partnerId, String storeId, String userId, String appId, Integer orderType, Integer reachStoreType) { private CalculationSharingDiscountRequestDto commonSharingDto(String partnerId, String storeId, String userId, String appId, Integer orderType) {
CalculationSharingDiscountRequestDto calculationSharingDiscountRequestDto = new CalculationSharingDiscountRequestDto(); CalculationSharingDiscountRequestDto calculationSharingDiscountRequestDto = new CalculationSharingDiscountRequestDto();
calculationSharingDiscountRequestDto.setPartnerCode(partnerId); calculationSharingDiscountRequestDto.setPartnerCode(partnerId);
...@@ -308,11 +308,9 @@ public class CalculationSharingDiscountService { ...@@ -308,11 +308,9 @@ public class CalculationSharingDiscountService {
//========================== 购物车查询特有逻辑 ================================= //========================== 购物车查询特有逻辑 =================================
// 到店自取包装费设为null,外卖要计算包装费,flag为1表示去结算 // 到店自取包装费设为null,外卖要计算包装费,flag为1表示去结算
// 兼容老版本判断null // 兼容老版本判断null
if (Objects.equals(orderType, CreateOrderType.COLLECT_GOODS.getCode()) if (Objects.equals(orderType, CreateOrderType.COLLECT_GOODS.getCode())) {
&& (Objects.equals(reachStoreType, null)
|| Objects.equals(reachStoreType, OrderType.EAT_IN.getCode()))) {
calculationSharingDiscountRequestDto.setProductChannel(BusinessTypeEnum.SAAS_PICKUP.getCode()); calculationSharingDiscountRequestDto.setProductChannel(BusinessTypeEnum.SAAS_PICKUP.getCode());
} else if (Objects.equals(orderType, CreateOrderType.TAKE_OUT.getCode()) || Objects.equals(reachStoreType, OrderType.COLLECT_GOODS.getCode())) { } else if (Objects.equals(orderType, CreateOrderType.TAKE_OUT.getCode())) {
calculationSharingDiscountRequestDto.setProductChannel(BusinessTypeEnum.SAAS_DELIVERY.getCode()); calculationSharingDiscountRequestDto.setProductChannel(BusinessTypeEnum.SAAS_DELIVERY.getCode());
} }
return calculationSharingDiscountRequestDto; return calculationSharingDiscountRequestDto;
......
...@@ -15,10 +15,7 @@ import org.apache.commons.collections4.CollectionUtils; ...@@ -15,10 +15,7 @@ import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -158,12 +155,46 @@ public class CalculationSharingEquallyService { ...@@ -158,12 +155,46 @@ public class CalculationSharingEquallyService {
* @param discountResult * @param discountResult
* @param shoppingCartGoodsDto * @param shoppingCartGoodsDto
*/ */
private void setShoppingCartGoodsDtoActivityDiscounts(CalculationSharingDiscountResponseDto.CalculationDiscountResult discountResult public void setShoppingCartGoodsDtoActivityDiscounts(CalculationSharingDiscountResponseDto.CalculationDiscountResult discountResult
, ShoppingCartGoodsDto shoppingCartGoodsDto) { , ShoppingCartGoodsDto shoppingCartGoodsDto) {
List<ActivityDiscountsDto> activityDiscountsDtos = new ArrayList<>(); List<ActivityDiscountsDto> activityDiscountsDtos = new ArrayList<>();
shoppingCartGoodsDto.setActivityDiscountsDtos(activityDiscountsDtos); shoppingCartGoodsDto.setActivityDiscountsDtos(activityDiscountsDtos);
if (discountResult == null) return; if (discountResult == null) return;
Integer type = 2;
List<ActivityTypeEnum> activityTypeEnums = new LinkedList<>();
activityTypeEnums.add(ActivityTypeEnum.TYPE_11);
activityTypeEnums.add(ActivityTypeEnum.TYPE_12);
activityTypeEnums.add(ActivityTypeEnum.TYPE_3);
activityTypeEnums.add(ActivityTypeEnum.TYPE_31);
List<Integer> typeEnums = activityTypeEnums.stream().map(ActivityTypeEnum::getCode).collect(Collectors.toList());
for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods good : discountResult.getGoods()) {
if (CollectionUtils.isNotEmpty(good.getSmallMaterial())) {
List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.SmallMaterial> sm = good.getSmallMaterial()
.stream()
.filter(d -> type.equals(d.getType())).collect(Collectors.toList());
if (CollectionUtils.isEmpty(sm)) continue;
for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.SmallMaterial s : sm) {
if (CollectionUtils.isEmpty(s.getDiscounts())) continue;
HashMap<Integer, Long> discountMap = new HashMap<>();
for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount d : s.getDiscounts()) {
if (!typeEnums.contains(d.getType())) continue;
Integer sType = d.getType();
discountMap.put(sType, d.getDiscount());
}
if (discountMap.isEmpty()) continue;
if (CollectionUtils.isEmpty(good.getDiscounts())) continue;
for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount discount : good.getDiscounts()) {
Integer mType = discount.getType();
if (discountMap.get(mType) != null) {
discount.setDiscount(discount.getDiscount() + discountMap.get(mType).longValue());
}
}
}
}
}
List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Discount> discounts = discountResult.getDiscounts(); List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Discount> discounts = discountResult.getDiscounts();
for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.Discount discount : discounts) { for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.Discount discount : discounts) {
int discountAmount = (discount.getDiscount() == null) ? 0 : discount.getDiscount(); int discountAmount = (discount.getDiscount() == null) ? 0 : discount.getDiscount();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment