Commit 38d42395 by 徐康

创单校验和多个券冻结核销

parent 4198f4d3
...@@ -88,7 +88,7 @@ ...@@ -88,7 +88,7 @@
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<artifactId>storecenter-sdk</artifactId> <artifactId>storecenter-sdk</artifactId>
<version>3.1.1.RELEASE</version> <version>3.2.1-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
......
...@@ -30,6 +30,7 @@ import cn.freemud.enums.*; ...@@ -30,6 +30,7 @@ import cn.freemud.enums.*;
import cn.freemud.utils.BeanUtil; import cn.freemud.utils.BeanUtil;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType; import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.card.sdk.vo.coupon.request.MemberAddCouponVo; import com.freemud.card.sdk.vo.coupon.request.MemberAddCouponVo;
import com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType;
import com.freemud.sdk.api.assortment.order.enums.QueryOrderAccountType; import com.freemud.sdk.api.assortment.order.enums.QueryOrderAccountType;
import com.freemud.sdk.api.assortment.order.request.order.CreateOrderAccountRequest; import com.freemud.sdk.api.assortment.order.request.order.CreateOrderAccountRequest;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse; import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
...@@ -37,6 +38,7 @@ import com.google.common.collect.Lists; ...@@ -37,6 +38,7 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -47,6 +49,9 @@ import java.util.stream.Collectors; ...@@ -47,6 +49,9 @@ import java.util.stream.Collectors;
@Component @Component
public class CouponAdapter { public class CouponAdapter {
@Autowired
private OrderAdapter orderAdapter;
public CouponListDto convert2CouponListDto(String userId, String partnerId) { public CouponListDto convert2CouponListDto(String userId, String partnerId) {
CouponListDto couponListDto = new CouponListDto(); CouponListDto couponListDto = new CouponListDto();
couponListDto.setPartnerCode(partnerId); couponListDto.setPartnerCode(partnerId);
...@@ -614,6 +619,58 @@ public class CouponAdapter { ...@@ -614,6 +619,58 @@ public class CouponAdapter {
return mcCafeCouponRequest; return mcCafeCouponRequest;
} }
public MCCafeCouponRequest convert2MCCafeCouponRequest(QueryOrdersResponseDto.DataBean.OrderBean orderBean, QueryOrdersResponseDto.DataBean.OrderBean.AccountBean accountBean) {
List<MCCafeProductRedeemVo> products = new ArrayList<>();
//商品券核销核销参数
if (QueryOrderAccountType.PRODUCT_COUPON.equals(orderAdapter.getQueryOrderAccountType(OldOrderAccountType.getByCode(accountBean.getType())))) {
for (int i = 0; i < orderBean.getProductList().size(); i++) {
QueryOrdersResponseDto.DataBean.OrderBean.ProductBean productBean = orderBean.getProductList().get(i);
String pid = org.apache.commons.lang3.StringUtils.isNotBlank(productBean.getSpecification()) ? productBean.getSpecification() : productBean.getProductId();
if (!org.springframework.util.CollectionUtils.isEmpty(productBean.getDiscountList())) {
List<QueryOrdersResponseDto.DataBean.OrderBean.ProductBean.ProductDiscount> discounts = productBean.getDiscountList().stream().
filter(productDiscount -> productDiscount.getDiscountId().equals(accountBean.getAccountId())).collect(Collectors.toList());
for (QueryOrdersResponseDto.DataBean.OrderBean.ProductBean.ProductDiscount productDiscount : discounts) {
if (productDiscount.getDiscountType() == null || productDiscount.getDiscountType() == 0) {
continue;
}
MCCafeProductRedeemVo mcCafeProductRedeemVo = new MCCafeProductRedeemVo();
mcCafeProductRedeemVo.setPid(pid);
mcCafeProductRedeemVo.setKeyProductCode(productBean.getCustomerCode());
mcCafeProductRedeemVo.setCustomer_code(productBean.getCustomerCode());
mcCafeProductRedeemVo.setConsume_num(productDiscount.getDiscountQty());
mcCafeProductRedeemVo.setSeq(i + 1);
products.add(mcCafeProductRedeemVo);
}
}
}
}
MCCafeCouponRequest mcCafeCouponRequest = new MCCafeCouponRequest();
mcCafeCouponRequest.setVer(Integer.valueOf(Version.VERSION_1));
mcCafeCouponRequest.setReqtype(CouponReqTypeEnum.REDEEM.getCode());
mcCafeCouponRequest.setPartnerId(Integer.parseInt(orderBean.getCompanyId()));
mcCafeCouponRequest.setStore_id(orderBean.getShopId());
mcCafeCouponRequest.setStation_id("-1");
mcCafeCouponRequest.setOperator_id("-1");
// 订单号
mcCafeCouponRequest.setTrans_id(orderBean.getOid());
mcCafeCouponRequest.setChannel(OrderSourceType.ALIPAY.getCode().equals(orderBean.getSource())?
MCCafeChannelEnum.MOCOFFEE_ZFB.getName():MCCafeChannelEnum.MOCOFFEE_WX.getName());
List<MCCafeTransactionVo> transactions = new ArrayList<>();
MCCafeTransactionVo mcCafeTransactionVo = new MCCafeTransactionVo();
mcCafeTransactionVo.setCode(accountBean.getAccountId());
mcCafeTransactionVo.setTotalAmount(-accountBean.getPrice());
if (CollectionUtils.isNotEmpty(products)) {
mcCafeTransactionVo.setProducts(products);
}
transactions.add(mcCafeTransactionVo);
mcCafeCouponRequest.setTransactions(transactions);
mcCafeCouponRequest.setSign("skip");
mcCafeCouponRequest.setAppFlag("kgd.N");
mcCafeCouponRequest.setBusiness_date(cn.freemud.base.util.DateUtil.convert2Str(new Date(), cn.freemud.base.util.DateUtil.FORMAT_yyyyMMdd));
return mcCafeCouponRequest;
}
public MCCafeCouponLockRequest convert2MCCafeCouponLockRequest(QueryOrdersResponse.DataBean.OrderBean orderBean, CreateOrderAccountRequest accountBean) { public MCCafeCouponLockRequest convert2MCCafeCouponLockRequest(QueryOrdersResponse.DataBean.OrderBean orderBean, CreateOrderAccountRequest accountBean) {
MCCafeCouponLockRequest mcCafeCouponLockRequest = new MCCafeCouponLockRequest(); MCCafeCouponLockRequest mcCafeCouponLockRequest = new MCCafeCouponLockRequest();
mcCafeCouponLockRequest.setVer(Integer.valueOf(Version.VERSION_1)); mcCafeCouponLockRequest.setVer(Integer.valueOf(Version.VERSION_1));
...@@ -633,4 +690,24 @@ public class CouponAdapter { ...@@ -633,4 +690,24 @@ public class CouponAdapter {
return mcCafeCouponLockRequest; return mcCafeCouponLockRequest;
} }
public MCCafeCouponLockRequest convert2MCCafeCouponLockRequest(QueryOrdersResponseDto.DataBean.OrderBean orderBean, QueryOrdersResponseDto.DataBean.OrderBean.AccountBean 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;
}
} }
...@@ -63,6 +63,7 @@ public enum ResponseResult { ...@@ -63,6 +63,7 @@ public enum ResponseResult {
STORE_DISCONTENT_DELIVERY_CUP("43016", "不满足起送杯数"), STORE_DISCONTENT_DELIVERY_CUP("43016", "不满足起送杯数"),
STORE_CLOSED_FOREVER("43017", "门店已关闭,请选择其他门店"), STORE_CLOSED_FOREVER("43017", "门店已关闭,请选择其他门店"),
STORE_CLOSED_THE_NIGHT("43018", "门店已打烊,请选择其他门店"), STORE_CLOSED_THE_NIGHT("43018", "门店已打烊,请选择其他门店"),
STORE_DELIVERY_HOUR_ERROR("43019", "门店外卖时间错误"),
/** /**
* 购物车状态码 * 购物车状态码
...@@ -147,6 +148,9 @@ public enum ResponseResult { ...@@ -147,6 +148,9 @@ public enum ResponseResult {
ORDER_OWNER_ERROR("45059","订单归属错误"), ORDER_OWNER_ERROR("45059","订单归属错误"),
ORDER_STATUS_PRE_PAYMENT_NOT_SUPPORT("45060", "订单非待支付状态, 创建预支付失败"), ORDER_STATUS_PRE_PAYMENT_NOT_SUPPORT("45060", "订单非待支付状态, 创建预支付失败"),
ORDER_TAKEMEALTIME_INVALID("45061", "你的隔日预约时间有误,请重新刷新后选择!"), ORDER_TAKEMEALTIME_INVALID("45061", "你的隔日预约时间有误,请重新刷新后选择!"),
ORDER_TAKE_MEAL_TIME_ERROR("450062", "你的到店取餐时间异常,请重新选择!"),
ORDER_MEALTIME_MISSING("450063", "你的取餐方式或取餐时间异常,请重新选择!"),
ORDER_TAKE_OUT_TIME_ERROR("450062", "你的外卖送达时间异常,请重新选择!"),
/** /**
* 支付 * 支付
......
...@@ -239,10 +239,6 @@ public class OrderAdapterServiceImpl implements OrderAdapterService { ...@@ -239,10 +239,6 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())){ if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())){
return orderAdapter.sendPaySuccessNoticeMessage(); return orderAdapter.sendPaySuccessNoticeMessage();
} }
//买券虚拟订单
if(orderBean.getBizType() == 6) {
return sellCouponOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
}
/** /**
* 默认点餐处理 * 默认点餐处理
*/ */
......
package cn.freemud.service.mccafe; package cn.freemud.service.mccafe;
import cn.freemud.entities.dto.QueryOrdersResponseDto;
import com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse; import com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse;
import com.freemud.application.sdk.api.couponcenter.offline.response.CouponQueryResponse; import com.freemud.application.sdk.api.couponcenter.offline.response.CouponQueryResponse;
import com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse; import com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse;
...@@ -18,6 +19,8 @@ public interface CouponClientService { ...@@ -18,6 +19,8 @@ public interface CouponClientService {
CouponRedeemResponse redeemBatch(QueryOrdersResponse.DataBean.OrderBean orderBean, List<CreateOrderAccountRequest> accounts); CouponRedeemResponse redeemBatch(QueryOrdersResponse.DataBean.OrderBean orderBean, List<CreateOrderAccountRequest> accounts);
List<CouponRedeemResponse> redeemBatch(QueryOrdersResponseDto.DataBean.OrderBean orderBean);
CouponRedeemResponse cancelRedeem(QueryOrdersResponse.DataBean.OrderBean orderBean, List<CreateOrderAccountRequest> accounts); CouponRedeemResponse cancelRedeem(QueryOrdersResponse.DataBean.OrderBean orderBean, List<CreateOrderAccountRequest> accounts);
CouponQueryResponse query(MCCafeCouponRequest mcCafeCouponRequest); CouponQueryResponse query(MCCafeCouponRequest mcCafeCouponRequest);
...@@ -28,5 +31,7 @@ public interface CouponClientService { ...@@ -28,5 +31,7 @@ public interface CouponClientService {
CouponBaseResponse lockBatch(QueryOrdersResponse.DataBean.OrderBean orderBean, List<CreateOrderAccountRequest> accounts); CouponBaseResponse lockBatch(QueryOrdersResponse.DataBean.OrderBean orderBean, List<CreateOrderAccountRequest> accounts);
List<CouponBaseResponse> lockBatch(QueryOrdersResponseDto.DataBean.OrderBean orderBean);
CouponBaseResponse unlock(MCCafeCouponLockRequest mcCafeCouponLockRequest); CouponBaseResponse unlock(MCCafeCouponLockRequest mcCafeCouponLockRequest);
} }
...@@ -14,10 +14,5 @@ public interface MCCafeOrderCenterSdkService { ...@@ -14,10 +14,5 @@ public interface MCCafeOrderCenterSdkService {
*/ */
CreateOrderResponse createMCCafeOrderFlow(CreateOrderRequest createOrderRequest); CreateOrderResponse createMCCafeOrderFlow(CreateOrderRequest createOrderRequest);
/**
* 创建麦咖啡父子订单
*/
CreateFatherSonOrderResponse createMCCafeFatherSonOrder(CreateFatherSonOrderRequest createFatherSonOrderRequest);
} }
package cn.freemud.service.mccafe.impl; package cn.freemud.service.mccafe.impl;
import cn.freemud.adapter.CouponAdapter; import cn.freemud.adapter.CouponAdapter;
import cn.freemud.adapter.OrderAdapter;
import cn.freemud.base.constant.Version; import cn.freemud.base.constant.Version;
import cn.freemud.constant.ResponseCodeConstant; import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.dto.QueryOrdersResponseDto;
import cn.freemud.entities.dto.coupon.MCCafeCouponRequest; import cn.freemud.entities.dto.coupon.MCCafeCouponRequest;
import cn.freemud.entities.dto.coupon.MCCafeCouponLockRequest; import cn.freemud.entities.dto.coupon.MCCafeCouponLockRequest;
import cn.freemud.entities.dto.coupon.MCCafeProductRedeemVo; import cn.freemud.entities.dto.coupon.MCCafeProductRedeemVo;
import cn.freemud.entities.dto.coupon.MCCafeTransactionVo; import cn.freemud.entities.dto.coupon.MCCafeTransactionVo;
import cn.freemud.enums.CouponReqTypeEnum; import cn.freemud.enums.CouponReqTypeEnum;
import cn.freemud.enums.MCCafeChannelEnum; import cn.freemud.enums.MCCafeChannelEnum;
import cn.freemud.enums.OrderAccountType;
import cn.freemud.service.mccafe.CouponClientService; import cn.freemud.service.mccafe.CouponClientService;
import cn.freemud.service.mccafe.thirdparty.CouponOfflineMCCafeClient; import cn.freemud.service.mccafe.thirdparty.CouponOfflineMCCafeClient;
import com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse; import com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse;
...@@ -36,6 +39,9 @@ public class CouponClientServiceImpl implements CouponClientService { ...@@ -36,6 +39,9 @@ public class CouponClientServiceImpl implements CouponClientService {
@Autowired @Autowired
private CouponAdapter couponAdapter; private CouponAdapter couponAdapter;
@Autowired
private OrderAdapter orderAdapter;
@Override @Override
public CouponRedeemResponse redeem(QueryOrdersResponse.DataBean.OrderBean orderBean, List<CreateOrderAccountRequest> accounts) { public CouponRedeemResponse redeem(QueryOrdersResponse.DataBean.OrderBean orderBean, List<CreateOrderAccountRequest> accounts) {
if (null == orderBean || CollectionUtils.isEmpty(accounts)) { if (null == orderBean || CollectionUtils.isEmpty(accounts)) {
...@@ -118,20 +124,56 @@ public class CouponClientServiceImpl implements CouponClientService { ...@@ -118,20 +124,56 @@ public class CouponClientServiceImpl implements CouponClientService {
return null; return null;
} }
List<MCCafeCouponRequest> list =
accountList.stream().map(accountBean -> couponAdapter.convert2MCCafeCouponRequest(orderBean, accountBean)).collect(Collectors.toList());
CouponRedeemResponse couponRedeemResponse = new CouponRedeemResponse(); CouponRedeemResponse couponRedeemResponse = new CouponRedeemResponse();
List<MCCafeCouponRequest> list = new ArrayList<>(); redeem:
for (MCCafeCouponRequest request : list) {
retry:
for(int i=0;i<3;i++) {
couponRedeemResponse = redeem(request);
if(ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(couponRedeemResponse.getStatusCode())) {
continue redeem;
}
}
}
return couponRedeemResponse;
}
@Override
public List<CouponRedeemResponse> redeemBatch(QueryOrdersResponseDto.DataBean.OrderBean orderBean) {
if (null == orderBean || CollectionUtils.isEmpty(orderBean.getAccountList())) {
return null;
}
List<QueryOrdersResponseDto.DataBean.OrderBean.AccountBean> accountList = orderBean.getAccountList().stream().filter(
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.DISCOUNT_COUPON))
&& account.getPrice() != 0l).collect(Collectors.toList());
if (CollectionUtils.isEmpty(accountList)) {
return null;
}
accountList.forEach(accountBean -> list.add(couponAdapter.convert2MCCafeCouponRequest(orderBean, accountBean))); List<MCCafeCouponRequest> list =
accountList.stream().map(accountBean -> couponAdapter.convert2MCCafeCouponRequest(orderBean, accountBean)).collect(Collectors.toList());
List<CouponRedeemResponse> couponRedeemResponseList = new ArrayList<>();
redeem:
for (MCCafeCouponRequest request : list) { for (MCCafeCouponRequest request : list) {
CouponRedeemResponse redeemResponse = redeem(request); CouponRedeemResponse couponRedeemResponse = null;
if(!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(redeemResponse.getStatusCode())) { retry:
BeanUtils.copyProperties(redeemResponse, couponRedeemResponse); for(int i=0;i<3;i++) {
break; couponRedeemResponse = redeem(request);
if(ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(couponRedeemResponse.getStatusCode())) {
continue redeem;
} }
} }
couponRedeemResponseList.add(couponRedeemResponse);
}
return couponRedeemResponse; return couponRedeemResponseList;
} }
@Override @Override
...@@ -195,20 +237,55 @@ public class CouponClientServiceImpl implements CouponClientService { ...@@ -195,20 +237,55 @@ public class CouponClientServiceImpl implements CouponClientService {
return null; return null;
} }
CouponBaseResponse couponBaseResponse = new CouponBaseResponse(); List<MCCafeCouponLockRequest> list =
List<MCCafeCouponLockRequest> list = new ArrayList<>(); accountList.stream().map(accountBean -> couponAdapter.convert2MCCafeCouponLockRequest(orderBean, accountBean)).collect(Collectors.toList());
accountList.forEach(accountBean -> list.add(couponAdapter.convert2MCCafeCouponLockRequest(orderBean, accountBean))); CouponBaseResponse baseResponse = new CouponBaseResponse();
lock:
for (MCCafeCouponLockRequest request : list) {
retry:
for(int i=0;i<3;i++) {
baseResponse = lock(request);
if(ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(baseResponse.getStatusCode())) {
continue lock;
}
}
}
return baseResponse;
}
@Override
public List<CouponBaseResponse> lockBatch(QueryOrdersResponseDto.DataBean.OrderBean orderBean) {
if (null == orderBean || CollectionUtils.isEmpty(orderBean.getAccountList())) {
return null;
}
List<QueryOrdersResponseDto.DataBean.OrderBean.AccountBean> accountList = orderBean.getAccountList().stream().filter(
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.DISCOUNT_COUPON)) && account.getPrice() != 0l).collect(Collectors.toList());
if (CollectionUtils.isEmpty(accountList)) {
return null;
}
List<MCCafeCouponLockRequest> list =
accountList.stream().map(accountBean -> couponAdapter.convert2MCCafeCouponLockRequest(orderBean, accountBean)).collect(Collectors.toList());
List<CouponBaseResponse> baseResponseList = new ArrayList<>();
lock:
for (MCCafeCouponLockRequest request : list) { for (MCCafeCouponLockRequest request : list) {
CouponBaseResponse baseResponse = lock(request); CouponBaseResponse baseResponse = null;
if(!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(baseResponse.getStatusCode())) { retry:
BeanUtils.copyProperties(baseResponse, couponBaseResponse); for(int i=0;i<3;i++) {
break; baseResponse = lock(request);
if(ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(baseResponse.getStatusCode())) {
continue lock;
}
} }
baseResponseList.add(baseResponse);
} }
return couponBaseResponse; return baseResponseList;
} }
@Override @Override
......
...@@ -119,27 +119,6 @@ public class MCCafeOrderCenterSdkServiceImpl implements MCCafeOrderCenterSdkServ ...@@ -119,27 +119,6 @@ public class MCCafeOrderCenterSdkServiceImpl implements MCCafeOrderCenterSdkServ
return createOrderResponse; return createOrderResponse;
} }
@Override
public CreateFatherSonOrderResponse createMCCafeFatherSonOrder(CreateFatherSonOrderRequest createFatherSonOrderRequest) {
CreateFatherSonOrderReq request = orderSdkAdapter.convent2NEWCreateFatherSonOrderRequest(createFatherSonOrderRequest);
com.freemud.application.sdk.api.ordercenter.response.BaseResponse<List<OrderInfoReqs>> baseResponse = orderSdkService.createFatherSonOrder(request, createFatherSonOrderRequest.getTrackingNo());
if (!RESPONSE_SUCCESS_STR.equals(baseResponse.getCode()) || baseResponse.getResult() == null) {
return CreateFatherSonOrderResponse.error(baseResponse.getCode(), baseResponse.getMessage());
}
CreateFatherSonOrderResponse createFatherSonOrderResponse = orderSdkAdapter.convent2NEWFatherOrderInfoReqs(baseResponse);
List<QueryOrdersResponse.DataBean.OrderBean> productOrderInfo = createFatherSonOrderResponse.getOrderBeanList().stream().filter(orderBeanTemp -> 1 == orderBeanTemp.getBizType()).collect(Collectors.toList());
if (CollectionUtils.isEmpty(productOrderInfo)) {
return CreateFatherSonOrderResponse.error("500", "");
}
CreateFatherSonOrderRequest.OrderInfo productOrderRequest = createFatherSonOrderRequest.getOrderInfoList().stream().filter(orderBeanTemp -> 1 == orderBeanTemp.getBizType()).collect(Collectors.toList()).get(0);
BaseOrderResponse baseOrderResponse =updateMCCafeStockAndScore(productOrderInfo.get(0), productOrderRequest.getProducts(), productOrderRequest.getActivityUpdateStockRequest(), productOrderRequest.getAccounts(),
createFatherSonOrderRequest.getMqMessageRequest(),createFatherSonOrderRequest.getMenuType());
if (!RESPONSE_SUCCESS.equals(baseOrderResponse.getErrcode())) {
return CreateFatherSonOrderResponse.error(baseOrderResponse.getErrcode().toString(), baseOrderResponse.getErrmsg());
}
return createFatherSonOrderResponse;
}
private BaseOrderResponse updateMCCafeStockAndScore(QueryOrdersResponse.DataBean.OrderBean orderBean, List<CreateOrderProductRequest> products, ActivityUpdateStockRequest updateStockRequest, private BaseOrderResponse updateMCCafeStockAndScore(QueryOrdersResponse.DataBean.OrderBean orderBean, List<CreateOrderProductRequest> products, ActivityUpdateStockRequest updateStockRequest,
List<CreateOrderAccountRequest> accounts, MqMessageRequest mqMessageRequest, String menuType) { List<CreateOrderAccountRequest> accounts, MqMessageRequest mqMessageRequest, String menuType) {
//TODO 转换获取库存信息,扣减库存 //TODO 转换获取库存信息,扣减库存
...@@ -201,39 +180,39 @@ public class MCCafeOrderCenterSdkServiceImpl implements MCCafeOrderCenterSdkServ ...@@ -201,39 +180,39 @@ public class MCCafeOrderCenterSdkServiceImpl implements MCCafeOrderCenterSdkServ
// } // }
// } // }
// 如果是自提,则冻结优惠券,失败提示下单失败并冲正库存积分等 // 如果是到店,则冻结优惠券,失败提示下单失败并冲正库存积分等
// 如果是外卖,则核销优惠券,失败提示下单失败并冲正库存积分等 // 如果是外卖,则核销优惠券,失败提示下单失败并冲正库存积分等
if(OldOrderType.TAKE_OUT.getCode().equals(orderBean.getType())) { // if(OldOrderType.TAKE_OUT.getCode().equals(orderBean.getType())) {
CouponRedeemResponse couponRedeemResponse = couponClientService.redeemBatch(orderBean, accounts); // CouponRedeemResponse couponRedeemResponse = couponClientService.redeemBatch(orderBean, accounts);
//
if (couponRedeemResponse!=null){ // if (couponRedeemResponse!=null){
//
if (!ObjectUtils.equals(RESPONSE_SUCCESS_STR, couponRedeemResponse.getStatusCode())) { // if (!ObjectUtils.equals(RESPONSE_SUCCESS_STR, couponRedeemResponse.getStatusCode())) {
//TODO 失败取消订单,异步冲正库存 // //TODO 失败取消订单,异步冲正库存
CancelOrderRequest cancelOrderRequest = orderSdkAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(), // CancelOrderRequest cancelOrderRequest = orderSdkAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(),
AfterSalesType.SYSTEM_CANCEL, "核销券码失败", "", null); // AfterSalesType.SYSTEM_CANCEL, "核销券码失败", "", null);
orderCenterSdkService.orderCancel(cancelOrderRequest); // orderCenterSdkService.orderCancel(cancelOrderRequest);
//失败异步冲正库存,取消订单 // //失败异步冲正库存,取消订单
backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange()); // backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange());
return BaseOrderResponse.getErrorBaseOrderResponse(couponRedeemResponse.getStatusCode(), "核销券码失败"); // return BaseOrderResponse.getErrorBaseOrderResponse(couponRedeemResponse.getStatusCode(), "核销券码失败");
} // }
} // }
} else if(OldOrderType.COLLECT_GOODS.getCode().equals(orderBean.getType()) || OldOrderType.EAT_IN.getCode().equals(orderBean.getType())) { // } else if(OldOrderType.COLLECT_GOODS.getCode().equals(orderBean.getType()) || OldOrderType.EAT_IN.getCode().equals(orderBean.getType())) {
CouponBaseResponse couponBaseResponse = couponClientService.lockBatch(orderBean, accounts); // CouponBaseResponse couponBaseResponse = couponClientService.lockBatch(orderBean, accounts);
//
if (couponBaseResponse!=null){ // if (couponBaseResponse!=null){
//
if (!ObjectUtils.equals(RESPONSE_SUCCESS_STR, couponBaseResponse.getStatusCode())) { // if (!ObjectUtils.equals(RESPONSE_SUCCESS_STR, couponBaseResponse.getStatusCode())) {
//TODO 失败取消订单,异步冲正库存 // //TODO 失败取消订单,异步冲正库存
CancelOrderRequest cancelOrderRequest = orderSdkAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(), // CancelOrderRequest cancelOrderRequest = orderSdkAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(),
AfterSalesType.SYSTEM_CANCEL, "冻结券码失败", "", null); // AfterSalesType.SYSTEM_CANCEL, "冻结券码失败", "", null);
orderCenterSdkService.orderCancel(cancelOrderRequest); // orderCenterSdkService.orderCancel(cancelOrderRequest);
//失败异步冲正库存,取消订单 // //失败异步冲正库存,取消订单
backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange()); // backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange());
return BaseOrderResponse.getErrorBaseOrderResponse(couponBaseResponse.getStatusCode(), "冻结券码失败"); // return BaseOrderResponse.getErrorBaseOrderResponse(couponBaseResponse.getStatusCode(), "冻结券码失败");
} // }
} // }
} // }
return BaseOrderResponse.getErrorBaseOrderResponse(RESPONSE_SUCCESS_STR, ""); return BaseOrderResponse.getErrorBaseOrderResponse(RESPONSE_SUCCESS_STR, "");
} }
......
...@@ -73,4 +73,10 @@ public interface ShoppingCartClient { ...@@ -73,4 +73,10 @@ public interface ShoppingCartClient {
@PostMapping(value = "/getShoppingCartGoodsApportion?lang=zh_CN") @PostMapping(value = "/getShoppingCartGoodsApportion?lang=zh_CN")
BaseResponse<ShoppingCartGoodsDto> getShoppingCartGoodsApportionNew(@RequestBody GetShoppingCartGoodsApportionDto getShoppingCartGoodsApportionDto); BaseResponse<ShoppingCartGoodsDto> getShoppingCartGoodsApportionNew(@RequestBody GetShoppingCartGoodsApportionDto getShoppingCartGoodsApportionDto);
/**
* 获取购物车详情,包含均摊信息
*/
@PostMapping(value = "/MCoffee/getshoppingcartGoodsApportion?lang=zh_CN")
BaseResponse<ShoppingCartGoodsDto> getMCCafeShoppingCartGoodsApportionNew(@RequestBody GetShoppingCartGoodsApportionDto getShoppingCartGoodsApportionDto);
} }
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