Commit 68f5ec90 by xiaoer.li@freemud.com

Merge remote-tracking branch 'remotes/origin/feature/1.9.32_商品加料' into qa

parents c437e323 58aa074b
......@@ -77,7 +77,9 @@ public class MaterialPromotionService implements IPromotionService {
@Override
public void updateShoppingCartGoodsApportion(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult, ShoppingCartGoodsDto shoppingCartGoodsDto, CreateOrderVo.PremiumExchangeActivity premiumExchangeActivity, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo) {
HashMap<String, MaterialApportion> map = getApportionGoodsDetail(calculationDiscountResult);
System.out.println("updateShoppingCartGoodsApportion->map:" + map);
List<ShoppingCartGoodsDto.CartGoodsDetailDto> products = shoppingCartGoodsDto.getProducts();
System.out.println("updateShoppingCartGoodsApportion->product:" + products);
if (map.size() > 0) {
String pk = "";
for (ShoppingCartGoodsDto.CartGoodsDetailDto product : products) {
......@@ -91,13 +93,16 @@ public class MaterialPromotionService implements IPromotionService {
activityDiscountsDtos = new ArrayList<>();
}
//设置行记录参加的活动及总优惠
if (CollectionUtils.isNotEmpty(material.getDetails())) {
for (ApportionDetails detail : material.getDetails()) {
ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto();
activityDiscountsDto.setActivityCode(material.getDetails().getActivityCode());
activityDiscountsDto.setActivityName(material.getDetails().getActivityName());
activityDiscountsDto.setActivityType(material.getDetails().getActivityType());
activityDiscountsDto.setActivityCode(detail.getActivityCode());
activityDiscountsDto.setActivityName(detail.getActivityName());
activityDiscountsDto.setActivityType(detail.getActivityType());
activityDiscountsDto.setDiscountAmount(material.getApportionAmount());
activityDiscountsDtos.add(activityDiscountsDto);
}
}
materialGoods.setActivityDiscountsDtos(activityDiscountsDtos);
//materialGoods.setTotalDiscountAmount((materialGoods.getOriginalPrice().intValue() - materialGoods.getSalePrice().intValue()) * product.getQty());
materialGoods.setTotalDiscountAmount(material.getTotalDiscountAmount());
......@@ -138,27 +143,39 @@ public class MaterialPromotionService implements IPromotionService {
pk = shoppingCartConvertAdapter.jointPk(apportionGood.getCartGoodsUid(), material.getGoodsId());
if (mApportion.get(pk) == null) {
MaterialApportion materialApportion = new MaterialApportion();
//materialApportion.setSalePrice(material.getNowPrice());
//materialApportion.setAmount(material.getNowPrice() * material.getGoodsQuantity());
materialApportion.setApportionAmount(material.getApportionAmount() * material.getGoodsQuantity());
materialApportion.setGoodsId(material.getGoodsId());
materialApportion.setTotalDiscountAmount(material.getApportionAmount() * material.getGoodsQuantity());
materialApportion.setPk(pk);
ApportionDetails apportionDetails = new ApportionDetails();
//ApportionDetails apportionDetails = new ApportionDetails();
ArrayList<ApportionDetails> apportionDetailsList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(material.getApportionDetails())) {
apportionDetails.setActivityCode(material.getApportionDetails().get(0).getActivityCode());
apportionDetails.setActivityName(material.getApportionDetails().get(0).getActivityName());
apportionDetails.setActivityType(material.getApportionDetails().get(0).getActivityType());
materialApportion.setDetails(apportionDetails);
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods.ApportionDetails apportionDetail : material.getApportionDetails()) {
ApportionDetails apportionDetails = new ApportionDetails();
apportionDetails.setActivityName(apportionDetail.getActivityName());
apportionDetails.setActivityCode(apportionDetail.getActivityCode());
apportionDetails.setActivityType(apportionDetail.getActivityType());
apportionDetailsList.add(apportionDetails);
}
materialApportion.setDetails(apportionDetailsList);
}
mApportion.put(pk, materialApportion);
continue;
}
MaterialApportion apportion = mApportion.get(pk);
//apportion.setSalePrice(apportion.getSalePrice() + material.getNowPrice());
//apportion.setAmount(apportion.getAmount() + material.getNowPrice() * material.getGoodsQuantity());
apportion.setApportionAmount(apportion.getApportionAmount() + material.getApportionAmount() * material.getGoodsQuantity());
apportion.setTotalDiscountAmount(apportion.getTotalDiscountAmount() + material.getApportionAmount() * material.getGoodsQuantity());
List<ApportionDetails> details = apportion.getDetails();
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods.ApportionDetails apportionDetail : material.getApportionDetails()) {
if (apportion.getDetails().stream().filter(e -> e.getActivityCode().equals(apportionDetail.getActivityCode())).count() == 0) {
ApportionDetails apportionDetails = new ApportionDetails();
apportionDetails.setActivityName(apportionDetail.getActivityName());
apportionDetails.setActivityCode(apportionDetail.getActivityCode());
apportionDetails.setActivityType(apportionDetail.getActivityType());
details.add(apportionDetails);
}
apportion.setDetails(details);
}
mApportion.put(pk, apportion);
}
}
......@@ -173,7 +190,7 @@ public class MaterialPromotionService implements IPromotionService {
private Integer apportionAmount;
//优惠金额
private Integer totalDiscountAmount;
private ApportionDetails details;
private List<ApportionDetails> details;
private String pk;
}
......
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