Commit e61f354f by xiaoer.li@freemud.com

fix:清空购物车促销提示

parent 154b2f1c
...@@ -3,6 +3,7 @@ package cn.freemud.service.impl; ...@@ -3,6 +3,7 @@ package cn.freemud.service.impl;
import cn.freemud.entities.dto.*; import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.activity.ActivityQueryDto; import cn.freemud.entities.dto.activity.ActivityQueryDto;
import cn.freemud.entities.dto.activity.ActivityQueryResponseDto; import cn.freemud.entities.dto.activity.ActivityQueryResponseDto;
import cn.freemud.entities.vo.ActivityList;
import cn.freemud.enums.ActivityTypeEnum; import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.service.ActivityService; import cn.freemud.service.ActivityService;
import cn.freemud.utils.LogUtil; import cn.freemud.utils.LogUtil;
...@@ -13,6 +14,7 @@ import org.apache.commons.collections4.CollectionUtils; ...@@ -13,6 +14,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.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -187,7 +189,8 @@ public class FullSubtractionActivityServiceImpl { ...@@ -187,7 +189,8 @@ public class FullSubtractionActivityServiceImpl {
* @param calculationDiscountResult * @param calculationDiscountResult
* @return * @return
*/ */
public PromotionMessageDto getFullPromotionActivityInfo(ActivityQueryDto activityQueryDto, ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult) { public PromotionMessageDto getFullPromotionActivityInfo(ActivityQueryDto activityQueryDto, ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult,
ArrayList<ActivityList> activityList) {
ActivityQueryResponseDto activityQueryResponseDto = activityService.queryActivityByType(activityQueryDto, Arrays.asList(ActivityTypeEnum.TYPE_11, ActivityTypeEnum.TYPE_12), null); ActivityQueryResponseDto activityQueryResponseDto = activityService.queryActivityByType(activityQueryDto, Arrays.asList(ActivityTypeEnum.TYPE_11, ActivityTypeEnum.TYPE_12), null);
if (activityQueryResponseDto == null) { if (activityQueryResponseDto == null) {
...@@ -225,6 +228,13 @@ public class FullSubtractionActivityServiceImpl { ...@@ -225,6 +228,13 @@ public class FullSubtractionActivityServiceImpl {
.append("最高减 <span style=\"color:#fa5555\">") .append("最高减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityResponseDto.getMaxMoney() * 1.00 / 100)) .append(WebUtil.formatAmount(activityResponseDto.getMaxMoney() * 1.00 / 100))
.append("</span> 元"); .append("</span> 元");
//满足 x 元 减 Y 元 ,最高 减 Z元
cn.freemud.entities.vo.ActivityList notInShopping = new ActivityList();
notInShopping.setTipType(1);
notInShopping.setSatisfy(WebUtil.formatAmount(benefitBeanDto.getThresholdAmount() * 1.00 / 100).toString());
notInShopping.setDeduct(WebUtil.formatAmount(benefitBeanDto.getDiscountAmount() * 1.00 / 100).toString());
notInShopping.setMaxDeduct(WebUtil.formatAmount(activityResponseDto.getMaxMoney() * 1.00 / 100).toString());
activityList.add(notInShopping);
} }
if (Objects.equals(ActivityTypeEnum.TYPE_12.getCode(), activityResponseDto.getActivityType())) { if (Objects.equals(ActivityTypeEnum.TYPE_12.getCode(), activityResponseDto.getActivityType())) {
int len = benefitBeanDtos.size(); int len = benefitBeanDtos.size();
...@@ -237,6 +247,16 @@ public class FullSubtractionActivityServiceImpl { ...@@ -237,6 +247,16 @@ public class FullSubtractionActivityServiceImpl {
.append(WebUtil.formatAmount(benefitBeanDto.getDiscountAmount() * 1.00 / 100)) .append(WebUtil.formatAmount(benefitBeanDto.getDiscountAmount() * 1.00 / 100))
.append("</span> 元"); .append("</span> 元");
} }
// 阶梯满减:满足 X 元 减 Y 元,
for (int j = len - 1; j >= 0; j--) {
benefitBeanDto = benefitBeanDtos.get(j);
cn.freemud.entities.vo.ActivityList notInShopping = new ActivityList();
notInShopping.setTipType(2);
notInShopping.setSatisfy(WebUtil.formatAmount(benefitBeanDto.getThresholdAmount() * 1.00 / 100).toString());
notInShopping.setDeduct(WebUtil.formatAmount(benefitBeanDto.getDiscountAmount() * 1.00 / 100).toString());
activityList.add(notInShopping);
}
} }
} else { } else {
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ActivityPrompt> activityPrompts = calculationDiscountResult.getActivityPrompts(); List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ActivityPrompt> activityPrompts = calculationDiscountResult.getActivityPrompts();
...@@ -244,6 +264,7 @@ public class FullSubtractionActivityServiceImpl { ...@@ -244,6 +264,7 @@ public class FullSubtractionActivityServiceImpl {
//加入商品满足购物车 //加入商品满足购物车
if (CollectionUtils.isNotEmpty(activityPrompts)) { if (CollectionUtils.isNotEmpty(activityPrompts)) {
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ActivityPrompt activityPrompt = activityPrompts.get(0); ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ActivityPrompt activityPrompt = activityPrompts.get(0);
ActivityList satisfyList = new ActivityList();
if (activityPrompt.getAlreadyDiscountAmount() == null if (activityPrompt.getAlreadyDiscountAmount() == null
|| activityPrompt.getAlreadyDiscountAmount() == 0) { || activityPrompt.getAlreadyDiscountAmount() == 0) {
messageBuilder.append("满 <span style=\"color:#fa5555\">") messageBuilder.append("满 <span style=\"color:#fa5555\">")
...@@ -254,6 +275,11 @@ public class FullSubtractionActivityServiceImpl { ...@@ -254,6 +275,11 @@ public class FullSubtractionActivityServiceImpl {
.append("还差 <span style=\"color:#fa5555\">") .append("还差 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100)) .append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100))
.append("</span> 元"); .append("</span> 元");
// 满足 X 元 减 Y 元 还差 Z元
satisfyList.setTipType(3);
satisfyList.setSatisfy(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100).toString());
satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100).toString());
satisfyList.setMissing(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100).toString());
} else { } else {
Long toDiscountAmout; Long toDiscountAmout;
if (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), activityResponseDto.getActivityType())) { if (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), activityResponseDto.getActivityType())) {
...@@ -261,6 +287,7 @@ public class FullSubtractionActivityServiceImpl { ...@@ -261,6 +287,7 @@ public class FullSubtractionActivityServiceImpl {
} else { } else {
toDiscountAmout = activityPrompt.getDiscountAmout(); toDiscountAmout = activityPrompt.getDiscountAmout();
} }
//已减 X 元 再买 Y 元 减 Z 元
messageBuilder.append("已减 <span style=\"color:#fa5555\">") messageBuilder.append("已减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100)) .append(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100))
.append("</span> 元 再买 <span style=\"color:#fa5555\">") .append("</span> 元 再买 <span style=\"color:#fa5555\">")
...@@ -268,6 +295,10 @@ public class FullSubtractionActivityServiceImpl { ...@@ -268,6 +295,10 @@ public class FullSubtractionActivityServiceImpl {
.append("</span> 元减 <span style=\"color:#fa5555\">") .append("</span> 元减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100)) .append(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100))
.append("</span> 元"); .append("</span> 元");
satisfyList.setTipType(4);
satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100).toString());
satisfyList.setAgainBuy(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100).toString());
satisfyList.setAgianDeduct(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100).toString());
} }
} else { } else {
discountList = discountList.parallelStream().filter(k -> (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), k.getType()) discountList = discountList.parallelStream().filter(k -> (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), k.getType())
...@@ -276,6 +307,11 @@ public class FullSubtractionActivityServiceImpl { ...@@ -276,6 +307,11 @@ public class FullSubtractionActivityServiceImpl {
messageBuilder.append("已减 <span style=\"color:#fa5555\">") messageBuilder.append("已减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(discountList.get(0).getDiscount() * 1.00 / 100)) .append(WebUtil.formatAmount(discountList.get(0).getDiscount() * 1.00 / 100))
.append("</span> 元"); .append("</span> 元");
//已减 X 元
ActivityList noSatisfy = new ActivityList();
noSatisfy.setTipType(5);
noSatisfy.setDeduct(WebUtil.formatAmount(discountList.get(0).getDiscount() * 1.00 / 100).toString());
activityList.add(noSatisfy);
} }
} }
} }
...@@ -283,6 +319,4 @@ public class FullSubtractionActivityServiceImpl { ...@@ -283,6 +319,4 @@ public class FullSubtractionActivityServiceImpl {
promotionMessageDto.setPromotionMessage(messageBuilder.toString()); promotionMessageDto.setPromotionMessage(messageBuilder.toString());
return promotionMessageDto; return promotionMessageDto;
} }
} }
\ No newline at end of file
...@@ -535,13 +535,15 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -535,13 +535,15 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo = new ShoppingCartGoodsResponseVo(); ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo = new ShoppingCartGoodsResponseVo();
ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, shoppingCartClearRequestVo.getOrderType()); ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, shoppingCartClearRequestVo.getOrderType());
PromotionMessageDto promotionMessageDto = fullSubtractionActivityService.getFullPromotionActivityInfo(activityQueryDto, null); ArrayList<ActivityList> activityList = new ArrayList<>();
PromotionMessageDto promotionMessageDto = fullSubtractionActivityService.getFullPromotionActivityInfo(activityQueryDto, null, activityList);
ActivityTip activityTip = new ActivityTip(); ActivityTip activityTip = new ActivityTip();
if (promotionMessageDto != null) { if (promotionMessageDto != null) {
activityTip.setActivityCode(promotionMessageDto.getActivityId()); activityTip.setActivityCode(promotionMessageDto.getActivityId());
activityTip.setActivityType(promotionMessageDto.getActivityType()); activityTip.setActivityType(promotionMessageDto.getActivityType());
activityTip.setActivityName(promotionMessageDto.getPromotionMessage()); activityTip.setActivityName(promotionMessageDto.getPromotionMessage());
activityTip.setActivityList(activityList);
} }
shoppingCartGoodsResponseVo.setActivityTip(activityTip); shoppingCartGoodsResponseVo.setActivityTip(activityTip);
shoppingCartGoodsResponseVo.setProducts(new ArrayList<>()); shoppingCartGoodsResponseVo.setProducts(new ArrayList<>());
......
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