Commit 68714607 by 徐康

Merge branch 'feature/xukang_20210321_麦咖啡p5v9'

# Conflicts:
#	assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
parents 88f8a2b1 06b633c9
...@@ -968,6 +968,7 @@ public class OrderSdkAdapter { ...@@ -968,6 +968,7 @@ public class OrderSdkAdapter {
productDiscount.setCustomerCode(""); productDiscount.setCustomerCode("");
productDiscount.setAddInfo(orderSettlementResp.getExtInfo()); productDiscount.setAddInfo(orderSettlementResp.getExtInfo());
productDiscount.setProductId(orderSettlementResp.getProductId()); productDiscount.setProductId(orderSettlementResp.getProductId());
productDiscount.setExtInfo(orderSettlementResp.getExtInfo());
discountList.add(productDiscount); discountList.add(productDiscount);
} }
} }
...@@ -1416,6 +1417,9 @@ public class OrderSdkAdapter { ...@@ -1416,6 +1417,9 @@ public class OrderSdkAdapter {
case "FULL_BUYM_SENDN": case "FULL_BUYM_SENDN":
type=230; type=230;
break; break;
case "MONTH_CARD_TOTAL_DISCOUNT":
type=231;
break;
case "SINGLE_PRODUCT_REDUCTION": case "SINGLE_PRODUCT_REDUCTION":
type=22; type=22;
break; break;
...@@ -2035,6 +2039,9 @@ public class OrderSdkAdapter { ...@@ -2035,6 +2039,9 @@ public class OrderSdkAdapter {
case 230: case 230:
newOrderAccountType=OldOrderAccountType.FULL_BUYM_SENDN.getCode(); newOrderAccountType=OldOrderAccountType.FULL_BUYM_SENDN.getCode();
break; break;
case 231:
newOrderAccountType=OldOrderAccountType.MONTH_CARD_TOTAL_DISCOUNT.getCode();
break;
case 22: case 22:
newOrderAccountType=OldOrderAccountType.SINGLE_PRODUCT_REDUCTION.getCode(); newOrderAccountType=OldOrderAccountType.SINGLE_PRODUCT_REDUCTION.getCode();
break; break;
......
...@@ -43,6 +43,7 @@ public enum OldOrderAccountType { ...@@ -43,6 +43,7 @@ public enum OldOrderAccountType {
NEW_USER_DISCOUNT(101, "新用户立减", "NEW_USER_DISCOUNT"), NEW_USER_DISCOUNT(101, "新用户立减", "NEW_USER_DISCOUNT"),
PRICE_DEDUCTION_COUPON(103, "抵价券", "PRICE_DEDUCTION_COUPON"), PRICE_DEDUCTION_COUPON(103, "抵价券", "PRICE_DEDUCTION_COUPON"),
TOTAL_DISCOUNT(205, "优惠总金额", "TOTAL_DISCOUNT"), TOTAL_DISCOUNT(205, "优惠总金额", "TOTAL_DISCOUNT"),
MONTH_CARD_TOTAL_DISCOUNT(231, "月享卡优惠总金额", "MONTH_CARD_TOTAL_DISCOUNT"),
GATHER_SPOT(221, "集点活动","GATHER_SPOT"), GATHER_SPOT(221, "集点活动","GATHER_SPOT"),
MEMBER_PRICE_DISCOUNT(220, "会员价优惠", "MEMBER_PRICE_DISCOUNT"), MEMBER_PRICE_DISCOUNT(220, "会员价优惠", "MEMBER_PRICE_DISCOUNT"),
COCO_PRODUCT_CASH_COUPON(36, "coco商品代金券","COCO_PRODUCT_CASH_COUPON"), COCO_PRODUCT_CASH_COUPON(36, "coco商品代金券","COCO_PRODUCT_CASH_COUPON"),
......
...@@ -37,6 +37,7 @@ public enum QueryOrderAccountType { ...@@ -37,6 +37,7 @@ public enum QueryOrderAccountType {
CARD_DISCOUNT_AMOUNT("CARD_DISCOUNT_AMOUNT", "会员卡优惠金额"), CARD_DISCOUNT_AMOUNT("CARD_DISCOUNT_AMOUNT", "会员卡优惠金额"),
XY_DISCOUNT("XY_DISCOUNT", "x件y折"), XY_DISCOUNT("XY_DISCOUNT", "x件y折"),
TOTAL_DISCOUNT("TOTAL_DISCOUNT", "优惠总金额"), TOTAL_DISCOUNT("TOTAL_DISCOUNT", "优惠总金额"),
MONTH_CARD_TOTAL_DISCOUNT("MONTH_CARD_TOTAL_DISCOUNT", "月享卡优惠总金额"),
ONLINE_PAY("ONLINE_PAY", "线上支付"), ONLINE_PAY("ONLINE_PAY", "线上支付"),
FULL_DISTRIBUTION_FEE("FULL_DISTRIBUTION_FEE", "满减配送费"), FULL_DISTRIBUTION_FEE("FULL_DISTRIBUTION_FEE", "满减配送费"),
OFFLINE_PAY("OFFLINE_PAY", "线下支付"), OFFLINE_PAY("OFFLINE_PAY", "线下支付"),
......
...@@ -716,6 +716,8 @@ public class QueryOrdersResponse { ...@@ -716,6 +716,8 @@ public class QueryOrdersResponse {
private String addInfo; private String addInfo;
private String productId; private String productId;
private String extInfo;
} }
@NoArgsConstructor @NoArgsConstructor
......
...@@ -243,7 +243,8 @@ public class OrderAdapter { ...@@ -243,7 +243,8 @@ public class OrderAdapter {
if(ActivityTypeEnum.TYPE_11.getCode().equals(activityDiscountsDto.getActivityType()) if(ActivityTypeEnum.TYPE_11.getCode().equals(activityDiscountsDto.getActivityType())
|| ActivityTypeEnum.TYPE_12.getCode().equals(activityDiscountsDto.getActivityType()) || ActivityTypeEnum.TYPE_12.getCode().equals(activityDiscountsDto.getActivityType())
|| ActivityTypeEnum.TYPE_32.getCode().equals(activityDiscountsDto.getActivityType()) || ActivityTypeEnum.TYPE_32.getCode().equals(activityDiscountsDto.getActivityType())
|| ActivityTypeEnum.TYPE_37.getCode().equals(activityDiscountsDto.getActivityType())) { || ActivityTypeEnum.TYPE_37.getCode().equals(activityDiscountsDto.getActivityType())
|| ActivityTypeEnum.TYPE_38.getCode().equals(activityDiscountsDto.getActivityType())) {
jsonObject.put("tenderId", activityDiscountsDto.getTenderId()); jsonObject.put("tenderId", activityDiscountsDto.getTenderId());
} else if(ActivityTypeEnum.TYPE_34.getCode().equals(activityDiscountsDto.getActivityType())) { } else if(ActivityTypeEnum.TYPE_34.getCode().equals(activityDiscountsDto.getActivityType())) {
jsonObject.put("customerCode", activityDiscountsDto.getTenderId()); jsonObject.put("customerCode", activityDiscountsDto.getTenderId());
...@@ -317,6 +318,16 @@ public class OrderAdapter { ...@@ -317,6 +318,16 @@ public class OrderAdapter {
.build(); .build();
orderAccountDtos.add(createOrderAccountDto); orderAccountDtos.add(createOrderAccountDto);
} }
if(shoppingCartGoodsDto.getMonthCardDiscount() != null && shoppingCartGoodsDto.getMonthCardDiscount().getDiscountAmount() != 0) {
CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder()
.accountId("")
.name(shoppingCartGoodsDto.getMonthCardDiscount().getDiscountDesc())
.price(shoppingCartGoodsDto.getMonthCardDiscount().getDiscountAmount())
.accountType(QueryOrderAccountType.MONTH_CARD_TOTAL_DISCOUNT)
.sequence(orderAccountIndex++)
.build();
orderAccountDtos.add(createOrderAccountDto);
}
createOrderDto.setAccounts(CollectionUtils.isNotEmpty(orderAccountDtos) ? orderAccountDtos : Collections.emptyList()); createOrderDto.setAccounts(CollectionUtils.isNotEmpty(orderAccountDtos) ? orderAccountDtos : Collections.emptyList());
// update by miaohui 20201030 for 【ID1018638】【C端服务端】活动库存接口调整对接 // update by miaohui 20201030 for 【ID1018638】【C端服务端】活动库存接口调整对接
...@@ -442,7 +453,8 @@ public class OrderAdapter { ...@@ -442,7 +453,8 @@ public class OrderAdapter {
.build(); .build();
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
if(ActivityTypeEnum.TYPE_32.getCode().equals(activityDiscountsDto.getActivityType()) if(ActivityTypeEnum.TYPE_32.getCode().equals(activityDiscountsDto.getActivityType())
|| ActivityTypeEnum.TYPE_37.getCode().equals(activityDiscountsDto.getActivityType())) { || ActivityTypeEnum.TYPE_37.getCode().equals(activityDiscountsDto.getActivityType())
|| ActivityTypeEnum.TYPE_38.getCode().equals(activityDiscountsDto.getActivityType())) {
jsonObject.put("tenderId", activityDiscountsDto.getTenderId()); jsonObject.put("tenderId", activityDiscountsDto.getTenderId());
} }
if(null != activityDiscountsDto.getExtendType()) { if(null != activityDiscountsDto.getExtendType()) {
...@@ -1356,7 +1368,7 @@ public class OrderAdapter { ...@@ -1356,7 +1368,7 @@ public class OrderAdapter {
String customerScorePrompt = null; String customerScorePrompt = null;
if (CollectionUtils.isNotEmpty(ordersBean.getAccountList())) { if (CollectionUtils.isNotEmpty(ordersBean.getAccountList())) {
for (QueryOrdersResponse.DataBean.OrderBean.AccountBean accountBean : ordersBean.getAccountList()) { for (QueryOrdersResponse.DataBean.OrderBean.AccountBean accountBean : ordersBean.getAccountList()) {
if (accountBean.getPrice() < 0) { if (accountBean.getPrice() < 0 && !OldOrderAccountType.MONTH_CARD_TOTAL_DISCOUNT.getCode().equals(accountBean.getType())) {
discountTotalAmount = discountTotalAmount + (0 - accountBean.getPrice()); discountTotalAmount = discountTotalAmount + (0 - accountBean.getPrice());
} }
if (OrderAccountType.BUY_DISCOUNT.getCode().equals(accountBean.getType())) { if (OrderAccountType.BUY_DISCOUNT.getCode().equals(accountBean.getType())) {
...@@ -1394,7 +1406,11 @@ public class OrderAdapter { ...@@ -1394,7 +1406,11 @@ public class OrderAdapter {
customerScorePrompt = decimalFormat.format(customerScoreAmount / 100.0); customerScorePrompt = decimalFormat.format(customerScoreAmount / 100.0);
// customerScorePrompt = "积分抵扣-¥" + customerScoreAmountStr; // customerScorePrompt = "积分抵扣-¥" + customerScoreAmountStr;
} }
if (Integer.valueOf(99).equals(accountBean.getType())) { if (OldOrderAccountType.MONTH_CARD_TOTAL_DISCOUNT.getCode().equals(accountBean.getType())) {
responseVo.setMonthCardTotalDiscount(accountBean.getPrice());
responseVo.setMonthCardTotalDiscountName(accountBean.getName());
}
if (OldOrderAccountType.FREIGHT_COUPON.getCode().equals(accountBean.getType())) {
responseVo.setFreightCouponName(accountBean.getName()); responseVo.setFreightCouponName(accountBean.getName());
} }
} }
...@@ -2175,16 +2191,15 @@ public class OrderAdapter { ...@@ -2175,16 +2191,15 @@ public class OrderAdapter {
discountTotalAmount = discountTotalAmount + productDiscount.getDiscountAmount()*productDiscount.getDiscountQty(); discountTotalAmount = discountTotalAmount + productDiscount.getDiscountAmount()*productDiscount.getDiscountQty();
if (OrderAccountType.PRODUCT_COUPON.getCode().equals(productDiscount.getDiscountType())) { if (OrderAccountType.PRODUCT_COUPON.getCode().equals(productDiscount.getDiscountType())) {
hasProductCoupon = true; hasProductCoupon = true;
productVo.setCouponName(productDiscount.getDiscountDesc()); if(StringUtils.isNotBlank(productDiscount.getExtInfo())) {
// Integer extendType = StringUtils.isBlank(productDiscount.getAddInfo())?null:JSON.parseObject(productDiscount.getAddInfo()).getInteger("extendType"); JSONObject productDiscountExtInfo = JSON.parseObject(productDiscount.getExtInfo());
// if(null != extendType && (3 == extendType || 4 == extendType || 5 == extendType)) { Integer extendType = productDiscountExtInfo.getInteger("extendType");
// productVo.setCouponName(productDiscount.getDiscountDesc()); if(null == extendType || extendType != 12) {
// } else { productVo.setCouponName(productDiscount.getDiscountDesc());
// productVo.setName(productDiscount.getDiscountDesc()); } else {
// productVo.setSpuName(productDiscount.getDiscountDesc()); productVo.setFinalPrice(productVo.getOriginalPrice());
// productVo.setExtras(""); }
// productVo.setSpecification(""); }
// }
} }
if (OrderAccountType.BUYM_SENDN.getCode().equals(productDiscount.getDiscountType())) { if (OrderAccountType.BUYM_SENDN.getCode().equals(productDiscount.getDiscountType())) {
activityType = ActivityTypeEnum.TYPE_61.getCode(); activityType = ActivityTypeEnum.TYPE_61.getCode();
...@@ -2634,6 +2649,9 @@ public class OrderAdapter { ...@@ -2634,6 +2649,9 @@ public class OrderAdapter {
if (ActivityTypeEnum.TYPE_32.getCode().equals(activityType)) { if (ActivityTypeEnum.TYPE_32.getCode().equals(activityType)) {
return OldOrderAccountType.PRODUCT_COUPON; return OldOrderAccountType.PRODUCT_COUPON;
} }
if (ActivityTypeEnum.TYPE_38.getCode().equals(activityType)) {
return OldOrderAccountType.PRODUCT_COUPON;
}
if (ActivityTypeEnum.TYPE_37.getCode().equals(activityType)) { if (ActivityTypeEnum.TYPE_37.getCode().equals(activityType)) {
return OldOrderAccountType.SEED_PRODUCT_COUPON; return OldOrderAccountType.SEED_PRODUCT_COUPON;
} }
...@@ -2687,6 +2705,9 @@ public class OrderAdapter { ...@@ -2687,6 +2705,9 @@ public class OrderAdapter {
if (ActivityTypeEnum.TYPE_230.getCode().equals(activityType)){ if (ActivityTypeEnum.TYPE_230.getCode().equals(activityType)){
return OldOrderAccountType.FULL_BUYM_SENDN; return OldOrderAccountType.FULL_BUYM_SENDN;
} }
if (ActivityTypeEnum.TYPE_231.getCode().equals(activityType)){
return OldOrderAccountType.MONTH_CARD_TOTAL_DISCOUNT;
}
return OldOrderAccountType.BUYM_SENDN; return OldOrderAccountType.BUYM_SENDN;
} }
......
...@@ -107,6 +107,11 @@ public class ShoppingCartGoodsDto { ...@@ -107,6 +107,11 @@ public class ShoppingCartGoodsDto {
*/ */
private Long payCardFee; private Long payCardFee;
/**
* 月享卡总优惠金额
*/
private MonthCardDiscount monthCardDiscount;
@Data @Data
public static class CartGoodsDetailDto { public static class CartGoodsDetailDto {
/** /**
...@@ -356,4 +361,28 @@ public class ShoppingCartGoodsDto { ...@@ -356,4 +361,28 @@ public class ShoppingCartGoodsDto {
private Integer type; private Integer type;
} }
@Data
public static class MonthCardDiscount {
/**
* 月享卡2.0优惠总额
*/
private Long discountAmount;
/**
* 月享卡券号
*/
private String couponCode;
/**
* 券标识
*/
private String couponLogo;
/**
* 优惠标识
*/
private String discountLogo;
/**
* 优惠描述
*/
private String discountDesc;
}
} }
...@@ -114,6 +114,14 @@ public class QueryOrderResponseVo { ...@@ -114,6 +114,14 @@ public class QueryOrderResponseVo {
*/ */
private String freightCouponName; private String freightCouponName;
/** /**
* 月享卡优惠总金额
*/
private Long monthCardTotalDiscount;
/**
* 月享卡优惠总金额
*/
private String monthCardTotalDiscountName;
/**
* 限时折扣优惠金额 * 限时折扣优惠金额
*/ */
private Long discountLimitAmount; private Long discountLimitAmount;
......
...@@ -34,6 +34,7 @@ public enum ActivityTypeEnum { ...@@ -34,6 +34,7 @@ public enum ActivityTypeEnum {
TYPE_34(34, "运费券"), TYPE_34(34, "运费券"),
TYPE_35(35, "买1赠3券"), TYPE_35(35, "买1赠3券"),
TYPE_37(37, "种子券"), TYPE_37(37, "种子券"),
TYPE_38(38, "月享卡2.0"),
TYPE_5(5, "整单满金额折"), TYPE_5(5, "整单满金额折"),
TYPE_51(51, "每满金额折"), TYPE_51(51, "每满金额折"),
TYPE_52(52, "阶梯满金额折"), TYPE_52(52, "阶梯满金额折"),
...@@ -42,6 +43,7 @@ public enum ActivityTypeEnum { ...@@ -42,6 +43,7 @@ public enum ActivityTypeEnum {
TYPE_61(61, "单品买M赠N"), TYPE_61(61, "单品买M赠N"),
TYPE_7(7, "满额赠券"), TYPE_7(7, "满额赠券"),
TYPE_8(8, "满N件换购"), TYPE_8(8, "满N件换购"),
TYPE_231(231, "月享卡总优惠"),
/** /**
* 加价购 * 加价购
*/ */
......
...@@ -80,15 +80,8 @@ import java.util.stream.Collectors; ...@@ -80,15 +80,8 @@ import java.util.stream.Collectors;
public class CheckMCCafeOrder { public class CheckMCCafeOrder {
@Autowired @Autowired
private StoreTableNumberManager storeTableNumberManager;
@Autowired
private AssortmentOpenPlatformIappWxappConfigManager openPlatformIappWxappConfigManager; private AssortmentOpenPlatformIappWxappConfigManager openPlatformIappWxappConfigManager;
@Autowired @Autowired
private AssortmentOpenPlatformPartnerStoreDeliveryConfigManager deliveryConfigManager;
// 缓存取用户数据用
// @Autowired
// private UserServiceImpl userService;
@Autowired
private AssortmentCustomerInfoManager customerInfoManager; private AssortmentCustomerInfoManager customerInfoManager;
//门店SDK //门店SDK
@Autowired @Autowired
...@@ -101,23 +94,15 @@ public class CheckMCCafeOrder { ...@@ -101,23 +94,15 @@ public class CheckMCCafeOrder {
private MemberPropertyService memberPropertyService; private MemberPropertyService memberPropertyService;
@Autowired @Autowired
private ShoppingCartClient shoppingCartClient; private ShoppingCartClient shoppingCartClient;
// @Autowired
// private OrderAdapter orderAdapter;
@Autowired
private StoreServiceImpl storeService;
@Autowired
private StockClient stockClient;
@Autowired
private ItemServiceImpl itemService;
@Autowired @Autowired
private CouponService couponService; private CouponService couponService;
@Autowired @Autowired
private CouponClientService couponClientService; private CouponClientService couponClientService;
@Autowired @Autowired
private DeliveryFeiginMCCafeClient deliveryFeiginMCCafeClient;
@Autowired
private DeliveryServiceFeiginMCCafeClient deliveryServiceFeiginMCCafeClient; private DeliveryServiceFeiginMCCafeClient deliveryServiceFeiginMCCafeClient;
@Value("${mcCafe.withOrderBuy.cardId}")
private String withOrderBuyCardId;
@Value("${mccafe.universal.coupon.code}") @Value("${mccafe.universal.coupon.code}")
private String withOrderBuyCouponCode; private String withOrderBuyCouponCode;
...@@ -563,8 +548,17 @@ public class CheckMCCafeOrder { ...@@ -563,8 +548,17 @@ public class CheckMCCafeOrder {
} }
List<MCCafeCouponVo> mcCafeCouponVos = new ArrayList<>(); List<MCCafeCouponVo> mcCafeCouponVos = new ArrayList<>();
Map<String, String> mcCafeUsedCoupon = new HashMap<>(); Map<String, String> mcCafeUsedCoupon = new HashMap<>();
List<String> seedCardList = shoppingCartGoodsDto.getProducts().stream().filter(o -> ProductTypeEnum.getVirtualProductType().contains(o.getProductType())) List<String> seedCardList = new ArrayList<>();
.map(o -> o.getMonthCardInfo().getCardCode()).collect(Collectors.toList()); shoppingCartGoodsDto.getProducts().stream().filter(o -> ProductTypeEnum.getVirtualProductType().contains(o.getProductType()))
.forEach(o -> {
if(o.getMonthCardInfo() == null) {
ShoppingCartGoodsDto.MonthCardVo monthCardVo = new ShoppingCartGoodsDto.MonthCardVo();
monthCardVo.setCardCode(withOrderBuyCouponCode);
monthCardVo.setCardNo(withOrderBuyCardId);
o.setMonthCardInfo(monthCardVo);
}
seedCardList.add(o.getMonthCardInfo().getCardCode());
});
seedCardList.add(withOrderBuyCouponCode); seedCardList.add(withOrderBuyCouponCode);
if(CollectionUtils.isNotEmpty(shoppingCartGoodsDto.getActivityDiscountsDtos())) { if(CollectionUtils.isNotEmpty(shoppingCartGoodsDto.getActivityDiscountsDtos())) {
shoppingCartGoodsDto.getActivityDiscountsDtos().forEach(o-> { shoppingCartGoodsDto.getActivityDiscountsDtos().forEach(o-> {
......
...@@ -593,8 +593,8 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -593,8 +593,8 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
*/ */
public CreateOrderResponse createOrder(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto, public CreateOrderResponse createOrder(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto,
OrderExtendedReq orderExtendedReq, OrderClientType orderClient,String appId) { OrderExtendedReq orderExtendedReq, OrderClientType orderClient,String appId) {
processRepeatGoodsWithSeedCoupon(shoppingCartGoodsDto); // processRepeatGoodsWithSeedCoupon(shoppingCartGoodsDto);
log.info("购物车拆行:"+JSON.toJSONString(shoppingCartGoodsDto)); // log.info("购物车拆行:"+JSON.toJSONString(shoppingCartGoodsDto));
BaseCreateOrderRequest baseCreateOrderRequest = orderAdapter.convent2CreateOrderDto(createOrderVo, shoppingCartGoodsDto, storeResponseDto); BaseCreateOrderRequest baseCreateOrderRequest = orderAdapter.convent2CreateOrderDto(createOrderVo, shoppingCartGoodsDto, storeResponseDto);
//查询第三方商品编号 //查询第三方商品编号
baseCreateOrderRequest = getProductCustomerCode(baseCreateOrderRequest); baseCreateOrderRequest = getProductCustomerCode(baseCreateOrderRequest);
...@@ -903,7 +903,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -903,7 +903,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
// } // }
//麦咖啡随单购咖啡月卡 //麦咖啡随单购咖啡月卡
if(withOrderBuyCoupon(orderBean, orderExtInfoDto.getThirdPartyMemberId())) { if(withOrderBuyCoupon2(orderBean, orderExtInfoDto.getThirdPartyMemberId())) {
orderBean = getOrderBean(confirmOrderDto); orderBean = getOrderBean(confirmOrderDto);
} }
...@@ -1739,4 +1739,115 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -1739,4 +1739,115 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return true; return true;
} }
/**
* 月享卡2.0发券
* @param orderBean
*/
public boolean withOrderBuyCoupon2(QueryOrdersResponseDto.DataBean.OrderBean orderBean, String thirdPartyMemberId){
LogUtil.info("发券入参:", thirdPartyMemberId, JSON.toJSONString(orderBean));
try{
List<String> cardIds = new ArrayList<>();
List<String> defaultCardCodes = new ArrayList<>();
for (OrderBean.ProductBean productBean : orderBean.getProductList()){
if(ProductTypeEnum.getVirtualProductType().contains(productBean.getProductType())) {
OrderProductAddInfoDto extInfo = JSON.parseObject(productBean.getExtInfo(), OrderProductAddInfoDto.class);
for(int i=0;i<productBean.getNumber();i++) {
cardIds.add(extInfo.getCardId());
}
defaultCardCodes.add(extInfo.getCardCode());
}
}
if(CollectionUtils.isEmpty(cardIds)){
return false;
}
SendCouponForqujiaRequestDto request = new SendCouponForqujiaRequestDto();
request.setReceivedId(orderBean.getOid());
request.setCardIds(cardIds);
request.setThirdPartyMemberId(thirdPartyMemberId);
SendCouponForqujiaDtoResponseDto responseDto = customerExtendClient.sendCouponForqujia(request);
if(!Objects.equals(responseDto.getCode(), ResponseResult.SUCCESS.getCode())){
LogUtil.error("sendCouponForqujia", JSON.toJSONString(request), JSON.toJSONString(responseDto));
return false;
}
if(responseDto.getData() == null || CollectionUtils.isEmpty(responseDto.getData().getCard_list())){
return false;
}
List<SendCouponForqujiaDtoResponseDto.Card> cardList = responseDto.getData().getCard_list();
MCCafeCouponRequest mcCafeCouponRequest = MCCafeCouponRequest.builder()
.ver(88)
.reqtype(CouponReqTypeEnum.BATCH_QUERY.getCode())
.partnerId(Integer.parseInt(orderBean.getCompanyId()))
.store_id(orderBean.getShopId())
.station_id("1")
.operator_id(orderBean.getUserId())
.channel(OrderSource.ALIPAY.getSource().equals(orderBean.getSource())?MCCafeChannelEnum.MOCOFFEE_ZFB.getName():MCCafeChannelEnum.MOCOFFEE_WX.getName())
.couponlist(cardList.stream().map(o -> new MCCafeCouponVo(o.getCard_code())).collect(Collectors.toList()))
.sign("skip")
.build();
McdNetBatchQueryResponse mcdNetBatchQueryResponse = couponClientService.batchQuery(mcCafeCouponRequest);
if (mcdNetBatchQueryResponse == null || !ResponseCodeConstant.RESPONSE_SUCCESS.equals(mcdNetBatchQueryResponse.getStatusCode())
|| CollectionUtils.isEmpty(mcdNetBatchQueryResponse.getCouponlist())) {
LogUtil.error("获取优惠券详情失败,发券失败", mcCafeCouponRequest, mcdNetBatchQueryResponse);
return false;
}
Map<String, Integer> cardStatusMap = mcdNetBatchQueryResponse.getCouponlist().stream()
.collect(Collectors.toMap(McdNetBatchQueryResponse.Coupon::getCode, McdNetBatchQueryResponse.Coupon::getStatusCode, (k1, k2) -> k1));
Map<String, String> cardMap = new HashMap<>();
UpdateCouponCodeReq req = new UpdateCouponCodeReq();
req.setOrderCode(orderBean.getOid());
req.setPartnerId(orderBean.getCompanyId());
req.setCouponReceiveInfoList(new ArrayList<>());
req.setCouponUpdateInfoList(new ArrayList<>());
LogUtil.info("准备开始生成参数:", orderBean, null);
for (QueryOrdersResponseDto.DataBean.OrderBean.ProductBean productBean : orderBean.getProductList()) {
if(ProductTypeEnum.getVirtualProductType().contains(productBean.getProductType())) {
UpdateCouponCodeReq.CouponReceiveInfo couponReceiveInfo = new UpdateCouponCodeReq.CouponReceiveInfo();
couponReceiveInfo.setGoodsId(productBean.getSpecification());
couponReceiveInfo.setProductSeq(productBean.getSequence());
OrderProductAddInfoDto extInfo = JSON.parseObject(productBean.getExtInfo(), OrderProductAddInfoDto.class);
String cardCodeStr = "";
numberFor:
for(int j=0;j<productBean.getNumber();j++) {
cardFor:
for(int i=0;i<cardList.size();i++) {
if(cardList.get(i).getCard_id().equals(extInfo.getCardId())) {
String couponCode = cardList.get(i).getCard_code();
cardCodeStr += couponCode+"/";
if(ResponseCodeConstant.RESPONSE_SUCCESS.equals(cardStatusMap.get(couponCode))) {
if(cardMap.get(extInfo.getCardCode()) == null) {
UpdateCouponCodeReq.CouponUpdateInfo couponUpdateInfo = new UpdateCouponCodeReq.CouponUpdateInfo();
couponUpdateInfo.setOldCouponCode(extInfo.getCardCode());
couponUpdateInfo.setCouponCode(couponCode);
req.getCouponUpdateInfoList().add(couponUpdateInfo);
cardMap.put(extInfo.getCardCode(), couponCode);
}
}
cardList.remove(i);
break cardFor;
}
}
}
couponReceiveInfo.setCouponCode(cardCodeStr.substring(0, cardCodeStr.length()-1));
req.getCouponReceiveInfoList().add(couponReceiveInfo);
}
}
LogUtil.info("生成参数完成:", req, null);
orderSdkService.updateCostCouponCodeNew(req, LogTreadLocal.getTrackingNo());
return true;
} catch (Exception e){
LogUtil.error("发券异常", null, null, e);
}
return true;
}
} }
...@@ -229,6 +229,7 @@ public class InterfaceAddressConstant { ...@@ -229,6 +229,7 @@ public class InterfaceAddressConstant {
* 修改费用表购买的优惠券和优惠表使用的优惠券 * 修改费用表购买的优惠券和优惠表使用的优惠券
*/ */
public static final String UPDATE_COST_COUPONCODE = "/order/v2/mcCafe/updateCostCouponCode"; public static final String UPDATE_COST_COUPONCODE = "/order/v2/mcCafe/updateCostCouponCode";
public static final String UPDATE_COST_COUPONCODE_NEW = "/order/v2/mcCafe/updateCostCouponCodeNew";
/** /**
* 查询使用了优惠券的订单数量 * 查询使用了优惠券的订单数量
......
...@@ -902,6 +902,19 @@ public class OrderSdkService { ...@@ -902,6 +902,19 @@ public class OrderSdkService {
} }
/** /**
* 修改费用表购买的优惠券和优惠表使用的优惠券
* @param request
* @param trackingNo
* @return
*/
public BaseResponse updateCostCouponCodeNew(UpdateCouponCodeReq request, String trackingNo) {
OrderBaseResp responseDTO = RequestThirdPartyUtils.httpJsonReqComplexNew(restTemplate, UPDATE_COST_COUPONCODE_NEW,
createBaseRequest(request, trackingNo), new ParameterizedTypeReference<OrderBaseResp>() {
});
return responseHandle(responseDTO);
}
/**
* 查询使用了特定优惠券的订单数量 * 查询使用了特定优惠券的订单数量
* @param request * @param request
* @param trackingNo * @param trackingNo
......
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