Commit 3079ae4c by 徐康

Merge branch 'feature/20201013_麦咖啡p4v1买3赠1卡_xukang' into develop

# Conflicts:
#	assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
#	assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/OldOrderAccountType.java
#	order-application-service/src/main/java/cn/freemud/enums/ActivityTypeEnum.java
parents 5220e7e0 648b4003
...@@ -488,7 +488,8 @@ public class OrderSdkAdapter { ...@@ -488,7 +488,8 @@ public class OrderSdkAdapter {
if (QueryOrderAccountType.DELIVERY_AMOUNT.equals(accountRequest.getAccountType()) if (QueryOrderAccountType.DELIVERY_AMOUNT.equals(accountRequest.getAccountType())
|| QueryOrderAccountType.PACK_AMOUNT.equals(accountRequest.getAccountType()) || QueryOrderAccountType.PACK_AMOUNT.equals(accountRequest.getAccountType())
|| QueryOrderAccountType.CARD_ORIGINAL_AMOUNT.equals(accountRequest.getAccountType()) || QueryOrderAccountType.CARD_ORIGINAL_AMOUNT.equals(accountRequest.getAccountType())
|| QueryOrderAccountType.MCCAFE_MONTH_CARD.equals(accountRequest.getAccountType())) { || QueryOrderAccountType.WITH_ORDER_BUY_COUPON_FEE.equals(accountRequest.getAccountType())
|| QueryOrderAccountType.WITH_ORDER_BUY3_SEND1_FEE.equals(accountRequest.getAccountType())) {
OrderCostCreateReq orderCostCreateReq = new OrderCostCreateReq(); OrderCostCreateReq orderCostCreateReq = new OrderCostCreateReq();
orderCostCreateReq.setCostName(accountRequest.getName()); orderCostCreateReq.setCostName(accountRequest.getName());
//新订单服务 1=包装费,2=运费,3=餐盒单价,4=餐盒数量 //新订单服务 1=包装费,2=运费,3=餐盒单价,4=餐盒数量
...@@ -500,6 +501,9 @@ public class OrderSdkAdapter { ...@@ -500,6 +501,9 @@ public class OrderSdkAdapter {
//1=订单,2=订单商品,3=售后单 //1=订单,2=订单商品,3=售后单
orderCostCreateReq.setBillType(1); orderCostCreateReq.setBillType(1);
orderCostCreateReq.setProductId(accountRequest.getProductId()); orderCostCreateReq.setProductId(accountRequest.getProductId());
if(StringUtils.isNotBlank(accountRequest.getAddInfo())) {
orderCostCreateReq.setExtInfo(accountRequest.getAddInfo());
}
orderCostCreateReqs.add(orderCostCreateReq); orderCostCreateReqs.add(orderCostCreateReq);
} else { } else {
OrderSettlementCreateReq orderSettlementCreateReq = new OrderSettlementCreateReq(); OrderSettlementCreateReq orderSettlementCreateReq = new OrderSettlementCreateReq();
...@@ -543,9 +547,12 @@ public class OrderSdkAdapter { ...@@ -543,9 +547,12 @@ public class OrderSdkAdapter {
case "CARD_ORIGINAL_AMOUNT": case "CARD_ORIGINAL_AMOUNT":
type = 5; type = 5;
break; break;
case "MCCAFE_MONTH_CARD": case "WITH_ORDER_BUY_COUPON_FEE":
type = 10; type = 10;
break; break;
case "WITH_ORDER_BUY3_SEND1_FEE":
type = 11;
break;
default: default:
break; break;
} }
...@@ -849,6 +856,9 @@ public class OrderSdkAdapter { ...@@ -849,6 +856,9 @@ public class OrderSdkAdapter {
if (orderCostResp.getCostType() == 10) { if (orderCostResp.getCostType() == 10) {
accountBean.setType(OldOrderAccountType.WITH_ORDER_BUY_COUPON_FEE.getCode()); accountBean.setType(OldOrderAccountType.WITH_ORDER_BUY_COUPON_FEE.getCode());
} }
if (orderCostResp.getCostType() == 11) {
accountBean.setType(OldOrderAccountType.WITH_ORDER_BUY3_SEND1_FEE.getCode());
}
accountBean.setAddInfo(""); accountBean.setAddInfo("");
accountList.add(accountBean); accountList.add(accountBean);
} }
...@@ -1367,6 +1377,9 @@ public class OrderSdkAdapter { ...@@ -1367,6 +1377,9 @@ public class OrderSdkAdapter {
case "GATHER_SPOT": case "GATHER_SPOT":
type=221; type=221;
break; break;
case "BUY3_SEND1":
type=35;
break;
default: default:
break; break;
} }
...@@ -1935,6 +1948,9 @@ public class OrderSdkAdapter { ...@@ -1935,6 +1948,9 @@ public class OrderSdkAdapter {
case 10: case 10:
newOrderAccountType = OldOrderAccountType.COUPON.getCode(); newOrderAccountType = OldOrderAccountType.COUPON.getCode();
break; break;
case 35:
newOrderAccountType = OldOrderAccountType.BUY3_SEND1.getCode();
break;
case 118: case 118:
newOrderAccountType = OldOrderAccountType.PRODUCT_COUPON.getCode(); newOrderAccountType = OldOrderAccountType.PRODUCT_COUPON.getCode();
break; break;
...@@ -1967,10 +1983,13 @@ public class OrderSdkAdapter { ...@@ -1967,10 +1983,13 @@ public class OrderSdkAdapter {
break; break;
case 205: case 205:
newOrderAccountType=OldOrderAccountType.TOTAL_DISCOUNT.getCode(); newOrderAccountType=OldOrderAccountType.TOTAL_DISCOUNT.getCode();
break;
case 220: case 220:
newOrderAccountType=OldOrderAccountType.MEMBER_PRICE_DISCOUNT.getCode(); newOrderAccountType=OldOrderAccountType.MEMBER_PRICE_DISCOUNT.getCode();
break;
case 99: case 99:
newOrderAccountType=OldOrderAccountType.FREIGHT_COUPON.getCode(); newOrderAccountType=OldOrderAccountType.FREIGHT_COUPON.getCode();
break;
default: default:
break; break;
} }
......
...@@ -24,12 +24,14 @@ public enum OldOrderAccountType { ...@@ -24,12 +24,14 @@ public enum OldOrderAccountType {
PRODUCT_COUPON(6, "商品券", "PRODUCT_COUPON"), PRODUCT_COUPON(6, "商品券", "PRODUCT_COUPON"),
DISCOUNT_COUPON(7, "折扣券", "DISCOUNT_COUPON"), DISCOUNT_COUPON(7, "折扣券", "DISCOUNT_COUPON"),
DRIVER_FEE(7, "骑手小费", "DRIVER_FEE"), DRIVER_FEE(7, "骑手小费", "DRIVER_FEE"),
FREIGHT_COUPON(99, "运费券", "FREIGHT_COUPON"),
WITH_ORDER_BUY_COUPON_FEE(10, "随单买月卡", "WITH_ORDER_BUY_COUPON_FEE"), WITH_ORDER_BUY_COUPON_FEE(10, "随单买月卡", "WITH_ORDER_BUY_COUPON_FEE"),
WITH_ORDER_BUY3_SEND1_FEE(11, "随单购买三赠一券", "WITH_ORDER_BUY3_SEND1_FEE"),
FREIGHT_COUPON(99, "运费券", "FREIGHT_COUPON"),
DISCOUNT_AMOUNT(21, "限时折扣", "DISCOUNT_AMOUNT"), DISCOUNT_AMOUNT(21, "限时折扣", "DISCOUNT_AMOUNT"),
PREMIUM_EXCHANGE(22, "加价购", "PREMIUM_EXCHANGE"), PREMIUM_EXCHANGE(22, "加价购", "PREMIUM_EXCHANGE"),
SECOND_DISCOUNT(23, "第二件N折", "SECOND_DISCOUNT"), SECOND_DISCOUNT(23, "第二件N折", "SECOND_DISCOUNT"),
BUYM_SENDN(24, "买M赠N", "BUYM_SENDN"), BUYM_SENDN(24, "买M赠N", "BUYM_SENDN"),
BUY3_SEND1(35, "买3赠1券", "BUY3_SEND1"),
SUPER_PURCHASE(47, "超值加购", "SUPER_PURCHASE"), SUPER_PURCHASE(47, "超值加购", "SUPER_PURCHASE"),
CUSTOMER_SCORE(4, "积分兑换", "CUSTOMER_SCORE"), CUSTOMER_SCORE(4, "积分兑换", "CUSTOMER_SCORE"),
WEIXIN(203,"微信优惠","WECHAT_DISCOUNT"), WEIXIN(203,"微信优惠","WECHAT_DISCOUNT"),
......
...@@ -30,6 +30,7 @@ public enum QueryOrderAccountType { ...@@ -30,6 +30,7 @@ public enum QueryOrderAccountType {
SUPER_PURCHASE("SUPER_PURCHASE", "超值加购"), SUPER_PURCHASE("SUPER_PURCHASE", "超值加购"),
SECOND_DISCOUNT("SECOND_DISCOUNT", "第二件N折"), SECOND_DISCOUNT("SECOND_DISCOUNT", "第二件N折"),
BUYM_SENDN("BUYM_SENDN", "买M赠N"), BUYM_SENDN("BUYM_SENDN", "买M赠N"),
BUY3_SEND1("BUY3_SEND1", "买3赠1券"),
CUSTOMER_SCORE("CUSTOMER_SCORE", "积分兑换"), CUSTOMER_SCORE("CUSTOMER_SCORE", "积分兑换"),
CARD_ORIGINAL_AMOUNT("CARD_ORIGINAL_AMOUNT", "会员卡原价"), CARD_ORIGINAL_AMOUNT("CARD_ORIGINAL_AMOUNT", "会员卡原价"),
SET_MEAL("SET_MEAL", "套餐商品优惠"), SET_MEAL("SET_MEAL", "套餐商品优惠"),
...@@ -41,8 +42,8 @@ public enum QueryOrderAccountType { ...@@ -41,8 +42,8 @@ public enum QueryOrderAccountType {
OFFLINE_PAY("OFFLINE_PAY", "线下支付"), OFFLINE_PAY("OFFLINE_PAY", "线下支付"),
GATHER_SPOT("GATHER_SPOT", "集点活动"), GATHER_SPOT("GATHER_SPOT", "集点活动"),
MEMBER_PRICE_DISCOUNT("MEMBER_PRICE_DISCOUNT","会员价优惠"), MEMBER_PRICE_DISCOUNT("MEMBER_PRICE_DISCOUNT","会员价优惠"),
MCCAFE_MONTH_CARD("MCCAFE_MONTH_CARD","麦咖啡月卡"), WITH_ORDER_BUY3_SEND1_FEE("WITH_ORDER_BUY3_SEND1_FEE", "随单购买3赠1券"),
WITH_ORDER_BUY_COUPON_FEE("WITH_ORDER_BUY_COUPON_FEE", "随单月卡"), WITH_ORDER_BUY_COUPON_FEE("WITH_ORDER_BUY_COUPON_FEE", "随单月卡"),
; ;
private String code; private String code;
......
...@@ -659,11 +659,12 @@ public class CouponAdapter { ...@@ -659,11 +659,12 @@ public class CouponAdapter {
public MCCafeCouponRequest convert2MCCafeCouponRequest(QueryOrdersResponseDto.DataBean.OrderBean orderBean, QueryOrdersResponseDto.DataBean.OrderBean.AccountBean accountBean, McdNetBatchQueryResponse.Coupon coupon) { public MCCafeCouponRequest convert2MCCafeCouponRequest(QueryOrdersResponseDto.DataBean.OrderBean orderBean, QueryOrdersResponseDto.DataBean.OrderBean.AccountBean accountBean, McdNetBatchQueryResponse.Coupon coupon) {
List<MCCafeProductRedeemVo> products = new ArrayList<>(); List<MCCafeProductRedeemVo> products = new ArrayList<>();
//商品券核销核销参数 //商品券核销核销参数
if (QueryOrderAccountType.PRODUCT_COUPON.equals(orderAdapter.getQueryOrderAccountType(OldOrderAccountType.getByCode(accountBean.getType())))) { if (QueryOrderAccountType.PRODUCT_COUPON.equals(orderAdapter.getQueryOrderAccountType(OldOrderAccountType.getByCode(accountBean.getType())))
|| QueryOrderAccountType.BUY3_SEND1.equals(orderAdapter.getQueryOrderAccountType(OldOrderAccountType.getByCode(accountBean.getType())))) {
for (int i = 0; i < orderBean.getProductList().size(); i++) { for (int i = 0; i < orderBean.getProductList().size(); i++) {
QueryOrdersResponseDto.DataBean.OrderBean.ProductBean productBean = orderBean.getProductList().get(i); QueryOrdersResponseDto.DataBean.OrderBean.ProductBean productBean = orderBean.getProductList().get(i);
String pid = org.apache.commons.lang3.StringUtils.isNotBlank(productBean.getSpecification()) ? productBean.getSpecification() : productBean.getProductId(); String pid = org.apache.commons.lang3.StringUtils.isNotBlank(productBean.getSpecification()) ? productBean.getSpecification() : productBean.getProductId();
if (!org.springframework.util.CollectionUtils.isEmpty(productBean.getDiscountList())) { if (CollectionUtils.isNotEmpty(productBean.getDiscountList())) {
List<QueryOrdersResponseDto.DataBean.OrderBean.ProductBean.ProductDiscount> discounts = productBean.getDiscountList().stream(). List<QueryOrdersResponseDto.DataBean.OrderBean.ProductBean.ProductDiscount> discounts = productBean.getDiscountList().stream().
filter(productDiscount -> productDiscount.getDiscountId().equals(accountBean.getAccountId())).collect(Collectors.toList()); filter(productDiscount -> productDiscount.getDiscountId().equals(accountBean.getAccountId())).collect(Collectors.toList());
for (QueryOrdersResponseDto.DataBean.OrderBean.ProductBean.ProductDiscount productDiscount : discounts) { for (QueryOrdersResponseDto.DataBean.OrderBean.ProductBean.ProductDiscount productDiscount : discounts) {
...@@ -672,15 +673,8 @@ public class CouponAdapter { ...@@ -672,15 +673,8 @@ public class CouponAdapter {
} }
MCCafeProductRedeemVo mcCafeProductRedeemVo = new MCCafeProductRedeemVo(); MCCafeProductRedeemVo mcCafeProductRedeemVo = new MCCafeProductRedeemVo();
mcCafeProductRedeemVo.setPid(pid); mcCafeProductRedeemVo.setPid(pid);
String extInfo = productDiscount.getAddInfo(); mcCafeProductRedeemVo.setKeyProductCode(productBean.getCustomerCode());
Integer extendType = StringUtils.isBlank(extInfo)?null: JSON.parseObject(extInfo).getInteger("extendType"); mcCafeProductRedeemVo.setCustomer_code(productBean.getCustomerCode());
if(extendType != null && extendType == 4) {
mcCafeProductRedeemVo.setKeyProductCode(JSON.parseObject(extInfo).getString("tenderId"));
mcCafeProductRedeemVo.setCustomer_code(JSON.parseObject(extInfo).getString("tenderId"));
} else {
mcCafeProductRedeemVo.setKeyProductCode(productBean.getCustomerCode());
mcCafeProductRedeemVo.setCustomer_code(productBean.getCustomerCode());
}
mcCafeProductRedeemVo.setConsume_num(productDiscount.getDiscountQty()); mcCafeProductRedeemVo.setConsume_num(productDiscount.getDiscountQty());
mcCafeProductRedeemVo.setSeq(i + 1); mcCafeProductRedeemVo.setSeq(i + 1);
if(null != coupon && CollectionUtils.isNotEmpty(coupon.getCodeInfo().getGroups())) { if(null != coupon && CollectionUtils.isNotEmpty(coupon.getCodeInfo().getGroups())) {
...@@ -740,26 +734,6 @@ public class CouponAdapter { ...@@ -740,26 +734,6 @@ public class CouponAdapter {
return mcCafeCouponRequest; return mcCafeCouponRequest;
} }
public MCCafeCouponLockRequest convert2MCCafeCouponLockRequest(QueryOrdersResponse.DataBean.OrderBean orderBean, CreateOrderAccountRequest accountBean) {
MCCafeCouponLockRequest mcCafeCouponLockRequest = new MCCafeCouponLockRequest();
mcCafeCouponLockRequest.setVer(Integer.valueOf(Version.VERSION_1));
mcCafeCouponLockRequest.setReqType(CouponReqTypeEnum.UNLOCK.getCode());
mcCafeCouponLockRequest.setPartnerId(orderBean.getCompanyId());
mcCafeCouponLockRequest.setStoreId(orderBean.getShopId());
// 订单号
mcCafeCouponLockRequest.setTransId(orderBean.getOid());
mcCafeCouponLockRequest.setCoupon(accountBean.getAccountId());
mcCafeCouponLockRequest.setOfferId(accountBean.getAccountId());
mcCafeCouponLockRequest.setNumber("1");
mcCafeCouponLockRequest.setChannel(OrderSourceType.ALIPAY.getCode().equals(orderBean.getSource())?
MCCafeChannelEnum.MOCOFFEE_ZFB.getName():MCCafeChannelEnum.MOCOFFEE_WX.getName());
mcCafeCouponLockRequest.setOperatorId("-1");
mcCafeCouponLockRequest.setStationId("-1");
mcCafeCouponLockRequest.setSign("skip");
return mcCafeCouponLockRequest;
}
public MCCafeCouponLockRequest convert2MCCafeCouponLockRequest(QueryOrdersResponseDto.DataBean.OrderBean orderBean, QueryOrdersResponseDto.DataBean.OrderBean.AccountBean accountBean) { public MCCafeCouponLockRequest convert2MCCafeCouponLockRequest(QueryOrdersResponseDto.DataBean.OrderBean orderBean, QueryOrdersResponseDto.DataBean.OrderBean.AccountBean accountBean) {
MCCafeCouponLockRequest mcCafeCouponLockRequest = new MCCafeCouponLockRequest(); MCCafeCouponLockRequest mcCafeCouponLockRequest = new MCCafeCouponLockRequest();
mcCafeCouponLockRequest.setVer(Integer.valueOf(Version.VERSION_1)); mcCafeCouponLockRequest.setVer(Integer.valueOf(Version.VERSION_1));
...@@ -770,7 +744,7 @@ public class CouponAdapter { ...@@ -770,7 +744,7 @@ public class CouponAdapter {
mcCafeCouponLockRequest.setTransId(orderBean.getOid()); mcCafeCouponLockRequest.setTransId(orderBean.getOid());
mcCafeCouponLockRequest.setCoupon(accountBean.getAccountId()); mcCafeCouponLockRequest.setCoupon(accountBean.getAccountId());
mcCafeCouponLockRequest.setOfferId(accountBean.getAccountId()); mcCafeCouponLockRequest.setOfferId(accountBean.getAccountId());
mcCafeCouponLockRequest.setNumber("1"); mcCafeCouponLockRequest.setNumber(accountBean.getNumber().toString());
mcCafeCouponLockRequest.setChannel(OrderSourceType.ALIPAY.getCode().equals(orderBean.getSource())? mcCafeCouponLockRequest.setChannel(OrderSourceType.ALIPAY.getCode().equals(orderBean.getSource())?
MCCafeChannelEnum.MOCOFFEE_ZFB.getName():MCCafeChannelEnum.MOCOFFEE_WX.getName()); MCCafeChannelEnum.MOCOFFEE_ZFB.getName():MCCafeChannelEnum.MOCOFFEE_WX.getName());
mcCafeCouponLockRequest.setOperatorId("-1"); mcCafeCouponLockRequest.setOperatorId("-1");
......
...@@ -186,7 +186,7 @@ public class OrderAdapter { ...@@ -186,7 +186,7 @@ public class OrderAdapter {
products.add(createOrderProductDto); products.add(createOrderProductDto);
if (CollectionUtils.isNotEmpty(cartGoodsDetailDto.getActivityDiscountsDtos())) { if (CollectionUtils.isNotEmpty(cartGoodsDetailDto.getActivityDiscountsDtos())) {
if(mcCafePartnerId.equals(createOrderDto.getCompanyId())) { if(mcCafePartnerId.equals(createOrderDto.getCompanyId())) {
createOrderProductDto.setAccounts(getMCCafeAccounts(createOrderProductDto, cartGoodsDetailDto.getActivityDiscountsDtos())); createOrderProductDto.setAccounts(getMCCafeAccounts(createOrderProductDto, cartGoodsDetailDto.getActivityDiscountsDtos(), createOrderVo));
} else { } else {
createOrderProductDto.setAccounts(getAccounts(createOrderProductDto, cartGoodsDetailDto.getActivityDiscountsDtos())); createOrderProductDto.setAccounts(getAccounts(createOrderProductDto, cartGoodsDetailDto.getActivityDiscountsDtos()));
} }
...@@ -214,6 +214,13 @@ public class OrderAdapter { ...@@ -214,6 +214,13 @@ public class OrderAdapter {
if(null != activityDiscountsDto.getExtendType()) { if(null != activityDiscountsDto.getExtendType()) {
jsonObject.put("extendType", activityDiscountsDto.getExtendType()); jsonObject.put("extendType", activityDiscountsDto.getExtendType());
} }
if(ActivityTypeEnum.TYPE_35.getCode().equals(activityDiscountsDto.getActivityType())
&& StringUtils.isNotBlank(createOrderVo.getBuyThreeGiveOneActivityCode())
&& StringUtils.isNotBlank(createOrderVo.getBuyThreeGiveOneCouponCode())
&& createOrderVo.getBuyThreeGiveOneCouponCode().equals(activityDiscountsDto.getActivityCode())) {
jsonObject.put("buyThreeGiveOneActivityCode", createOrderVo.getBuyThreeGiveOneActivityCode());
jsonObject.put("buyThreeGiveOneCouponCode", createOrderVo.getBuyThreeGiveOneCouponCode());
}
createOrderAccountDto.setAddInfo(jsonObject.toJSONString()); createOrderAccountDto.setAddInfo(jsonObject.toJSONString());
} }
orderAccountDtos.add(createOrderAccountDto); orderAccountDtos.add(createOrderAccountDto);
...@@ -274,17 +281,35 @@ public class OrderAdapter { ...@@ -274,17 +281,35 @@ public class OrderAdapter {
.build(); .build();
orderAccountDtos.add(createOrderAccountDto); orderAccountDtos.add(createOrderAccountDto);
} }
if(null != shoppingCartGoodsDto.getPayCardFee() && 0l != shoppingCartGoodsDto.getPayCardFee() && StringUtils.isNotBlank(createOrderVo.getCardKeyCode())) { if(null != shoppingCartGoodsDto.getPayCardFee() && 0l != shoppingCartGoodsDto.getPayCardFee()
&& StringUtils.isNotBlank(createOrderVo.getCardKeyCode())) {
CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder() CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder()
.accountId("") .accountId("")
.name("啡常月享卡") .name("啡常月享卡")
.price(shoppingCartGoodsDto.getPayCardFee()) .price(shoppingCartGoodsDto.getPayCardFee())
.accountType(QueryOrderAccountType.MCCAFE_MONTH_CARD) .accountType(QueryOrderAccountType.WITH_ORDER_BUY_COUPON_FEE)
.sequence(orderAccountIndex++) .sequence(orderAccountIndex++)
.productId(createOrderVo.getCardKeyCode()) .productId(createOrderVo.getCardKeyCode())
.build(); .build();
orderAccountDtos.add(createOrderAccountDto); orderAccountDtos.add(createOrderAccountDto);
} }
if(null != shoppingCartGoodsDto.getBuyThreeGiveOneCouponFee() && 0l != shoppingCartGoodsDto.getBuyThreeGiveOneCouponFee()
&& StringUtils.isNotBlank(createOrderVo.getBuyThreeGiveOneCouponCode()) && StringUtils.isNotBlank(createOrderVo.getBuyThreeGiveOneActivityCode())
&& StringUtils.isNotBlank(createOrderVo.getBuyThreeGiveOneCardKeyCode())) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("buyThreeGiveOneActivityCode", createOrderVo.getBuyThreeGiveOneActivityCode());
jsonObject.put("buyThreeGiveOneCouponCode", createOrderVo.getBuyThreeGiveOneCouponCode());
CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder()
.accountId("")
.name("买三赠一券")
.price(shoppingCartGoodsDto.getBuyThreeGiveOneCouponFee())
.accountType(QueryOrderAccountType.WITH_ORDER_BUY3_SEND1_FEE)
.sequence(orderAccountIndex++)
.productId(createOrderVo.getBuyThreeGiveOneCardKeyCode())
.addInfo(jsonObject.toJSONString())
.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端服务端】活动库存接口调整对接
...@@ -395,7 +420,7 @@ public class OrderAdapter { ...@@ -395,7 +420,7 @@ public class OrderAdapter {
return orderAccountDtos; return orderAccountDtos;
} }
public List<CreateOrderAccountRequest> getMCCafeAccounts(CreateOrderProductRequest createOrderProductDto, List<ActivityDiscountsDto> activityDiscountsDtos) { public List<CreateOrderAccountRequest> getMCCafeAccounts(CreateOrderProductRequest createOrderProductDto, List<ActivityDiscountsDto> activityDiscountsDtos, CreateOrderVo createOrderVo) {
List<CreateOrderAccountRequest> orderAccountDtos = new ArrayList<>(); List<CreateOrderAccountRequest> orderAccountDtos = new ArrayList<>();
for (ActivityDiscountsDto activityDiscountsDto : activityDiscountsDtos) { for (ActivityDiscountsDto activityDiscountsDto : activityDiscountsDtos) {
CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder() CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder()
...@@ -415,6 +440,13 @@ public class OrderAdapter { ...@@ -415,6 +440,13 @@ public class OrderAdapter {
if(null != activityDiscountsDto.getExtendType()) { if(null != activityDiscountsDto.getExtendType()) {
jsonObject.put("extendType", activityDiscountsDto.getExtendType()); jsonObject.put("extendType", activityDiscountsDto.getExtendType());
} }
if(ActivityTypeEnum.TYPE_35.getCode().equals(activityDiscountsDto.getActivityType())
&& StringUtils.isNotBlank(createOrderVo.getBuyThreeGiveOneActivityCode())
&& StringUtils.isNotBlank(createOrderVo.getBuyThreeGiveOneCouponCode())
&& createOrderVo.getBuyThreeGiveOneCouponCode().equals(activityDiscountsDto.getActivityCode())) {
jsonObject.put("buyThreeGiveOneActivityCode", createOrderVo.getBuyThreeGiveOneActivityCode());
jsonObject.put("buyThreeGiveOneCouponCode", createOrderVo.getBuyThreeGiveOneCouponCode());
}
createOrderAccountDto.setAddInfo(jsonObject.toJSONString()); createOrderAccountDto.setAddInfo(jsonObject.toJSONString());
orderAccountDtos.add(createOrderAccountDto); orderAccountDtos.add(createOrderAccountDto);
} }
...@@ -1281,7 +1313,7 @@ public class OrderAdapter { ...@@ -1281,7 +1313,7 @@ public class OrderAdapter {
responseVo.setOrderAccounts(convent2OrderAccountVo(ordersBean.getApportionDetails())); responseVo.setOrderAccounts(convent2OrderAccountVo(ordersBean.getApportionDetails()));
if(CollectionUtils.isNotEmpty(ordersBean.getOrderCostDetailList())) { if(CollectionUtils.isNotEmpty(ordersBean.getOrderCostDetailList())) {
ordersBean.getOrderCostDetailList().forEach(o -> { ordersBean.getOrderCostDetailList().forEach(o -> {
if(o.getCostType() == 10 && o.getBillType() == 1) { if((o.getCostType() == 10 || o.getCostType() == 11) && o.getBillType() == 1) {
ProductVo productVo = new ProductVo(); ProductVo productVo = new ProductVo();
productVo.setQty(1); productVo.setQty(1);
productVo.setName(o.getCostName()); productVo.setName(o.getCostName());
...@@ -2105,22 +2137,19 @@ public class OrderAdapter { ...@@ -2105,22 +2137,19 @@ public class OrderAdapter {
productVo.setExtras(""); productVo.setExtras("");
productVo.setSpecification(""); productVo.setSpecification("");
} }
} } else 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();
} } else if (OrderAccountType.PRODUCT_COUPON.getCode().equals(productDiscount.getDiscountType())) {
if (OrderAccountType.PRODUCT_COUPON.getCode().equals(productDiscount.getDiscountType())) {
activityType = ActivityTypeEnum.TYPE_32.getCode(); activityType = ActivityTypeEnum.TYPE_32.getCode();
couponDiscount = productDiscount.getDiscountAmount(); couponDiscount = productDiscount.getDiscountAmount();
} } else if (OrderAccountType.DISCOUNT_COUPON.getCode().equals(productDiscount.getDiscountType())) {
if (OrderAccountType.DISCOUNT_COUPON.getCode().equals(productDiscount.getDiscountType())) {
couponDiscount = productDiscount.getDiscountAmount(); couponDiscount = productDiscount.getDiscountAmount();
} } else if (OrderAccountType.COUPON.getCode().equals(productDiscount.getDiscountType())) {
if (OrderAccountType.COUPON.getCode().equals(productDiscount.getDiscountType())) {
couponDiscount = productDiscount.getDiscountAmount(); couponDiscount = productDiscount.getDiscountAmount();
} } else if (OrderAccountType.BUY_DISCOUNT.getCode().equals(productDiscount.getDiscountType())) {
if (OrderAccountType.BUY_DISCOUNT.getCode().equals(productDiscount.getDiscountType())) {
fullReduction = productDiscount.getDiscountAmount(); fullReduction = productDiscount.getDiscountAmount();
} else if (OrderAccountType.BUY3_SEND1.getCode().equals(productDiscount.getDiscountType())) {
productVo.setCouponName(productDiscount.getDiscountDesc());
} }
} }
} }
...@@ -2534,6 +2563,9 @@ public class OrderAdapter { ...@@ -2534,6 +2563,9 @@ public class OrderAdapter {
if (ActivityTypeEnum.TYPE_34.getCode().equals(activityType)) { if (ActivityTypeEnum.TYPE_34.getCode().equals(activityType)) {
return OldOrderAccountType.FREIGHT_COUPON; return OldOrderAccountType.FREIGHT_COUPON;
} }
if (ActivityTypeEnum.TYPE_35.getCode().equals(activityType)) {
return OldOrderAccountType.BUY3_SEND1;
}
if (ActivityTypeEnum.TYPE_31.getCode().equals(activityType)) { if (ActivityTypeEnum.TYPE_31.getCode().equals(activityType)) {
return OldOrderAccountType.DISCOUNT_COUPON; return OldOrderAccountType.DISCOUNT_COUPON;
} }
......
...@@ -107,6 +107,12 @@ public class ShoppingCartGoodsDto { ...@@ -107,6 +107,12 @@ public class ShoppingCartGoodsDto {
*/ */
private SendPoint sendPoint; private SendPoint sendPoint;
/**
* 麦咖啡-买三赠一券费用
*/
private Long buyThreeGiveOneCouponFee;
@Data @Data
public static class CartGoodsDetailDto { public static class CartGoodsDetailDto {
/** /**
......
...@@ -215,6 +215,11 @@ public class CreateOrderVo { ...@@ -215,6 +215,11 @@ public class CreateOrderVo {
*/ */
private String cardKeyCode; private String cardKeyCode;
/**
* 随单购啡常月享卡键位
*/
private String buyThreeGiveOneCardKeyCode;
@ApiModelProperty(hidden = true) @ApiModelProperty(hidden = true)
private String sessionKey; // 存储sessionKey,异常补退使用 private String sessionKey; // 存储sessionKey,异常补退使用
@ApiModelProperty(hidden = true) @ApiModelProperty(hidden = true)
...@@ -251,12 +256,36 @@ public class CreateOrderVo { ...@@ -251,12 +256,36 @@ public class CreateOrderVo {
private String monthlyCardCode; private String monthlyCardCode;
/** /**
* 麦咖啡-买三赠一券活动号
*/
private String buyThreeGiveOneActivityCode;
/**
* 麦咖啡-买三赠一券默认券号
*/
private String buyThreeGiveOneCouponCode;
private List<CouponType> couponTypeList;
/**
* 是否使用电子风味卡,如果不为空则为使用 * 是否使用电子风味卡,如果不为空则为使用
*/ */
@Valid @Valid
@ApiModelProperty(value = "电子风味卡") @ApiModelProperty(value = "电子风味卡")
private UnionPayCard unionPayCard; private UnionPayCard unionPayCard;
@Data
public class CouponType {
/**
* 券类型 1:买三赠一券
*/
private Integer type;
/**
* 券code
*/
private String code;
}
/** /**
* 混合支付 * 混合支付
*/ */
......
...@@ -108,6 +108,18 @@ public class ShoppingCartInfoRequestVo { ...@@ -108,6 +108,18 @@ public class ShoppingCartInfoRequestVo {
private String monthlyCardCode; private String monthlyCardCode;
/**
* 麦咖啡-买三赠一券活动号
*/
private String buyThreeGiveOneActivityCode;
/**
* 麦咖啡-买三赠一券默认券号
*/
private String buyThreeGiveOneCouponCode;
private List<CreateOrderVo.CouponType> couponTypeList;
@Data @Data
public final static class SendGoods { public final static class SendGoods {
/** /**
......
...@@ -31,7 +31,7 @@ public enum ActivityTypeEnum { ...@@ -31,7 +31,7 @@ public enum ActivityTypeEnum {
TYPE_31(31, "折扣券"), TYPE_31(31, "折扣券"),
TYPE_32(32, "商品券"), TYPE_32(32, "商品券"),
TYPE_34(34, "运费券"), TYPE_34(34, "运费券"),
TYPE_35(35, "买1赠3券"), TYPE_35(35, "买三赠一券"),
TYPE_5(5, "整单满金额折"), TYPE_5(5, "整单满金额折"),
TYPE_51(51, "每满金额折"), TYPE_51(51, "每满金额折"),
TYPE_52(52, "阶梯满金额折"), TYPE_52(52, "阶梯满金额折"),
......
...@@ -26,7 +26,9 @@ public enum OrderAccountType { ...@@ -26,7 +26,9 @@ public enum OrderAccountType {
BUYM_SENDN(24, "买M赠N"), BUYM_SENDN(24, "买M赠N"),
CUSTOMER_SUB(4, "积分扣减"), CUSTOMER_SUB(4, "积分扣减"),
CARD_ORIGINAL_AMOUNT(25, "会员卡原价"), CARD_ORIGINAL_AMOUNT(25, "会员卡原价"),
CARD_DISCOUNT_AMOUNT(26, "会员卡优惠金额"); CARD_DISCOUNT_AMOUNT(26, "会员卡优惠金额"),
BUY3_SEND1(35, "买三赠1券"),
;
private Integer code; private Integer code;
private String desc; private String desc;
......
...@@ -481,6 +481,9 @@ public class CheckMCCafeOrder { ...@@ -481,6 +481,9 @@ public class CheckMCCafeOrder {
.menuType(createOrderVo.getMenuType()) .menuType(createOrderVo.getMenuType())
.buyMonthlyCard(createOrderVo.getBuyMonthlyCard()) .buyMonthlyCard(createOrderVo.getBuyMonthlyCard())
.monthlyCardCode(createOrderVo.getMonthlyCardCode()) .monthlyCardCode(createOrderVo.getMonthlyCardCode())
.buyThreeGiveOneActivityCode(createOrderVo.getBuyThreeGiveOneActivityCode())
.buyThreeGiveOneCouponCode(createOrderVo.getBuyThreeGiveOneCouponCode())
.couponTypeList(createOrderVo.getCouponTypeList())
.build(); .build();
List<MCCafeCouponVo> couponCodeList = new ArrayList<>(); List<MCCafeCouponVo> couponCodeList = new ArrayList<>();
if("remove".equals(createOrderVo.getCouponCode())) { if("remove".equals(createOrderVo.getCouponCode())) {
...@@ -495,6 +498,9 @@ public class CheckMCCafeOrder { ...@@ -495,6 +498,9 @@ public class CheckMCCafeOrder {
if (StringUtils.isNotBlank(createOrderVo.getFreightCouponCode())) { if (StringUtils.isNotBlank(createOrderVo.getFreightCouponCode())) {
couponCodeList.add(new MCCafeCouponVo(createOrderVo.getFreightCouponCode())); couponCodeList.add(new MCCafeCouponVo(createOrderVo.getFreightCouponCode()));
} }
if (CollectionUtils.isNotEmpty(createOrderVo.getCouponTypeList())) {
createOrderVo.getCouponTypeList().forEach(o -> couponCodeList.add(new MCCafeCouponVo(o.getCode())));
}
if (CollectionUtils.isNotEmpty(couponCodeList)) { if (CollectionUtils.isNotEmpty(couponCodeList)) {
// 校验couponCode // 校验couponCode
MCCafeCouponRequest mcCafeCouponRequest = MCCafeCouponRequest.builder() MCCafeCouponRequest mcCafeCouponRequest = MCCafeCouponRequest.builder()
......
...@@ -91,7 +91,9 @@ import com.freemud.sdk.api.assortment.message.enums.MessageEventType; ...@@ -91,7 +91,9 @@ import com.freemud.sdk.api.assortment.message.enums.MessageEventType;
import com.freemud.sdk.api.assortment.message.request.MessagePushOrderTemplateRequest; import com.freemud.sdk.api.assortment.message.request.MessagePushOrderTemplateRequest;
import com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest; import com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest;
import com.freemud.sdk.api.assortment.message.service.IMessageTemplatePushService; import com.freemud.sdk.api.assortment.message.service.IMessageTemplatePushService;
import com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType;
import com.freemud.sdk.api.assortment.order.enums.OldOrderType; import com.freemud.sdk.api.assortment.order.enums.OldOrderType;
import com.freemud.sdk.api.assortment.order.enums.QueryOrderAccountType;
import com.freemud.sdk.api.assortment.order.request.order.*; import com.freemud.sdk.api.assortment.order.request.order.*;
import com.freemud.sdk.api.assortment.order.response.order.*; import com.freemud.sdk.api.assortment.order.response.order.*;
import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse; import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse;
...@@ -808,6 +810,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -808,6 +810,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
OrderExtInfoDto orderExtInfoDto = null; OrderExtInfoDto orderExtInfoDto = null;
String wxappid = ""; String wxappid = "";
String sessionId = ""; String sessionId = "";
String thirdPartyMemberId = "";
// String openid = ""; // String openid = "";
// String ruleId = ""; // String ruleId = "";
String payCode = ""; String payCode = "";
...@@ -817,6 +820,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -817,6 +820,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
// openid = orderExtInfoDto.getOpenid(); // openid = orderExtInfoDto.getOpenid();
wxappid = orderExtInfoDto.getAppid(); wxappid = orderExtInfoDto.getAppid();
sessionId = orderExtInfoDto.getSessionId(); sessionId = orderExtInfoDto.getSessionId();
thirdPartyMemberId = orderExtInfoDto.getThirdPartyMemberId();
// ruleId = orderExtInfoDto.getRuleId(); // ruleId = orderExtInfoDto.getRuleId();
} }
if (orderExtInfoDto != null && StringUtils.isNotBlank(orderExtInfoDto.getPayCode()) if (orderExtInfoDto != null && StringUtils.isNotBlank(orderExtInfoDto.getPayCode())
...@@ -830,7 +834,10 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -830,7 +834,10 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
// } // }
//麦咖啡随单购咖啡月卡 //麦咖啡随单购咖啡月卡
withOrderBuyCoupon(orderBean,sessionId); withOrderBuyCoupon(orderBean,thirdPartyMemberId);
//麦咖啡随单购买三赠一券
withOrderBuyBuy3Send1Coupon(orderBean,thirdPartyMemberId);
// 如果是到店,则冻结优惠券 // 如果是到店,则冻结优惠券
// 如果是外卖,则核销优惠券 // 如果是外卖,则核销优惠券
...@@ -1403,47 +1410,16 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -1403,47 +1410,16 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
} }
/** /**
* 开通会员卡
*
* @param partnerId 商户号
* @param ruleId 会员规则ID
* @param oid 订单号
* @param userId 用户ID
*/
private void activateMemberCard(String partnerId, String ruleId, String oid, String userId) {
PurchasePaidRequestDto purchasePaidRequestDto = new PurchasePaidRequestDto();
purchasePaidRequestDto.setPartnerId(partnerId);
purchasePaidRequestDto.setOperatorType(0);
purchasePaidRequestDto.setRuleId(ruleId);
purchasePaidRequestDto.setOrderId(oid);
purchasePaidRequestDto.setMemberId(userId);
// 尝试三次开通会员卡,中途成功则跳出
int count = 3;
for (int i = 1; i <= count; i++) {
BaseResponse baseResponse = customerApplicationClient.purchasePaid(purchasePaidRequestDto);
// 不以响应码为判断是否开通会员卡成功的标准
if (baseResponse != null && "SUCCESS".equals(baseResponse.getResult())) {
break;
}
// 尝试开通会员卡失败三次
if (i >= count) {
LogUtil.error("尝试开通会员卡失败" + count + "次", JSON.toJSONString(purchasePaidRequestDto), JSON.toJSONString(baseResponse));
}
}
}
/**
* 随单购月卡调会员发券与更新订单使用的优惠券与买的优惠券 * 随单购月卡调会员发券与更新订单使用的优惠券与买的优惠券
* @param orderBean * @param orderBean
*/ */
private void withOrderBuyCoupon(QueryOrdersResponseDto.DataBean.OrderBean orderBean,String sessionId){ private void withOrderBuyCoupon(QueryOrdersResponseDto.DataBean.OrderBean orderBean, String thirdPartyMemberId){
AssortmentCustomerInfoVo assortmentCustomerInfoVo = customerInfoManager.getCustomerInfoByObject(sessionId);
try{ try{
boolean isWithOrderBuyCoupon = false; boolean isWithOrderBuyCoupon = false;
if(CollectionUtils.isNotEmpty(orderBean.getOrderCostDetailList())){ if(CollectionUtils.isNotEmpty(orderBean.getOrderCostDetailList())){
for (OrderCostResp accountBean : orderBean.getOrderCostDetailList()){ for (OrderCostResp orderCostResp : orderBean.getOrderCostDetailList()){
if(accountBean.getCostType() == 10){ if(orderCostResp.getCostType() == 10){
isWithOrderBuyCoupon = true; isWithOrderBuyCoupon = true;
} }
} }
...@@ -1458,10 +1434,10 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -1458,10 +1434,10 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
SendCouponForqujiaRequestDto request = new SendCouponForqujiaRequestDto(); SendCouponForqujiaRequestDto request = new SendCouponForqujiaRequestDto();
request.setReceivedId(orderBean.getOid()); request.setReceivedId(orderBean.getOid());
request.setCardIds(Arrays.asList(cardId)); request.setCardIds(Arrays.asList(cardId));
request.setThirdPartyMemberId(assortmentCustomerInfoVo.getThirdPartyMemberID()); request.setThirdPartyMemberId(thirdPartyMemberId);
SendCouponForqujiaDtoResponseDto responseDto = customerExtendClient.sendCouponForqujia(request); SendCouponForqujiaDtoResponseDto responseDto = customerExtendClient.sendCouponForqujia(request);
if(!Objects.equals(responseDto.getCode(), ResponseResult.SUCCESS.getCode())){ if(!Objects.equals(responseDto.getCode(), ResponseResult.SUCCESS.getCode())){
LogUtil.error("sendCouponForqujia", JSON.toJSONString(request), JSON.toJSONString(responseDto),null); LogUtil.error("sendCouponForqujia suidangou", JSON.toJSONString(request), JSON.toJSONString(responseDto),null);
return; return;
} }
...@@ -1486,6 +1462,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -1486,6 +1462,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
UpdateCouponCodeReq req = new UpdateCouponCodeReq(); UpdateCouponCodeReq req = new UpdateCouponCodeReq();
req.setCouponCode(buyCouponCode); req.setCouponCode(buyCouponCode);
req.setCostType(OldOrderAccountType.WITH_ORDER_BUY_COUPON_FEE.getCode());
if(useDiscount){ if(useDiscount){
req.setOldCouponCode(notBuyCouponCode); req.setOldCouponCode(notBuyCouponCode);
} }
...@@ -1505,4 +1482,78 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -1505,4 +1482,78 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
} }
} }
/**
* 随单购买三赠一券调会员发券与更新订单使用的优惠券与买的优惠券
* @param orderBean
*/
private void withOrderBuyBuy3Send1Coupon(QueryOrdersResponseDto.DataBean.OrderBean orderBean, String thirdPartyMemberId){
try{
String extInfo = "";
if(CollectionUtils.isNotEmpty(orderBean.getOrderCostDetailList())){
for (OrderCostResp orderCostResp : orderBean.getOrderCostDetailList()){
if(orderCostResp.getCostType() == 11){
extInfo = orderCostResp.getExtInfo();
}
}
}
if(StringUtils.isBlank(extInfo)){
return;
}
JSONObject jsonObject = JSON.parseObject(extInfo);
String buyThreeGiveOneActivityCode = jsonObject.getString("buyThreeGiveOneActivityCode");
SendCouponForqujiaRequestDto request = new SendCouponForqujiaRequestDto();
request.setReceivedId(orderBean.getOid());
request.setCardIds(Arrays.asList(buyThreeGiveOneActivityCode));
request.setThirdPartyMemberId(thirdPartyMemberId);
SendCouponForqujiaDtoResponseDto responseDto = customerExtendClient.sendCouponForqujia(request);
if(!Objects.equals(responseDto.getCode(), ResponseResult.SUCCESS.getCode())){
LogUtil.error("sendCouponForqujia buy3send1", JSON.toJSONString(request), JSON.toJSONString(responseDto),null);
return;
}
if(responseDto.getData() == null || CollectionUtils.isEmpty(responseDto.getData().getCard_list())){
return;
}
String buyCouponCode = responseDto.getData().getCard_list().get(0).getCard_code();
boolean useDiscount = false;
String buyThreeGiveOneCouponCode = jsonObject.getString("buyThreeGiveOneCouponCode");
if(CollectionUtils.isNotEmpty(orderBean.getProductList())){
for (QueryOrdersResponseDto.DataBean.OrderBean.ProductBean productBean : orderBean.getProductList()){
if(CollectionUtils.isNotEmpty(productBean.getDiscountList())){
for (QueryOrdersResponseDto.DataBean.OrderBean.ProductBean.ProductDiscount discount : productBean.getDiscountList()){
if(buyThreeGiveOneCouponCode.equals(discount.getDiscountId())){
discount.setDiscountId(buyCouponCode);
useDiscount = true;
}
}
}
}
}
UpdateCouponCodeReq req = new UpdateCouponCodeReq();
req.setCouponCode(buyCouponCode);
req.setCostType(OldOrderAccountType.WITH_ORDER_BUY3_SEND1_FEE.getCode());
if(useDiscount){
req.setOldCouponCode(buyThreeGiveOneCouponCode);
}
req.setOrderCode(orderBean.getOid());
orderSdkService.updateCostCouponCode(req,LogTreadLocal.getTrackingNo());
List<OrderBean.AccountBean> accountList = orderBean.getAccountList().stream().filter(
account -> (withOrderBuyCouponCode.equals(account.getAccountId()))
).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(accountList)) {
accountList.forEach(o -> o.setAccountId(buyCouponCode));
}
} catch (Exception e){
LogUtil.error("买券异常", null, null, e);
}
}
} }
...@@ -74,8 +74,9 @@ public class CouponClientServiceImpl implements CouponClientService { ...@@ -74,8 +74,9 @@ public class CouponClientServiceImpl implements CouponClientService {
account -> (orderAdapter.getQueryOrderAccountType(OldOrderAccountType.getByCode(account.getType())).equals(QueryOrderAccountType.COUPON) account -> (orderAdapter.getQueryOrderAccountType(OldOrderAccountType.getByCode(account.getType())).equals(QueryOrderAccountType.COUPON)
|| orderAdapter.getQueryOrderAccountType(OldOrderAccountType.getByCode(account.getType())).equals(QueryOrderAccountType.PRODUCT_COUPON) || orderAdapter.getQueryOrderAccountType(OldOrderAccountType.getByCode(account.getType())).equals(QueryOrderAccountType.PRODUCT_COUPON)
|| orderAdapter.getQueryOrderAccountType(OldOrderAccountType.getByCode(account.getType())).equals(QueryOrderAccountType.DISCOUNT_COUPON) || orderAdapter.getQueryOrderAccountType(OldOrderAccountType.getByCode(account.getType())).equals(QueryOrderAccountType.DISCOUNT_COUPON)
|| orderAdapter.getQueryOrderAccountType(OldOrderAccountType.getByCode(account.getType())).equals(QueryOrderAccountType.FREIGHT_COUPON)) || orderAdapter.getQueryOrderAccountType(OldOrderAccountType.getByCode(account.getType())).equals(QueryOrderAccountType.FREIGHT_COUPON)
).collect(Collectors.toList()); || orderAdapter.getQueryOrderAccountType(OldOrderAccountType.getByCode(account.getType())).equals(QueryOrderAccountType.BUY3_SEND1)
)).collect(Collectors.toList());
if (CollectionUtils.isEmpty(accountList)) { if (CollectionUtils.isEmpty(accountList)) {
return null; return null;
} }
...@@ -146,7 +147,8 @@ public class CouponClientServiceImpl implements CouponClientService { ...@@ -146,7 +147,8 @@ public class CouponClientServiceImpl implements CouponClientService {
account -> (OldOrderAccountType.PRODUCT_COUPON.equals(OldOrderAccountType.getByCode(account.getType())) account -> (OldOrderAccountType.PRODUCT_COUPON.equals(OldOrderAccountType.getByCode(account.getType()))
|| OldOrderAccountType.COUPON.equals(OldOrderAccountType.getByCode(account.getType())) || OldOrderAccountType.COUPON.equals(OldOrderAccountType.getByCode(account.getType()))
|| OldOrderAccountType.DISCOUNT_COUPON.equals(OldOrderAccountType.getByCode(account.getType())) || OldOrderAccountType.DISCOUNT_COUPON.equals(OldOrderAccountType.getByCode(account.getType()))
) && account.getPrice() != 0l).collect(Collectors.toList()); || OldOrderAccountType.BUY3_SEND1.equals(OldOrderAccountType.getByCode(account.getType()))
)).collect(Collectors.toList());
if (CollectionUtils.isEmpty(accountList)) { if (CollectionUtils.isEmpty(accountList)) {
return null; return null;
} }
......
...@@ -91,15 +91,8 @@ public class McCafeCouponAdapter { ...@@ -91,15 +91,8 @@ public class McCafeCouponAdapter {
} }
MCCafeProductRedeemVo mcCafeProductRedeemVo = new MCCafeProductRedeemVo(); MCCafeProductRedeemVo mcCafeProductRedeemVo = new MCCafeProductRedeemVo();
mcCafeProductRedeemVo.setPid(pid); mcCafeProductRedeemVo.setPid(pid);
String extInfo = productDiscount.getAddInfo(); mcCafeProductRedeemVo.setKeyProductCode(productBean.getCustomerCode());
Integer extendType = StringUtils.isBlank(extInfo)?null: JSON.parseObject(extInfo).getInteger("extendType"); mcCafeProductRedeemVo.setCustomer_code(productBean.getCustomerCode());
if(extendType != null && extendType == 4) {
mcCafeProductRedeemVo.setKeyProductCode(JSON.parseObject(extInfo).getString("tenderId"));
mcCafeProductRedeemVo.setCustomer_code(JSON.parseObject(extInfo).getString("tenderId"));
} else {
mcCafeProductRedeemVo.setKeyProductCode(productBean.getCustomerCode());
mcCafeProductRedeemVo.setCustomer_code(productBean.getCustomerCode());
}
mcCafeProductRedeemVo.setConsume_num(productDiscount.getDiscountQty()); mcCafeProductRedeemVo.setConsume_num(productDiscount.getDiscountQty());
mcCafeProductRedeemVo.setSeq(i + 1); mcCafeProductRedeemVo.setSeq(i + 1);
if(null != coupon && CollectionUtils.isNotEmpty(coupon.getCodeInfo().getGroups())) { if(null != coupon && CollectionUtils.isNotEmpty(coupon.getCodeInfo().getGroups())) {
......
...@@ -25,4 +25,6 @@ public class UpdateCouponCodeReq { ...@@ -25,4 +25,6 @@ public class UpdateCouponCodeReq {
//配置券号 //配置券号
private String oldCouponCode; private String oldCouponCode;
private Integer costType;
} }
...@@ -41,4 +41,6 @@ public class OrderCostCreateReq { ...@@ -41,4 +41,6 @@ public class OrderCostCreateReq {
private Long actualCostAmount; private Long actualCostAmount;
private String extInfo;
} }
...@@ -45,4 +45,6 @@ public class OrderCostResp { ...@@ -45,4 +45,6 @@ public class OrderCostResp {
//备注 //备注
private String note; private String note;
private String extInfo;
} }
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