Commit c5404f8a by hanghang.wang

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

parents 54646cef d963a600
...@@ -29,7 +29,7 @@ import com.freemud.application.sdk.api.promotioncenter.response.PromotionRespons ...@@ -29,7 +29,7 @@ import com.freemud.application.sdk.api.promotioncenter.response.PromotionRespons
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@FeignClient(name = "promotion-service", url = "${saas.activityclient.feign.url}") @FeignClient(name = "promotion-service", url = "http://localhost:8003")
@RequestMapping(produces = {"application/json;charset=UTF-8"}) @RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface PromotionDiscountClient { public interface PromotionDiscountClient {
......
...@@ -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,16 @@ public class ActivityCalculationDiscountResponseDto { ...@@ -172,6 +174,16 @@ 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;
} }
@Data @Data
......
...@@ -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
......
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, "满足 X 件 减 Y 元 还差 Z元"),
TWELVE(12, "已减 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;
}
}
}
...@@ -5,6 +5,7 @@ import cn.freemud.entities.dto.activity.ActivityQueryDto; ...@@ -5,6 +5,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.enums.GiftTypeEnum; import cn.freemud.enums.GiftTypeEnum;
import cn.freemud.service.ActivityService; import cn.freemud.service.ActivityService;
...@@ -222,22 +223,23 @@ public class FullPromotionService implements IPromotionService { ...@@ -222,22 +223,23 @@ public class FullPromotionService implements IPromotionService {
ActivityList satisfyList = new ActivityList(); ActivityList satisfyList = new ActivityList();
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ActivityPrompt activityPrompt = activityPrompts.get(0); ActivityCalculationDiscountResponseDto.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 if (activityPrompt.getAlreadyDiscountAmount() == null || activityPrompt.getAlreadyDiscountAmount() == 0) {
|| activityPrompt.getAlreadyDiscountAmount() == 0) {
messageBuilder.append("满 <span style=\"color:#fa5555\">") if(ActivityPromptEnum.PreferentialTypeEnum.TO_ORDER_ITEM_QUANTITY.getCode().equals(activityPrompt.getPreferentialType())){
.append(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100)) // 满足 X 元/件 减 Y 元 还差 Z元
.append("</span> 减 <span style=\"color:#fa5555\">") satisfyList.setTipType(ActivityPromptEnum.TipTypeEnum.ELEVEN.getCode());
.append(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100)) satisfyList.setSatisfy(activityPrompt.getThresholdQuantity().toString());
.append("</span> ") satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 1.00 / 100).toString());
.append("还差 <span style=\"color:#fa5555\">") satisfyList.setMissing(String.valueOf(activityPrompt.getThresholdQuantity() - activityPrompt.getTotalQuantity()));
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100)) }else{
.append("</span> 元"); // 满足 X 元 减 Y 元 还差 Z元
// 满足 X 元 减 Y 元 还差 Z元 satisfyList.setTipType(ActivityPromptEnum.TipTypeEnum.THREE.getCode());
satisfyList.setTipType(3); satisfyList.setSatisfy(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100).toString());
satisfyList.setSatisfy(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100).toString()); satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getDiscountAmout() * 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());
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())) {
...@@ -245,23 +247,24 @@ public class FullPromotionService implements IPromotionService { ...@@ -245,23 +247,24 @@ public class FullPromotionService implements IPromotionService {
} else { } else {
toDiscountAmout = activityPrompt.getDiscountAmout(); toDiscountAmout = activityPrompt.getDiscountAmout();
} }
//已减 X 元 再买 Y 元 减 Z 元 if(ActivityPromptEnum.PreferentialTypeEnum.TO_ORDER_ITEM_QUANTITY.getCode().equals(activityPrompt.getPreferentialType())){
messageBuilder.append("已减 <span style=\"color:#fa5555\">") //已减 X 元 再买 Y 元 减 Z 元
.append(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100)) satisfyList.setTipType(ActivityPromptEnum.TipTypeEnum.TWELVE.getCode());
.append("</span> 元 再买 <span style=\"color:#fa5555\">") satisfyList.setDeduct(WebUtil.formatAmount(activityPrompt.getAlreadyDiscountAmount() * 1.00 / 100).toString());
.append(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100)) satisfyList.setAgainBuy(String.valueOf(activityPrompt.getThresholdQuantity() - activityPrompt.getTotalQuantity()));
.append("</span> 元减 <span style=\"color:#fa5555\">") satisfyList.setAgianDeduct(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100).toString());
.append(WebUtil.formatAmount(toDiscountAmout * 1.00 / 100)) }else{
.append("</span> 元"); //已减 X 元 再买 Y 元 减 Z 元
satisfyList.setTipType(4); satisfyList.setTipType(ActivityPromptEnum.TipTypeEnum.FOUR.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(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100).toString());
satisfyList.setAgianDeduct(WebUtil.formatAmount(toDiscountAmout * 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())) {
satisfyList.setTipType(10); satisfyList.setTipType(ActivityPromptEnum.TipTypeEnum.TEN.getCode());
List<ActivityList.SendGoods> sends = new ArrayList(); List<ActivityList.SendGoods> sends = new ArrayList();
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendGoods sendGood : activityPrompt.getSendGoods()) { for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendGoods sendGood : activityPrompt.getSendGoods()) {
ActivityList.SendGoods send = new ActivityList.SendGoods(); ActivityList.SendGoods send = new ActivityList.SendGoods();
...@@ -273,17 +276,17 @@ public class FullPromotionService implements IPromotionService { ...@@ -273,17 +276,17 @@ public class FullPromotionService implements IPromotionService {
satisfyList.setSatisfy(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100).toString()); satisfyList.setSatisfy(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100).toString());
satisfyList.setMissing(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100).toString()); satisfyList.setMissing(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100).toString());
if (GiftTypeEnum.TYPE_1.getType().equals(activityResponseDto.getActivitySubType())) { if (GiftTypeEnum.TYPE_1.getType().equals(activityResponseDto.getActivitySubType())) {
satisfyList.setTipType(8); satisfyList.setTipType(ActivityPromptEnum.TipTypeEnum.EIGHT.getCode());
} }
else { else {
satisfyList.setTipType(7); satisfyList.setTipType(ActivityPromptEnum.TipTypeEnum.SEVEN.getCode());
} }
if (activityPrompt.getTotalAmount()>=activityPrompt.getThresholdAmount()) { if (activityPrompt.getTotalAmount()>=activityPrompt.getThresholdAmount()) {
if (GiftTypeEnum.TYPE_1.getType().equals(activityResponseDto.getActivitySubType())) { if (GiftTypeEnum.TYPE_1.getType().equals(activityResponseDto.getActivitySubType())) {
satisfyList.setTipType(10); satisfyList.setTipType(ActivityPromptEnum.TipTypeEnum.TEN.getCode());
} }
else { else {
satisfyList.setTipType(7); satisfyList.setTipType(ActivityPromptEnum.TipTypeEnum.SEVEN.getCode());
} }
} }
} }
......
...@@ -24,7 +24,7 @@ import org.springframework.web.bind.annotation.PostMapping; ...@@ -24,7 +24,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
//券活动测试 地址:http://115.159.65.101:8003 线上 http://10.51.0.7:8003 //券活动测试 地址:http://115.159.65.101:8003 线上 http://10.51.0.7:8003
@FeignClient(name = "promotion-service", url = "${saas.activityclient.feign.url}") @FeignClient(name = "promotion-service", url = "http://localhost:8003")
@RequestMapping(produces = {"application/json;charset=UTF-8"}) @RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface ActivityClient { public interface ActivityClient {
......
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