Commit cedddf18 by 周晓航

【紧急】【盛香亭】储值卡增加营销规则同享配置(对内5.23,对外5.26)

parent aa617b26
package cn.freemud.entities.dto.activity; package cn.freemud.entities.dto.activity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
/** /**
...@@ -18,4 +19,10 @@ import lombok.Data; ...@@ -18,4 +19,10 @@ import lombok.Data;
public class DiscountSharingDto { public class DiscountSharingDto {
//当前请求是否自动勾选优惠券 //当前请求是否自动勾选优惠券
private Boolean autoCoupon; private Boolean autoCoupon;
/**
* 储值卡需求: 使用的储值卡是否与 促销活动同享
*/
@ApiModelProperty(value = "是否与营销活动共享 1-是 0-否")
private Integer enableSharing = 0;
} }
...@@ -97,6 +97,9 @@ public class ActivityCalculationDiscountRequestDto { ...@@ -97,6 +97,9 @@ public class ActivityCalculationDiscountRequestDto {
//当前请求是否自动勾选优惠券 //当前请求是否自动勾选优惠券
private Boolean autoCoupon; private Boolean autoCoupon;
//指定参与的活动类型
private List<Integer> activityTypes;
@Data @Data
public static class CalculationDiscountCoupon { public static class CalculationDiscountCoupon {
/** /**
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
*/ */
package cn.freemud.entities.vo; package cn.freemud.entities.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
...@@ -155,6 +156,12 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo { ...@@ -155,6 +156,12 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo {
*/ */
private Integer isOrderReq = 0; private Integer isOrderReq = 0;
/**
* 储值卡需求: 使用的储值卡是否与 促销活动同享
*/
@ApiModelProperty(value = "是否与营销活动共享 1-是 0-否")
private Integer enableSharing = 0;
@Data @Data
public final static class SendGoods { public final static class SendGoods {
/** /**
......
...@@ -30,6 +30,7 @@ public enum ActivityTypeEnum { ...@@ -30,6 +30,7 @@ public enum ActivityTypeEnum {
TYPE_23(23, "超值加购"), TYPE_23(23, "超值加购"),
TYPE_27(27, "促销会员价"), TYPE_27(27, "促销会员价"),
TYPE_28(28, "积分商品活动"), TYPE_28(28, "积分商品活动"),
TYPE_29(29, "商品活动"),
/** /**
* 优惠券 * 优惠券
*/ */
......
...@@ -7,6 +7,7 @@ import cn.freemud.constant.ShoppingCartConstant; ...@@ -7,6 +7,7 @@ import cn.freemud.constant.ShoppingCartConstant;
import cn.freemud.entities.dto.*; import cn.freemud.entities.dto.*;
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.CalculationDiscountResult; import cn.freemud.entities.dto.calculate.CalculationDiscountResult;
import cn.freemud.entities.dto.calculate.Discount; import cn.freemud.entities.dto.calculate.Discount;
...@@ -336,15 +337,15 @@ public abstract class AbstractShoppingCartImpl implements ShoppingCartNewService ...@@ -336,15 +337,15 @@ public abstract class AbstractShoppingCartImpl implements ShoppingCartNewService
public CalculationDiscountResult getCalculationDiscountResult(String menuType public CalculationDiscountResult getCalculationDiscountResult(String menuType
, String partnerId, String storeId, String userId, String appId, String wxappid, Integer orderType, boolean isMember , String partnerId, String storeId, String userId, String appId, String wxappid, Integer orderType, boolean isMember
, List<CartGoods> cartGoodsList, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons , List<CartGoods> cartGoodsList, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons
, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList, String receiveId, Long deliveryAmount, long nightDistributionFee){ , List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList, String receiveId, Long deliveryAmount, long nightDistributionFee, DiscountSharingDto discountSharingDto){
// 获取优惠信息 // 获取优惠信息
CalculationDiscountResult calculationDiscountResult=null; CalculationDiscountResult calculationDiscountResult=null;
//外卖场景下 查询门店配送信息 //外卖场景下 查询门店配送信息
if(BusinessTypeEnum.SAAS_DELIVERY.getCode().equals(menuType)){ if(BusinessTypeEnum.SAAS_DELIVERY.getCode().equals(menuType)){
calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, orderType,isMember, cartGoodsList, coupons, sendGoodsList,BusinessTypeEnum.getByType(menuType).getCode(),deliveryAmount,null, null, nightDistributionFee); calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, orderType,isMember, cartGoodsList, coupons, sendGoodsList,BusinessTypeEnum.getByType(menuType).getCode(),deliveryAmount,null, null, nightDistributionFee, discountSharingDto);
}else{ }else{
calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, orderType,isMember, cartGoodsList, coupons, sendGoodsList,BusinessTypeEnum.getByType(menuType).getCode(),null,null, null,0L); calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, orderType,isMember, cartGoodsList, coupons, sendGoodsList,BusinessTypeEnum.getByType(menuType).getCode(),null,null, null,0L,discountSharingDto);
} }
return calculationDiscountResult; return calculationDiscountResult;
......
...@@ -10,6 +10,7 @@ import cn.freemud.entities.dto.GetMemberInfoResponseVo; ...@@ -10,6 +10,7 @@ import cn.freemud.entities.dto.GetMemberInfoResponseVo;
import cn.freemud.entities.dto.GoodsBeanDto; import cn.freemud.entities.dto.GoodsBeanDto;
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.CalculationDiscountResult; import cn.freemud.entities.dto.calculate.CalculationDiscountResult;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto; import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
...@@ -99,7 +100,8 @@ public interface ShoppingCartNewService { ...@@ -99,7 +100,8 @@ public interface ShoppingCartNewService {
List<CartGoods> cartGoodsList, List<CartGoods> cartGoodsList,
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons,
List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList, String menuType, Long distributionFee, Integer bizType, Integer accountFlag, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList, String menuType, Long distributionFee, Integer bizType, Integer accountFlag,
long nightDistributionFee); long nightDistributionFee,
DiscountSharingDto discountSharingDto);
List<CartGoods> updateCartGoodsLegal(CartGoods cartGoods, String userId, ShoppingCartGoodsBaseResponseVo shoppingCartGoodsResponseVo, AddShoppingCartGoodsRequestVo addShoppingCartGoodsRequestVo, List<CartGoods> oldAllCartGoodsList); List<CartGoods> updateCartGoodsLegal(CartGoods cartGoods, String userId, ShoppingCartGoodsBaseResponseVo shoppingCartGoodsResponseVo, AddShoppingCartGoodsRequestVo addShoppingCartGoodsRequestVo, List<CartGoods> oldAllCartGoodsList);
......
...@@ -8,6 +8,7 @@ import cn.freemud.constant.ResponseCodeConstant; ...@@ -8,6 +8,7 @@ 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.*;
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.*; import cn.freemud.entities.dto.calculate.*;
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;
...@@ -200,7 +201,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp ...@@ -200,7 +201,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
// 获取优惠信息 // 获取优惠信息
CalculationDiscountResult calculationDiscountResult CalculationDiscountResult calculationDiscountResult
=getCalculationDiscountResult(menuType,partnerId,storeId,currentUserId,appId,userLoginInfoDto.getWxAppid(),orderType,currentUserInfoVo.isMemberPaid(), allCartGoodsList,new ArrayList(),new ArrayList<>(),null,deliveryAmount, this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList())); =getCalculationDiscountResult(menuType,partnerId,storeId,currentUserId,appId,userLoginInfoDto.getWxAppid(),orderType,currentUserInfoVo.isMemberPaid(), allCartGoodsList,new ArrayList(),new ArrayList<>(),null,deliveryAmount, this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList()),new DiscountSharingDto());
ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, currentUserId, appId, addShoppingCartGoodsRequestVo.getOrderType()); ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, currentUserId, appId, addShoppingCartGoodsRequestVo.getOrderType());
...@@ -392,7 +393,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp ...@@ -392,7 +393,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo); Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo);
// 获取优惠信息 // 获取优惠信息
CalculationDiscountResult calculationDiscountResult CalculationDiscountResult calculationDiscountResult
=getCalculationDiscountResult(menuType,partnerId,storeId,crateUserId,appId,userLoginInfoDto.getWxAppid(),orderType,currentUserInfoVo.isMemberPaid(),cartGoodsList,new ArrayList(),new ArrayList<>(),null,deliveryAmount, this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList())); =getCalculationDiscountResult(menuType,partnerId,storeId,crateUserId,appId,userLoginInfoDto.getWxAppid(),orderType,currentUserInfoVo.isMemberPaid(),cartGoodsList,new ArrayList(),new ArrayList<>(),null,deliveryAmount, this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList()),new DiscountSharingDto());
if (calculationDiscountResult == null) { if (calculationDiscountResult == null) {
shoppingCartGoodsResponseVo.setProducts(cartGoodsList); shoppingCartGoodsResponseVo.setProducts(cartGoodsList);
} }
...@@ -521,9 +522,10 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp ...@@ -521,9 +522,10 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
} }
Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo); Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo);
DiscountSharingDto discountSharingDto = new DiscountSharingDto();
discountSharingDto.setEnableSharing(shoppingCartInfoRequestVo.getEnableSharing());
// 获取优惠信息 // 获取优惠信息
CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType,partnerId,storeId,crateUserId,appId,userLoginInfoDto.getWxAppid(),orderType,currentUserInfoVo.isMemberPaid(),cartGoodsList,coupons,null,shoppingCartInfoRequestVo.getReceiveId(),deliveryAmount, this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList())); CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType,partnerId,storeId,crateUserId,appId,userLoginInfoDto.getWxAppid(),orderType,currentUserInfoVo.isMemberPaid(),cartGoodsList,coupons,null,shoppingCartInfoRequestVo.getReceiveId(),deliveryAmount, this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList()),discountSharingDto);
if (calculationDiscountResult == null) { if (calculationDiscountResult == null) {
shoppingCartGoodsResponseVo.setProducts(cartGoodsList); shoppingCartGoodsResponseVo.setProducts(cartGoodsList);
...@@ -737,7 +739,9 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp ...@@ -737,7 +739,9 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo); Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo);
// 获取优惠信息 // 获取优惠信息
CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType,partnerId,storeId,userId,appId,userLoginInfoDto.getWxAppid(),orderType,assortmentCustomerInfoVo.isMemberPaid(),cartGoodsList,coupons,sendGoodsList,shoppingCartInfoRequestVo.getReceiveId(),deliveryAmount, this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList())); DiscountSharingDto discountSharingDto = new DiscountSharingDto();
discountSharingDto.setEnableSharing(shoppingCartInfoRequestVo.getEnableSharing());
CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType,partnerId,storeId,userId,appId,userLoginInfoDto.getWxAppid(),orderType,assortmentCustomerInfoVo.isMemberPaid(),cartGoodsList,coupons,sendGoodsList,shoppingCartInfoRequestVo.getReceiveId(),deliveryAmount, this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList()),discountSharingDto);
ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, shoppingCartInfoRequestVo.getOrderType()); ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, shoppingCartInfoRequestVo.getOrderType());
...@@ -791,7 +795,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp ...@@ -791,7 +795,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
} }
@Override @Override
public CalculationDiscountResult getActivityCalculationDiscountResponse(String partnerId, String storeId, String userId, String appId, Integer orderType, boolean isMember, List<CartGoods> cartGoodsList, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList, String menuType, Long distributionFee,Integer bizType, Integer accoutFlag,long nightDistributionFee) { public CalculationDiscountResult getActivityCalculationDiscountResponse(String partnerId, String storeId, String userId, String appId, Integer orderType, boolean isMember, List<CartGoods> cartGoodsList, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList, String menuType, Long distributionFee,Integer bizType, Integer accoutFlag,long nightDistributionFee,DiscountSharingDto discountSharingDto) {
ActivityCalculationDiscountRequestDto activityCalculationDiscountRequestDto = getActivityCalculationDiscountRequestDto(partnerId, storeId, userId, appId, orderType); ActivityCalculationDiscountRequestDto activityCalculationDiscountRequestDto = getActivityCalculationDiscountRequestDto(partnerId, storeId, userId, appId, orderType);
List<ActivityCalculationDiscountRequestDto.CalculationDiscountGoods> calculationDiscountGoodsList = new ArrayList<>(); List<ActivityCalculationDiscountRequestDto.CalculationDiscountGoods> calculationDiscountGoodsList = new ArrayList<>();
// 校验后有效的商品券map // 校验后有效的商品券map
...@@ -1265,7 +1269,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp ...@@ -1265,7 +1269,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo); Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo);
// 获取优惠信息 // 获取优惠信息
CalculationDiscountResult calculationDiscountResult CalculationDiscountResult calculationDiscountResult
=getCalculationDiscountResult(menuType,partnerId,storeId,crateUserId,appId,userLoginInfoDto.getWxAppid(),orderType,currentUserInfoVo.isMemberPaid(),cartGoodsList,new ArrayList(),new ArrayList<>(),null,deliveryAmount, this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList())); =getCalculationDiscountResult(menuType,partnerId,storeId,crateUserId,appId,userLoginInfoDto.getWxAppid(),orderType,currentUserInfoVo.isMemberPaid(),cartGoodsList,new ArrayList(),new ArrayList<>(),null,deliveryAmount, this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList()),new DiscountSharingDto());
if (calculationDiscountResult == null) { if (calculationDiscountResult == null) {
shoppingCartGoodsResponseVo.setProducts(cartGoodsList); shoppingCartGoodsResponseVo.setProducts(cartGoodsList);
} }
......
...@@ -193,9 +193,9 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService { ...@@ -193,9 +193,9 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
Long deliveryAmount = 0L; Long deliveryAmount = 0L;
ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, addShoppingCartGoodsRequestVo.getOrderType()); ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, addShoppingCartGoodsRequestVo.getOrderType());
DiscountSharingDto discountSharingDto = new DiscountSharingDto();
CalculationDiscountResult discountResult = null; CalculationDiscountResult discountResult = null;
discountResult = sharingDiscountService.getCalculationSharingDiscountResult(menuType, partnerId, storeId, userId, appId, orderType, assortmentCustomerInfoVo.isMemberPaid(), allCartGoodsList, new ArrayList<>(), null, deliveryAmount, null,null, accountType,new DiscountSharingDto(),0L); discountResult = sharingDiscountService.getCalculationSharingDiscountResult(menuType, partnerId, storeId, userId, appId, orderType, assortmentCustomerInfoVo.isMemberPaid(), allCartGoodsList, new ArrayList<>(), null, deliveryAmount, null,null, accountType,discountSharingDto,0L);
sharingCartService.distribute(discountResult, allCartGoodsList, shoppingCartGoodsResponseVo, null, null, null, activityQueryDto, menuType, deliveryAmount, ShoppingCartConstant.ADD_AND_UPDATE, partnerId, null, userId, storeId,0L); sharingCartService.distribute(discountResult, allCartGoodsList, shoppingCartGoodsResponseVo, null, null, null, activityQueryDto, menuType, deliveryAmount, ShoppingCartConstant.ADD_AND_UPDATE, partnerId, null, userId, storeId,0L);
buildShoppingCartGoodsResponse(shoppingCartGoodsResponseVo,discountResult,null,partnerId); buildShoppingCartGoodsResponse(shoppingCartGoodsResponseVo,discountResult,null,partnerId);
...@@ -438,6 +438,8 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService { ...@@ -438,6 +438,8 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
sendGoods.add(sd); sendGoods.add(sd);
} }
} }
DiscountSharingDto discountSharingDto = new DiscountSharingDto();
discountSharingDto.setEnableSharing(shoppingCartInfoRequestVo.getEnableSharing());
CalculationDiscountResult calculationSharingDiscountResult = sharingDiscountService.getCalculationSharingDiscountResult(menuType CalculationDiscountResult calculationSharingDiscountResult = sharingDiscountService.getCalculationSharingDiscountResult(menuType
, partnerId , partnerId
, storeId , storeId
...@@ -449,7 +451,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService { ...@@ -449,7 +451,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
, coupons , coupons
, sendGoods , sendGoods
, deliveryAmount , deliveryAmount
, null,null, accountFlag,new DiscountSharingDto(),0L); , null,null, accountFlag,discountSharingDto,0L);
sharingCartService.distribute(calculationSharingDiscountResult sharingCartService.distribute(calculationSharingDiscountResult
, cartGoodsList , cartGoodsList
, shoppingCartGoodsResponseVo , shoppingCartGoodsResponseVo
...@@ -595,7 +597,8 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService { ...@@ -595,7 +597,8 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
List<ShoppingCartInfoRequestVo.SendGoods> sendGoods = new ArrayList<>(); List<ShoppingCartInfoRequestVo.SendGoods> sendGoods = new ArrayList<>();
// 当couponCodes不为空时,需参与价格计算,同时排除单券入参 // 当couponCodes不为空时,需参与价格计算,同时排除单券入参
buildCoupons(coupons,shoppingCartInfoRequestVo.getCouponCodes()); buildCoupons(coupons,shoppingCartInfoRequestVo.getCouponCodes());
DiscountSharingDto discountSharingDto = new DiscountSharingDto();
discountSharingDto.setEnableSharing(shoppingCartInfoRequestVo.getEnableSharing());
CalculationDiscountResult discountResult = sharingDiscountService.getCalculationSharingDiscountResult(menuType CalculationDiscountResult discountResult = sharingDiscountService.getCalculationSharingDiscountResult(menuType
, partnerId , partnerId
, storeId , storeId
...@@ -607,7 +610,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService { ...@@ -607,7 +610,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
, coupons , coupons
, shoppingCartInfoRequestVo.getSendGoods() , shoppingCartInfoRequestVo.getSendGoods()
, deliveryAmount , deliveryAmount
, shoppingCartInfoRequestVo,null, accountFlag,new DiscountSharingDto(), 0L); , shoppingCartInfoRequestVo,null, accountFlag,discountSharingDto, 0L);
// 活动校验 // 活动校验
calculationSharingValidatorService.validator(discountResult calculationSharingValidatorService.validator(discountResult
...@@ -640,7 +643,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService { ...@@ -640,7 +643,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
@Override @Override
public CalculationDiscountResult getActivityCalculationDiscountResponse( public CalculationDiscountResult getActivityCalculationDiscountResponse(
String partnerId, String storeId, String userId, String appId, Integer orderType, boolean isMember, List<CartGoods> cartGoodsList, String partnerId, String storeId, String userId, String appId, Integer orderType, boolean isMember, List<CartGoods> cartGoodsList,
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList, String menuType, Long distributionFee, Integer bizType, Integer accountFlag,long nightDistributionFee) { List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList, String menuType, Long distributionFee, Integer bizType, Integer accountFlag,long nightDistributionFee,DiscountSharingDto discountSharingDto) {
return null; return null;
} }
......
...@@ -6,6 +6,7 @@ import cn.freemud.base.entity.BaseResponse; ...@@ -6,6 +6,7 @@ import cn.freemud.base.entity.BaseResponse;
import cn.freemud.constant.ResponseCodeConstant; import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.dto.CouponProductDto; import cn.freemud.entities.dto.CouponProductDto;
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.calculate.CalculationDiscountResult; import cn.freemud.entities.dto.calculate.CalculationDiscountResult;
...@@ -434,7 +435,8 @@ public class ShoppingCartMealServiceImpl implements ShoppingCartNewService { ...@@ -434,7 +435,8 @@ public class ShoppingCartMealServiceImpl implements ShoppingCartNewService {
if (CollectionUtils.isEmpty(cartGoodsList)) { if (CollectionUtils.isEmpty(cartGoodsList)) {
return; return;
} }
CalculationDiscountResult calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, orderType, isMember, cartGoodsList, new ArrayList<>(), new ArrayList<>(), BusinessTypeEnum.SAAS_MALL.getCode(), 0L,null, null,0L); DiscountSharingDto discountSharingDto = new DiscountSharingDto();
CalculationDiscountResult calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, orderType, isMember, cartGoodsList, new ArrayList<>(), new ArrayList<>(), BusinessTypeEnum.SAAS_MALL.getCode(), 0L,null, null,0L,discountSharingDto);
if(calculationDiscountResult == null) { if(calculationDiscountResult == null) {
return; return;
} }
...@@ -563,7 +565,7 @@ public class ShoppingCartMealServiceImpl implements ShoppingCartNewService { ...@@ -563,7 +565,7 @@ public class ShoppingCartMealServiceImpl implements ShoppingCartNewService {
@Override @Override
public CalculationDiscountResult getActivityCalculationDiscountResponse(String partnerId, String storeId, String userId, String appId, Integer orderType, boolean isMember, public CalculationDiscountResult getActivityCalculationDiscountResponse(String partnerId, String storeId, String userId, String appId, Integer orderType, boolean isMember,
List<CartGoods> cartGoodsList, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList,String menuType,Long distributionFee,Integer bizType, Integer accountFlag,long nightDistributionFee) { List<CartGoods> cartGoodsList, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList, String menuType, Long distributionFee, Integer bizType, Integer accountFlag, long nightDistributionFee, DiscountSharingDto discountSharingDto) {
ActivityCalculationDiscountRequestDto activityCalculationDiscountRequestDto = getActivityCalculationDiscountRequestDto(partnerId, storeId, userId, appId, orderType); ActivityCalculationDiscountRequestDto activityCalculationDiscountRequestDto = getActivityCalculationDiscountRequestDto(partnerId, storeId, userId, appId, orderType);
List<ActivityCalculationDiscountRequestDto.CalculationDiscountGoods> calculationDiscountGoodsList = new ArrayList<>(); List<ActivityCalculationDiscountRequestDto.CalculationDiscountGoods> calculationDiscountGoodsList = new ArrayList<>();
cartGoodsList = cartGoodsList.stream().filter(t -> !isWeightProduct(t)).collect(Collectors.toList()); cartGoodsList = cartGoodsList.stream().filter(t -> !isWeightProduct(t)).collect(Collectors.toList());
......
...@@ -392,7 +392,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -392,7 +392,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
// //
} else { } else {
// 获取优惠信息 // 获取优惠信息
CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType, partnerId, storeId, userId, appId, userLoginInfoDto.getWxAppid(), orderType, assortmentCustomerInfoVo.isMemberPaid(), allCartGoodsList, new ArrayList(), new ArrayList<>(), null, deliveryAmount,bizType, accountFlag, this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList())); CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType, partnerId, storeId, userId, appId, userLoginInfoDto.getWxAppid(), orderType, assortmentCustomerInfoVo.isMemberPaid(), allCartGoodsList, new ArrayList(), new ArrayList<>(), null, deliveryAmount,bizType, accountFlag, this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList()), new DiscountSharingDto());
if (calculationDiscountResult != null && CollectionUtils.isNotEmpty(calculationDiscountResult.getSendGoods())){ if (calculationDiscountResult != null && CollectionUtils.isNotEmpty(calculationDiscountResult.getSendGoods())){
sendGoodsQtyCheck(productsCount, appId, partnerId, userId, storeId, tableNumber, oldCartGoodsList, shoppingCartBaseService, calculationDiscountResult.getSendGoods(),bizType); sendGoodsQtyCheck(productsCount, appId, partnerId, userId, storeId, tableNumber, oldCartGoodsList, shoppingCartBaseService, calculationDiscountResult.getSendGoods(),bizType);
} }
...@@ -517,6 +517,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -517,6 +517,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, updateShoppingCartGoodsQtyRequestVo.getOrderType()); ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, updateShoppingCartGoodsQtyRequestVo.getOrderType());
activityQueryDto.setBizType(bizType); activityQueryDto.setBizType(bizType);
// 根据商户门店判断是否走新促销 // 根据商户门店判断是否走新促销
DiscountSharingDto discountSharingDto = new DiscountSharingDto();
if (grayPush(partnerId, storeId, "2")) { if (grayPush(partnerId, storeId, "2")) {
CalculationDiscountResult discountResult = null; CalculationDiscountResult discountResult = null;
discountResult = sharingDiscountService.getCalculationSharingDiscountResult(menuType discountResult = sharingDiscountService.getCalculationSharingDiscountResult(menuType
...@@ -530,7 +531,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -530,7 +531,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, new ArrayList() //券 , new ArrayList() //券
, null //加价购商品 , null //加价购商品
, deliveryAmount , deliveryAmount
, null,bizType, accountFlag,new DiscountSharingDto(), this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList())); , null,bizType, accountFlag, discountSharingDto, this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList()));
//校验加购数量 //校验加购数量
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);
...@@ -556,7 +557,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -556,7 +557,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
buildShoppingCartGoodsResponse(shoppingCartGoodsResponseVo, discountResult, null, partnerId); buildShoppingCartGoodsResponse(shoppingCartGoodsResponseVo, discountResult, null, partnerId);
} else { } else {
// 获取优惠信息 // 获取优惠信息
CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType, partnerId, storeId, userId, appId, userLoginInfoDto.getWxAppid(), orderType, assortmentCustomerInfoVo.isMemberPaid(), cartGoodsList, new ArrayList(), new ArrayList<>(), null, deliveryAmount,bizType, accountFlag, this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList())); CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType, partnerId, storeId, userId, appId, userLoginInfoDto.getWxAppid(), orderType, assortmentCustomerInfoVo.isMemberPaid(), cartGoodsList, new ArrayList(), new ArrayList<>(), null, deliveryAmount,bizType, accountFlag, this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList()),discountSharingDto);
if (calculationDiscountResult == null) { if (calculationDiscountResult == null) {
shoppingCartGoodsResponseVo.setProducts(cartGoodsList); shoppingCartGoodsResponseVo.setProducts(cartGoodsList);
} }
...@@ -733,6 +734,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -733,6 +734,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
CouponPromotionVO couponPromotionVO = couponAdapter.getCouponPromotionVO(shoppingCartInfoRequestVo, userLoginInfoDto); CouponPromotionVO couponPromotionVO = couponAdapter.getCouponPromotionVO(shoppingCartInfoRequestVo, userLoginInfoDto);
// fisherman 作用: 调用可选优惠券 计算 配送券是否可用 // fisherman 作用: 调用可选优惠券 计算 配送券是否可用
couponPromotionVO.setDeliveryAmount(deliveryAmount); couponPromotionVO.setDeliveryAmount(deliveryAmount);
DiscountSharingDto discountSharingDto = new DiscountSharingDto();
discountSharingDto.setEnableSharing(shoppingCartInfoRequestVo.getEnableSharing());
if (grayPush(partnerId, storeId, "2")) { if (grayPush(partnerId, storeId, "2")) {
ArrayList<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = new ArrayList<>(); ArrayList<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = new ArrayList<>();
if (StringUtils.isNotEmpty(couponCode)) { if (StringUtils.isNotEmpty(couponCode)) {
...@@ -768,7 +771,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -768,7 +771,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, sendGoods , sendGoods
, deliveryAmount , deliveryAmount
, null , null
,bizType, accountFlag,new DiscountSharingDto(), this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList())); ,bizType, accountFlag,discountSharingDto, this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList()));
sharingCartService.distribute(calculationSharingDiscountResult sharingCartService.distribute(calculationSharingDiscountResult
, cartGoodsList , cartGoodsList
, shoppingCartGoodsResponseVo , shoppingCartGoodsResponseVo
...@@ -810,7 +813,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -810,7 +813,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
// 获取优惠信息 调用促销 // 获取优惠信息 调用促销
CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType, partnerId, storeId, userId, appId, CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType, partnerId, storeId, userId, appId,
userLoginInfoDto.getWxAppid(), orderType, assortmentCustomerInfoVo.isMemberPaid(), userLoginInfoDto.getWxAppid(), orderType, assortmentCustomerInfoVo.isMemberPaid(),
cartGoodsList, coupons, null, shoppingCartInfoRequestVo.getReceiveId(), deliveryAmount,bizType, accountFlag, nightDistributionFee); cartGoodsList, coupons, null, shoppingCartInfoRequestVo.getReceiveId(), deliveryAmount,bizType, accountFlag, nightDistributionFee, discountSharingDto);
if (calculationDiscountResult == null) { if (calculationDiscountResult == null) {
shoppingCartGoodsResponseVo.setProducts(cartGoodsList); shoppingCartGoodsResponseVo.setProducts(cartGoodsList);
} }
...@@ -1012,23 +1015,25 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1012,23 +1015,25 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
*/ */
@Override @Override
public BaseResponse getGoodsListCheck(ShoppingCartInfoRequestVo shoppingCartInfoRequestVo) { public BaseResponse getGoodsListCheck(ShoppingCartInfoRequestVo shoppingCartInfoRequestVo) {
List<String> cardCodes = new ArrayList<>(); Set<String> cardCodesSet = new HashSet<>();
if(CollectionUtils.isNotEmpty(shoppingCartInfoRequestVo.getCardCodes())){ if(CollectionUtils.isNotEmpty(shoppingCartInfoRequestVo.getCardCodes())){
cardCodes.addAll(shoppingCartInfoRequestVo.getCardCodes()); cardCodesSet.addAll(shoppingCartInfoRequestVo.getCardCodes());
}else if(StringUtils.isNotBlank(shoppingCartInfoRequestVo.getCardCode())){ }else if(StringUtils.isNotBlank(shoppingCartInfoRequestVo.getCardCode())){
cardCodes.add(shoppingCartInfoRequestVo.getCardCode()); cardCodesSet.add(shoppingCartInfoRequestVo.getCardCode());
} }
if (CollectionUtils.isEmpty(cardCodes)) { if (CollectionUtils.isEmpty(cardCodesSet)) {
return ResponseUtil.error(ResponseResult.PARAMETER_MISSING); return ResponseUtil.error(ResponseResult.PARAMETER_MISSING);
} }
//打包带走外卖 //打包带走外卖
if (CollectionUtils.isNotEmpty(cardCodes) && Objects.equals(shoppingCartInfoRequestVo.getOrderType(), 2) if (CollectionUtils.isNotEmpty(cardCodesSet) && Objects.equals(shoppingCartInfoRequestVo.getOrderType(), 2)
&& StringUtils.isBlank(shoppingCartInfoRequestVo.getReceiveId())) { && StringUtils.isBlank(shoppingCartInfoRequestVo.getReceiveId())) {
return ResponseUtil.error(ResponseResult.PARAMETER_MISSING); return ResponseUtil.error(ResponseResult.PARAMETER_MISSING);
} }
String partnerId = shoppingCartInfoRequestVo.getPartnerId(); String partnerId = shoppingCartInfoRequestVo.getPartnerId();
String storeId = shoppingCartInfoRequestVo.getShopId(); String storeId = shoppingCartInfoRequestVo.getShopId();
List<String> cardCodes = cardCodesSet.stream().collect(toList());
shoppingCartInfoRequestVo.setCardCodes(cardCodes);
// 是否走重构 // 是否走重构
if (SDKCommonBaseContextWare.getBean(ShoppingCartNewServiceImpl.class).newShoppingCartGray(shoppingCartInfoRequestVo.getPartnerId(), shoppingCartInfoRequestVo.getShopId())) { if (SDKCommonBaseContextWare.getBean(ShoppingCartNewServiceImpl.class).newShoppingCartGray(shoppingCartInfoRequestVo.getPartnerId(), shoppingCartInfoRequestVo.getShopId())) {
Map requestMap = mapperFacade.map(shoppingCartInfoRequestVo, Map.class); Map requestMap = mapperFacade.map(shoppingCartInfoRequestVo, Map.class);
...@@ -1208,6 +1213,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1208,6 +1213,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
CouponPromotionVO couponPromotionVO = couponAdapter.getCouponPromotionVO(shoppingCartInfoRequestVo, userLoginInfoDto); CouponPromotionVO couponPromotionVO = couponAdapter.getCouponPromotionVO(shoppingCartInfoRequestVo, userLoginInfoDto);
Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo, shoppingCartInfoRequestVo.getOrderType()); Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo, shoppingCartInfoRequestVo.getOrderType());
DiscountSharingDto discountSharingDto = new DiscountSharingDto();
discountSharingDto.setEnableSharing(shoppingCartInfoRequestVo.getEnableSharing());
if (grayPush(partnerId, storeId, "2")) { if (grayPush(partnerId, storeId, "2")) {
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = new ArrayList<>(); List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = new ArrayList<>();
// 当couponCodes不为空时,需参与价格计算,同时排除单券入参 // 当couponCodes不为空时,需参与价格计算,同时排除单券入参
...@@ -1230,7 +1237,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1230,7 +1237,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, coupons , coupons
, shoppingCartInfoRequestVo.getSendGoods() , shoppingCartInfoRequestVo.getSendGoods()
, deliveryAmount , deliveryAmount
, shoppingCartInfoRequestVo,bizType, accountFlag,new DiscountSharingDto(), this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList())); , shoppingCartInfoRequestVo,bizType, accountFlag,discountSharingDto, this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList()));
// 活动校验 // 活动校验
calculationSharingValidatorService.validator(discountResult calculationSharingValidatorService.validator(discountResult
...@@ -1277,7 +1284,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1277,7 +1284,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
} }
// 获取优惠信息 // 获取优惠信息
CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType, partnerId, storeId, userId, appId, userLoginInfoDto.getWxAppid(), orderType, assortmentCustomerInfoVo.isMemberPaid(), cartGoodsList, coupons, sendGoodsList, shoppingCartInfoRequestVo.getReceiveId(), deliveryAmount,bizType, accountFlag, this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList())); CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType, partnerId, storeId, userId, appId, userLoginInfoDto.getWxAppid(), orderType, assortmentCustomerInfoVo.isMemberPaid(), cartGoodsList, coupons, sendGoodsList, shoppingCartInfoRequestVo.getReceiveId(), deliveryAmount,bizType, accountFlag, this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList()),discountSharingDto);
//临时方案 //临时方案
packgeAdditional(shoppingCartInfoRequestVo, premiumExchangeActivity); packgeAdditional(shoppingCartInfoRequestVo, premiumExchangeActivity);
// 促销活动的优惠金额计算 // 促销活动的优惠金额计算
...@@ -1567,8 +1574,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1567,8 +1574,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
Long distributionFee, Long distributionFee,
Integer bizType, Integer bizType,
Integer accountFlag, Integer accountFlag,
long nightDistributionFee long nightDistributionFee,
) { DiscountSharingDto discountSharingDto) {
ActivityCalculationDiscountRequestDto activityCalculationDiscountRequestDto = getActivityCalculationDiscountRequestDto(partnerId, storeId, userId, appId, orderType); ActivityCalculationDiscountRequestDto activityCalculationDiscountRequestDto = getActivityCalculationDiscountRequestDto(partnerId, storeId, userId, appId, orderType);
List<ActivityCalculationDiscountRequestDto.CalculationDiscountGoods> calculationDiscountGoodsList = new ArrayList<>(); List<ActivityCalculationDiscountRequestDto.CalculationDiscountGoods> calculationDiscountGoodsList = new ArrayList<>();
...@@ -1696,6 +1703,12 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1696,6 +1703,12 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
} else if (Objects.equals(orderType, CreateOrderType.TAKE_OUT.getCode())) { } else if (Objects.equals(orderType, CreateOrderType.TAKE_OUT.getCode())) {
activityCalculationDiscountRequestDto.setProductChannel(BusinessTypeEnum.SAAS_DELIVERY.getCode()); activityCalculationDiscountRequestDto.setProductChannel(BusinessTypeEnum.SAAS_DELIVERY.getCode());
} }
if (Objects.nonNull(discountSharingDto)) {
if (Objects.nonNull(discountSharingDto.getEnableSharing()) && discountSharingDto.getEnableSharing().compareTo(1) == 0) {
// 储值卡算计, 剔除互斥活动 只能参加活动类型为29
activityCalculationDiscountRequestDto.setActivityTypes(Collections.singletonList(ActivityTypeEnum.TYPE_29.getCode()));
}
}
ActivityCalculationDiscountResponseDto activityCalculationDiscountResponseDto = activityClient.calculationDiscount(activityCalculationDiscountRequestDto); ActivityCalculationDiscountResponseDto activityCalculationDiscountResponseDto = activityClient.calculationDiscount(activityCalculationDiscountRequestDto);
// 返回成功 // 返回成功
if (activityCalculationDiscountResponseDto != null && StringUtils.equals(activityCalculationDiscountResponseDto.getStatusCode(), ResponseCodeConstant.RESPONSE_SUCCESS_STR)) { if (activityCalculationDiscountResponseDto != null && StringUtils.equals(activityCalculationDiscountResponseDto.getStatusCode(), ResponseCodeConstant.RESPONSE_SUCCESS_STR)) {
...@@ -2713,15 +2726,15 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -2713,15 +2726,15 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
private CalculationDiscountResult getCalculationDiscountResult(String menuType private CalculationDiscountResult getCalculationDiscountResult(String menuType
, String partnerId, String storeId, String userId, String appId, String wxappid, Integer orderType, boolean isMember , String partnerId, String storeId, String userId, String appId, String wxappid, Integer orderType, boolean isMember
, List<CartGoods> cartGoodsList, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons , List<CartGoods> cartGoodsList, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons
, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList, String receiveId, Long deliveryAmount,Integer bizType, Integer accountFlag, long nightDistributionFee) { , List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList, String receiveId, Long deliveryAmount,Integer bizType, Integer accountFlag, long nightDistributionFee, DiscountSharingDto discountSharingDto ) {
// 获取优惠信息 // 获取优惠信息
CalculationDiscountResult calculationDiscountResult = null; CalculationDiscountResult calculationDiscountResult = null;
//外卖场景下 查询门店配送信息 //外卖场景下 查询门店配送信息
if (BusinessTypeEnum.SAAS_DELIVERY.getCode().equals(menuType)) { if (BusinessTypeEnum.SAAS_DELIVERY.getCode().equals(menuType)) {
calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, orderType, isMember, cartGoodsList, coupons, sendGoodsList, BusinessTypeEnum.getByType(menuType).getCode(), deliveryAmount,bizType, accountFlag, nightDistributionFee); calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, orderType, isMember, cartGoodsList, coupons, sendGoodsList, BusinessTypeEnum.getByType(menuType).getCode(), deliveryAmount,bizType, accountFlag, nightDistributionFee, discountSharingDto);
} else { } else {
calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, orderType, isMember, cartGoodsList, coupons, sendGoodsList, BusinessTypeEnum.getByType(menuType).getCode(), null,bizType, accountFlag, 0L); calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, orderType, isMember, cartGoodsList, coupons, sendGoodsList, BusinessTypeEnum.getByType(menuType).getCode(), null,bizType, accountFlag, 0L, discountSharingDto);
} }
return calculationDiscountResult; return calculationDiscountResult;
...@@ -3129,6 +3142,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -3129,6 +3142,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
PremiumExchangeResponseVo premiumExchangeResponseVo = new PremiumExchangeResponseVo(); PremiumExchangeResponseVo premiumExchangeResponseVo = new PremiumExchangeResponseVo();
premiumExchangeResponseVo.setResultCode(ActivityResultCodeEnum.NON_PARTICIPATE.getCode()); premiumExchangeResponseVo.setResultCode(ActivityResultCodeEnum.NON_PARTICIPATE.getCode());
List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCart(partnerId, storeId, userId, request.getSessionId(), null, shoppingCartBaseService,bizType); List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCart(partnerId, storeId, userId, request.getSessionId(), null, shoppingCartBaseService,bizType);
DiscountSharingDto discountSharingDto = new DiscountSharingDto();
if (grayPush(partnerId, storeId, "2")) { if (grayPush(partnerId, storeId, "2")) {
// 当couponCode不为空时,需参与价格计算 // 当couponCode不为空时,需参与价格计算
ArrayList<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = new ArrayList<>(); ArrayList<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = new ArrayList<>();
...@@ -3161,7 +3175,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -3161,7 +3175,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
, coupons //券 , coupons //券
, null //加价购商品 , null //加价购商品
, 0L , 0L
, null,bizType, accountFlag,new DiscountSharingDto(), 0L); , null,bizType, accountFlag,discountSharingDto, 0L);
premiumExchangeResponseVo = activityAdapter.convert2PremiumExchangeSharing(discountResult); premiumExchangeResponseVo = activityAdapter.convert2PremiumExchangeSharing(discountResult);
} else { } else {
...@@ -3186,7 +3200,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -3186,7 +3200,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
} }
// 获取优惠信息 // 获取优惠信息
CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType, partnerId, storeId, userId, appId, assortmentCustomerInfoVo.getWxAppId(), orderType, assortmentCustomerInfoVo.isMemberPaid(), cartGoodsList, coupons, null, null, 0L,bizType CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType, partnerId, storeId, userId, appId, assortmentCustomerInfoVo.getWxAppId(), orderType, assortmentCustomerInfoVo.isMemberPaid(), cartGoodsList, coupons, null, null, 0L,bizType
, accountFlag, 0L); , accountFlag, 0L,discountSharingDto);
premiumExchangeResponseVo = activityAdapter.convert2PremiumExchange(calculationDiscountResult); premiumExchangeResponseVo = activityAdapter.convert2PremiumExchange(calculationDiscountResult);
} }
...@@ -3359,7 +3373,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -3359,7 +3373,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
} }
} else { } else {
// 获取优惠信息 // 获取优惠信息
CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType, partnerId, storeId, userId, appId, assortmentCustomerInfoVo.getWxAppId(), orderType, assortmentCustomerInfoVo.isMemberPaid(), cartGoodsList, new ArrayList<>(), null, null, deliveryAmount,bizType, accountFlag, this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList())); CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType, partnerId, storeId, userId, appId, assortmentCustomerInfoVo.getWxAppId(), orderType, assortmentCustomerInfoVo.isMemberPaid(), cartGoodsList, new ArrayList<>(), null, null, deliveryAmount,bizType, accountFlag, this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList()),new DiscountSharingDto());
couponAvailableCartInfo = activityAdapter.convert2CouponAvailableCartInfo(partnerId, storeId, calculationDiscountResult, orgCodes); couponAvailableCartInfo = activityAdapter.convert2CouponAvailableCartInfo(partnerId, storeId, calculationDiscountResult, orgCodes);
} }
return ResponseUtil.success(couponAvailableCartInfo); return ResponseUtil.success(couponAvailableCartInfo);
......
...@@ -8,10 +8,7 @@ import cn.freemud.entities.dto.calculate.*; ...@@ -8,10 +8,7 @@ import cn.freemud.entities.dto.calculate.*;
import cn.freemud.entities.dto.shoppingCart.SendPoint; import cn.freemud.entities.dto.shoppingCart.SendPoint;
import cn.freemud.entities.vo.CartGoods; import cn.freemud.entities.vo.CartGoods;
import cn.freemud.entities.vo.ShoppingCartInfoRequestVo; import cn.freemud.entities.vo.ShoppingCartInfoRequestVo;
import cn.freemud.enums.ActivityChannelEnum; import cn.freemud.enums.*;
import cn.freemud.enums.CreateOrderType;
import cn.freemud.enums.GoodsTypeEnum;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.BizServiceException; import cn.freemud.interceptor.BizServiceException;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.CommonService; import cn.freemud.service.CommonService;
...@@ -31,10 +28,7 @@ import org.apache.commons.lang.StringUtils; ...@@ -31,10 +28,7 @@ import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
//import cn.freemud.service.thirdparty.CalculationClient; //import cn.freemud.service.thirdparty.CalculationClient;
...@@ -237,6 +231,11 @@ public class CalculationSharingDiscountService { ...@@ -237,6 +231,11 @@ public class CalculationSharingDiscountService {
activeService.buildChooseGoodsService(calculationSharingDiscountRequestDto, shoppingCartInfoRequestVo == null ? null : shoppingCartInfoRequestVo.getChooseGoods()); activeService.buildChooseGoodsService(calculationSharingDiscountRequestDto, shoppingCartInfoRequestVo == null ? null : shoppingCartInfoRequestVo.getChooseGoods());
if(sharingDto != null){ if(sharingDto != null){
calculationSharingDiscountRequestDto.setAutoCoupon(sharingDto.getAutoCoupon()); calculationSharingDiscountRequestDto.setAutoCoupon(sharingDto.getAutoCoupon());
if (Objects.nonNull(sharingDto.getEnableSharing()) && sharingDto.getEnableSharing().compareTo(1) == 0) {
// 储值卡算计, 剔除互斥活动 只能参加活动类型为29
calculationSharingDiscountRequestDto.setActivityTypes(Collections.singletonList(ActivityTypeEnum.TYPE_29.getCode()));
}
} }
//算价 //算价
ActivityCalculationDiscountResponseDto sharingDiscountResponseDto = activityClient.calculationSharingDiscount(calculationSharingDiscountRequestDto); ActivityCalculationDiscountResponseDto sharingDiscountResponseDto = activityClient.calculationSharingDiscount(calculationSharingDiscountRequestDto);
......
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