Commit 55ccf4da by 周晓航

Merge branch 'KA-储值卡增加营销规则同享配置ID1046436-zxh-20220505' into pre

parents 86dbe377 41dc72f6
package cn.freemud.entities.dto.pay.svc;
import lombok.Data;
import java.util.List;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2022/5/10 17:52
* @description :
*/
@Data
public class BatchSvcInfoRequest {
/**
* 卡档案id
*/
private Integer applyId;
/**
* 商户编号
*/
private String partnerId;
/**
* 接口版本
*/
private String ver;
/**
* 门店id(需要校验的门店)
*/
private String storeId;
/**
* 需要校验的组织渠道Id集合
*/
private List<String> orgIds;
}
package cn.freemud.entities.dto.pay.svc;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2022/5/10 18:00
* @description :
*/
@Data
public class CardApplyRes {
@ApiModelProperty("卡档案Id")
private Integer id;
@ApiModelProperty(value = "卡档案名")
private String name;
@ApiModelProperty(value = "卡面信息,卡面配图链接")
private String mark;
@ApiModelProperty(value = "规则说明")
private String ruleRemark;
@ApiModelProperty(value = "卡档案编号")
private String thirdNo;
@ApiModelProperty(value = "创建人")
private String createUser;
@ApiModelProperty(value = "最后操作人")
private String updateUser;
@ApiModelProperty(value = "创建时间str")
private String createDate;
@ApiModelProperty(value = "最后更新时间Str")
private String updateDate;
@ApiModelProperty(value = "在售状态,默认上线,1上架,0下架")
private Integer onShelf;
@ApiModelProperty(value = "启充状态,默认启用,1-启用,0-停用")
private Integer enableRecharge;
@ApiModelProperty(value = "推荐状态, 默认未设置,1-推荐,0-未设置")
private Integer enablePromote;
// /**
// * 门店列表
// */
// @ApiModelProperty("门店列表")
// private List<CardApplyStoreVo> stores;
//
// /**
// * 渠道分组列表
// */
// @ApiModelProperty("渠道分组列表")
// private List<CardApplyOrgVo> orgs;
//
// /**
// * 渠道分组列表
// */
// @ApiModelProperty("推荐地区列表")
// private List<CardApplyRegionRecommendVo> regions;
@ApiModelProperty(value = "适用门店:1-部分门店 2-渠道分组 3-全部门店")
private Byte whiteChoiceMode;
@ApiModelProperty(value = "不适用门店:1-部分门店 2-渠道分组 3-无")
private Byte blackChoiceMode;
@ApiModelProperty(value = "推荐模式:1-全部 2-部分渠道")
private Byte recommendMode;
@ApiModelProperty(value = "不推荐模式:1-全部 2-部分渠道")
private Byte notRecommendMode;
@ApiModelProperty(value = "适用范围,全门店通用或仅限上海地区门店使用等")
private String applyScope;
@ApiModelProperty(value = "0:线上卡档案, 1:线下卡档案")
private Integer cardApplyType;
@ApiModelProperty(value = "储值卡活动标签图片地址")
private String promotionLabelImg;
@ApiModelProperty(value = "储值卡活动标签宣传语")
private String promotionLabelDesc;
/**
*/
@ApiModelProperty("是否开启线下充值(设为仅线下充值后,用户只能到门店充值,在小程序无法充值) 1-是 0-否,默认为0")
private Byte enableOfflineRecharge;
@ApiModelProperty("有效期")
private Integer effectDuration;
/**
* 复用card表中的cardType字段
*/
@ApiModelProperty("卡类型:0礼品卡,3储值卡")
private Integer applyType;
@ApiModelProperty("有效期类型 0|永久有效 1|固定时长 2|固定日期")
private Integer effectType;
@ApiModelProperty("固定时长有效期时间单位 6|年 5|月 4|日 3|时 2|分 1|秒")
private Integer timeUnit;
@ApiModelProperty(value = "同步到哪个三方:1:银商,null默认不同步")
private Integer syncThirdParty;
@ApiModelProperty("渠道和门店黑白名单校验,true通过,false未通过")
private Boolean whiteBlackVerify;
@ApiModelProperty(value = "是否设置获取成长值 1-是 0-否")
private Integer enableGrowth;
@ApiModelProperty(value = "是否设置获取积分配置 1-是 0-否")
private Integer enableScore;
@ApiModelProperty(value = "卡档案子类型 1:普通, 2:抖音")
private Integer cardApplySubType;
@ApiModelProperty(value = "是否开启转赠 1-开启 0-关闭")
private Integer enableTransfer;
@ApiModelProperty(value = "单人当天冲值次数限制")
private Integer dayChargeTimes;
@ApiModelProperty(value = "单人最大冲值次数限制")
private Integer maxChargeTimes;
@ApiModelProperty(value = "是否与营销活动共享 1-是 0-否")
private Integer enableSharing;
}
...@@ -325,4 +325,7 @@ public class CreateOrderVo { ...@@ -325,4 +325,7 @@ public class CreateOrderVo {
*/ */
private String contactsName; private String contactsName;
@ApiModelProperty(value = "是否与营销活动共享 1-是 0-否")
private Integer enableSharing = 1;
} }
...@@ -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;
...@@ -26,6 +27,10 @@ import java.util.List; ...@@ -26,6 +27,10 @@ import java.util.List;
@Data @Data
@Builder @Builder
public class ShoppingCartInfoRequestVo { public class ShoppingCartInfoRequestVo {
@ApiModelProperty(value = "是否与营销活动共享 1-是 0-否")
private Integer enableSharing = 1;
/** /**
* 链路号 * 链路号
*/ */
......
package cn.freemud.entities.vo.order; package cn.freemud.entities.vo.order;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.Valid; import javax.validation.Valid;
...@@ -13,6 +14,10 @@ public class CreateOrderPremiumExchangeActivityVo { ...@@ -13,6 +14,10 @@ public class CreateOrderPremiumExchangeActivityVo {
private String activityCode; private String activityCode;
@NotNull(message = "activityName 不能为空") @NotNull(message = "activityName 不能为空")
private String activityName; private String activityName;
@ApiModelProperty(value = "是否与营销活动共享 1-是 0-否")
private Integer enableSharing = 1;
/** /**
* 加价购sku商品信息 * 加价购sku商品信息
*/ */
......
...@@ -26,6 +26,8 @@ import cn.freemud.entities.dto.order.UnifiedPayResponseDto; ...@@ -26,6 +26,8 @@ import cn.freemud.entities.dto.order.UnifiedPayResponseDto;
import cn.freemud.entities.dto.pay.PayOrderDto; import cn.freemud.entities.dto.pay.PayOrderDto;
import cn.freemud.entities.dto.pay.PayProductDto; import cn.freemud.entities.dto.pay.PayProductDto;
import cn.freemud.entities.dto.pay.UnifiedOrderRequestDto; import cn.freemud.entities.dto.pay.UnifiedOrderRequestDto;
import cn.freemud.entities.dto.pay.svc.BatchSvcInfoRequest;
import cn.freemud.entities.dto.pay.svc.CardApplyRes;
import cn.freemud.entities.dto.shoppingCart.GetShoppingCartGoodsApportionDto; import cn.freemud.entities.dto.shoppingCart.GetShoppingCartGoodsApportionDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto; import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.dto.store.*; import cn.freemud.entities.dto.store.*;
...@@ -41,6 +43,7 @@ import cn.freemud.service.adapter.OrderCheckAdapter; ...@@ -41,6 +43,7 @@ import cn.freemud.service.adapter.OrderCheckAdapter;
import cn.freemud.service.thirdparty.CustomerPropertyClient; import cn.freemud.service.thirdparty.CustomerPropertyClient;
import cn.freemud.service.thirdparty.ShoppingCartClient; import cn.freemud.service.thirdparty.ShoppingCartClient;
import cn.freemud.service.thirdparty.StoreBaseApiClient; import cn.freemud.service.thirdparty.StoreBaseApiClient;
import cn.freemud.service.thirdparty.SvcAppClient;
import cn.freemud.utils.AppLogUtil; import cn.freemud.utils.AppLogUtil;
import cn.freemud.utils.DateUtils; import cn.freemud.utils.DateUtils;
import cn.freemud.utils.ResponseUtil; import cn.freemud.utils.ResponseUtil;
...@@ -116,6 +119,9 @@ public class CheckOrder { ...@@ -116,6 +119,9 @@ public class CheckOrder {
@Autowired @Autowired
private StoreBaseApiClient storeBaseApiClient; private StoreBaseApiClient storeBaseApiClient;
@Autowired
private SvcAppClient svcAppClient;
// 【华莱士】【订单C端记录不分账的卡面编号】不让走分账,卡面编号--11840,11845,11846,11853,11854,11855,11857,11858,11859,11860,11861,11862,11863,11864,11865,11866,11906 // 【华莱士】【订单C端记录不分账的卡面编号】不让走分账,卡面编号--11840,11845,11846,11853,11854,11855,11857,11858,11859,11860,11861,11862,11863,11864,11865,11866,11906
@Value("${card.pay.unDistribution.applyId:}") @Value("${card.pay.unDistribution.applyId:}")
private List<Integer> unDistributions; private List<Integer> unDistributions;
...@@ -197,11 +203,51 @@ public class CheckOrder { ...@@ -197,11 +203,51 @@ public class CheckOrder {
// createOrderVo.setUnDistribution(1); // createOrderVo.setUnDistribution(1);
// } // }
// } // }
// 获取储值卡是否配置了优惠同享等
createOrderVo.setEnableSharing(this.commonCheckSVCEnableSharing(memberCardCode,cardCodes,createOrderVo.getPartnerId()));
createOrderVo.setUserId(userLoginInfoDto.getMemberId()); createOrderVo.setUserId(userLoginInfoDto.getMemberId());
return userLoginInfoDto; return userLoginInfoDto;
} }
public void checkMemberSvcCard(String partnerId, String memberId, SellCouponCreateOrderVo requestVo) { /**
*
* @param memberCardCode
* @param cardCodes
* @param partnerId
* @return 是否与营销活动共享 1-是 0-否
*/
public Integer commonCheckSVCEnableSharing(List<GetSvcInfoByMemberIdResponseVo> memberCardCode, Set<String> cardCodes, String partnerId){
Integer enableSharing = 1;
if (CollectionUtils.isNotEmpty(memberCardCode) && CollectionUtils.isNotEmpty(cardCodes)) {
List<BatchSvcInfoRequest> requestList = new ArrayList<>();
memberCardCode.stream().filter(c -> cardCodes.contains(c.getCardCode())).forEach(cardInfo -> {
BatchSvcInfoRequest request = new BatchSvcInfoRequest();
request.setApplyId(cardInfo.getApplyId());
request.setPartnerId(partnerId);
request.setVer("1");
requestList.add(request);
});
cn.freemud.base.entity.BaseResponse<List<CardApplyRes>> response = svcAppClient.multiInfo(requestList);
if (response != null && ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(response.getCode())) {
if (CollectionUtils.isNotEmpty(response.getResult())) {
CardApplyRes cardApplyRes1 = response.getResult().stream().filter(cardApplyRes -> cardApplyRes.getEnableSharing().compareTo(0) == 0).findFirst().orElse(null);
if (Objects.nonNull(cardApplyRes1)) {
enableSharing = cardApplyRes1.getEnableSharing();
}
}
}
}
return enableSharing;
}
/**
*
* @param partnerId
* @param memberId
* @param requestVo
* @return 是否与营销活动共享 1-是 0-否
*/
public Integer checkMemberSvcCard(String partnerId, String memberId, SellCouponCreateOrderVo requestVo) {
if (StringUtils.isNotBlank(requestVo.getCardCode())) { if (StringUtils.isNotBlank(requestVo.getCardCode())) {
//校验会员svc卡信息 //校验会员svc卡信息
List<GetSvcInfoByMemberIdResponseVo> memberCardCode = checkCardCode(partnerId, memberId, Sets.newHashSet(requestVo.getCardCode())); List<GetSvcInfoByMemberIdResponseVo> memberCardCode = checkCardCode(partnerId, memberId, Sets.newHashSet(requestVo.getCardCode()));
...@@ -212,7 +258,9 @@ public class CheckOrder { ...@@ -212,7 +258,9 @@ public class CheckOrder {
// requestVo.setUnDistribution(1); // requestVo.setUnDistribution(1);
// } // }
// } // }
return this.commonCheckSVCEnableSharing(memberCardCode, Collections.singleton(requestVo.getCardCode()), partnerId);
} }
return 1;
} }
...@@ -705,6 +753,7 @@ public class CheckOrder { ...@@ -705,6 +753,7 @@ public class CheckOrder {
.bizType(createOrderVo.getBizType()) .bizType(createOrderVo.getBizType())
.build(); .build();
shoppingCartInfoRequestVo.setTrackingNo(LogThreadLocal.getTrackingNo()); shoppingCartInfoRequestVo.setTrackingNo(LogThreadLocal.getTrackingNo());
shoppingCartInfoRequestVo.setEnableSharing(createOrderVo.getEnableSharing());
// 如果使用优惠券或者商品券,校验 couponCode // 如果使用优惠券或者商品券,校验 couponCode
// if (StringUtils.isNotBlank(createOrderVo.getCouponCode())) { // if (StringUtils.isNotBlank(createOrderVo.getCouponCode())) {
// // 校验couponCode // // 校验couponCode
......
...@@ -311,7 +311,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService { ...@@ -311,7 +311,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
// 查询用户信息 // 查询用户信息
AssortmentCustomerInfoVo userLoginInfoDto = checkOrder.checkOrderByMemberNew(requestVo.getSessionId()); AssortmentCustomerInfoVo userLoginInfoDto = checkOrder.checkOrderByMemberNew(requestVo.getSessionId());
// 如果用户适用SVC 卡支付,则校验svc卡, // 如果用户适用SVC 卡支付,则校验svc卡,
checkOrder.checkMemberSvcCard(userLoginInfoDto.getPartnerId(), userLoginInfoDto.getMemberId(), requestVo); Integer enableSharing = checkOrder.checkMemberSvcCard(userLoginInfoDto.getPartnerId(), userLoginInfoDto.getMemberId(), requestVo);
String trackingNo = LogThreadLocal.getTrackingNo(); String trackingNo = LogThreadLocal.getTrackingNo();
String partnerId = userLoginInfoDto.getPartnerId(); String partnerId = userLoginInfoDto.getPartnerId();
String storeId = requestVo.getShopId(); String storeId = requestVo.getShopId();
...@@ -376,6 +376,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService { ...@@ -376,6 +376,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
} }
CreateOrderRequest createOrderRequest = (CreateOrderRequest) createOrderRequestResponse.getResult(); CreateOrderRequest createOrderRequest = (CreateOrderRequest) createOrderRequestResponse.getResult();
createOrderRequest.setEnableSharing(enableSharing);
//标准化平台虚拟商品特价活动计算,不包含蜜雪APP买虚拟商品 //标准化平台虚拟商品特价活动计算,不包含蜜雪APP买虚拟商品
List<SubtractStockVO> stockBeanDtos = calculationDiscount(partnerId, storeId, userLoginInfoDto.getMemberId(), productInfosDto.getData().getProducts().get(0), createOrderRequest); List<SubtractStockVO> stockBeanDtos = calculationDiscount(partnerId, storeId, userLoginInfoDto.getMemberId(), productInfosDto.getData().getProducts().get(0), createOrderRequest);
......
...@@ -2,13 +2,18 @@ package cn.freemud.service.thirdparty; ...@@ -2,13 +2,18 @@ package cn.freemud.service.thirdparty;
import com.freemud.application.sdk.api.ordercenter.annotation.LogIgnoreFeign; import com.freemud.application.sdk.api.ordercenter.annotation.LogIgnoreFeign;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.dto.pay.svc.BatchSvcInfoRequest;
import cn.freemud.entities.dto.pay.svc.CardApplyRes;
import cn.freemud.entities.dto.pay.svc.SVCCardAmountRequestDto; import cn.freemud.entities.dto.pay.svc.SVCCardAmountRequestDto;
import cn.freemud.entities.dto.pay.svc.SVCCardAmountResponseDto; import cn.freemud.entities.dto.pay.svc.SVCCardAmountResponseDto;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@FeignClient(name="fm-svc-app", url = "${saas.svc.app.feign.url:}") import java.util.List;
@FeignClient(name = "fm-svc-app", url = "${saas.svc.app.feign.url:}")
@RequestMapping(produces = {"application/json;charset=UTF-8"}) @RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface SvcAppClient { public interface SvcAppClient {
...@@ -17,4 +22,10 @@ public interface SvcAppClient { ...@@ -17,4 +22,10 @@ public interface SvcAppClient {
@LogIgnoreFeign(logMessage = "batchQueryCardAmount") @LogIgnoreFeign(logMessage = "batchQueryCardAmount")
BaseResponse<SVCCardAmountResponseDto> batchQueryCardAmount(SVCCardAmountRequestDto svcComPayRequestDto); BaseResponse<SVCCardAmountResponseDto> batchQueryCardAmount(SVCCardAmountRequestDto svcComPayRequestDto);
//批量查询卡配置规则
@PostMapping(value = "/svc/cardapply/multi-info")
@LogIgnoreFeign(logMessage = "/svc/cardapply/multi-info")
BaseResponse<List<CardApplyRes>> multiInfo(@RequestBody List<BatchSvcInfoRequest> requestList);
} }
...@@ -15,6 +15,7 @@ package com.freemud.application.sdk.api.ordercenter.request.create; ...@@ -15,6 +15,7 @@ package com.freemud.application.sdk.api.ordercenter.request.create;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType; import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.request.BaseRequest; import com.freemud.application.sdk.api.ordercenter.request.BaseRequest;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq; import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
...@@ -23,6 +24,12 @@ import java.util.List; ...@@ -23,6 +24,12 @@ import java.util.List;
@Data @Data
public class CreateOrderRequest extends BaseRequest { public class CreateOrderRequest extends BaseRequest {
/**
* 该字段内部查询得出结果, 不可由前端传递
*/
@ApiModelProperty(value = "是否与营销活动共享 1-是 0-否")
private Integer enableSharing;
//订单编号 //订单编号
private String orderCode; private String orderCode;
......
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 = 1;
} }
...@@ -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 {
/** /**
......
...@@ -53,6 +53,13 @@ public class PremiumExchangeRequestVo { ...@@ -53,6 +53,13 @@ public class PremiumExchangeRequestVo {
private Integer bizType; private Integer bizType;
/** /**
* 储值卡需求: 使用的储值卡是否与 促销活动同享
*/
@ApiModelProperty(value = "是否与营销活动共享 1-是 0-否")
private Integer enableSharing = 1;
/**
* 优惠券code列表 * 优惠券code列表
*/ */
private List<couponCode> couponCodes; private List<couponCode> couponCodes;
......
...@@ -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 = 1;
@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(0) == 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,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -3129,6 +3142,8 @@ 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();
discountSharingDto.setEnableSharing(request.getEnableSharing());
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 +3176,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -3161,7 +3176,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 +3201,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -3186,7 +3201,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 +3374,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -3359,7 +3374,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(0) == 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