Commit 0ab36dcf by hanghang.wang

Merge remote-tracking branch 'origin/qa' into qa

parents 8580f247 a6112353
......@@ -1444,6 +1444,9 @@ public class OrderSdkAdapter {
case "COUPON":
type = 10;
break;
case "B3S1_COUPON":
type = 35;
break;
case "FREIGHT_COUPON":
type = 99;
break;
......
......@@ -22,6 +22,7 @@ public enum OldOrderAccountType {
PACK_AMOUNT(3, "包装费", "PACK_AMOUNT"),
COUPON(5, "代金券", "COUPON"),
PRODUCT_COUPON(6, "商品券", "PRODUCT_COUPON"),
B3S1_COUPON(35, "买3赠1券", "B3S1_COUPON"),
SEED_PRODUCT_COUPON(37, "种子券", "SEED_PRODUCT_COUPON"),
EVM_PRODUCT_COUPON(39, "EVM券", "EVM_PRODUCT_COUPON"),
DISCOUNT_COUPON(7, "折扣券", "DISCOUNT_COUPON"),
......
......@@ -22,6 +22,7 @@ public enum QueryOrderAccountType {
BUY_DISCOUNT("BUY_DISCOUNT", "满减优惠"),
PACK_AMOUNT("PACK_AMOUNT", "包装费"),
COUPON("COUPON", "代金券"),
B3S1_COUPON("B3S1_COUPON", "买3赠1券"),
FREIGHT_COUPON("FREIGHT_COUPON", "运费券"),
PRODUCT_COUPON("PRODUCT_COUPON", "商品券"),
SEED_PRODUCT_COUPON("SEED_PRODUCT_COUPON", "种子券"),
......
......@@ -18,6 +18,7 @@ import lombok.NoArgsConstructor;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.UUID;
@Data
......@@ -104,6 +105,18 @@ public class CartGoods {
*/
private MonthCardVo monthCardInfo;
/**
* 是否是买3赠1券商品
*/
private int isB3S1Coupon = 0;
/**
* 是否使用了买3赠1券
*/
private int isB3S1CouponGoods = 0;
/**
* 买3赠1券信息
*/
private B3S1CouponGoodsInfoVo b3S1CouponGoodsInfo;
/**
* 商品券名称
*/
private String couponName;
......@@ -329,6 +342,28 @@ public class CartGoods {
}
@Data
@NoArgsConstructor
public static class B3S1CouponGoodsInfoVo {
/**
* 卡号
*/
private String cardNo;
/**
* 券号
*/
private String cardCode;
/**
* 券号
*/
private Set<String> cardCodeSet;
private Integer useTimes;
private int isUseB3S1Coupon = 1;
}
@Data
public final static class ComboxGoods{
/**
* 单规格spuId,多规格skuId
......
......@@ -2828,6 +2828,9 @@ public class OrderAdapter {
if (ActivityTypeEnum.TYPE_32.getCode().equals(activityType)) {
return OldOrderAccountType.PRODUCT_COUPON;
}
if (ActivityTypeEnum.TYPE_35.getCode().equals(activityType)) {
return OldOrderAccountType.PRODUCT_COUPON;
}
if (ActivityTypeEnum.TYPE_38.getCode().equals(activityType)) {
return OldOrderAccountType.PRODUCT_COUPON;
}
......
......@@ -32,7 +32,7 @@ public enum ActivityTypeEnum {
TYPE_31(31, "折扣券"),
TYPE_32(32, "商品券"),
TYPE_34(34, "运费券"),
TYPE_35(35, "买1赠3券"),
TYPE_35(35, "买3赠1券"),
TYPE_37(37, "种子券"),
TYPE_38(38, "月享卡2.0"),
TYPE_39(39, "EVM券"),
......
......@@ -175,8 +175,6 @@ public class ShoppingCartMccafeAdapter {
cartGoodsDetailDto.setProductType(ProductType.SETMEAL.getCode());
} else if(GoodsTypeEnum.VIRTUAL_GOODS.getGoodsType().equals(cartGoods.getGoodsType())){
cartGoodsDetailDto.setProductType(ProductType.VIRTUAL_PRODUCT.getCode());
}else if (cartGoods.isWeightType()) {
cartGoodsDetailDto.setProductType(ProductType.WEIGHT_PRODUCT.getCode());
}
//小料
......
......@@ -90,6 +90,15 @@ public class MCoffeeShoppingCartController {
return shoppingCartMCoffeeService.batchUpdateGoodsQty(request);
}
/**
* 向购物车中添加商品
*/
@ApiAnnotation(logMessage = "removeB3S1Coupon")
@PostMapping(value = "/removeB3S1Coupon")
public BaseResponse removeB3S1Coupon(@Validated @LogParams @RequestBody MCoffeeAddGoodsRequestVo request) {
return shoppingCartMCoffeeService.removeB3S1Coupon(request);
}
@ApiAnnotation(logMessage = "getCartInfoByUser")
@PostMapping(value = "/getCartInfoByUser")
......
......@@ -4,6 +4,7 @@ import cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto;
import cn.freemud.entities.dto.OrderProductAddInfo;
import cn.freemud.entities.dto.activity.ActivityDiscountsDto;
import cn.freemud.entities.dto.activity.ShareDiscountActivityDto;
import cn.freemud.entities.vo.B3S1CouponGoodsInfoVo;
import cn.freemud.entities.vo.CartGoods;
import cn.freemud.entities.vo.MonthCardVo;
import cn.freemud.entities.vo.SubtractStockVO;
......@@ -274,6 +275,10 @@ public class ShoppingCartGoodsDto {
*/
private int isMonthCard;
/**
* 是否是买3赠1券商品
*/
private int isB3S1Coupon = 0;
/**
* 是否为种子券商品 1:是;0:否
*/
private int isSeedCouponGoods;
......@@ -282,6 +287,10 @@ public class ShoppingCartGoodsDto {
*/
private MonthCardVo monthCardInfo;
/**
* 买3赠1券信息
*/
private B3S1CouponGoodsInfoVo b3S1CouponGoodsInfo;
/**
* 商品货号
*/
private String productCode;
......
package cn.freemud.entities.vo;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
import java.util.Set;
/**
* All rights Reserved, Designed By sunary.site
*
* @version v1.0
* @Title: IntelliJ IDEA
* @Package cn.freemud.entities.vo
* @Description: 请简单描述下这个类是做什么用的
* @author: yu.sun
* @date: 2021-01-11 15:18:36
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
*/
@Data
@NoArgsConstructor
public class B3S1CouponGoodsInfoVo {
/**
* 卡号
*/
private String cardNo;
/**
* 券号
*/
private String cardCode;
/**
* 券号
*/
private Set<String> cardCodeSet;
private Integer useTimes;
private int isUseB3S1Coupon = 1;
}
......@@ -49,6 +49,11 @@ public class BatchOperateCartGoodsRequestVo extends BaseRequestVo{
private String redundancyCouponCode;
/**
* 根据券号清除当前购物车中月卡及商品信息
*/
private String redundancyB3S1CouponCode;
/**
* 是否使用月享卡2.0
* 1 是
* 0 否
......
......@@ -240,11 +240,19 @@ public class CartGoods {
*/
private int isMonthCard = 0;
/**
* 是否是买3赠1券商品
*/
private int isB3S1Coupon = 0;
/**
* 是否使用了买3赠1券
*/
private int isB3S1CouponGoods = 0;
/**
* 是否是太阳蛋商品
*/
private int isSunnyCoupon=0;
/**
* 是否为月享卡商品 1:是;0:否
* 是否为可以使用买月享卡的商品 1:是;0:否
*/
private int isMonthCardGoods = 0;
/**
......@@ -252,6 +260,10 @@ public class CartGoods {
*/
private MonthCardVo monthCardInfo;
/**
* 买3赠1券信息
*/
private B3S1CouponGoodsInfoVo b3S1CouponGoodsInfo;
/**
* 第三方商品编码
*/
private String customerCode;
......
......@@ -15,4 +15,11 @@ public class ClearCouponCodeRequestVo extends BaseRequestVo {
* 0 否
*/
private int isUseMonthCard;
/**
* 是否使用
* 1 是
* 0 否
*/
private int isUseB3S1Coupon;
}
......@@ -78,6 +78,12 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo {
*/
private Integer isUseMonthCard = 1;
/**
* 是否使用
* 1 是
* 0 否
*/
private Integer isUseB3S1Coupon = 1;
/**
* 优惠券对应的活动号
*/
private String activityCode;
......
......@@ -36,6 +36,7 @@ public enum ActivityTypeEnum {
TYPE_32(32, "商品券"),
TYPE_33(33, "换购券"),
TYPE_37(37, "月享卡种子券"),
TYPE_35(35, "买3赠1券"),
TYPE_38(38,"月享卡2.0"),
TYPE_39(39, "EVM券"),
TYPE_5(5, "整单满金额折"),
......
......@@ -114,8 +114,7 @@ public class CalculationServiceImpl {
timeSaleCalculation.updateShoppingCartGoodsDiscount(calculationDiscount, cartGoodsList, shoppingCartGoodsResponseVo);
//优惠券
CouponPromotionVO couponPromotionVO = couponDiscountCalculation.getCouponPromotionVO(partnerId, storeId, userId, couponCode, orderType);
couponDiscountCalculation.updateShoppingCartGoodsDiscount(couponPromotionVO,calculationDiscount,cartGoodsList, shoppingCartGoodsResponseVo);
couponDiscountCalculation.updateShoppingCartGoodsDiscount(calculationDiscount, cartGoodsList, shoppingCartGoodsResponseVo);
//套餐
setMealCalculation.updateShoppingCartGoodsDiscount(calculationDiscount,cartGoodsList,shoppingCartGoodsResponseVo);
......
......@@ -23,6 +23,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
......@@ -74,12 +75,16 @@ public class CouponDiscountCalculation {
/**
* 优惠计算
*/
public void updateShoppingCartGoodsDiscount(CouponPromotionVO couponPromotionVO, ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult, List<CartGoods> cartGoodsList, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo) {
public void updateShoppingCartGoodsDiscount(ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult, List<CartGoods> cartGoodsList, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo) {
if (calculationDiscountResult == null || CollectionUtils.isEmpty(calculationDiscountResult.getDiscounts())
|| !calculationDiscountResult.getDiscounts().stream().anyMatch(discount -> (ActivityTypeEnum.TYPE_3.getCode().equals(discount.getType())
|| (ActivityTypeEnum.TYPE_31.getCode().equals(discount.getType())) || (ActivityTypeEnum.TYPE_32.getCode().equals(discount.getType()))
|| (ActivityTypeEnum.TYPE_37.getCode().equals(discount.getType())) || (ActivityTypeEnum.TYPE_38.getCode().equals(discount.getType()))))){
|| (ActivityTypeEnum.TYPE_31.getCode().equals(discount.getType()))
|| (ActivityTypeEnum.TYPE_32.getCode().equals(discount.getType()))
|| (ActivityTypeEnum.TYPE_35.getCode().equals(discount.getType()))
|| (ActivityTypeEnum.TYPE_37.getCode().equals(discount.getType()))
|| (ActivityTypeEnum.TYPE_38.getCode().equals(discount.getType()))
|| (ActivityTypeEnum.TYPE_39.getCode().equals(discount.getType()))))){
return;
}
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsList = calculationDiscountResult.getGoods();
......@@ -91,9 +96,14 @@ public class CouponDiscountCalculation {
if (CollectionUtils.isEmpty(discounts)) {
return;
}
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount> couponDiscounts = discounts.stream().filter(discount -> (ActivityTypeEnum.TYPE_3.getCode().equals(discount.getType())
|| (ActivityTypeEnum.TYPE_31.getCode().equals(discount.getType())) || (ActivityTypeEnum.TYPE_32.getCode().equals(discount.getType()))
|| (ActivityTypeEnum.TYPE_37.getCode().equals(discount.getType())) || (ActivityTypeEnum.TYPE_38.getCode().equals(discount.getType())))).collect(Collectors.toList());
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount> couponDiscounts =
discounts.stream().filter(discount -> (ActivityTypeEnum.TYPE_3.getCode().equals(discount.getType())
|| (ActivityTypeEnum.TYPE_31.getCode().equals(discount.getType()))
|| (ActivityTypeEnum.TYPE_32.getCode().equals(discount.getType()))
|| (ActivityTypeEnum.TYPE_35.getCode().equals(discount.getType()))
|| (ActivityTypeEnum.TYPE_37.getCode().equals(discount.getType()))
|| (ActivityTypeEnum.TYPE_38.getCode().equals(discount.getType()))
|| (ActivityTypeEnum.TYPE_39.getCode().equals(discount.getType())))).collect(Collectors.toList());
if (CollectionUtils.isEmpty(couponDiscounts)) {
return;
}
......@@ -154,22 +164,30 @@ public class CouponDiscountCalculation {
&& mccafeUniversalCouponCode.equals(t.getActivityCode()))).findFirst().orElse(null);
for (CartGoods cartGoods : cartGoodsList) {
List<CartGoods> newCartGoodsList = new ArrayList<>();
for (int i = 0; i < cartGoodsList.size(); i++) {
CartGoods cartGoods = cartGoodsList.get(i);
cartGoods.setIsB3S1CouponGoods(0);
if("9998".equals(cartGoods.getSkuId())) {
continue;
}
if (goodsMap.get(cartGoods.getCartGoodsUid()) == null) {
continue;
}
//商品券商品
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount> discountsNew = goodsMap.get(cartGoods.getCartGoodsUid()).getDiscounts();
if (StringUtils.isNotBlank(cartGoods.getCouponCode()) || discountMon != null) {
//先将商品券商品最终售价设置为 原价
if (!StringUtils.equals("9999",cartGoods.getSkuId())){
cartGoods.setAmount(cartGoods.getOriginalAmount());
}
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount> discountsNew = goodsMap.get(cartGoods.getCartGoodsUid()).getDiscounts();
if (CollectionUtils.isNotEmpty(discountsNew)) {
ApiLog.debug("couponDiscountCalculation:{}",discountsNew);
//这里过滤掉了 月享卡2.0,因为月享卡2.0商品不用展示划线价,故显示原价
Optional<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount> targetDiscount = discountsNew.stream()
.filter(t -> ActivityTypeEnum.TYPE_32.getCode().equals(t.getType()) || ActivityTypeEnum.TYPE_37.getCode().equals(t.getType())).findFirst();
.filter(t -> ActivityTypeEnum.TYPE_32.getCode().equals(t.getType())
|| ActivityTypeEnum.TYPE_37.getCode().equals(t.getType())
|| ActivityTypeEnum.TYPE_39.getCode().equals(t.getType())).findFirst();
if (null != targetDiscount && targetDiscount.isPresent()) {
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount goodsDiscount = targetDiscount.get();
cartGoods.setCouponName(goodsDiscount.getActivityName());
......@@ -178,7 +196,27 @@ public class CouponDiscountCalculation {
}
}
}
Optional<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount> b3S1DiscountOptional = discountsNew.stream()
.filter(t -> ActivityTypeEnum.TYPE_35.getCode().equals(t.getType())).findFirst();
if(b3S1DiscountOptional.isPresent()) {
if(cartGoods.getQty() > b3S1DiscountOptional.get().getActualGoodsNumber()) {
int newNum = cartGoods.getQty() - b3S1DiscountOptional.get().getActualGoodsNumber();
cartGoods.setQty(b3S1DiscountOptional.get().getActualGoodsNumber());
cartGoods.setCouponName(b3S1DiscountOptional.get().getActivityName());
cartGoods.setCouponCode(b3S1DiscountOptional.get().getActivityCode());
cartGoods.setIsB3S1Coupon(1);
CartGoods cartGoodsNew = new CartGoods();
BeanUtils.copyProperties(cartGoods, cartGoodsNew);
cartGoodsNew.setCartGoodsUid(UUID.randomUUID().toString());
cartGoodsNew.setQty(newNum);
cartGoodsNew.setAmount(cartGoods.getAmount());
cartGoods.setAmount(0l);
newCartGoodsList.add(cartGoodsNew);
}
}
}
cartGoodsList.addAll(newCartGoodsList);
// 当couponCode不为空时,需计算优惠价格
long couponDiscount = 0;
......@@ -201,6 +239,7 @@ public class CouponDiscountCalculation {
discount -> ActivityTypeEnum.TYPE_3.getCode().equals(discount.getType())
|| ActivityTypeEnum.TYPE_31.getCode().equals(discount.getType())
|| ActivityTypeEnum.TYPE_32.getCode().equals(discount.getType())
|| ActivityTypeEnum.TYPE_35.getCode().equals(discount.getType())
|| ActivityTypeEnum.TYPE_37.getCode().equals(discount.getType())
|| ActivityTypeEnum.TYPE_38.getCode().equals(discount.getType())
|| ActivityTypeEnum.TYPE_39.getCode().equals(discount.getType()))) {
......@@ -218,6 +257,7 @@ public class CouponDiscountCalculation {
discount -> (ActivityTypeEnum.TYPE_3.getCode().equals(discount.getType())
|| ActivityTypeEnum.TYPE_31.getCode().equals(discount.getType())
|| ActivityTypeEnum.TYPE_32.getCode().equals(discount.getType())
|| ActivityTypeEnum.TYPE_35.getCode().equals(discount.getType())
|| ActivityTypeEnum.TYPE_37.getCode().equals(discount.getType())
|| ActivityTypeEnum.TYPE_38.getCode().equals(discount.getType())
|| ActivityTypeEnum.TYPE_39.getCode().equals(discount.getType()))).collect(Collectors.toList());
......
......@@ -92,18 +92,11 @@ public class BatchGoodsInfoVo {
private String couponCode;
/**
* 买三赠一券code
*/
private String buyThreeGiveOneCouponCode;
/**
* 买三赠一券活动号
*/
private String buyThreeGiveOneActivityCode;
/**
* 当前商品是否为月享卡,0:否,1:是
*/
private int isMonthCard;
private int isB3S1Coupon;
/**
* 是否为月享卡商品
*/
......
......@@ -148,9 +148,15 @@ public class MCoffeeAddGoodsRequestVo {
* 是否为月享卡商品
*/
private int isMonthCardGoods;
private int isB3S1Coupon;
/**
* 月享卡加购信息
*/
private MonthCardVo monthCardInfo;
/**
* 买3赠1券商品信息
*/
private B3S1CouponGoodsInfoVo b3S1CouponGoodsInfo;
}
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