Commit 8704bf5a by shuhu.hou@freemud.cn

会员价优惠设置划线价

parent 040b3041
...@@ -51,7 +51,8 @@ public enum ActivityTypeEnum { ...@@ -51,7 +51,8 @@ public enum ActivityTypeEnum {
TYPE_103(103, "阶梯单品满数量减N元"), TYPE_103(103, "阶梯单品满数量减N元"),
TYPE_200(200, "X元Y件"), TYPE_200(200, "X元Y件"),
TYPE_PACKAGE(900, "包装费"), TYPE_PACKAGE(900, "包装费"),
TYPE_DELIVERY(901, "配送费"); TYPE_DELIVERY(901, "配送费"),
TYPE_320(320,"会员价商品优惠");
private Integer code; private Integer code;
......
...@@ -23,7 +23,8 @@ public enum ShoppingCartPromotionEnum { ...@@ -23,7 +23,8 @@ public enum ShoppingCartPromotionEnum {
SET_MEAL(7, "setMealService"), SET_MEAL(7, "setMealService"),
XY_DISCOUNT(8, "xyDiscountService"), XY_DISCOUNT(8, "xyDiscountService"),
TwoN_DISCOUNT(9, "twoNDiscountService"), TwoN_DISCOUNT(9, "twoNDiscountService"),
BUY_GIFTS(10,"buyAndGiftsPromotionService"); BUY_GIFTS(10,"buyAndGiftsPromotionService"),
MEMBER_DISCOUNT(11,"memberDiscountService");
private Integer type; private Integer type;
private String msgType; private String msgType;
......
package cn.freemud.service.impl;
import cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto;
import cn.freemud.entities.dto.UserLoginInfoDto;
import cn.freemud.entities.dto.activity.ActivityQueryDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.*;
import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.service.IPromotionService;
import lombok.Data;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: MemberDiscountServiceImpl
* @Package cn.freemud.service.impl
* @Description:
* @author: shuhu.hou
* @date: 2020/5/29 14:52
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Service("memberDiscountService")
public class MemberDiscountServiceImpl implements IPromotionService {
@Override
public void updateShoppingCartGoodsDiscount(CouponPromotionVO couponPromotionVO, ActivityQueryDto activityQueryDto, ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult, List<CartGoods> cartGoodsList, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, UserLoginInfoDto userLoginInfoDto, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo) {
//获取每个商品的会员价优惠单价
Map<String, Long> apportionGoodsDetail = getApportionGoodsDetail(calculationDiscountResult);
if (apportionGoodsDetail.size()==0){
return;
}
for (CartGoods cartGoods : cartGoodsList) {
//优惠单价
Long discountPrice = apportionGoodsDetail.get(cartGoods.getGoodsId());
if (discountPrice!=null && discountPrice>0){
cartGoods.setAmount(cartGoods.getAmount()-discountPrice*cartGoods.getQty());
}
}
}
@Override
public void updateShoppingCartGoodsApportion(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult, ShoppingCartGoodsDto shoppingCartGoodsDto, CreateOrderVo.PremiumExchangeActivity premiumExchangeActivity, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo) {
return;
}
/**
* 单个商品,每个均摊单价
* @param calculationDiscountResult
* @return key:goodId value:每个商品均摊金额
*/
private Map<String,Long> getApportionGoodsDetail(ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult) {
// 遍历购物车内的商品,如果存在则进行均摊
if (calculationDiscountResult == null || CollectionUtils.isEmpty(calculationDiscountResult.getApportionGoods())) {
return null;
}
Map<String,Long> result=new HashMap<>();
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods apportionGood : calculationDiscountResult.getApportionGoods()) {
if (!CollectionUtils.isEmpty(apportionGood.getApportionDetails())) {
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods.ApportionDetails apportionDetail : apportionGood.getApportionDetails()) {
if (apportionDetail.getActivityType().equals(ActivityTypeEnum.TYPE_320.getCode())) {
result.putIfAbsent(apportionGood.getGoodsId(),apportionDetail.getActivityApportionAmount());
}
}
}
}
return result;
}
}
...@@ -697,20 +697,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -697,20 +697,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
} }
} }
/**
* 获取优惠信息
*
* @param partnerId
* @param storeId
* @param cartGoodsList
* @return
*/
public ActivityCalculationDiscountResponseDto.CalculationDiscountResult getActivityCalculationDiscountResponse(
String partnerId, String storeId, String userId, String wxAppid, Integer orderType,boolean isMember, List<CartGoods> cartGoodsList,String menuType, Long distributionFee) {
return getActivityCalculationDiscountResponse(partnerId, storeId, userId, wxAppid, orderType,isMember, cartGoodsList, new ArrayList<>(), new ArrayList<>(),menuType,distributionFee);
}
/** /**
* 获取优惠信息 * 获取优惠信息
* *
...@@ -838,33 +824,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -838,33 +824,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return activityCalculationDiscountRequestDto; return activityCalculationDiscountRequestDto;
} }
/**
* * 构建 ActivityCalculationDiscountRequestDto
*
* @param partnerId
* @param storeId
* @param userId
* @param appId
* @param orderType
* @param distributionFee
* @return
*/
private ActivityCalculationDiscountRequestDto getActivityCalculationDiscountRequestDto(String partnerId, String storeId, String userId, String appId, Integer orderType, Long distributionFee) {
ActivityCalculationDiscountRequestDto activityCalculationDiscountRequestDto = new ActivityCalculationDiscountRequestDto();
activityCalculationDiscountRequestDto.setPartnerCode(partnerId);
activityCalculationDiscountRequestDto.setStoreId(storeId);
activityCalculationDiscountRequestDto.setIsShowGoodsActivity(1);
activityCalculationDiscountRequestDto.setUserId(userId);
activityCalculationDiscountRequestDto.setVer(1);
activityCalculationDiscountRequestDto.setAppId(appId);
activityCalculationDiscountRequestDto.setDistributionFee(distributionFee);
ActivityChannelEnum activityChannelEnum = PropertyConvertUtil.orderTypeConvert2ActivityChannel(orderType);
if (!Objects.isNull(activityChannelEnum)) {
activityCalculationDiscountRequestDto.setChannel(activityChannelEnum.getCode());
}
return activityCalculationDiscountRequestDto;
}
/** /**
* 累加需加入计算的商品 * 累加需加入计算的商品
...@@ -1005,6 +964,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1005,6 +964,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
BuyAndGiftsPromotionService buyAndGiftsPromotionService =(BuyAndGiftsPromotionService) PromotionFactory.getPromotionService(ShoppingCartPromotionEnum.BUY_GIFTS); BuyAndGiftsPromotionService buyAndGiftsPromotionService =(BuyAndGiftsPromotionService) PromotionFactory.getPromotionService(ShoppingCartPromotionEnum.BUY_GIFTS);
buyAndGiftsPromotionService.updateShoppingCartGoodsDiscount(couponPromotionVO, activityQueryDto, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo, userLoginInfoDto, shoppingCartInfoRequestVo); buyAndGiftsPromotionService.updateShoppingCartGoodsDiscount(couponPromotionVO, activityQueryDto, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo, userLoginInfoDto, shoppingCartInfoRequestVo);
//会员价
MemberDiscountServiceImpl memberDiscountService=(MemberDiscountServiceImpl) PromotionFactory.getPromotionService(ShoppingCartPromotionEnum.MEMBER_DISCOUNT);
memberDiscountService.updateShoppingCartGoodsDiscount(couponPromotionVO, activityQueryDto, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo, userLoginInfoDto, shoppingCartInfoRequestVo);
/** /**
* 满额减配送费 * 满额减配送费
*/ */
......
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