Commit 82786acd by hanghang.wang

Merge branch 'feature/20210723_促销满减活动购物车提示语改造新_wanghanghang'

parents 67d33060 4a68319c
...@@ -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
......
...@@ -561,7 +561,7 @@ public abstract class AbstractAddGoodsService implements AddGoodsService { ...@@ -561,7 +561,7 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
//满足 x 元 减 Y 元 ,最高 减 Z元 //满足 x 元 减 Y 元 ,最高 减 Z元
ActivityList notInShopping = new ActivityList(); ActivityList notInShopping = new ActivityList();
notInShopping.setTipType(1); notInShopping.setTipType(ActivityPromptEnum.TipTypeEnum.ONE.getCode());
notInShopping.setSatisfy(WebUtil.formatAmount(benefitBeanBO.getThresholdAmount() * 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.setDeduct(WebUtil.formatAmount(benefitBeanBO.getDiscountAmount() * 1.00 / 100).toString());
notInShopping.setMaxDeduct(WebUtil.formatAmount(activityBO.getMaxMoney() * 1.00 / 100).toString()); notInShopping.setMaxDeduct(WebUtil.formatAmount(activityBO.getMaxMoney() * 1.00 / 100).toString());
...@@ -583,7 +583,7 @@ public abstract class AbstractAddGoodsService implements AddGoodsService { ...@@ -583,7 +583,7 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
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); notInShopping.setTipType(ActivityPromptEnum.TipTypeEnum.TWO.getCode());
notInShopping.setSatisfy(WebUtil.formatAmount(benefitBeanBO.getThresholdAmount() * 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.setDeduct(WebUtil.formatAmount(benefitBeanBO.getDiscountAmount() * 1.00 / 100).toString());
activityList.add(notInShopping); activityList.add(notInShopping);
...@@ -607,39 +607,75 @@ public abstract class AbstractAddGoodsService implements AddGoodsService { ...@@ -607,39 +607,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(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(ActivityPromptEnum.TipTypeEnum.THREE.getCode());
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(ActivityPromptEnum.TipTypeEnum.TWELVE.getCode());
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(ActivityPromptEnum.TipTypeEnum.FOUR.getCode());
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\">")
......
...@@ -165,6 +165,8 @@ public class ActivityCalculationDiscountResponseDto { ...@@ -165,6 +165,8 @@ public class ActivityCalculationDiscountResponseDto {
*/ */
private Long thresholdAmount; private Long thresholdAmount;
private Long totalAmount; private Long totalAmount;
private Integer totalQuantity;
/** /**
* 已经优惠金额 * 已经优惠金额
*/ */
...@@ -172,6 +174,22 @@ public class ActivityCalculationDiscountResponseDto { ...@@ -172,6 +174,22 @@ public class ActivityCalculationDiscountResponseDto {
private Integer alreadyDiscountThresholdAmount; private Integer alreadyDiscountThresholdAmount;
private Integer activitySubType; private Integer activitySubType;
private List<SendGoods> sendGoods; private List<SendGoods> sendGoods;
/**
* 优惠类型 3 根据件数满减
*/
private Integer preferentialType;
/**
* 门槛件数
*/
private Integer thresholdQuantity;
/**
* 门槛启用金额 满足多少钱,参与件数活动
*/
private Integer invokeAmount;
} }
@Data @Data
......
...@@ -17,6 +17,8 @@ public class BenefitBeanDto implements Comparable<BenefitBeanDto>{ ...@@ -17,6 +17,8 @@ public class BenefitBeanDto implements Comparable<BenefitBeanDto>{
* 优惠门槛(分) * 优惠门槛(分)
*/ */
private Integer thresholdAmount; private Integer thresholdAmount;
private Integer benefitNumber;
/** /**
* 优惠金额(分) * 优惠金额(分)
*/ */
......
...@@ -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 {
......
...@@ -31,6 +31,12 @@ public class ActivityList { ...@@ -31,6 +31,12 @@ public class ActivityList {
- - 满足 satisfy 减 deduct 还差 missing - - 满足 satisfy 减 deduct 还差 missing
- - 4 : 已减 X 元 再买 Y 元 减 Z 元 - - 4 : 已减 X 元 再买 Y 元 减 Z 元
- - 已减 alreadyDecut 再买againBuy 减 deduct - - 已减 alreadyDecut 再买againBuy 减 deduct
- - 11 : 满足 X 件 减 Y 元 还差 Z元
- - 满足 satisfy 减 deduct 还差 missing
- - 12 : 已减 X 元 再买 Y 件 减 Z 元
- - 已减 alreadyDecut 再买againBuy 减 deduct
- - 不满足 - - 不满足
- - 5 : 已减 X 元 - - 5 : 已减 X 元
- - 已减 deduct - - 已减 deduct
...@@ -55,6 +61,9 @@ public class ActivityList { ...@@ -55,6 +61,9 @@ public class ActivityList {
private List<McCafeSendGoods> mcCafeSendGoodsList; private List<McCafeSendGoods> mcCafeSendGoodsList;
//满足多少 参与活动
private String invokeAmount;
@Data @Data
public static class SendGoods { public static class SendGoods {
private Integer qty; private Integer qty;
......
package cn.freemud.enums;
/**
* @author freemud
* @title: ActivityPromptEnum
* @projectName order-group
* @description: TODO
* @date 2021/8/3下午4:16
*/
public class ActivityPromptEnum {
public enum PreferentialTypeEnum {
TO_ORDER_ITEM_QUANTITY(3, "按订单商品件数");
private Integer code;
private String desc;
PreferentialTypeEnum(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public static PreferentialTypeEnum getByCode(String code) {
for (PreferentialTypeEnum type : values()) {
if (type.getCode().equals(code)) {
return type;
}
}
return null;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
/*
购物车
- 空
- - 1 : 每满 : 满足 x 元 减 Y 元 ,最高 减 Z元
- - 满足 satisfy 减 deduct 最高减 maxDeduct
- - 2 : 阶梯满减:满足 X 元 减 Y 元,
- -满足 satisfy 减 deduct
- 有
- - 满足
- - 3 : 满足 X 元 减 Y 元 还差 Z元
- - 满足 satisfy 减 deduct 还差 missing
- - 4 : 已减 X 元 再买 Y 元 减 Z 元
- - 已减 alreadyDecut 再买againBuy 减 deduct
- - 11 : 满足 X 件 减 Y 元 还差 Z元
- - 满足 satisfy 减 deduct 还差 missing
- - 12 : 已减 X 元 再买 Y 件 减 Z 元
- - 已减 alreadyDecut 再买againBuy 减 deduct
- - 不满足
- - 5 : 已减 X 元
- - 已减 deduct
*/
/***
* 购物车处理促销返回活动文案枚举
* 类型插入全部是数值,具体描述还存在遗漏
* 上面的描述没怎么看明白,先写个枚举类。
* 有人接手,后面查漏补缺统一掉
*/
public enum TipTypeEnum {
ONE(1, "每满 : 满足 x 元 减 Y 元 ,最高 减 Z元"),
TWO(2, "阶梯满减:满足 X 元 减 Y 元"),
THREE(3, "满足 X 元 减 Y 元 还差 Z元"),
FOUR(4, "已减 X 元 再买 Y 元 减 Z 元"),
FIVE(5, "已减 X 元"),
SEVEN(7, ""),
EIGHT(8, ""),
TEN(10, ""),
ELEVEN(11, "购买in 元以上的商品可参与 满足 X 件 减 Y 元 还差 Z元"),
TWELVE(12, "已减 X 元 再买 Y 件 减 Z 元"),
THIRTEEN(13, "购买in 元以上的商品可参与 满足 X 件 减 Y 元 还差 Z元"),
FOURTEEN(14, "已减 X 元 再买 Y 件 减 Z 元"),
FIFTEEN(15, "每满 : 每满 x 件 减 Y 元 ,最高 减 Z元"),
SIXTEEN(16, "每满 : 每满 x 件 减 Y 元 ,最高 减 Z元"),
;
private Integer code;
private String desc;
TipTypeEnum(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public static TipTypeEnum getByCode(String code) {
for (TipTypeEnum type : values()) {
if (type.getCode().equals(code)) {
return type;
}
}
return null;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
}
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