Commit a760f939 by hanghang.wang

满减购物车提示语

parent 87e23541
...@@ -16,6 +16,8 @@ public class BenefitBeanBO implements Comparable<BenefitBeanBO>{ ...@@ -16,6 +16,8 @@ public class BenefitBeanBO implements Comparable<BenefitBeanBO>{
* 优惠门槛(分) * 优惠门槛(分)
*/ */
private Integer thresholdAmount; private Integer thresholdAmount;
private Integer benefitNumber;
/** /**
* 优惠金额(分) * 优惠金额(分)
*/ */
......
...@@ -118,7 +118,16 @@ public class CalculationDiscountBO { ...@@ -118,7 +118,16 @@ public class CalculationDiscountBO {
private Long totalAmount; private Long totalAmount;
private Long alreadyDiscountAmount; private Long alreadyDiscountAmount;
private List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.SendGoods> sendGoods; private List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.SendGoods> sendGoods;
/**
* 门槛件数
*/
private Integer thresholdQuantity;
private Integer totalQuantity;
/**
* 门槛启用金额 满足多少钱,参与件数活动
*/
private Integer invokeAmount;
} }
@Data @Data
......
...@@ -609,39 +609,75 @@ public abstract class AbstractAddGoodsService implements AddGoodsService { ...@@ -609,39 +609,75 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
CalculationDiscountBO.CalculationDiscountResult.ActivityPrompt activityPrompt = activityPrompts.get(0); CalculationDiscountBO.CalculationDiscountResult.ActivityPrompt activityPrompt = activityPrompts.get(0);
if (activityPrompt.getAlreadyDiscountAmount() == null if (activityPrompt.getAlreadyDiscountAmount() == null
|| activityPrompt.getAlreadyDiscountAmount() == 0) { || activityPrompt.getAlreadyDiscountAmount() == 0) {
messageBuilder.append("满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100)) if(ActivityPromptEnum.PreferentialTypeEnum.TO_ORDER_ITEM_QUANTITY.getCode().equals(activityResponseDto.getCouponType())) {
.append("</span> 减 <span style=\"color:#fa5555\">") messageBuilder.append("满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100)) .append(activityPrompt.getThresholdQuantity())
.append("</span> ") .append("</span>件 减 <span style=\"color:#fa5555\">")
.append("还差 <span style=\"color:#fa5555\">") .append(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100))
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100)) .append("</span> ")
.append("</span> 元"); .append("还差 <span style=\"color:#fa5555\">")
// 满足 X 元 减 Y 元 还差 Z元 .append(activityPrompt.getThresholdQuantity() - activityPrompt.getTotalQuantity())
satisfyList.setTipType(3); .append("</span> 件");
satisfyList.setSatisfy(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100).toString()); // 满足 X 元 减 Y 元 还差 Z元
satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100).toString()); satisfyList.setTipType(12);
satisfyList.setMissing(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100).toString()); satisfyList.setSatisfy(activityPrompt.getThresholdQuantity().toString());
} else { satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100).toString());
satisfyList.setMissing((activityPrompt.getThresholdQuantity() - activityPrompt.getTotalQuantity())+ "");
satisfyList.setInvokeAmount(WebUtil.formatAmount(activityResponseDto.getDelayTimes() * 1.00 / 100).toString());
}else{
messageBuilder.append("满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100))
.append("</span> 减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100))
.append("</span> ")
.append("还差 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100))
.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 {
Long toDiscountAmout; Long toDiscountAmout;
if (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), activityResponseDto.getActivityType())) { if (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), activityResponseDto.getActivityType())) {
toDiscountAmout = activityPrompt.getDiscountAmout() + activityPrompt.getAlreadyDiscountAmount(); toDiscountAmout = activityPrompt.getDiscountAmout() + activityPrompt.getAlreadyDiscountAmount();
} else { } else {
toDiscountAmout = activityPrompt.getDiscountAmout(); toDiscountAmout = activityPrompt.getDiscountAmout();
} }
//已减 X 元 再买 Y 元 减 Z 元 if(ActivityPromptEnum.PreferentialTypeEnum.TO_ORDER_ITEM_QUANTITY.getCode().equals(activityResponseDto.getCouponType())) {
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\">")
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100)) .append(activityPrompt.getThresholdQuantity() - activityPrompt.getTotalQuantity())
.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.setTipType(12);
satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100).toString()); satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100).toString());
satisfyList.setAgainBuy(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100).toString()); satisfyList.setAgainBuy((activityPrompt.getThresholdQuantity() - activityPrompt.getTotalQuantity())+"");
satisfyList.setAgianDeduct(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100).toString()); satisfyList.setAgianDeduct(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100).toString());
} satisfyList.setInvokeAmount(WebUtil.formatAmount(activityResponseDto.getDelayTimes() * 1.00 / 100).toString());
}
else{
messageBuilder.append("已减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100))
.append("</span> 元 再买 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100))
.append("</span> 元减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100))
.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());
}
//已减 X 元 再买 Y 元 减 Z 元
}
result.add(satisfyList); result.add(satisfyList);
return result; return result;
} }
......
...@@ -1169,6 +1169,8 @@ public class AbstractApportionService implements GetShoppingCartGoodsApportionSe ...@@ -1169,6 +1169,8 @@ public class AbstractApportionService implements GetShoppingCartGoodsApportionSe
ArrayList<ActivityList> activityList = new ArrayList<>(); ArrayList<ActivityList> activityList = new ArrayList<>();
if (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), activityBO.getActivityType())) { if (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), activityBO.getActivityType())) {
messageBuilder.append("每满 <span style=\"color:#fa5555\">") messageBuilder.append("每满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(benefitBeanBO.getThresholdAmount() * 1.00 / 100)) .append(WebUtil.formatAmount(benefitBeanBO.getThresholdAmount() * 1.00 / 100))
.append("</span> 减 <span style=\"color:#fa5555\">") .append("</span> 减 <span style=\"color:#fa5555\">")
......
...@@ -7,6 +7,7 @@ import cn.freemud.demo.service.MessageService; ...@@ -7,6 +7,7 @@ import cn.freemud.demo.service.MessageService;
import cn.freemud.entities.dto.BenefitBeanDto; import cn.freemud.entities.dto.BenefitBeanDto;
import cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto; import cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto;
import cn.freemud.entities.vo.ActivityList; import cn.freemud.entities.vo.ActivityList;
import cn.freemud.enums.ActivityPromptEnum;
import cn.freemud.enums.ActivityTypeEnum; import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.enums.GiftTypeEnum; import cn.freemud.enums.GiftTypeEnum;
import cn.freemud.utils.WebUtil; import cn.freemud.utils.WebUtil;
...@@ -56,21 +57,38 @@ public class MessageServiceImpl implements MessageService { ...@@ -56,21 +57,38 @@ public class MessageServiceImpl implements MessageService {
ArrayList<ActivityList> activityList = new ArrayList<>(); ArrayList<ActivityList> activityList = new ArrayList<>();
if (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), activityBO.getActivityType())) { if (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), activityBO.getActivityType())) {
messageBuilder.append("每满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(benefitBeanBO.getThresholdAmount() * 1.00 / 100))
.append("</span> 减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(benefitBeanBO.getDiscountAmount() * 1.00 / 100))
.append("</span> ")
.append("最高减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityBO.getMaxMoney() * 1.00 / 100))
.append("</span> 元");
//满足 x 元 减 Y 元 ,最高 减 Z元
ActivityList notInShopping = new ActivityList(); ActivityList notInShopping = new ActivityList();
notInShopping.setTipType(1); if(ActivityPromptEnum.PreferentialTypeEnum.TO_ORDER_ITEM_QUANTITY.getCode().equals(activityBO.getCouponType())) {
notInShopping.setSatisfy(WebUtil.formatAmount(benefitBeanBO.getThresholdAmount() * 1.00 / 100).toString()); messageBuilder.append("每满 <span style=\"color:#fa5555\">")
notInShopping.setDeduct(WebUtil.formatAmount(benefitBeanBO.getDiscountAmount() * 1.00 / 100).toString()); .append(WebUtil.formatAmount(benefitBeanBO.getThresholdAmount() * 1.00 / 100))
notInShopping.setMaxDeduct(WebUtil.formatAmount(activityBO.getMaxMoney() * 1.00 / 100).toString()); .append("</span>件 减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(benefitBeanBO.getDiscountAmount() * 1.00 / 100))
.append("</span> ")
.append("最高减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityBO.getMaxMoney() * 1.00 / 100))
.append("</span> 元");
//满足 x 元 减 Y 元 ,最高 减 Z元
notInShopping.setTipType(13);
notInShopping.setSatisfy(WebUtil.formatAmount(benefitBeanBO.getThresholdAmount() * 1.00 / 100).toString());
notInShopping.setDeduct(WebUtil.formatAmount(benefitBeanBO.getDiscountAmount() * 1.00 / 100).toString());
notInShopping.setMaxDeduct(WebUtil.formatAmount(activityBO.getMaxMoney() * 1.00 / 100).toString());
notInShopping.setInvokeAmount(WebUtil.formatAmount(activityBO.getDelayTimes() * 1.00 / 100).toString());
}else{
messageBuilder.append("每满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(benefitBeanBO.getThresholdAmount() * 1.00 / 100))
.append("</span> 减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(benefitBeanBO.getDiscountAmount() * 1.00 / 100))
.append("</span> ")
.append("最高减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityBO.getMaxMoney() * 1.00 / 100))
.append("</span> 元");
//满足 x 元 减 Y 元 ,最高 减 Z元
notInShopping.setTipType(1);
notInShopping.setSatisfy(WebUtil.formatAmount(benefitBeanBO.getThresholdAmount() * 1.00 / 100).toString());
notInShopping.setDeduct(WebUtil.formatAmount(benefitBeanBO.getDiscountAmount() * 1.00 / 100).toString());
notInShopping.setMaxDeduct(WebUtil.formatAmount(activityBO.getMaxMoney() * 1.00 / 100).toString());
}
activityList.add(notInShopping); activityList.add(notInShopping);
} }
if (Objects.equals(ActivityTypeEnum.TYPE_12.getCode(), activityBO.getActivityType())) { if (Objects.equals(ActivityTypeEnum.TYPE_12.getCode(), activityBO.getActivityType())) {
...@@ -78,20 +96,36 @@ public class MessageServiceImpl implements MessageService { ...@@ -78,20 +96,36 @@ public class MessageServiceImpl implements MessageService {
// // 购物车中无商品或者存在与满减互斥的活动 // // 购物车中无商品或者存在与满减互斥的活动
for (int i = len - 1; i >= 0; i--) { for (int i = len - 1; i >= 0; i--) {
benefitBeanBO = benefitBeanBOList.get(i); benefitBeanBO = benefitBeanBOList.get(i);
messageBuilder.append("满 <span style=\"color:#fa5555\">") if(ActivityPromptEnum.PreferentialTypeEnum.TO_ORDER_ITEM_QUANTITY.getCode().equals(activityBO.getCouponType())) {
.append(WebUtil.formatAmount(benefitBeanBO.getThresholdAmount() * 1.00 / 100)) messageBuilder.append("满 <span style=\"color:#fa5555\">")
.append("</span> 减 <span style=\"color:#fa5555\">") .append(benefitBeanBO.getBenefitNumber())
.append(WebUtil.formatAmount(benefitBeanBO.getDiscountAmount() * 1.00 / 100)) .append("</span>件 减 <span style=\"color:#fa5555\">")
.append("</span> 元"); .append(WebUtil.formatAmount(benefitBeanBO.getDiscountAmount() * 1.00 / 100))
.append("</span> 元");
}else{
messageBuilder.append("满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(benefitBeanBO.getThresholdAmount() * 1.00 / 100))
.append("</span> 减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(benefitBeanBO.getDiscountAmount() * 1.00 / 100))
.append("</span> 元");
}
if (i > 0) messageBuilder.append(","); if (i > 0) messageBuilder.append(",");
} }
// 阶梯满减:满足 X 元 减 Y 元, // 阶梯满减:满足 X 元 减 Y 元,
for (int j = len - 1; j >= 0; j--) { for (int j = len - 1; j >= 0; j--) {
benefitBeanBO = benefitBeanBOList.get(j); benefitBeanBO = benefitBeanBOList.get(j);
ActivityList notInShopping = new ActivityList(); ActivityList notInShopping = new ActivityList();
notInShopping.setTipType(2); if(ActivityPromptEnum.PreferentialTypeEnum.TO_ORDER_ITEM_QUANTITY.getCode().equals(activityBO.getCouponType())) {
notInShopping.setSatisfy(WebUtil.formatAmount(benefitBeanBO.getThresholdAmount() * 1.00 / 100).toString()); notInShopping.setTipType(14);
notInShopping.setDeduct(WebUtil.formatAmount(benefitBeanBO.getDiscountAmount() * 1.00 / 100).toString()); notInShopping.setSatisfy(WebUtil.formatAmount(benefitBeanBO.getThresholdAmount() * 1.00 / 100).toString());
notInShopping.setDeduct(WebUtil.formatAmount(benefitBeanBO.getDiscountAmount() * 1.00 / 100).toString());
notInShopping.setInvokeAmount(WebUtil.formatAmount(activityBO.getDelayTimes() * 1.00 / 100).toString());
}else{
notInShopping.setTipType(2);
notInShopping.setSatisfy(WebUtil.formatAmount(benefitBeanBO.getThresholdAmount() * 1.00 / 100).toString());
notInShopping.setDeduct(WebUtil.formatAmount(benefitBeanBO.getDiscountAmount() * 1.00 / 100).toString());
}
activityList.add(notInShopping); activityList.add(notInShopping);
} }
} }
...@@ -138,20 +172,38 @@ public class MessageServiceImpl implements MessageService { ...@@ -138,20 +172,38 @@ public class MessageServiceImpl implements MessageService {
if (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), activityResponseDto.getActivityType()) || Objects.equals(ActivityTypeEnum.TYPE_12.getCode(), activityResponseDto.getActivityType())) { if (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), activityResponseDto.getActivityType()) || Objects.equals(ActivityTypeEnum.TYPE_12.getCode(), activityResponseDto.getActivityType())) {
if (activityPrompt.getAlreadyDiscountAmount() == null if (activityPrompt.getAlreadyDiscountAmount() == null
|| activityPrompt.getAlreadyDiscountAmount() == 0) { || activityPrompt.getAlreadyDiscountAmount() == 0) {
messageBuilder.append("满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100)) if(ActivityPromptEnum.PreferentialTypeEnum.TO_ORDER_ITEM_QUANTITY.getCode().equals(activityResponseDto.getCouponType())) {
.append("</span> 减 <span style=\"color:#fa5555\">") messageBuilder.append("满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100)) .append(activityPrompt.getThresholdQuantity())
.append("</span> ") .append("</span>件 减 <span style=\"color:#fa5555\">")
.append("还差 <span style=\"color:#fa5555\">") .append(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100))
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100)) .append("</span> ")
.append("</span> 元"); .append("还差 <span style=\"color:#fa5555\">")
// 满足 X 元 减 Y 元 还差 Z元 .append((activityPrompt.getThresholdQuantity() - activityPrompt.getTotalQuantity()) + "")
satisfyList.setTipType(3); .append("</span> 件");
satisfyList.setSatisfy(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100).toString()); // 满足 X 元 减 Y 元 还差 Z元
satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100).toString()); satisfyList.setTipType(ActivityPromptEnum.TipTypeEnum.ELEVEN.getCode());
satisfyList.setMissing(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100).toString()); satisfyList.setSatisfy(activityPrompt.getThresholdQuantity().toString());
} else { satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100).toString());
satisfyList.setMissing(activityPrompt.getThresholdQuantity() - activityPrompt.getTotalQuantity() + "");
satisfyList.setInvokeAmount(WebUtil.formatAmount(activityResponseDto.getDelayTimes() * 1.00 / 100).toString());
}else{
messageBuilder.append("满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100))
.append("</span> 减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100))
.append("</span> ")
.append("还差 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100))
.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 {
Long toDiscountAmout; Long toDiscountAmout;
if (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), activityResponseDto.getActivityType())) { if (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), activityResponseDto.getActivityType())) {
toDiscountAmout = activityPrompt.getDiscountAmout() + activityPrompt.getAlreadyDiscountAmount(); toDiscountAmout = activityPrompt.getDiscountAmout() + activityPrompt.getAlreadyDiscountAmount();
...@@ -159,17 +211,33 @@ public class MessageServiceImpl implements MessageService { ...@@ -159,17 +211,33 @@ public class MessageServiceImpl implements MessageService {
toDiscountAmout = activityPrompt.getDiscountAmout(); toDiscountAmout = activityPrompt.getDiscountAmout();
} }
//已减 X 元 再买 Y 元 减 Z 元 //已减 X 元 再买 Y 元 减 Z 元
messageBuilder.append("已减 <span style=\"color:#fa5555\">") if(ActivityPromptEnum.PreferentialTypeEnum.TO_ORDER_ITEM_QUANTITY.getCode().equals(activityResponseDto.getCouponType())) {
.append(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100)) messageBuilder.append("已减 <span style=\"color:#fa5555\">")
.append("</span> 元 再买 <span style=\"color:#fa5555\">") .append(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100))
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100)) .append("</span> 元 再买 <span style=\"color:#fa5555\">")
.append("</span> 元减 <span style=\"color:#fa5555\">") .append(activityPrompt.getThresholdQuantity() - activityPrompt.getTotalQuantity())
.append(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100)) .append("</span> 件减 <span style=\"color:#fa5555\">")
.append("</span> 元"); .append(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100))
satisfyList.setTipType(4); .append("</span> 元");
satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100).toString()); satisfyList.setTipType(ActivityPromptEnum.TipTypeEnum.TWELVE.getCode());
satisfyList.setAgainBuy(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100).toString()); satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100).toString());
satisfyList.setAgianDeduct(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100).toString()); satisfyList.setAgainBuy((activityPrompt.getThresholdQuantity() - activityPrompt.getTotalQuantity()) + "");
satisfyList.setAgianDeduct(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100).toString());
satisfyList.setInvokeAmount(WebUtil.formatAmount(activityResponseDto.getDelayTimes() * 1.00 / 100).toString());
}else{
messageBuilder.append("已减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100))
.append("</span> 元 再买 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100))
.append("</span> 元减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100))
.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());
}
} }
} }
if (Objects.equals(ActivityTypeEnum.TYPE_230.getCode(), activityResponseDto.getActivityType()) && CollectionUtils.isNotEmpty(activityPrompt.getSendGoods())) { if (Objects.equals(ActivityTypeEnum.TYPE_230.getCode(), activityResponseDto.getActivityType()) && CollectionUtils.isNotEmpty(activityPrompt.getSendGoods())) {
......
...@@ -189,6 +189,7 @@ public class ActivityCalculationDiscountResponseDto { ...@@ -189,6 +189,7 @@ public class ActivityCalculationDiscountResponseDto {
* 门槛启用金额 满足多少钱,参与件数活动 * 门槛启用金额 满足多少钱,参与件数活动
*/ */
private Integer invokeAmount; private Integer invokeAmount;
} }
@Data @Data
......
...@@ -121,6 +121,18 @@ public class CalculationSharingDiscountResponseDto { ...@@ -121,6 +121,18 @@ public class CalculationSharingDiscountResponseDto {
private Long alreadyDiscountAmount; private Long alreadyDiscountAmount;
private Integer activitySubType; private Integer activitySubType;
private List<SendGoods> sendGoods; private List<SendGoods> sendGoods;
/**
* 门槛件数
*/
private Integer thresholdQuantity;
private Integer totalQuantity;
/**
* 门槛启用金额 满足多少钱,参与件数活动
*/
private Integer invokeAmount;
} }
@Data @Data
public static class SendGoods { public static class SendGoods {
......
...@@ -197,20 +197,38 @@ public class FullSubtractionActivityServiceImpl { ...@@ -197,20 +197,38 @@ public class FullSubtractionActivityServiceImpl {
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ActivityPrompt activityPrompt = activityPrompts.get(0); ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ActivityPrompt activityPrompt = activityPrompts.get(0);
ActivityList satisfyList = new ActivityList(); ActivityList satisfyList = new ActivityList();
if (activityPrompt.getAlreadyDiscountAmount() == null || activityPrompt.getAlreadyDiscountAmount() == 0) { if (activityPrompt.getAlreadyDiscountAmount() == null || activityPrompt.getAlreadyDiscountAmount() == 0) {
messageBuilder.append("满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100)) if(ActivityPromptEnum.PreferentialTypeEnum.TO_ORDER_ITEM_QUANTITY.getCode().equals(activityResponseDto.getCouponType())) {
.append("</span> 减 <span style=\"color:#fa5555\">") messageBuilder.append("满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100)) .append(activityPrompt.getThresholdQuantity().toString())
.append("</span> ") .append("</span>件 减 <span style=\"color:#fa5555\">")
.append("还差 <span style=\"color:#fa5555\">") .append(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100))
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100)) .append("</span> ")
.append("</span> 元"); .append("还差 <span style=\"color:#fa5555\">")
// 满足 X 元 减 Y 元 还差 Z元 .append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100))
satisfyList.setTipType(3); .append("</span> 元");
satisfyList.setSatisfy(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100).toString()); // 满足 X 元 减 Y 元 还差 Z元
satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100).toString()); satisfyList.setTipType(11);
satisfyList.setMissing(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100).toString()); satisfyList.setSatisfy(activityPrompt.getThresholdQuantity().toString());
} satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100).toString());
satisfyList.setMissing(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100).toString());
satisfyList.setInvokeAmount(WebUtil.formatAmount(activityResponseDto.getDelayTimes() * 1.00 / 100).toString());
}else{
messageBuilder.append("满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100))
.append("</span> 减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100))
.append("</span> ")
.append("还差 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100))
.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;
//每满减 //每满减
...@@ -222,19 +240,34 @@ public class FullSubtractionActivityServiceImpl { ...@@ -222,19 +240,34 @@ public class FullSubtractionActivityServiceImpl {
} else { } else {
toDiscountAmout = activityPrompt.getDiscountAmout(); toDiscountAmout = activityPrompt.getDiscountAmout();
} }
//已减 X 元 再买 Y 元 减 Z 元 if(ActivityPromptEnum.PreferentialTypeEnum.TO_ORDER_ITEM_QUANTITY.getCode().equals(activityResponseDto.getCouponType())) {
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\">")
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100)) .append(activityPrompt.getThresholdQuantity() - activityPrompt.getTotalQuantity())
.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.setTipType(12);
satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100).toString()); satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100).toString());
satisfyList.setAgainBuy(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100).toString()); satisfyList.setAgainBuy((activityPrompt.getThresholdQuantity() - activityPrompt.getTotalQuantity())+"");
satisfyList.setAgianDeduct(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100).toString()); satisfyList.setAgianDeduct(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100).toString());
} satisfyList.setInvokeAmount(WebUtil.formatAmount(activityResponseDto.getDelayTimes() * 1.00 / 100).toString());
}else{
messageBuilder.append("已减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100))
.append("</span> 元 再买 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100))
.append("</span> 元减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100))
.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());
}
//已减 X 元 再买 Y 元 减 Z 元
}
if (Objects.equals(ActivityTypeEnum.TYPE_230.getCode(), activityResponseDto.getActivityType()) && CollectionUtils.isNotEmpty(activityPrompt.getSendGoods())) { if (Objects.equals(ActivityTypeEnum.TYPE_230.getCode(), activityResponseDto.getActivityType()) && CollectionUtils.isNotEmpty(activityPrompt.getSendGoods())) {
satisfyList.setTipType(10); satisfyList.setTipType(10);
......
...@@ -252,6 +252,7 @@ public class FullSharingService { ...@@ -252,6 +252,7 @@ public class FullSharingService {
notInShopping.setSatisfy(benefitBeanDto.getBenefitNumber().toString()); notInShopping.setSatisfy(benefitBeanDto.getBenefitNumber().toString());
notInShopping.setDeduct(WebUtil.formatAmount(benefitBeanDto.getDiscountAmount() * 1.00 / 100).toString()); notInShopping.setDeduct(WebUtil.formatAmount(benefitBeanDto.getDiscountAmount() * 1.00 / 100).toString());
notInShopping.setMaxDeduct(WebUtil.formatAmount(activityResponseDto.getMaxMoney() * 1.00 / 100).toString()); notInShopping.setMaxDeduct(WebUtil.formatAmount(activityResponseDto.getMaxMoney() * 1.00 / 100).toString());
notInShopping.setInvokeAmount(WebUtil.formatAmount(activityResponseDto.getDelayTimes() * 1.00 / 100).toString());
activityList.add(notInShopping); activityList.add(notInShopping);
}else{ }else{
// todo // todo
...@@ -302,7 +303,7 @@ public class FullSharingService { ...@@ -302,7 +303,7 @@ public class FullSharingService {
notInShopping.setTipType(16); notInShopping.setTipType(16);
notInShopping.setSatisfy(benefitBeanDto.getBenefitNumber().toString()); notInShopping.setSatisfy(benefitBeanDto.getBenefitNumber().toString());
notInShopping.setDeduct(WebUtil.formatAmount(benefitBeanDto.getDiscountAmount() * 1.00 / 100).toString()); notInShopping.setDeduct(WebUtil.formatAmount(benefitBeanDto.getDiscountAmount() * 1.00 / 100).toString());
notInShopping.setInvokeAmount(WebUtil.formatAmount(activityResponseDto.getDelayTimes() * 1.00 / 100).toString() );
}else{ }else{
notInShopping.setTipType(2); notInShopping.setTipType(2);
notInShopping.setSatisfy(WebUtil.formatAmount(benefitBeanDto.getThresholdAmount() * 1.00 / 100).toString()); notInShopping.setSatisfy(WebUtil.formatAmount(benefitBeanDto.getThresholdAmount() * 1.00 / 100).toString());
...@@ -353,20 +354,39 @@ public class FullSharingService { ...@@ -353,20 +354,39 @@ public class FullSharingService {
CalculationSharingDiscountResponseDto.CalculationDiscountResult.ActivityPrompt activityPrompt = activityPrompts.get(0); CalculationSharingDiscountResponseDto.CalculationDiscountResult.ActivityPrompt activityPrompt = activityPrompts.get(0);
if (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), activityResponseDto.getActivityType()) || Objects.equals(ActivityTypeEnum.TYPE_12.getCode(), activityResponseDto.getActivityType())) { if (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), activityResponseDto.getActivityType()) || Objects.equals(ActivityTypeEnum.TYPE_12.getCode(), activityResponseDto.getActivityType())) {
if (activityPrompt.getAlreadyDiscountAmount() == null || activityPrompt.getAlreadyDiscountAmount() == 0) { if (activityPrompt.getAlreadyDiscountAmount() == null || activityPrompt.getAlreadyDiscountAmount() == 0) {
messageBuilder.append("满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100)) if(ActivityPromptEnum.PreferentialTypeEnum.TO_ORDER_ITEM_QUANTITY.getCode().equals(activityResponseDto.getCouponType())) {
.append("</span> 减 <span style=\"color:#fa5555\">") messageBuilder.append("满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100)) .append(activityPrompt.getThresholdQuantity())
.append("</span> ") .append("</span>件 减 <span style=\"color:#fa5555\">")
.append("还差 <span style=\"color:#fa5555\">") .append(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100))
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100)) .append("</span> ")
.append("</span> 元"); .append("还差 <span style=\"color:#fa5555\">")
// 满足 X 元 减 Y 元 还差 Z元 .append((activityPrompt.getThresholdQuantity() - activityPrompt.getTotalQuantity()) )
satisfyList.setTipType(3); .append("</span> 元");
satisfyList.setSatisfy(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100).toString()); // 满足 X 元 减 Y 元 还差 Z元
satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100).toString()); satisfyList.setTipType(11);
satisfyList.setMissing(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100).toString()); satisfyList.setSatisfy(activityPrompt.getThresholdQuantity().toString());
} else { satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100).toString());
satisfyList.setMissing((activityPrompt.getThresholdQuantity() - activityPrompt.getTotalQuantity())+ "");
satisfyList.setInvokeAmount(WebUtil.formatAmount(activityResponseDto.getDelayTimes() * 1.00 / 100).toString());
}else{
messageBuilder.append("满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100))
.append("</span> 减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100))
.append("</span> ")
.append("还差 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100))
.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 {
Long toDiscountAmout; Long toDiscountAmout;
if (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), activityResponseDto.getActivityType())) { if (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), activityResponseDto.getActivityType())) {
toDiscountAmout = activityPrompt.getDiscountAmout() + activityPrompt.getAlreadyDiscountAmount(); toDiscountAmout = activityPrompt.getDiscountAmout() + activityPrompt.getAlreadyDiscountAmount();
...@@ -374,18 +394,35 @@ public class FullSharingService { ...@@ -374,18 +394,35 @@ public class FullSharingService {
toDiscountAmout = activityPrompt.getDiscountAmout(); toDiscountAmout = activityPrompt.getDiscountAmout();
} }
//已减 X 元 再买 Y 元 减 Z 元 //已减 X 元 再买 Y 元 减 Z 元
messageBuilder.append("已减 <span style=\"color:#fa5555\">") if(ActivityPromptEnum.PreferentialTypeEnum.TO_ORDER_ITEM_QUANTITY.getCode().equals(activityResponseDto.getCouponType())) {
.append(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100)) messageBuilder.append("已减 <span style=\"color:#fa5555\">")
.append("</span> 元 再买 <span style=\"color:#fa5555\">") .append(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100))
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100)) .append("</span> 元 再买 <span style=\"color:#fa5555\">")
.append("</span> 元减 <span style=\"color:#fa5555\">") .append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100))
.append(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100)) .append("</span> 件减 <span style=\"color:#fa5555\">")
.append("</span> 元"); .append(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100))
satisfyList.setTipType(4); .append("</span> 元");
satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100).toString()); satisfyList.setTipType(12);
satisfyList.setAgainBuy(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100).toString()); satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100).toString());
satisfyList.setAgianDeduct(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100).toString()); satisfyList.setAgainBuy((activityPrompt.getThresholdQuantity() - activityPrompt.getTotalQuantity())+"");
} satisfyList.setAgianDeduct(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100).toString());
satisfyList.setInvokeAmount(WebUtil.formatAmount(activityResponseDto.getDelayTimes() * 1.00 / 100).toString());
}else{
messageBuilder.append("已减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100))
.append("</span> 元 再买 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100))
.append("</span> 元减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100))
.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());
}
}
} }
if (Objects.equals(ActivityTypeEnum.TYPE_230.getCode(), activityResponseDto.getActivityType()) && CollectionUtils.isNotEmpty(activityPrompt.getSendGoods())) { if (Objects.equals(ActivityTypeEnum.TYPE_230.getCode(), activityResponseDto.getActivityType()) && CollectionUtils.isNotEmpty(activityPrompt.getSendGoods())) {
......
...@@ -8,6 +8,7 @@ import cn.freemud.entities.dto.activity.ActivityQueryDto; ...@@ -8,6 +8,7 @@ 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.dto.shoppingCart.ShoppingCartGoodsDto; import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.enums.ActivityPromptEnum;
import cn.freemud.enums.ActivityTypeEnum; import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.service.ActivityService; import cn.freemud.service.ActivityService;
import cn.freemud.utils.WebUtil; import cn.freemud.utils.WebUtil;
...@@ -136,21 +137,39 @@ public class FullPromotionCalculation { ...@@ -136,21 +137,39 @@ public class FullPromotionCalculation {
} }
BenefitBeanDto benefitBeanDto = benefitBeanDtos.get(0); BenefitBeanDto benefitBeanDto = benefitBeanDtos.get(0);
if (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), activityResponseDto.getActivityType())) { if (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), activityResponseDto.getActivityType())) {
messageBuilder.append("每满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(benefitBeanDto.getThresholdAmount() * 1.00 / 100))
.append("</span> 减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(benefitBeanDto.getDiscountAmount() * 1.00 / 100))
.append("</span> ")
.append("最高减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityResponseDto.getMaxMoney() * 1.00 / 100))
.append("</span> 元");
//满足 x 元 减 Y 元 ,最高 减 Z元
cn.freemud.entities.vo.ActivityList notInShopping = new ActivityList(); cn.freemud.entities.vo.ActivityList notInShopping = new ActivityList();
notInShopping.setTipType(1); if(ActivityPromptEnum.PreferentialTypeEnum.TO_ORDER_ITEM_QUANTITY.getCode().equals(activityResponseDto.getCouponType())) {
notInShopping.setSatisfy(WebUtil.formatAmount(benefitBeanDto.getThresholdAmount() * 1.00 / 100).toString()); messageBuilder.append("每满 <span style=\"color:#fa5555\">")
notInShopping.setDeduct(WebUtil.formatAmount(benefitBeanDto.getDiscountAmount() * 1.00 / 100).toString()); .append(benefitBeanDto.getBenefitNumber())
notInShopping.setMaxDeduct(WebUtil.formatAmount(activityResponseDto.getMaxMoney() * 1.00 / 100).toString()); .append("</span> 减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(benefitBeanDto.getDiscountAmount() * 1.00 / 100))
.append("</span> ")
.append("最高减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityResponseDto.getMaxMoney() * 1.00 / 100))
.append("</span> 元");
//满足 x 元 减 Y 元 ,最高 减 Z元
notInShopping.setTipType(15);
notInShopping.setSatisfy(benefitBeanDto.getBenefitNumber().toString());
notInShopping.setDeduct(WebUtil.formatAmount(benefitBeanDto.getDiscountAmount() * 1.00 / 100).toString());
notInShopping.setMaxDeduct(WebUtil.formatAmount(activityResponseDto.getMaxMoney() * 1.00 / 100).toString());
notInShopping.setInvokeAmount(WebUtil.formatAmount(activityResponseDto.getDelayTimes() * 1.00 / 100).toString());
}else{
messageBuilder.append("每满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(benefitBeanDto.getThresholdAmount() * 1.00 / 100))
.append("</span> 减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(benefitBeanDto.getDiscountAmount() * 1.00 / 100))
.append("</span> ")
.append("最高减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityResponseDto.getMaxMoney() * 1.00 / 100))
.append("</span> 元");
//满足 x 元 减 Y 元 ,最高 减 Z元
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); activityList.add(notInShopping);
} }
if (Objects.equals(ActivityTypeEnum.TYPE_12.getCode(), activityResponseDto.getActivityType())) { if (Objects.equals(ActivityTypeEnum.TYPE_12.getCode(), activityResponseDto.getActivityType())) {
...@@ -169,9 +188,16 @@ public class FullPromotionCalculation { ...@@ -169,9 +188,16 @@ public class FullPromotionCalculation {
for (int j = len - 1; j >= 0; j--) { for (int j = len - 1; j >= 0; j--) {
benefitBeanDto = benefitBeanDtos.get(j); benefitBeanDto = benefitBeanDtos.get(j);
cn.freemud.entities.vo.ActivityList notInShopping = new ActivityList(); cn.freemud.entities.vo.ActivityList notInShopping = new ActivityList();
notInShopping.setTipType(2); if(ActivityPromptEnum.PreferentialTypeEnum.TO_ORDER_ITEM_QUANTITY.getCode().equals(activityResponseDto.getCouponType())) {
notInShopping.setSatisfy(WebUtil.formatAmount(benefitBeanDto.getThresholdAmount() * 1.00 / 100).toString()); notInShopping.setTipType(16);
notInShopping.setDeduct(WebUtil.formatAmount(benefitBeanDto.getDiscountAmount() * 1.00 / 100).toString()); notInShopping.setSatisfy(benefitBeanDto.getBenefitNumber().toString());
notInShopping.setDeduct(WebUtil.formatAmount(benefitBeanDto.getDiscountAmount() * 1.00 / 100).toString());
notInShopping.setInvokeAmount(WebUtil.formatAmount(activityResponseDto.getDelayTimes() * 1.00 / 100).toString());
}else{
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); activityList.add(notInShopping);
} }
} }
...@@ -192,20 +218,40 @@ public class FullPromotionCalculation { ...@@ -192,20 +218,40 @@ public class FullPromotionCalculation {
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ActivityPrompt activityPrompt = activityPrompts.get(0); ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ActivityPrompt activityPrompt = activityPrompts.get(0);
if (activityPrompt.getAlreadyDiscountAmount() == null if (activityPrompt.getAlreadyDiscountAmount() == null
|| activityPrompt.getAlreadyDiscountAmount() == 0) { || activityPrompt.getAlreadyDiscountAmount() == 0) {
messageBuilder.append("满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100)) if(ActivityPromptEnum.PreferentialTypeEnum.TO_ORDER_ITEM_QUANTITY.getCode().equals(activityResponseDto.getCouponType())) {
.append("</span> 减 <span style=\"color:#fa5555\">") messageBuilder.append("满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100)) .append(activityPrompt.getThresholdQuantity())
.append("</span> ") .append("</span>件 减 <span style=\"color:#fa5555\">")
.append("还差 <span style=\"color:#fa5555\">") .append(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100))
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100)) .append("</span> ")
.append("</span> 元"); .append("还差 <span style=\"color:#fa5555\">")
// 满足 X 元 减 Y 元 还差 Z元 .append((activityPrompt.getThresholdQuantity() - activityPrompt.getTotalQuantity()))
satisfyList.setTipType(3); .append("</span> 件");
satisfyList.setSatisfy(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100).toString()); // 满足 X 元 减 Y 元 还差 Z元
satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100).toString()); satisfyList.setTipType(ActivityPromptEnum.TipTypeEnum.ELEVEN.getCode());
satisfyList.setMissing(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100).toString()); satisfyList.setSatisfy(activityPrompt.getThresholdQuantity().toString());
} else { satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100).toString());
satisfyList.setMissing((activityPrompt.getThresholdQuantity() - activityPrompt.getTotalQuantity()) + "");
satisfyList.setInvokeAmount(WebUtil.formatAmount(activityResponseDto.getDelayTimes() * 1.00 / 100).toString());
}else{
messageBuilder.append("满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100))
.append("</span> 减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100))
.append("</span> ")
.append("还差 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100))
.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 {
Long toDiscountAmout; Long toDiscountAmout;
if (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), activityResponseDto.getActivityType())) { if (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), activityResponseDto.getActivityType())) {
toDiscountAmout = activityPrompt.getDiscountAmout() + activityPrompt.getAlreadyDiscountAmount(); toDiscountAmout = activityPrompt.getDiscountAmout() + activityPrompt.getAlreadyDiscountAmount();
...@@ -213,17 +259,33 @@ public class FullPromotionCalculation { ...@@ -213,17 +259,33 @@ public class FullPromotionCalculation {
toDiscountAmout = activityPrompt.getDiscountAmout(); toDiscountAmout = activityPrompt.getDiscountAmout();
} }
//已减 X 元 再买 Y 元 减 Z 元 //已减 X 元 再买 Y 元 减 Z 元
messageBuilder.append("已减 <span style=\"color:#fa5555\">") if(ActivityPromptEnum.PreferentialTypeEnum.TO_ORDER_ITEM_QUANTITY.getCode().equals(activityResponseDto.getCouponType())) {
.append(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100)) messageBuilder.append("已减 <span style=\"color:#fa5555\">")
.append("</span> 元 再买 <span style=\"color:#fa5555\">") .append(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100))
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100)) .append("</span> 元 再买 <span style=\"color:#fa5555\">")
.append("</span> 元减 <span style=\"color:#fa5555\">") .append(activityPrompt.getThresholdQuantity() - activityPrompt.getTotalQuantity())
.append(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100)) .append("</span> 件减 <span style=\"color:#fa5555\">")
.append("</span> 元"); .append(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100))
satisfyList.setTipType(4); .append("</span> 元");
satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100).toString()); satisfyList.setTipType(ActivityPromptEnum.TipTypeEnum.TWELVE.getCode());
satisfyList.setAgainBuy(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100).toString()); satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100).toString());
satisfyList.setAgianDeduct(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100).toString()); satisfyList.setAgainBuy((activityPrompt.getThresholdQuantity() - activityPrompt.getTotalQuantity()) + "");
satisfyList.setAgianDeduct(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100).toString());
satisfyList.setInvokeAmount(WebUtil.formatAmount(activityResponseDto.getDelayTimes() * 1.00 / 100).toString());
}
else{
messageBuilder.append("已减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100))
.append("</span> 元 再买 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100))
.append("</span> 元减 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100))
.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());
}
} }
activityList.add(satisfyList); activityList.add(satisfyList);
} }
......
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