Commit f5544531 by 胡敬轩

Merge remote-tracking branch 'remotes/origin/feature/20210913-华莱士新算价互斥同享改版'

# Conflicts:
#	shopping-cart-application-service/src/main/java/cn/freemud/adapter/ActivityAdapter.java
#	shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartMallServiceImpl.java
#	shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
#	shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/CalculationSharingDiscountService.java
parents 750b3422 e23c13a4
package cn.freemud.entities.dto.activity;
import lombok.Data;
/**
* All rights Reserved, Designed By www.freemud.com
*
* @version V1.0
* @Title:
* @Package: cn.freemud.entities.dto.activity
* @Descripttion:
* @author: shuhu.hou
* @date: 2019/7/11
* @Copyright: 2017 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目.
*/
@Data
public class DiscountSharingDto {
//当前请求是否自动勾选优惠券
private Boolean autoCoupon;
}
...@@ -84,6 +84,9 @@ public class ActivityCalculationDiscountRequestDto { ...@@ -84,6 +84,9 @@ public class ActivityCalculationDiscountRequestDto {
*/ */
private Boolean isMember; private Boolean isMember;
//当前请求是否自动勾选优惠券
private Boolean autoCoupon;
@Data @Data
public static class CalculationDiscountCoupon { public static class CalculationDiscountCoupon {
/** /**
......
...@@ -9,6 +9,7 @@ import lombok.NoArgsConstructor; ...@@ -9,6 +9,7 @@ import lombok.NoArgsConstructor;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
@Data @Data
public class ActivityCalculationDiscountResponseDto { public class ActivityCalculationDiscountResponseDto {
...@@ -126,7 +127,10 @@ public class ActivityCalculationDiscountResponseDto { ...@@ -126,7 +127,10 @@ public class ActivityCalculationDiscountResponseDto {
*/ */
private MonthCardDiscount monthlyEnjoyCardDiscount; private MonthCardDiscount monthlyEnjoyCardDiscount;
/**
* 代金券和折扣券与活动的互斥共享关系(可用优惠券列表使用)
*/
private Set<ActivityTypeSharedExclusive> couponSharedExclusive;
...@@ -353,6 +357,9 @@ public class ActivityCalculationDiscountResponseDto { ...@@ -353,6 +357,9 @@ public class ActivityCalculationDiscountResponseDto {
* 优惠现单价 * 优惠现单价
*/ */
private Long signleDiscount; private Long signleDiscount;
//活动覆盖商品数量,比如第二件实际优惠一件,但是两件商品都算活动叠加数量
private Integer addOnQuantity = 0;
} }
/** /**
......
package cn.freemud.entities.dto.calculate;
import lombok.Data;
import java.io.Serializable;
@Data
public class ActivityTypeSharedExclusive implements Serializable {
/**
* 活动类型
*/
private Integer activityType;
/**
* 共享或排他活动类型
*/
private Integer sharedExclusiveActivityType;
/**
* 0:排他 1:共享
*/
private Integer sharedExclusive;
/**
* 商品数量和金额门槛是否叠加 0:不叠加,1:叠加
*/
private Integer multiple;
}
\ No newline at end of file
...@@ -2,6 +2,8 @@ package cn.freemud.entities.vo.coupon; ...@@ -2,6 +2,8 @@ package cn.freemud.entities.vo.coupon;
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
* *
...@@ -19,6 +21,10 @@ public class CartProduct { ...@@ -19,6 +21,10 @@ public class CartProduct {
*/ */
private String productId; private String productId;
/** /**
* 商品原价(分)
*/
private Long originalPrice;
/**
* 总原价金额(包括主商品+可选搭配+加料商品) * 总原价金额(包括主商品+可选搭配+加料商品)
*/ */
private Long originalTotalAmount; private Long originalTotalAmount;
...@@ -36,4 +42,47 @@ public class CartProduct { ...@@ -36,4 +42,47 @@ public class CartProduct {
//使用的商品券号 //使用的商品券号
private String couponCode; private String couponCode;
private List<Discount> discounts;
@Data
public static class Discount{
/**
* 活动号
*/
private String activityCode;
/**
* 活动名称
*/
private String activityName;
/**
* 折扣金额
*/
private Long discount;
/**
* 活动类型
*/
private Integer type;
/**
* 当前活动实际优惠的商品数量
*/
private Integer actualGoodsNumber;
//是否与代金券互斥
private boolean cashExclusive = false;
//是否与代金券叠加门槛
private boolean cashMultiple = true;
//是否与折扣券互斥
private boolean discountExclusive = false;
//是否与折扣券叠加门槛
private boolean discountMultiple = true;
}
} }
...@@ -55,4 +55,54 @@ public class CouponAvailableCartInfo { ...@@ -55,4 +55,54 @@ public class CouponAvailableCartInfo {
* 优惠后 配送费 * 优惠后 配送费
*/ */
private Long distributionFee; private Long distributionFee;
/**
* 是否是新版互斥同享算价
*/
private boolean newCalculation = false;
//活动总优惠 newCalculation=true时封装
private List<Discount> discounts;
@Data
public static class Discount{
/**
* 活动号
*/
private String activityCode;
/**
* 活动名称
*/
private String activityName;
/**
* 折扣金额
*/
private Long discount;
/**
* 活动类型
*/
private Integer type;
/**
* 当前活动实际优惠的商品数量
*/
private Integer actualGoodsNumber;
//是否与代金券互斥
private boolean cashExclusive = false;
//是否与代金券叠加门槛
private boolean cashMultiple = true;
//是否与折扣券互斥
private boolean discountExclusive = false;
//是否与折扣券叠加门槛
private boolean discountMultiple = true;
}
} }
...@@ -18,8 +18,12 @@ import cn.freemud.adapter.ShoppingCartConvertAdapter; ...@@ -18,8 +18,12 @@ import cn.freemud.adapter.ShoppingCartConvertAdapter;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.constant.ResponseCodeConstant; import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.constant.ShoppingCartConstant; import cn.freemud.constant.ShoppingCartConstant;
import cn.freemud.entities.dto.*; import cn.freemud.entities.dto.BuriedPointShoppingCartRequestDto;
import cn.freemud.entities.dto.GetProductStockRequestDto;
import cn.freemud.entities.dto.GetProductStockResponseDto;
import cn.freemud.entities.dto.UserLoginInfoDto;
import cn.freemud.entities.dto.activity.ActivityQueryDto; import cn.freemud.entities.dto.activity.ActivityQueryDto;
import cn.freemud.entities.dto.activity.DiscountSharingDto;
import cn.freemud.entities.dto.calculate.ActivityCalculationDiscountRequestDto; import cn.freemud.entities.dto.calculate.ActivityCalculationDiscountRequestDto;
import cn.freemud.entities.dto.calculate.ActivityCalculationDiscountResponseDto; import cn.freemud.entities.dto.calculate.ActivityCalculationDiscountResponseDto;
import cn.freemud.entities.dto.delivery.DeliveryFeeInfo; import cn.freemud.entities.dto.delivery.DeliveryFeeInfo;
...@@ -190,7 +194,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService { ...@@ -190,7 +194,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, addShoppingCartGoodsRequestVo.getOrderType()); ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, addShoppingCartGoodsRequestVo.getOrderType());
ActivityCalculationDiscountResponseDto.CalculationDiscountResult discountResult = null; ActivityCalculationDiscountResponseDto.CalculationDiscountResult discountResult = null;
discountResult = sharingDiscountService.getCalculationSharingDiscountResult(menuType, partnerId, storeId, userId, appId, orderType, assortmentCustomerInfoVo.isMemberPaid(), allCartGoodsList, new ArrayList<>(), null, deliveryAmount, null,null, accountType); discountResult = sharingDiscountService.getCalculationSharingDiscountResult(menuType, partnerId, storeId, userId, appId, orderType, assortmentCustomerInfoVo.isMemberPaid(), allCartGoodsList, new ArrayList<>(), null, deliveryAmount, null,null, accountType,new DiscountSharingDto());
sharingCartService.distribute(discountResult, allCartGoodsList, shoppingCartGoodsResponseVo, null, null, null, activityQueryDto, menuType, deliveryAmount, ShoppingCartConstant.ADD_AND_UPDATE, partnerId, null, userId, storeId); sharingCartService.distribute(discountResult, allCartGoodsList, shoppingCartGoodsResponseVo, null, null, null, activityQueryDto, menuType, deliveryAmount, ShoppingCartConstant.ADD_AND_UPDATE, partnerId, null, userId, storeId);
buildShoppingCartGoodsResponse(shoppingCartGoodsResponseVo,discountResult,null,partnerId); buildShoppingCartGoodsResponse(shoppingCartGoodsResponseVo,discountResult,null,partnerId);
...@@ -285,7 +289,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService { ...@@ -285,7 +289,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
, new ArrayList() //券 , new ArrayList() //券
, null //加价购商品 , null //加价购商品
, deliveryAmount , deliveryAmount
, null,null, accountFlag); , null,null, accountFlag,new DiscountSharingDto());
sharingCartService.distribute(discountResult sharingCartService.distribute(discountResult
, cartGoodsList , cartGoodsList
...@@ -444,7 +448,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService { ...@@ -444,7 +448,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
, coupons , coupons
, sendGoods , sendGoods
, deliveryAmount , deliveryAmount
, null,null, accountFlag); , null,null, accountFlag,new DiscountSharingDto());
sharingCartService.distribute(calculationSharingDiscountResult sharingCartService.distribute(calculationSharingDiscountResult
, cartGoodsList , cartGoodsList
, shoppingCartGoodsResponseVo , shoppingCartGoodsResponseVo
...@@ -602,7 +606,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService { ...@@ -602,7 +606,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
, coupons , coupons
, shoppingCartInfoRequestVo.getSendGoods() , shoppingCartInfoRequestVo.getSendGoods()
, deliveryAmount , deliveryAmount
, shoppingCartInfoRequestVo,null, accountFlag); , shoppingCartInfoRequestVo,null, accountFlag,new DiscountSharingDto());
// 活动校验 // 活动校验
calculationSharingValidatorService.validator(discountResult calculationSharingValidatorService.validator(discountResult
......
...@@ -26,6 +26,7 @@ import cn.freemud.entities.dto.*; ...@@ -26,6 +26,7 @@ import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.GetMenuResponseDto.DataBean.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean; import cn.freemud.entities.dto.GetMenuResponseDto.DataBean.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean;
import cn.freemud.entities.dto.activity.ActivityQueryDto; 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.activity.DiscountSharingDto;
import cn.freemud.entities.dto.calculate.ActivityCalculationDiscountRequestDto; import cn.freemud.entities.dto.calculate.ActivityCalculationDiscountRequestDto;
import cn.freemud.entities.dto.calculate.ActivityCalculationDiscountResponseDto; import cn.freemud.entities.dto.calculate.ActivityCalculationDiscountResponseDto;
import cn.freemud.entities.dto.openplatform.WeixinProductRequestDto; import cn.freemud.entities.dto.openplatform.WeixinProductRequestDto;
...@@ -382,7 +383,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -382,7 +383,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, new ArrayList<>() //券 , new ArrayList<>() //券
, null //加价购商品 , null //加价购商品
, deliveryAmount , deliveryAmount
, null,bizType, accountFlag); , null,bizType, accountFlag,new DiscountSharingDto());
//更新购物车券状态 //更新购物车券状态
newCalculationUpdateCouponStatus(userId, partnerId, storeId, bizType, cartGoods, allCartGoodsList, discountResult); newCalculationUpdateCouponStatus(userId, partnerId, storeId, bizType, cartGoods, allCartGoodsList, discountResult);
sharingCartService.distribute(discountResult sharingCartService.distribute(discountResult
...@@ -541,7 +542,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -541,7 +542,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, new ArrayList() //券 , new ArrayList() //券
, null //加价购商品 , null //加价购商品
, deliveryAmount , deliveryAmount
, null,bizType, accountFlag); , null,bizType, accountFlag,new DiscountSharingDto());
//校验加购数量 //校验加购数量
if (discountResult != null) { if (discountResult != null) {
sendGoodsQtyCheckForUpdate(cartGoodsList, oldQty, appId, partnerId, userId, storeId, cartGoodsUid, "", shoppingCartBaseService, discountResult.getSendGoods(),bizType); sendGoodsQtyCheckForUpdate(cartGoodsList, oldQty, appId, partnerId, userId, storeId, cartGoodsUid, "", shoppingCartBaseService, discountResult.getSendGoods(),bizType);
...@@ -782,7 +783,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -782,7 +783,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, sendGoods , sendGoods
, deliveryAmount , deliveryAmount
, null , null
,bizType, accountFlag); ,bizType, accountFlag,new DiscountSharingDto());
sharingCartService.distribute(calculationSharingDiscountResult sharingCartService.distribute(calculationSharingDiscountResult
, cartGoodsList , cartGoodsList
, shoppingCartGoodsResponseVo , shoppingCartGoodsResponseVo
...@@ -1162,7 +1163,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1162,7 +1163,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, coupons , coupons
, shoppingCartInfoRequestVo.getSendGoods() , shoppingCartInfoRequestVo.getSendGoods()
, deliveryAmount , deliveryAmount
, shoppingCartInfoRequestVo,bizType, accountFlag); , shoppingCartInfoRequestVo,bizType, accountFlag,new DiscountSharingDto());
// 活动校验 // 活动校验
calculationSharingValidatorService.validator(discountResult calculationSharingValidatorService.validator(discountResult
...@@ -1503,8 +1504,11 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1503,8 +1504,11 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
} else { } else {
CheckSpqInfoRequestDto checkSpqInfoRequestDto = new CheckSpqInfoRequestDto(partnerId, storeId, couponCode, menuType); CheckSpqInfoRequestDto checkSpqInfoRequestDto = new CheckSpqInfoRequestDto(partnerId, storeId, couponCode, menuType);
CheckSpqInfoResponseDto checkSpqInfoResponseDto = null; CheckSpqInfoResponseDto checkSpqInfoResponseDto = null;
// fisherman 删除商品券导致 购物车显示商品名称 为换购券 券名称
boolean viewProductName = false;
if (GoodsTypeEnum.HG_COUPON_GOODS.getGoodsType().equals(cartGoods.getGoodsType()) if (GoodsTypeEnum.HG_COUPON_GOODS.getGoodsType().equals(cartGoods.getGoodsType())
|| GoodsTypeEnum.BUY_M_SEND_N_COUPON.getGoodsType().equals(cartGoods.getGoodsType())) { || GoodsTypeEnum.BUY_M_SEND_N_COUPON.getGoodsType().equals(cartGoods.getGoodsType())) {
viewProductName = true;
checkSpqInfoResponseDto = couponService.checkSpqInfo(checkSpqInfoRequestDto, cartGoods.getSkuId()); checkSpqInfoResponseDto = couponService.checkSpqInfo(checkSpqInfoRequestDto, cartGoods.getSkuId());
} else { } else {
checkSpqInfoResponseDto = couponService.checkSpqInfo(checkSpqInfoRequestDto); checkSpqInfoResponseDto = couponService.checkSpqInfo(checkSpqInfoRequestDto);
...@@ -1530,8 +1534,14 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1530,8 +1534,14 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
uuidList.add(cartGoods.getCartGoodsUid()); uuidList.add(cartGoods.getCartGoodsUid());
spqIdToCartUuid.put(couponCode, uuidList); spqIdToCartUuid.put(couponCode, uuidList);
} }
if (viewProductName) {
cartGoods.setName(checkSpqInfoResponseDto.getSkuName());
cartGoods.setSpuName(checkSpqInfoResponseDto.getSkuName());
cartGoods.setSkuName(checkSpqInfoResponseDto.getSkuName());
}else {
cartGoods.setName(checkSpqInfoResponseDto.getCouponName()); cartGoods.setName(checkSpqInfoResponseDto.getCouponName());
cartGoods.setSpuName(checkSpqInfoResponseDto.getCouponName()); cartGoods.setSpuName(checkSpqInfoResponseDto.getCouponName());
}
cartGoods.setStockLimit(checkSpqInfoResponseDto.isStockLimit()); cartGoods.setStockLimit(checkSpqInfoResponseDto.isStockLimit());
if (GoodsTypeEnum.BUY_M_SEND_N_COUPON.getGoodsType().equals(cartGoods.getGoodsType())) { if (GoodsTypeEnum.BUY_M_SEND_N_COUPON.getGoodsType().equals(cartGoods.getGoodsType())) {
cartGoods.setName(checkSpqInfoResponseDto.getSkuName()); cartGoods.setName(checkSpqInfoResponseDto.getSkuName());
...@@ -3045,7 +3055,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -3045,7 +3055,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, coupons //券 , coupons //券
, null //加价购商品 , null //加价购商品
, 0L , 0L
, null,bizType, accountFlag); , null,bizType, accountFlag,new DiscountSharingDto());
premiumExchangeResponseVo = activityAdapter.convert2PremiumExchangeSharing(discountResult); premiumExchangeResponseVo = activityAdapter.convert2PremiumExchangeSharing(discountResult);
} else { } else {
...@@ -3200,6 +3210,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -3200,6 +3210,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
// 获取购物车商品 // 获取购物车商品
List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCartForCoupon(partnerId, requestVo.getStoreId(), userId, "", shoppingCartBaseService,bizType); List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCartForCoupon(partnerId, requestVo.getStoreId(), userId, "", shoppingCartBaseService,bizType);
if (grayPush(partnerId, storeId, "2")) { if (grayPush(partnerId, storeId, "2")) {
//此对象用于传递参数,省的一直增加方法参数个数
DiscountSharingDto sharingDto = new DiscountSharingDto();
sharingDto.setAutoCoupon(true);
ActivityCalculationDiscountResponseDto.CalculationDiscountResult discountResult = sharingDiscountService.getCalculationSharingDiscountResult(menuType ActivityCalculationDiscountResponseDto.CalculationDiscountResult discountResult = sharingDiscountService.getCalculationSharingDiscountResult(menuType
, partnerId , partnerId
, storeId , storeId
...@@ -3211,7 +3224,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -3211,7 +3224,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, new ArrayList<>() //券 , new ArrayList<>() //券
, null //加价购商品 , null //加价购商品
, deliveryAmount , deliveryAmount
, null,bizType, accountFlag); , null,bizType, accountFlag,sharingDto);
couponAvailableCartInfo = activityAdapter.convert2CouponAvailableCartInfoSharing(partnerId, storeId, discountResult, orgCodes); couponAvailableCartInfo = activityAdapter.convert2CouponAvailableCartInfoSharing(partnerId, storeId, discountResult, orgCodes);
} else { } else {
......
...@@ -705,7 +705,9 @@ public class CalculationCommonService { ...@@ -705,7 +705,9 @@ public class CalculationCommonService {
uid = goods.getCartGoodsUid(); uid = goods.getCartGoodsUid();
} }
} }
if(StringUtils.isNotBlank(toastMsg)){
shoppingCartGoodsResponseVo.setToastMsg(toastMsg); shoppingCartGoodsResponseVo.setToastMsg(toastMsg);
}
shoppingCartGoodsResponseVo.setUid(uid); shoppingCartGoodsResponseVo.setUid(uid);
} }
......
package cn.freemud.service.impl.calculate; package cn.freemud.service.impl.calculate;
import cn.freemud.base.util.JsonUtil;
import cn.freemud.constant.ResponseCodeConstant; import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.dto.CheckSpqInfoRequestDto; import cn.freemud.entities.dto.CheckSpqInfoRequestDto;
import cn.freemud.entities.dto.CheckSpqInfoResponseDto; import cn.freemud.entities.dto.CheckSpqInfoResponseDto;
...@@ -22,7 +21,7 @@ import cn.freemud.service.active.ActiveService; ...@@ -22,7 +21,7 @@ import cn.freemud.service.active.ActiveService;
import cn.freemud.service.impl.AssortmentSdkService; import cn.freemud.service.impl.AssortmentSdkService;
import cn.freemud.service.thirdparty.ActivityClient; import cn.freemud.service.thirdparty.ActivityClient;
import cn.freemud.utils.PropertyConvertUtil; import cn.freemud.utils.PropertyConvertUtil;
import com.freemud.application.sdk.api.log.ErrorLog; import cn.freemud.entities.dto.activity.DiscountSharingDto;
import com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant; import com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant;
import com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum; import com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum;
import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl; import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl;
...@@ -83,7 +82,7 @@ public class CalculationSharingDiscountService { ...@@ -83,7 +82,7 @@ public class CalculationSharingDiscountService {
, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons , List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons
, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList , List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList
, Long deliveryAmount , Long deliveryAmount
, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo,Integer bizType, Integer accountFlag) { , ShoppingCartInfoRequestVo shoppingCartInfoRequestVo,Integer bizType, Integer accountFlag, DiscountSharingDto sharingDto) {
ActivityCalculationDiscountRequestDto calculationSharingDiscountRequestDto = this.commonSharingDto(partnerId, storeId, userId, appId, orderType); ActivityCalculationDiscountRequestDto calculationSharingDiscountRequestDto = this.commonSharingDto(partnerId, storeId, userId, appId, orderType);
...@@ -114,9 +113,11 @@ public class CalculationSharingDiscountService { ...@@ -114,9 +113,11 @@ public class CalculationSharingDiscountService {
//商品券->商品券ID换取商品 //商品券->商品券ID换取商品
CheckSpqInfoRequestDto checkSpqInfoRequestDto = new CheckSpqInfoRequestDto(partnerId, storeId, couponCode, menuType); CheckSpqInfoRequestDto checkSpqInfoRequestDto = new CheckSpqInfoRequestDto(partnerId, storeId, couponCode, menuType);
CheckSpqInfoResponseDto checkSpqInfo = null; CheckSpqInfoResponseDto checkSpqInfo = null;
boolean viewProductName = false;
if (GoodsTypeEnum.HG_COUPON_GOODS.getGoodsType().equals(cartGoods.getGoodsType()) if (GoodsTypeEnum.HG_COUPON_GOODS.getGoodsType().equals(cartGoods.getGoodsType())
|| GoodsTypeEnum.BUY_M_SEND_N_COUPON.getGoodsType().equals(cartGoods.getGoodsType())) { || GoodsTypeEnum.BUY_M_SEND_N_COUPON.getGoodsType().equals(cartGoods.getGoodsType())) {
checkSpqInfo = couponService.checkSpqInfo(checkSpqInfoRequestDto, cartGoods.getSkuId()); checkSpqInfo = couponService.checkSpqInfo(checkSpqInfoRequestDto, cartGoods.getSkuId());
viewProductName = true;
} else { } else {
checkSpqInfo = couponService.checkSpqInfo(checkSpqInfoRequestDto); checkSpqInfo = couponService.checkSpqInfo(checkSpqInfoRequestDto);
} }
...@@ -143,8 +144,14 @@ public class CalculationSharingDiscountService { ...@@ -143,8 +144,14 @@ public class CalculationSharingDiscountService {
uuidList.add(cartGoods.getCartGoodsUid()); uuidList.add(cartGoods.getCartGoodsUid());
spqIdToCartUuid.put(couponCode, uuidList); spqIdToCartUuid.put(couponCode, uuidList);
} }
if (viewProductName) {
cartGoods.setName(checkSpqInfo.getSkuName());
cartGoods.setSpuName(checkSpqInfo.getSkuName());
cartGoods.setSkuName(checkSpqInfo.getSkuName());
}else {
cartGoods.setName(checkSpqInfo.getCouponName()); cartGoods.setName(checkSpqInfo.getCouponName());
cartGoods.setSpuName(checkSpqInfo.getCouponName()); cartGoods.setSpuName(checkSpqInfo.getCouponName());
}
cartGoods.setStockLimit(checkSpqInfo.isStockLimit()); cartGoods.setStockLimit(checkSpqInfo.isStockLimit());
//买M送N券不赋值券名称 //买M送N券不赋值券名称
if (GoodsTypeEnum.BUY_M_SEND_N_COUPON.getGoodsType().equals(cartGoods.getGoodsType())) { if (GoodsTypeEnum.BUY_M_SEND_N_COUPON.getGoodsType().equals(cartGoods.getGoodsType())) {
...@@ -209,6 +216,9 @@ public class CalculationSharingDiscountService { ...@@ -209,6 +216,9 @@ public class CalculationSharingDiscountService {
// 构建买一送一寄杯活动用户选择信息 // 构建买一送一寄杯活动用户选择信息
ActiveService activeService = activeFactory.getBuildChooseGoodsService(partnerId); ActiveService activeService = activeFactory.getBuildChooseGoodsService(partnerId);
activeService.buildChooseGoodsService(calculationSharingDiscountRequestDto, shoppingCartInfoRequestVo == null ? null : shoppingCartInfoRequestVo.getChooseGoods()); activeService.buildChooseGoodsService(calculationSharingDiscountRequestDto, shoppingCartInfoRequestVo == null ? null : shoppingCartInfoRequestVo.getChooseGoods());
if(sharingDto != null){
calculationSharingDiscountRequestDto.setAutoCoupon(sharingDto.getAutoCoupon());
}
//算价 //算价
ActivityCalculationDiscountResponseDto sharingDiscountResponseDto = activityClient.calculationSharingDiscount(calculationSharingDiscountRequestDto); ActivityCalculationDiscountResponseDto sharingDiscountResponseDto = activityClient.calculationSharingDiscount(calculationSharingDiscountRequestDto);
if(sharingDiscountResponseDto == null){ if(sharingDiscountResponseDto == null){
......
...@@ -8,6 +8,8 @@ import cn.freemud.enums.AvailableCouponQueryFlagEnum; ...@@ -8,6 +8,8 @@ import cn.freemud.enums.AvailableCouponQueryFlagEnum;
import cn.freemud.enums.GoodsTypeEnum; import cn.freemud.enums.GoodsTypeEnum;
import cn.freemud.service.CouponService; import cn.freemud.service.CouponService;
import cn.freemud.service.impl.AssortmentSdkService; import cn.freemud.service.impl.AssortmentSdkService;
import com.alibaba.fastjson.JSON;
import com.freemud.application.sdk.api.log.ApiLog;
import com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant; import com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant;
import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl; import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
...@@ -128,7 +130,7 @@ public class CouponSharingService { ...@@ -128,7 +130,7 @@ public class CouponSharingService {
} }
} }
} }
ApiLog.printLog("优惠券问题处理 fisherman-------->", JSON.toJSONString(cartGoodsList),JSON.toJSONString(validCouponMap),JSON.toJSONString(calculationDiscountResult));
//循环购物车商品券 //循环购物车商品券
for (CartGoods cartGoods : cartGoodsList) { for (CartGoods cartGoods : cartGoodsList) {
if (StringUtils.isNotBlank(cartGoods.getCouponCode()) || cartGoods.getCartGoodsUid().startsWith(CommonsConstant.COUPON_PREFIX)) { if (StringUtils.isNotBlank(cartGoods.getCouponCode()) || cartGoods.getCartGoodsUid().startsWith(CommonsConstant.COUPON_PREFIX)) {
......
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