Commit 5728124a by zhiheng.zhang

Merge remote-tracking branch 'origin/master'

parents dc239497 8f6177eb
...@@ -123,7 +123,7 @@ public class AppOrderServiceImpl implements AppOrderService { ...@@ -123,7 +123,7 @@ public class AppOrderServiceImpl implements AppOrderService {
requestDto.setCouponCodes(couponList); requestDto.setCouponCodes(couponList);
requestDto.setPartnerId(Integer.valueOf(createOrderVo.getPartnerId())); requestDto.setPartnerId(Integer.valueOf(createOrderVo.getPartnerId()));
InvalidCouponsResponseDto invalidCouponsResponseDto = couponOnlineClient.invalidCoupons(requestDto); InvalidCouponsResponseDto invalidCouponsResponseDto = couponOnlineClient.invalidCoupons(requestDto);
if (invalidCouponsResponseDto.getStatusCode() != 100 || invalidCouponsResponseDto.getData() == null || (invalidCouponsResponseDto.getData() != null && CollectionUtils.isEmpty(invalidCouponsResponseDto.getData().getInvalidCoupons()))){ if (invalidCouponsResponseDto.getStatusCode() != 100 || invalidCouponsResponseDto.getData() == null || (invalidCouponsResponseDto.getData() != null && CollectionUtils.isNotEmpty(invalidCouponsResponseDto.getData().getInvalidCoupons()))){
return ResponseUtil.error(ResponseResult.COUPON_INVALID.getCode(), ResponseResult.COUPON_INVALID.getMessage()); return ResponseUtil.error(ResponseResult.COUPON_INVALID.getCode(), ResponseResult.COUPON_INVALID.getMessage());
} }
} }
......
...@@ -17,6 +17,10 @@ public class ActivityCalculationDiscountRequestDto { ...@@ -17,6 +17,10 @@ public class ActivityCalculationDiscountRequestDto {
*/ */
private String channel; private String channel;
/** /**
* 渠道
*/
private String productChannel;
/**
* 绑定的小程序id * 绑定的小程序id
*/ */
private String appId; private String appId;
......
...@@ -114,13 +114,30 @@ public class ActivityCalculationDiscountResponseDto { ...@@ -114,13 +114,30 @@ public class ActivityCalculationDiscountResponseDto {
@Data @Data
public static class ActivityPrompt { public static class ActivityPrompt {
/**
* 活动名称
*/
private String acitivityName; private String acitivityName;
/**
* 活动号
*/
private String activityCode; private String activityCode;
/**
* 活动类型
*/
private Integer activityType; private Integer activityType;
private Long discountAmout; private Long discountAmout;
/**
* 门槛金额
*/
private Long thresholdAmount; private Long thresholdAmount;
private Long totalAmount; private Long totalAmount;
/**
* 已经优惠金额
*/
private Long alreadyDiscountAmount; private Long alreadyDiscountAmount;
private Integer activitySubType;
private List<SendGoods> sendGoods;
} }
@Data @Data
...@@ -516,6 +533,12 @@ public class ActivityCalculationDiscountResponseDto { ...@@ -516,6 +533,12 @@ public class ActivityCalculationDiscountResponseDto {
} }
} }
@Data
public static class SendGoods {
private String goodsId;
private String goodsName;
private Integer sendNumber;
}
} }
......
package cn.freemud.entities.dto; package cn.freemud.entities.dto;
import com.freemud.application.sdk.api.promotioncenter.domain.ActivityBenefitVO;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
...@@ -126,7 +127,10 @@ public class ActivityResponseDto { ...@@ -126,7 +127,10 @@ public class ActivityResponseDto {
private String creater; private String creater;
private String updateor; private String updateor;
/**
* 活动子类型 1 阶梯 2 每满
*/
private Integer activitySubType;
/** /**
* 优惠列表(单品促销不需要此字段,传入此字段则不允许保存。) * 优惠列表(单品促销不需要此字段,传入此字段则不允许保存。)
*/ */
......
package cn.freemud.entities.dto; package cn.freemud.entities.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.Min;
import java.util.ArrayList;
import java.util.List;
@Data @Data
public class BenefitBeanDto { public class BenefitBeanDto implements Comparable<BenefitBeanDto>{
/** /**
* 优惠券名称 * 优惠券名称
*/ */
...@@ -22,7 +27,87 @@ public class BenefitBeanDto { ...@@ -22,7 +27,87 @@ public class BenefitBeanDto {
private Integer benefitSeq; private Integer benefitSeq;
private Integer benefitType; private Integer benefitType;
private List<ActivitySendGoodsVO> sendGoodsList;
@Override
public int compareTo(BenefitBeanDto o) {
return this.thresholdAmount.compareTo(o.getThresholdAmount());
}
@Data
public static class ActivitySendGoodsVO {
/**
* 活动号
*/
private String activityCode;
/**
* 商品id
*/
private String goodsId;
/**
* 商品CODE
*/
private String goodsCode;
/**
* 商品名
*/
private String goodsName;
/**
* 原价
*/
private Integer originalPrice;
/**
* 现价
*/
private Integer nowPrice;
/**
* 限制数量
*/
private Integer quantityLimit;
/**
* 赠送数量
*/
private Integer sendNumber;
/**
* 赠品类型 0或null为计件赠品 1为称重赠品
*/
private Integer sendGoodsType;
/**
* 赠品重量 g为单位
*/
private Integer sendGoodsWeight;
/**
* 排序
*/
private Integer serialNumber;
/**
* 商品类型:2、是加料商品,9、是虚拟商品,7、是套餐商品,1、是单品
*/
private Integer productType;
/**
* 商品可兑换的券号
*/
private String sendCouponCode;
/**
* 商品可兑换的券名称
*/
private String sendCouponName;
/**
* 是否兑换券
*/
private boolean sendCoupon=false;
}
} }
\ No newline at end of file
...@@ -12,9 +12,12 @@ ...@@ -12,9 +12,12 @@
*/ */
package cn.freemud.entities.dto; package cn.freemud.entities.dto;
import cn.freemud.entities.vo.ActivityList;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.util.List;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
public class PromotionMessageDto { public class PromotionMessageDto {
...@@ -39,4 +42,5 @@ public class PromotionMessageDto { ...@@ -39,4 +42,5 @@ public class PromotionMessageDto {
* 满减活动是否与其他活动同享,true:同享,false:不同享 * 满减活动是否与其他活动同享,true:同享,false:不同享
*/ */
private Boolean share = false; private Boolean share = false;
private List<ActivityList> activityList;
} }
...@@ -114,8 +114,15 @@ public class CalculationSharingDiscountResponseDto { ...@@ -114,8 +114,15 @@ public class CalculationSharingDiscountResponseDto {
private Long thresholdAmount; private Long thresholdAmount;
private Long totalAmount; private Long totalAmount;
private Long alreadyDiscountAmount; private Long alreadyDiscountAmount;
private Integer activitySubType;
private List<SendGoods> sendGoods;
}
@Data
public static class SendGoods {
private String goodsId;
private String goodsName;
private Integer sendNumber;
} }
@Data @Data
public static class Discount { public static class Discount {
/** /**
......
...@@ -2,6 +2,8 @@ package cn.freemud.entities.vo; ...@@ -2,6 +2,8 @@ package cn.freemud.entities.vo;
import lombok.Data; import lombok.Data;
import java.util.List;
/** /**
* All rights Reserved, Designed By www.freemud.cn * All rights Reserved, Designed By www.freemud.cn
* *
...@@ -49,5 +51,12 @@ public class ActivityList { ...@@ -49,5 +51,12 @@ public class ActivityList {
private String againBuy; private String againBuy;
//在减 //在减
private String agianDeduct; private String agianDeduct;
private List<SendGoods> sends;
@Data
public static class SendGoods {
private Integer qty;
private String goodsName;
}
} }
...@@ -16,6 +16,7 @@ public enum ActivityTypeEnum { ...@@ -16,6 +16,7 @@ public enum ActivityTypeEnum {
TYPE_1(1, "整单满减"), TYPE_1(1, "整单满减"),
TYPE_11(11, "每满减"), TYPE_11(11, "每满减"),
TYPE_12(12, "阶梯满减"), TYPE_12(12, "阶梯满减"),
TYPE_230(230, "满赠"),
TYPE_13(13, "新用户立减"), TYPE_13(13, "新用户立减"),
TYPE_14(14, "满额减配送费"), TYPE_14(14, "满额减配送费"),
TYPE_104(104,"x件y折"), TYPE_104(104,"x件y折"),
......
package cn.freemud.enums;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: cn.freemud.enums GiftTypeEnum
* @Description: TDO 描述....
* @author: 铁牌灵魂工程师
* @date: 2021/2/23
* @Copyright: www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
public enum GiftTypeEnum {
TYPE_1(1,"阶梯满赠"),
TYPE_2(2,"每满赠");
private Integer type;
private String desc;
GiftTypeEnum(Integer type, String desc) {
this.type = type;
this.desc = desc;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
...@@ -80,7 +80,7 @@ public class PlatformActiveServiceImpl implements ActiveService { ...@@ -80,7 +80,7 @@ public class PlatformActiveServiceImpl implements ActiveService {
CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods goods = discountForGift.get(k); CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods goods = discountForGift.get(k);
CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount discount = goods.getDiscounts() CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount discount = goods.getDiscounts()
.stream() .stream()
.filter(g -> ActivityTypeEnum.TYPE_63.getCode().equals(g.getType()) ||ActivityTypeEnum.TYPE_62.getCode().equals(g.getType()) || ActivityTypeEnum.TYPE_61.getCode().equals(g.getType())) .filter(g -> ActivityTypeEnum.TYPE_63.getCode().equals(g.getType()) ||ActivityTypeEnum.TYPE_62.getCode().equals(g.getType()) || ActivityTypeEnum.TYPE_61.getCode().equals(g.getType()) || ActivityTypeEnum.TYPE_230.getCode().equals(g.getType()))
.findFirst() .findFirst()
.get(); .get();
CartGoods cartGood = new CartGoods(); CartGoods cartGood = new CartGoods();
......
...@@ -50,7 +50,9 @@ public class BuyAndGiftsPromotionService implements IPromotionService { ...@@ -50,7 +50,9 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
if (calculationDiscountResult == null || CollectionUtils.isEmpty(calculationDiscountResult.getSendGoods())) { if (calculationDiscountResult == null || CollectionUtils.isEmpty(calculationDiscountResult.getSendGoods())) {
return; return;
} }
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity> sendActivities = calculationDiscountResult.getSendGoods().stream().filter(goods -> ActivityTypeEnum.TYPE_62.getCode().equals(goods.getActivityType())).collect(Collectors.toList()); List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity> sendActivities = calculationDiscountResult.getSendGoods().stream()
.filter(goods -> (ActivityTypeEnum.TYPE_62.getCode().equals(goods.getActivityType())) || (ActivityTypeEnum.TYPE_230.getCode().equals(goods.getActivityType())))
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(sendActivities)) { if (CollectionUtils.isEmpty(sendActivities)) {
return; return;
} }
...@@ -83,7 +85,7 @@ public class BuyAndGiftsPromotionService implements IPromotionService { ...@@ -83,7 +85,7 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
cartGoods.setCategoryName(product.getName()); cartGoods.setCategoryName(product.getName());
cartGoods.setPic(product.getPicture()); cartGoods.setPic(product.getPicture());
cartGoods.setSkuName(product.getName()); cartGoods.setSkuName(product.getName());
cartGoods.setActivityType(ActivityTypeEnum.TYPE_62.getCode()); cartGoods.setActivityType(sendActivity.getActivityType());
cartGoods.setStockLimit(ObjectUtils.equals(1, product.getStockLimit())); cartGoods.setStockLimit(ObjectUtils.equals(1, product.getStockLimit()));
cartGoods.setCustomerCode(product.getCustomerCode()); cartGoods.setCustomerCode(product.getCustomerCode());
cartGoods.setUnit(product.getUnit()); cartGoods.setUnit(product.getUnit());
...@@ -112,19 +114,30 @@ public class BuyAndGiftsPromotionService implements IPromotionService { ...@@ -112,19 +114,30 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
if (calculationDiscountResult == null || CollectionUtils.isEmpty(calculationDiscountResult.getSendGoods())) { if (calculationDiscountResult == null || CollectionUtils.isEmpty(calculationDiscountResult.getSendGoods())) {
return; return;
} }
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity> sendActivities = calculationDiscountResult.getSendGoods().stream().filter(goods -> ActivityTypeEnum.TYPE_62.getCode().equals(goods.getActivityType())).collect(Collectors.toList()); List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity> sendActivities = calculationDiscountResult
.getSendGoods()
.stream()
.filter(goods -> (ActivityTypeEnum.TYPE_62.getCode().equals(goods.getActivityType()) || ActivityTypeEnum.TYPE_230.getCode().equals(goods.getActivityType())))
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(sendActivities)) { if (CollectionUtils.isEmpty(sendActivities)) {
return; return;
} }
List<ShoppingCartGoodsDto.CartGoodsDetailDto> sendGoodsList = shoppingCartGoodsDto.getProducts().stream().filter(product -> ActivityTypeEnum.TYPE_62.getCode().equals(product.getActivityType())).collect(Collectors.toList()); List<ShoppingCartGoodsDto.CartGoodsDetailDto> sendGoodsList = shoppingCartGoodsDto
.getProducts()
.stream()
.filter(product -> (ActivityTypeEnum.TYPE_62.getCode().equals(product.getActivityType()) || ActivityTypeEnum.TYPE_230.getCode().equals(product.getActivityType())))
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(sendGoodsList)) { if (CollectionUtils.isEmpty(sendGoodsList)) {
return; return;
} }
List<ActivityDiscountsDto> activityDiscountsDtos = shoppingCartGoodsDto.getActivityDiscountsDtos() == null ? new ArrayList<>() : shoppingCartGoodsDto.getActivityDiscountsDtos(); List<ActivityDiscountsDto> activityDiscountsDtos = shoppingCartGoodsDto.getActivityDiscountsDtos() == null ? new ArrayList<>() : shoppingCartGoodsDto.getActivityDiscountsDtos();
//设置商品行活动均摊 //设置商品行活动均摊
for (ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto : sendGoodsList) { for (ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto : sendGoodsList) {
Optional<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity> first = sendActivities.stream().filter(sendActivity -> ObjectUtils.equals(sendActivity.getActivityCode(), cartGoodsDetailDto.getNodeId())).findFirst(); Optional<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity> first =
sendActivities.stream()
.filter(sendActivity -> ObjectUtils.equals(sendActivity.getActivityCode(), cartGoodsDetailDto.getNodeId()))
.findFirst();
if (!first.isPresent()) { if (!first.isPresent()) {
continue; continue;
} }
...@@ -133,18 +146,37 @@ public class BuyAndGiftsPromotionService implements IPromotionService { ...@@ -133,18 +146,37 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
ProductActivityDiscountsDto.setActivityCode(sendActivity.getActivityCode()); ProductActivityDiscountsDto.setActivityCode(sendActivity.getActivityCode());
ProductActivityDiscountsDto.setActivityName(sendActivity.getActivityName()); ProductActivityDiscountsDto.setActivityName(sendActivity.getActivityName());
ProductActivityDiscountsDto.setActivityType(sendActivity.getActivityType()); ProductActivityDiscountsDto.setActivityType(sendActivity.getActivityType());
if (cartGoodsDetailDto.getActivityType().equals(ActivityTypeEnum.TYPE_230.getCode())) {
cartGoodsDetailDto.setTotalDiscountAmount(cartGoodsDetailDto.getOriginalPrice().intValue()*cartGoodsDetailDto.getQty());
ProductActivityDiscountsDto.setDiscountAmount(cartGoodsDetailDto.getOriginalPrice().intValue()*cartGoodsDetailDto.getQty());
}
else {
ProductActivityDiscountsDto.setDiscountAmount(cartGoodsDetailDto.getTotalDiscountAmount()); ProductActivityDiscountsDto.setDiscountAmount(cartGoodsDetailDto.getTotalDiscountAmount());
}
cartGoodsDetailDto.setActivityDiscountsDtos(Arrays.asList(ProductActivityDiscountsDto)); cartGoodsDetailDto.setActivityDiscountsDtos(Arrays.asList(ProductActivityDiscountsDto));
} }
//设置活动级别的均摊 //设置活动级别的均摊
boolean type230 = false;
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity sendActivity : sendActivities) { for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity sendActivity : sendActivities) {
if (ActivityTypeEnum.TYPE_230.getCode().toString().equals(sendActivity.getActivityCode())) {
type230 = true;
}
//设置优惠活动 //设置优惠活动
Integer totalDiscountAmount = sendGoodsList.stream().filter(sendGoods -> ObjectUtils.equals(sendActivity.getActivityCode(), sendGoods.getNodeId())).mapToInt(sendGoods -> sendGoods.getTotalDiscountAmount()).sum(); Integer totalDiscountAmount = sendGoodsList
.stream()
.filter(sendGoods -> ObjectUtils.equals(sendActivity.getActivityCode(), sendGoods.getNodeId()))
.mapToInt(sendGoods -> sendGoods.getTotalDiscountAmount())
.sum();
Long totalDiscountOriginalAmount = sendGoodsList
.stream()
.filter(sendGoods -> ObjectUtils.equals(sendActivity.getActivityCode(), sendGoods.getNodeId()))
.mapToLong(sendGoods -> sendGoods.getOriginalPrice()*sendGoods.getQty())
.sum();
ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto(); ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto();
activityDiscountsDto.setActivityCode(sendActivity.getActivityCode()); activityDiscountsDto.setActivityCode(sendActivity.getActivityCode());
activityDiscountsDto.setActivityName(sendActivity.getActivityName()); activityDiscountsDto.setActivityName(sendActivity.getActivityName());
activityDiscountsDto.setActivityType(sendActivity.getActivityType()); activityDiscountsDto.setActivityType(sendActivity.getActivityType());
activityDiscountsDto.setDiscountAmount(0 - totalDiscountAmount); activityDiscountsDto.setDiscountAmount(type230 ? 0 - totalDiscountOriginalAmount.intValue() : 0 - totalDiscountAmount);
activityDiscountsDtos.add(activityDiscountsDto); activityDiscountsDtos.add(activityDiscountsDto);
} }
} }
......
...@@ -145,11 +145,20 @@ public class BuySendPromotionService implements IPromotionService { ...@@ -145,11 +145,20 @@ public class BuySendPromotionService implements IPromotionService {
return; return;
} }
//添加促销活动 //添加促销活动
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity> sendGoods1 = calculationDiscountResult.getSendGoods() == null ? new ArrayList<>() : calculationDiscountResult.getSendGoods().stream().filter(t -> ObjectUtils.equals(ActivityTypeEnum.TYPE_6.getCode(), t.getActivityType()) || ObjectUtils.equals(ActivityTypeEnum.TYPE_61.getCode(), t.getActivityType())).collect(Collectors.toList()); List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity> sendGoods1 = calculationDiscountResult.getSendGoods() == null ? new ArrayList<>() :
calculationDiscountResult.getSendGoods().stream()
.filter(t -> ObjectUtils.equals(ActivityTypeEnum.TYPE_6.getCode(), t.getActivityType())
|| ObjectUtils.equals(ActivityTypeEnum.TYPE_61.getCode(), t.getActivityType()))
.collect(Collectors.toList() );
List<ActivityDiscountsDto> activityDiscountsDtos = shoppingCartGoodsDto.getActivityDiscountsDtos() == null ? new ArrayList<>() : shoppingCartGoodsDto.getActivityDiscountsDtos(); List<ActivityDiscountsDto> activityDiscountsDtos = shoppingCartGoodsDto.getActivityDiscountsDtos() == null ? new ArrayList<>() : shoppingCartGoodsDto.getActivityDiscountsDtos();
if (CollectionUtils.isNotEmpty(sendGoods1)) { if (CollectionUtils.isNotEmpty(sendGoods1)) {
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity sendActivity = sendGoods1.get(0); ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity sendActivity = sendGoods1.get(0);
Integer discountAmount = shoppingCartGoodsDto.getProducts().stream().filter(product -> ObjectUtils.equals(product.getActivityType(), sendActivity.getActivityType())).mapToInt(ShoppingCartGoodsDto.CartGoodsDetailDto::getTotalDiscountAmount).sum(); Integer discountAmount = shoppingCartGoodsDto.getProducts()
.stream()
.filter(product -> ObjectUtils.equals(product.getActivityType(), sendActivity.getActivityType()))
.mapToInt(ShoppingCartGoodsDto.CartGoodsDetailDto::getTotalDiscountAmount)
.sum();
//设置优惠活动 //设置优惠活动
ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto(); ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto();
activityDiscountsDto.setActivityCode(sendActivity.getActivityCode()); activityDiscountsDto.setActivityCode(sendActivity.getActivityCode());
...@@ -159,7 +168,10 @@ public class BuySendPromotionService implements IPromotionService { ...@@ -159,7 +168,10 @@ public class BuySendPromotionService implements IPromotionService {
activityDiscountsDtos.add(activityDiscountsDto); activityDiscountsDtos.add(activityDiscountsDto);
// 设置商品行优惠明细 // 设置商品行优惠明细
List<ShoppingCartGoodsDto.CartGoodsDetailDto> buyAndSendProducts = shoppingCartGoodsDto.getProducts().stream().filter(product -> ObjectUtils.equals(product.getActivityType(), sendActivity.getActivityType())).collect(Collectors.toList()); List<ShoppingCartGoodsDto.CartGoodsDetailDto> buyAndSendProducts = shoppingCartGoodsDto.getProducts()
.stream()
.filter(product -> ObjectUtils.equals(product.getActivityType(), sendActivity.getActivityType()))
.collect(Collectors.toList());
for (ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto : buyAndSendProducts) { for (ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto : buyAndSendProducts) {
List<ActivityDiscountsDto> activityDiscountsDtoList = cartGoodsDetailDto.getActivityDiscountsDtos() == null ? new ArrayList<>() : cartGoodsDetailDto.getActivityDiscountsDtos(); List<ActivityDiscountsDto> activityDiscountsDtoList = cartGoodsDetailDto.getActivityDiscountsDtos() == null ? new ArrayList<>() : cartGoodsDetailDto.getActivityDiscountsDtos();
ActivityDiscountsDto ProductActivityDiscountsDto = new ActivityDiscountsDto(); ActivityDiscountsDto ProductActivityDiscountsDto = new ActivityDiscountsDto();
......
...@@ -6,10 +6,12 @@ import cn.freemud.entities.dto.activity.ActivityQueryResponseDto; ...@@ -6,10 +6,12 @@ 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.ActivityTypeEnum; import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.enums.GiftTypeEnum;
import cn.freemud.service.ActivityService; import cn.freemud.service.ActivityService;
import cn.freemud.service.IPromotionService; import cn.freemud.service.IPromotionService;
import cn.freemud.utils.WebUtil; import cn.freemud.utils.WebUtil;
import com.freemud.application.sdk.api.promotioncenter.service.PromotionSdkService; import com.freemud.application.sdk.api.promotioncenter.service.PromotionSdkService;
import lombok.experimental.var;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -54,6 +56,7 @@ public class FullPromotionService implements IPromotionService { ...@@ -54,6 +56,7 @@ public class FullPromotionService implements IPromotionService {
List<ActivityTypeEnum> activityTypeEnums = new LinkedList<>(); List<ActivityTypeEnum> activityTypeEnums = new LinkedList<>();
activityTypeEnums.add(ActivityTypeEnum.TYPE_11); activityTypeEnums.add(ActivityTypeEnum.TYPE_11);
activityTypeEnums.add(ActivityTypeEnum.TYPE_12); activityTypeEnums.add(ActivityTypeEnum.TYPE_12);
activityTypeEnums.add(ActivityTypeEnum.TYPE_230);
//调用促销统一活动查询 //调用促销统一活动查询
//过滤出参与的满减(目前只有每满减和阶梯满减) //过滤出参与的满减(目前只有每满减和阶梯满减)
ActivityQueryResponseDto activityQueryResponseDto = activityService.queryActivityByType(activityQueryDto, activityTypeEnums, null); ActivityQueryResponseDto activityQueryResponseDto = activityService.queryActivityByType(activityQueryDto, activityTypeEnums, null);
...@@ -80,12 +83,14 @@ public class FullPromotionService implements IPromotionService { ...@@ -80,12 +83,14 @@ public class FullPromotionService implements IPromotionService {
BenefitBeanDto benefitBeanDto = benefitBeanDtos.get(0); BenefitBeanDto benefitBeanDto = benefitBeanDtos.get(0);
//调用没有加入购物车的提示语的方法 //调用没有加入购物车的提示语的方法
setMessageNotInShoppingCart(messageBuilder, activityResponseDto, benefitBeanDtos, benefitBeanDto, activityList); setMessageNotInShoppingCart(messageBuilder, activityResponseDto, benefitBeanDtos, benefitBeanDto, activityList);
}else{ }
else{
//促销返回满减提示语 //促销返回满减提示语
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ActivityPrompt> activityPrompts = calculationDiscountResult.getActivityPrompts(); List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ActivityPrompt> activityPrompts = calculationDiscountResult.getActivityPrompts();
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount> discountList1 = calculationDiscountResult.getDiscounts(); List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount> discountList1 = calculationDiscountResult.getDiscounts();
//构建提示语 //构建提示语
if (CollectionUtils.isNotEmpty(activityPrompts)){ if (CollectionUtils.isNotEmpty(activityPrompts)){
// 还差多少提示
setMessageSatisfyCart(messageBuilder, activityPrompts, activityResponseDto, activityList); setMessageSatisfyCart(messageBuilder, activityPrompts, activityResponseDto, activityList);
}else { }else {
setMessageNoSatisfyCart(messageBuilder, discountList1, activityList); setMessageNoSatisfyCart(messageBuilder, discountList1, activityList);
...@@ -145,7 +150,7 @@ public class FullPromotionService implements IPromotionService { ...@@ -145,7 +150,7 @@ public class FullPromotionService implements IPromotionService {
.append("</span> 元"); .append("</span> 元");
//满足 x 元 减 Y 元 ,最高 减 Z元 //满足 x 元 减 Y 元 ,最高 减 Z元
cn.freemud.entities.vo.ActivityList notInShopping = new ActivityList(); ActivityList notInShopping = new ActivityList();
notInShopping.setTipType(1); notInShopping.setTipType(1);
notInShopping.setSatisfy(WebUtil.formatAmount(benefitBeanDto.getThresholdAmount() * 1.00 / 100).toString()); notInShopping.setSatisfy(WebUtil.formatAmount(benefitBeanDto.getThresholdAmount() * 1.00 / 100).toString());
notInShopping.setDeduct(WebUtil.formatAmount(benefitBeanDto.getDiscountAmount() * 1.00 / 100).toString()); notInShopping.setDeduct(WebUtil.formatAmount(benefitBeanDto.getDiscountAmount() * 1.00 / 100).toString());
...@@ -174,6 +179,34 @@ public class FullPromotionService implements IPromotionService { ...@@ -174,6 +179,34 @@ public class FullPromotionService implements IPromotionService {
activityList.add(notInShopping); activityList.add(notInShopping);
} }
} }
if (Objects.equals(ActivityTypeEnum.TYPE_230.getCode(), activityResponseDto.getActivityType())) {
ActivityList notInShopping = new ActivityList();
// 规则:满5赠奶茶2件,炸鸡1件,满10赠布丁3件,牛奶1份,鸡翅2份,
// 提示语:满5元可获赠奶茶*2,炸鸡*1
//阶梯满赠
notInShopping.setSatisfy(WebUtil.formatAmount(benefitBeanDto.getThresholdAmount() * 1.00 / 100).toString());
if (GiftTypeEnum.TYPE_1.getType().equals(activityResponseDto.getActivitySubType())) {
notInShopping.setTipType(6);
}
//每满赠
else if (GiftTypeEnum.TYPE_2.getType().equals(activityResponseDto.getActivitySubType())) {
notInShopping.setTipType(7);
}
//int len = benefitBeanDto.getSendGoodsList().size();
Collections.sort(benefitBeanDtos);
BenefitBeanDto dto = benefitBeanDtos.get(0);
int len = dto.getSendGoodsList().size();
notInShopping.setSatisfy(WebUtil.formatAmount(dto.getThresholdAmount() * 1.00 / 100).toString());
List<ActivityList.SendGoods> sends = new ArrayList();
for (int i = len - 1; i >= 0; i--) {
ActivityList.SendGoods goods = new ActivityList.SendGoods();
goods.setQty(dto.getSendGoodsList().get(i).getSendNumber());
goods.setGoodsName(dto.getSendGoodsList().get(i).getGoodsName());
sends.add(goods);
}
notInShopping.setSends(sends);
activityList.add(notInShopping);
}
} }
/** /**
...@@ -188,6 +221,7 @@ public class FullPromotionService implements IPromotionService { ...@@ -188,6 +221,7 @@ 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()) || GiftTypeEnum.TYPE_2.equals(activityResponseDto.getActivitySubType())) {
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\">")
...@@ -205,7 +239,8 @@ public class FullPromotionService implements IPromotionService { ...@@ -205,7 +239,8 @@ public class FullPromotionService implements IPromotionService {
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()) || GiftTypeEnum.TYPE_2.equals(activityResponseDto.getActivitySubType())) {
toDiscountAmout = activityPrompt.getDiscountAmout() + activityPrompt.getAlreadyDiscountAmount(); toDiscountAmout = activityPrompt.getDiscountAmout() + activityPrompt.getAlreadyDiscountAmount();
} else { } else {
toDiscountAmout = activityPrompt.getDiscountAmout(); toDiscountAmout = activityPrompt.getDiscountAmout();
...@@ -223,6 +258,35 @@ public class FullPromotionService implements IPromotionService { ...@@ -223,6 +258,35 @@ public class FullPromotionService implements IPromotionService {
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())) {
satisfyList.setTipType(10);
List<ActivityList.SendGoods> sends = new ArrayList();
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendGoods sendGood : activityPrompt.getSendGoods()) {
ActivityList.SendGoods send = new ActivityList.SendGoods();
send.setGoodsName(sendGood.getGoodsName());
send.setQty(sendGood.getSendNumber());
sends.add(send);
}
satisfyList.setSends(sends);
satisfyList.setSatisfy(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100).toString());
satisfyList.setMissing(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100).toString());
if (GiftTypeEnum.TYPE_1.equals(activityResponseDto.getActivitySubType())) {
satisfyList.setTipType(8);
}
else {
satisfyList.setTipType(9);
}
if (activityPrompt.getTotalAmount()>=activityPrompt.getThresholdAmount()) {
if (GiftTypeEnum.TYPE_1.equals(activityResponseDto.getActivitySubType())) {
satisfyList.setTipType(6);
}
else {
satisfyList.setTipType(6);
}
}
}
activityList.add(satisfyList); activityList.add(satisfyList);
} }
......
...@@ -766,7 +766,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -766,7 +766,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
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); activityTip.setActivityList(promotionMessageDto.getActivityList());
} }
shoppingCartGoodsResponseVo.setActivityTip(activityTip); shoppingCartGoodsResponseVo.setActivityTip(activityTip);
shoppingCartGoodsResponseVo.setProducts(new ArrayList<>()); shoppingCartGoodsResponseVo.setProducts(new ArrayList<>());
...@@ -1237,7 +1237,16 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1237,7 +1237,16 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
activityCalculationDiscountRequestDto.setDistributionFee(distributionFee); activityCalculationDiscountRequestDto.setDistributionFee(distributionFee);
activityCalculationDiscountRequestDto.setIsMember(isMember); activityCalculationDiscountRequestDto.setIsMember(isMember);
ActivityCalculationDiscountResponseDto activityCalculationDiscountResponseDto; ActivityCalculationDiscountResponseDto activityCalculationDiscountResponseDto;
activityCalculationDiscountRequestDto.setProductChannel("def".toString());
if (Objects.equals(orderType, CreateOrderType.COLLECT_GOODS.getCode())) {
activityCalculationDiscountRequestDto.setProductChannel(BusinessTypeEnum.SAAS_PICKUP.getCode());
} else if (Objects.equals(orderType, CreateOrderType.TAKE_OUT.getCode())) {
activityCalculationDiscountRequestDto.setProductChannel(BusinessTypeEnum.SAAS_DELIVERY.getCode());
}
try { try {
log.info("activityClient discount :{}", JSON.toJSONString(activityCalculationDiscountRequestDto));
activityCalculationDiscountResponseDto = activityClient.calculationDiscount(activityCalculationDiscountRequestDto); activityCalculationDiscountResponseDto = activityClient.calculationDiscount(activityCalculationDiscountRequestDto);
} catch (Exception ex) { } catch (Exception ex) {
ErrorLog.printErrorLog("calculation_discount_error", "/calculation/discount", activityCalculationDiscountRequestDto, ex); ErrorLog.printErrorLog("calculation_discount_error", "/calculation/discount", activityCalculationDiscountRequestDto, ex);
...@@ -1376,7 +1385,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1376,7 +1385,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
ActivityChannelEnum activityChannelEnum = PropertyConvertUtil.orderTypeConvert2ActivityChannel(orderType); ActivityChannelEnum activityChannelEnum = PropertyConvertUtil.orderTypeConvert2ActivityChannel(orderType);
if (!Objects.isNull(activityChannelEnum)) { if (!Objects.isNull(activityChannelEnum)) {
activityCalculationDiscountRequestDto.setChannel(activityChannelEnum.getCode()); activityCalculationDiscountRequestDto.setChannel(activityChannelEnum.getCode());
} }
return activityCalculationDiscountRequestDto; return activityCalculationDiscountRequestDto;
} }
......
package cn.freemud.service.impl.calculate.promotion; package cn.freemud.service.impl.calculate.promotion;
import cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto;
import cn.freemud.entities.dto.ActivityResponseDto; import cn.freemud.entities.dto.ActivityResponseDto;
import cn.freemud.entities.dto.BenefitBeanDto; import cn.freemud.entities.dto.BenefitBeanDto;
import cn.freemud.entities.dto.PromotionMessageDto; import cn.freemud.entities.dto.PromotionMessageDto;
...@@ -11,6 +12,7 @@ import cn.freemud.entities.vo.ActivityTip; ...@@ -11,6 +12,7 @@ import cn.freemud.entities.vo.ActivityTip;
import cn.freemud.entities.vo.CartGoods; import cn.freemud.entities.vo.CartGoods;
import cn.freemud.entities.vo.ShoppingCartGoodsResponseVo; import cn.freemud.entities.vo.ShoppingCartGoodsResponseVo;
import cn.freemud.enums.ActivityTypeEnum; import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.enums.GiftTypeEnum;
import cn.freemud.service.ActivityService; import cn.freemud.service.ActivityService;
import cn.freemud.utils.WebUtil; import cn.freemud.utils.WebUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
...@@ -62,6 +64,7 @@ public class FullSharingService { ...@@ -62,6 +64,7 @@ public class FullSharingService {
/** /**
* 调用促销统一活动查询,过滤出参与的满减(目前只有每满减和阶梯满减) * 调用促销统一活动查询,过滤出参与的满减(目前只有每满减和阶梯满减)
*/ */
activityTypeEnums.add(ActivityTypeEnum.TYPE_230);
ActivityQueryResponseDto activityQueryResponseDto = activityService.queryActivityByType(activityQueryDto, activityTypeEnums, null); ActivityQueryResponseDto activityQueryResponseDto = activityService.queryActivityByType(activityQueryDto, activityTypeEnums, null);
if (null==activityQueryResponseDto || CollectionUtils.isEmpty(activityQueryResponseDto.getResult())) { if (null==activityQueryResponseDto || CollectionUtils.isEmpty(activityQueryResponseDto.getResult())) {
return; return;
...@@ -96,7 +99,8 @@ public class FullSharingService { ...@@ -96,7 +99,8 @@ public class FullSharingService {
List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Discount> discounts = discountResult.getDiscounts(); List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Discount> discounts = discountResult.getDiscounts();
List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Discount> fullDiscountsList = discounts List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Discount> fullDiscountsList = discounts
.stream() .stream()
.filter(d -> ActivityTypeEnum.TYPE_11.getCode().equals(d.getType()) || ActivityTypeEnum.TYPE_12.getCode().equals(d.getType())) .filter(d -> ActivityTypeEnum.TYPE_11.getCode().equals(d.getType())
|| ActivityTypeEnum.TYPE_12.getCode().equals(d.getType()))
.collect(Collectors.toList()); .collect(Collectors.toList());
/** /**
* 设置到响应中 总的满减优惠金额 * 设置到响应中 总的满减优惠金额
...@@ -109,7 +113,6 @@ public class FullSharingService { ...@@ -109,7 +113,6 @@ public class FullSharingService {
} }
shoppingCartGoodsResponseVo.setActivityTip(new ActivityTip()); shoppingCartGoodsResponseVo.setActivityTip(new ActivityTip());
List<Integer> typeEnums = activityTypeEnums.stream().map(ActivityTypeEnum::getCode).collect(Collectors.toList()); List<Integer> typeEnums = activityTypeEnums.stream().map(ActivityTypeEnum::getCode).collect(Collectors.toList());
/** /**
* 还原满减折扣到行记录上 * 还原满减折扣到行记录上
...@@ -131,7 +134,7 @@ public class FullSharingService { ...@@ -131,7 +134,7 @@ public class FullSharingService {
//discount = discountMap.getDiscounts().stream().filter(d -> typeEnums.contains(d.getType())).findFirst().orElse(null); //discount = discountMap.getDiscounts().stream().filter(d -> typeEnums.contains(d.getType())).findFirst().orElse(null);
sum = discountMap.getDiscounts() sum = discountMap.getDiscounts()
.stream() .stream()
.filter(d -> typeEnums.contains(d.getType())) .filter(d -> typeEnums.contains(d.getType()) && !d.getType().equals(ActivityTypeEnum.TYPE_230.getCode()))
.mapToLong(CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount::getDiscount) .mapToLong(CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount::getDiscount)
.sum(); .sum();
cart.setAmount(cart.getAmount() + sum); cart.setAmount(cart.getAmount() + sum);
...@@ -168,6 +171,7 @@ public class FullSharingService { ...@@ -168,6 +171,7 @@ public class FullSharingService {
/** /**
* 调用促销统一活动查询,过滤出参与的满减(目前只有每满减和阶梯满减) * 调用促销统一活动查询,过滤出参与的满减(目前只有每满减和阶梯满减)
*/ */
activityTypeEnums.add(ActivityTypeEnum.TYPE_230);
ActivityQueryResponseDto activityQueryResponseDto = activityService.queryActivityByType(activityQueryDto, activityTypeEnums, null); ActivityQueryResponseDto activityQueryResponseDto = activityService.queryActivityByType(activityQueryDto, activityTypeEnums, null);
if (null==activityQueryResponseDto || CollectionUtils.isEmpty(activityQueryResponseDto.getResult())) { if (null==activityQueryResponseDto || CollectionUtils.isEmpty(activityQueryResponseDto.getResult())) {
return; return;
...@@ -248,7 +252,7 @@ public class FullSharingService { ...@@ -248,7 +252,7 @@ public class FullSharingService {
notInShopping.setMaxDeduct(WebUtil.formatAmount(activityResponseDto.getMaxMoney() * 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())) { else if (Objects.equals(ActivityTypeEnum.TYPE_12.getCode(), activityResponseDto.getActivityType())) {
int len = benefitBeanDtos.size(); int len = benefitBeanDtos.size();
// // 购物车中无商品或者存在与满减互斥的活动 // // 购物车中无商品或者存在与满减互斥的活动
for (int i = len - 1; i >= 0; i--) { for (int i = len - 1; i >= 0; i--) {
...@@ -270,6 +274,32 @@ public class FullSharingService { ...@@ -270,6 +274,32 @@ public class FullSharingService {
activityList.add(notInShopping); activityList.add(notInShopping);
} }
} }
if (Objects.equals(ActivityTypeEnum.TYPE_230.getCode(), activityResponseDto.getActivityType())) {
ActivityList notInShopping = new ActivityList();
// 规则:满5赠奶茶2件,炸鸡1件,满10赠布丁3件,牛奶1份,鸡翅2份,
// 提示语:满5元可获赠奶茶*2,炸鸡*1
//阶梯满赠
if (GiftTypeEnum.TYPE_1.getType().equals(activityResponseDto.getActivitySubType())) {
notInShopping.setTipType(6);
}
//每满赠
else if (GiftTypeEnum.TYPE_2.getType().equals(activityResponseDto.getActivitySubType())) {
notInShopping.setTipType(7);
}
Collections.sort(benefitBeanDtos);
BenefitBeanDto dto = benefitBeanDtos.get(0);
int len = dto.getSendGoodsList().size();
notInShopping.setSatisfy(WebUtil.formatAmount(dto.getThresholdAmount() * 1.00 / 100).toString());
List<ActivityList.SendGoods> sends = new ArrayList();
for (int i = len - 1; i >= 0; i--) {
ActivityList.SendGoods goods = new ActivityList.SendGoods();
goods.setQty(dto.getSendGoodsList().get(i).getSendNumber());
goods.setGoodsName(dto.getSendGoodsList().get(i).getGoodsName());
sends.add(goods);
}
notInShopping.setSends(sends);
activityList.add(notInShopping);
}
} }
/** /**
...@@ -284,8 +314,8 @@ public class FullSharingService { ...@@ -284,8 +314,8 @@ public class FullSharingService {
ActivityList satisfyList = new ActivityList(); ActivityList satisfyList = new ActivityList();
CalculationSharingDiscountResponseDto.CalculationDiscountResult.ActivityPrompt activityPrompt = activityPrompts.get(0); CalculationSharingDiscountResponseDto.CalculationDiscountResult.ActivityPrompt activityPrompt = activityPrompts.get(0);
if (activityPrompt.getAlreadyDiscountAmount() == null if (Objects.equals(ActivityTypeEnum.TYPE_11.getCode(), activityResponseDto.getActivityType()) || GiftTypeEnum.TYPE_2.equals(activityResponseDto.getActivitySubType())) {
|| activityPrompt.getAlreadyDiscountAmount() == 0) { if (activityPrompt.getAlreadyDiscountAmount() == null || activityPrompt.getAlreadyDiscountAmount() == 0) {
messageBuilder.append("满 <span style=\"color:#fa5555\">") messageBuilder.append("满 <span style=\"color:#fa5555\">")
.append(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100)) .append(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100))
.append("</span> 减 <span style=\"color:#fa5555\">") .append("</span> 减 <span style=\"color:#fa5555\">")
...@@ -319,6 +349,35 @@ public class FullSharingService { ...@@ -319,6 +349,35 @@ public class FullSharingService {
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())) {
satisfyList.setTipType(10);
List<ActivityList.SendGoods> sends = new ArrayList();
for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.SendGoods sendGood : activityPrompt.getSendGoods()) {
ActivityList.SendGoods send = new ActivityList.SendGoods();
send.setGoodsName(sendGood.getGoodsName());
send.setQty(sendGood.getSendNumber());
sends.add(send);
}
satisfyList.setSends(sends);
satisfyList.setSatisfy(WebUtil.formatAmount(activityPrompt.getThresholdAmount() * 1.00 / 100).toString());
satisfyList.setMissing(WebUtil.formatAmount((activityPrompt.getThresholdAmount() - activityPrompt.getTotalAmount()) * 1.00 / 100).toString());
if (GiftTypeEnum.TYPE_1.getType().equals(activityResponseDto.getActivitySubType())) {
satisfyList.setTipType(8);
}
else {
satisfyList.setTipType(9);
}
if (activityPrompt.getTotalAmount()>=activityPrompt.getThresholdAmount()) {
if (GiftTypeEnum.TYPE_1.getType().equals(activityResponseDto.getActivitySubType())) {
satisfyList.setTipType(6);
}
else {
satisfyList.setTipType(6);
}
}
}
activityList.add(satisfyList); activityList.add(satisfyList);
} }
......
...@@ -218,7 +218,7 @@ public class GiftSharingService { ...@@ -218,7 +218,7 @@ public class GiftSharingService {
public CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount discountInfo(CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods goods) { public CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount discountInfo(CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods goods) {
CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount discount = goods.getDiscounts() CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount discount = goods.getDiscounts()
.stream() .stream()
.filter(g -> ActivityTypeEnum.TYPE_63.getCode().equals(g.getType()) || ActivityTypeEnum.TYPE_62.getCode().equals(g.getType()) || ActivityTypeEnum.TYPE_61.getCode().equals(g.getType())) .filter(g -> ActivityTypeEnum.TYPE_63.getCode().equals(g.getType()) || ActivityTypeEnum.TYPE_62.getCode().equals(g.getType()) || ActivityTypeEnum.TYPE_61.getCode().equals(g.getType()) || ActivityTypeEnum.TYPE_230.getCode().equals(g.getType()))
.findFirst() .findFirst()
.get(); .get();
return discount; return discount;
......
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