Commit 76ee27b5 by 徐康

Merge branch 'feature/20200915_麦咖啡p2v3活动入机增加TENDERID字段' into qa

# Conflicts:
#	assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/CreateOrderProductRequest.java
#	assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/OrderProductAddInfoDto.java
#	order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
parents fccf4bcb 02733c50
......@@ -175,4 +175,6 @@ public class CreateOrderProductRequest extends BaseConfig {
private String classificationId;
private String classificationName;
private List<String> specialCodes;
}
......@@ -70,4 +70,6 @@ public class OrderProductAddInfoDto extends BaseConfig {
* 商品统计分类名称
*/
private String thirdCensusCategoryName;
private List<String> specialCodes;
}
......@@ -43,6 +43,16 @@ public interface OrderCenterSdkService {
QueryOrdersResponse queryOrders(QueryOrdersRequest queryOrdersRequest);
/**
* 根据订单编号查询订单信息 C端
*/
QueryOrderByIdResponse queryMCCafeOrderById(BaseQueryOrderRequest baseQueryOrderRequest);
/**
* 条件查询订单列表 C端
*/
QueryOrdersResponse queryMCCafeOrders(QueryOrdersRequest queryOrdersRequest);
/**
* 删除订单 C端
*/
BaseOrderResponse deleteOrder(DeleteOrderRequest deleteOrderRequest);
......
......@@ -464,6 +464,30 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
}
@Override
public QueryOrderByIdResponse queryMCCafeOrderById(BaseQueryOrderRequest request) {
QueryByCodeResponse orderInfo = orderSdkService.getOrderInfo(request.getOrderClient(), request.getOrderId(),
request.getThirdOrderCode(), request.getWithOperationHistory(), request.getTrackingNo());
QueryOrderByIdResponse response = new QueryOrderByIdResponse();
if (orderInfo == null || orderInfo.getResult() == null) {
return response;
}
response.setErrcode(Integer.parseInt(orderInfo.getCode()));
response.setErrmsg(orderInfo.getMessage());
if (orderInfo.getResult().getOrderCode() == null || "".equals(orderInfo.getResult().getOrderCode())) {
return response;
}
QueryOrderByIdResponse orderByIdResponse = orderSdkAdapter.convent2QueryOrderByIdResponse(orderInfo);
return orderByIdResponse;
}
@Override
public QueryOrdersResponse queryMCCafeOrders(QueryOrdersRequest queryOrdersRequest) {
OrderUserConditionsReq request = orderSdkAdapter.convent2QueryOrdersRequest(queryOrdersRequest);
com.freemud.application.sdk.api.ordercenter.response.BaseResponse<QueryOrderForUserResp> userorderResponse = orderSdkService.queryOrderForUser(request, queryOrdersRequest.getTrackingNo());
return orderSdkAdapter.convent2QueryOrdersResponse(userorderResponse);
}
@Override
public BaseOrderResponse deleteOrder(DeleteOrderRequest deleteOrderRequest) {
OrderDeleteReq request = new OrderDeleteReq();
request.setOrderCode(deleteOrderRequest.getOrderId());
......
......@@ -176,13 +176,11 @@ public class OrderAdapter {
createOrderProductDto.setIgnoreProductPrice(1);
products.add(createOrderProductDto);
if (CollectionUtils.isNotEmpty(cartGoodsDetailDto.getActivityDiscountsDtos())) {
List<CreateOrderAccountRequest> accounts = null;
if(mcCafePartnerId.equals(createOrderDto.getCompanyId())) {
accounts = getMCCafeAccounts(createOrderProductDto, cartGoodsDetailDto.getActivityDiscountsDtos());
createOrderProductDto.setAccounts(getMCCafeAccounts(createOrderProductDto, cartGoodsDetailDto.getActivityDiscountsDtos()));
} else {
accounts = getAccounts(createOrderProductDto, cartGoodsDetailDto.getActivityDiscountsDtos());
createOrderProductDto.setAccounts(getAccounts(createOrderProductDto, cartGoodsDetailDto.getActivityDiscountsDtos()));
}
createOrderProductDto.setAccounts(accounts);
}
}
}
......@@ -1844,7 +1842,20 @@ public class OrderAdapter {
List<ProductVo> setMealProducts = new ArrayList<>();
productBean.getComboProduct().forEach(product -> {
if(!"无".equals(product.getSpecificationName())) {
setMealProducts.add(convent2ProductVo(product));
ProductVo comboProduct = convent2ProductVo(product);
setMealProducts.add(comboProduct);
if (ObjectUtils.equals(ProductTypeEnum.MATERIAL_PRODUCT.getCode(), comboProduct.getProductType()) && CollectionUtils.isNotEmpty(product.getMaterialProduct())) {
List<ProductVo> setMaterialProducts = new ArrayList<>();
product.getMaterialProduct().forEach(materialProduct -> {
ProductVo material = convent2ProductVo(materialProduct);
setMaterialProducts.add(material);
productVo.setOriginalPrice(new BigDecimal(productVo.getOriginalPrice()).subtract(new BigDecimal(material.getOriginalPrice())).longValue());
productVo.setFinalPrice(new BigDecimal(productVo.getFinalPrice()).subtract(new BigDecimal(material.getFinalPrice())).longValue());
productVo.setOriginalTotalAmount(new BigDecimal(productVo.getOriginalTotalAmount()).subtract(new BigDecimal(material.getOriginalTotalAmount())).longValue());
productVo.setSaleTotalAmount(new BigDecimal(productVo.getSaleTotalAmount()).subtract(new BigDecimal(product.getSettlementPrice())).longValue());
});
comboProduct.setSetMaterialProducts(setMaterialProducts);
}
}
});
productVo.setSetMealProducts(setMealProducts);
......@@ -2150,26 +2161,37 @@ public class OrderAdapter {
}
public CreateOrderProductRequest convent2MCCafeOrderProduct(ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto) {
CreateOrderProductRequest createOrderProductDemoDto = convent2MCCafeOrderProductDemo(cartGoodsDetailDto);
CreateOrderProductRequest createOrderProductDemoDto = convent2MCCafeOrderProductDemo(cartGoodsDetailDto, cartGoodsDetailDto.getProductType());
if(cartGoodsDetailDto.getProductType() != null) {
if(cartGoodsDetailDto.getProductType() == ProductType.SETMEALPRODUCT.getCode()
|| cartGoodsDetailDto.getProductType() == ProductType.SETMEALPRODUCT_UPPRICE.getCode()) {
createOrderProductDemoDto.setPrice(0l);
//套餐
if (cartGoodsDetailDto.getProductType() != null && (cartGoodsDetailDto.getProductType() == ProductType.SETMEALPRODUCT.getCode() || cartGoodsDetailDto.getProductType() == ProductType.SETMEALPRODUCT_UPPRICE.getCode())) {
List<CreateOrderProductRequest> comboProducts = new ArrayList<>();
cartGoodsDetailDto.getComboProducts().forEach(product -> {
comboProducts.add(convent2OrderProductDemo(product));
CreateOrderProductRequest createOrderComboProduct = convent2MCCafeOrderProductDemo(product, product.getProductType());
comboProducts.add(createOrderComboProduct);
if(CollectionUtils.isNotEmpty(product.getMaterialList())) {
//加料商品
List<CreateOrderProductRequest> materialProducts = new ArrayList<>();
product.getMaterialList().forEach(cartMaterial -> {
product.setProductType(ProductType.MATERIALPRODUCT_UPPRICE.getCode());
materialProducts.add(convent2MCCafeOrderProductDemo(cartMaterial, ProductType.LITTLE_MATERIAL_PRODUCT.getCode()));
});
createOrderProductDemoDto.setComboProduct(comboProducts);
createOrderComboProduct.setMaterialProduct(materialProducts);
}
});
createOrderProductDemoDto.setComboProduct(comboProducts);
} else if(CollectionUtils.isNotEmpty(cartGoodsDetailDto.getMaterialList())) {
//加料商品
if (cartGoodsDetailDto.getProductType() != null && (cartGoodsDetailDto.getProductType() == ProductType.MATERIALPRODUCT_UPPRICE.getCode())) {
List<CreateOrderProductRequest> materialProducts = new ArrayList<>();
cartGoodsDetailDto.getMaterialList().forEach(product -> {
materialProducts.add(convent2OrderProductMaterial(product));
product.setProductType(ProductType.MATERIALPRODUCT_UPPRICE.getCode());
materialProducts.add(convent2MCCafeOrderProductDemo(product, ProductType.LITTLE_MATERIAL_PRODUCT.getCode()));
});
createOrderProductDemoDto.setMaterialProduct(materialProducts);
}
createOrderProductDemoDto.setProductType(cartGoodsDetailDto.getProductType());
}
return createOrderProductDemoDto;
}
......@@ -2232,25 +2254,20 @@ public class OrderAdapter {
return createOrderProductDemoDto;
}
public CreateOrderProductRequest convent2MCCafeOrderProductDemo(ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto) {
public CreateOrderProductRequest convent2MCCafeOrderProductDemo(ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto, Integer productType) {
CreateOrderProductRequest createOrderProductDemoDto = new CreateOrderProductRequest();
createOrderProductDemoDto.setProductId(cartGoodsDetailDto.getSpuId());
createOrderProductDemoDto.setProductName(cartGoodsDetailDto.getSpuName());
createOrderProductDemoDto.setSpecification(cartGoodsDetailDto.getSkuId());
createOrderProductDemoDto.setSpecificationName(cartGoodsDetailDto.getSkuName());
if (cartGoodsDetailDto.getProductType() != null && (cartGoodsDetailDto.getProductType() == ProductType.SETMEALPRODUCT.getCode()
|| cartGoodsDetailDto.getProductType() == ProductType.SETMEALPRODUCT_UPPRICE.getCode())) {
createOrderProductDemoDto.setPrice(0l);
} else {
createOrderProductDemoDto.setPrice(cartGoodsDetailDto.getOriginalPrice());
}
createOrderProductDemoDto.setSalePrice(cartGoodsDetailDto.getOriginalPrice());
createOrderProductDemoDto.setTotalDiscountAmount(cartGoodsDetailDto.getTotalDiscountAmount() == null ? 0 : cartGoodsDetailDto.getTotalDiscountAmount().longValue());
createOrderProductDemoDto.setNumber(cartGoodsDetailDto.getQty());
createOrderProductDemoDto.setPicture(cartGoodsDetailDto.getPicture());
createOrderProductDemoDto.setAddInfo(cartGoodsDetailDto.getAttributeNames());
createOrderProductDemoDto.setDiscountId(cartGoodsDetailDto.getCouponCode());
createOrderProductDemoDto.setProductType(cartGoodsDetailDto.getProductType());
createOrderProductDemoDto.setProductType(productType);
createOrderProductDemoDto.setParentProductId(cartGoodsDetailDto.getParentProductId());
createOrderProductDemoDto.setIsFixedProduct(cartGoodsDetailDto.getIsFixedProduct());
createOrderProductDemoDto.setCustomerCode(cartGoodsDetailDto.getCustomerCode());
......@@ -2263,6 +2280,9 @@ public class OrderAdapter {
createOrderProductDemoDto.setTaxId(cartGoodsDetailDto.getTaxId());
createOrderProductDemoDto.setClassificationId(cartGoodsDetailDto.getClassificationId());
createOrderProductDemoDto.setClassificationName(cartGoodsDetailDto.getClassificationName());
if(CollectionUtils.isNotEmpty(cartGoodsDetailDto.getSpecialExtra())) {
createOrderProductDemoDto.setSpecialCodes(cartGoodsDetailDto.getSpecialExtra().stream().map(ShoppingCartGoodsDto.CartGoodsDetailDto.CartGoodsExtra::getSpecialCode).collect(Collectors.toList()));
}
return createOrderProductDemoDto;
}
......
......@@ -210,6 +210,11 @@ public class ShoppingCartGoodsDto {
* 配料或属性
*/
private List<CartGoodsDetailDto.CartGoodsExtra> extraList = new ArrayList<>(0);
/**
* 配料或属性
*/
private List<CartGoodsDetailDto.CartGoodsExtra> specialExtra = new ArrayList<>(0);
/**
* 商品行享受的促销活动
*/
......@@ -231,6 +236,10 @@ public class ShoppingCartGoodsDto {
* 属性名
*/
private String attributeName;
/**
* 入机code
*/
private String specialCode;
}
......
......@@ -158,6 +158,11 @@ public class CreateOrderVo {
* 券码
*/
private String couponCode;
/**
* 运费券code
*/
private String freightCouponCode;
/**
* 版本号
*/
......
......@@ -54,6 +54,10 @@ public class ShoppingCartInfoRequestVo {
*/
private String couponCode;
/**
* 运费券code
*/
private String freightCouponCode;
/**
* 优惠券对应的活动号
*/
private String activityCode;
......
......@@ -17,7 +17,9 @@ public enum ProductType {
HAVESPEC(10, "有规格"),
SETMEALPRODUCT(6,"套餐商品"),
SETMEALPRODUCT_UPPRICE(7,"加价套餐商品"),
MATERIALPRODUCT_UPPRICE(88,"加料商品");
MATERIALPRODUCT_UPPRICE(88,"加料商品"),
LITTLE_MATERIAL_PRODUCT(89,"小料"),
;
private int code;
......
......@@ -480,32 +480,14 @@ public class CheckMCCafeOrder {
.buyMemberCard(null)
.menuType(createOrderVo.getMenuType())
.build();
// 如果使用优惠券或者商品券,校验 couponCode
// if (StringUtils.isNotBlank(createOrderVo.getCouponCode())) {
// // 校验couponCode
// GetCouponDetailResponseDto getCouponDetailResponseDto = couponService.getMemberCoupon(GetMemberCouponRequestVo.builder()
// .partnerId(createOrderVo.getPartnerId())
// .couponCode(createOrderVo.getCouponCode()).build());
// if (Objects.equals(getCouponDetailResponseDto, null) || CollectionUtils.isEmpty(getCouponDetailResponseDto.getDetails())
// || getCouponDetailResponseDto.getDetails().get(0).getActive() == null
// || getCouponDetailResponseDto.getDetails().get(0).getActive().getActiveCode() == null) {
// if ((CollectionUtils.isNotEmpty(getCouponDetailResponseDto.getDetails().get(0).getActiveRestrictionVOS())
// && CollectionUtils.isEmpty(getCouponDetailResponseDto.getDetails().get(0).getActiveRestrictionVOS().stream()
// .filter(a -> Objects.equals(a.getStoreIdPartner(), createOrderVo.getShopId())).collect(Collectors.toList()))
// )) {
// throw new ServiceException(ResponseResult.COUPON_SHOP_NOTSUPPORT);
// } else {
// throw new ServiceException(ResponseResult.COUPON_GETINFO_INVAILD);
// }
// }
// String activeCode = getCouponDetailResponseDto.getDetails().get(0).getActive().getActiveCode();
// // 校验点餐方式,查询购物车接口内部已校验
// shoppingCartInfoRequestVo.setCouponCode(createOrderVo.getCouponCode());
// // 活动code
// shoppingCartInfoRequestVo.setActivityCode(activeCode);
// shoppingCartInfoRequestVo.setCardCode(createOrderVo.getCardCode());
// }
List<MCCafeCouponVo> couponCodeList = new ArrayList<>();
if (StringUtils.isNotBlank(createOrderVo.getCouponCode())) {
couponCodeList.add(new MCCafeCouponVo(createOrderVo.getCouponCode()));
}
if (StringUtils.isNotBlank(createOrderVo.getCouponCode())) {
couponCodeList.add(new MCCafeCouponVo(createOrderVo.getFreightCouponCode()));
}
if (CollectionUtils.isNotEmpty(couponCodeList)) {
// 校验couponCode
MCCafeCouponRequest mcCafeCouponRequest = MCCafeCouponRequest.builder()
.ver(Integer.valueOf(Version.VERSION_1))
......@@ -515,26 +497,27 @@ public class CheckMCCafeOrder {
.station_id("1")
.operator_id(createOrderVo.getUserId())
.channel(UserLoginChannelEnum.ALIPAY.getCode().equals(userLoginInfoDto.getChannel())?MCCafeChannelEnum.MOCOFFEE_ZFB.getName():MCCafeChannelEnum.MOCOFFEE_WX.getName())
.couponlist(Arrays.asList(new MCCafeCouponVo(createOrderVo.getCouponCode())))
.couponlist(couponCodeList)
.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);
throw new ServiceException(ResponseResult.COUPON_SHOP_NOTSUPPORT, "该代金券当前不可用");
LogUtil.error("部分优惠券当前不可用", mcCafeCouponRequest, mcdNetBatchQueryResponse);
throw new ServiceException(ResponseResult.COUPON_SHOP_NOTSUPPORT, "部分优惠券当前不可用");
} else if(!ResponseCodeConstant.RESPONSE_SUCCESS.equals(mcdNetBatchQueryResponse.getCouponlist().get(0).getStatusCode())) {
if(mcdNetBatchQueryResponse.getCouponlist().get(0).getCodeInfo() != null) {
LogUtil.error(mcdNetBatchQueryResponse.getCouponlist().get(0).getCodeInfo().getAct_name()+"当前不可用", mcCafeCouponRequest, mcdNetBatchQueryResponse);
throw new ServiceException(ResponseResult.COUPON_SHOP_NOTSUPPORT, mcdNetBatchQueryResponse.getCouponlist().get(0).getCodeInfo().getAct_name()+"当前不可用");
} else {
LogUtil.error("该代金券暂不可用", mcCafeCouponRequest, mcdNetBatchQueryResponse);
throw new ServiceException(ResponseResult.COUPON_SHOP_NOTSUPPORT, "该代金券暂不可用");
LogUtil.error("部分优惠券暂时不可用", mcCafeCouponRequest, mcdNetBatchQueryResponse);
throw new ServiceException(ResponseResult.COUPON_SHOP_NOTSUPPORT, "部分优惠券暂时不可用");
}
}
String activeCode = mcdNetBatchQueryResponse.getCouponlist().get(0).getCodeInfo().getAct_id();
// 校验点餐方式,查询购物车接口内部已校验
shoppingCartInfoRequestVo.setCouponCode(createOrderVo.getCouponCode());
shoppingCartInfoRequestVo.setFreightCouponCode(createOrderVo.getFreightCouponCode());
// 活动code
shoppingCartInfoRequestVo.setActivityCode(activeCode);
shoppingCartInfoRequestVo.setCardCode(createOrderVo.getCardCode());
......
......@@ -923,7 +923,7 @@ public class OrderServiceImpl implements Orderservice {
QueryOrdersRequest queryOrdersRequest2 = new QueryOrdersRequest();
BeanUtil.convertBean(queryOrdersDto, queryOrdersRequest2);
queryOrdersRequest2.setTrackingNo(LogTreadLocal.getTrackingNo());
queryOrderResponse = orderCenterSdkService.queryOrders(queryOrdersRequest2);
queryOrderResponse = orderCenterSdkService.queryMCCafeOrders(queryOrdersRequest2);
} catch (Exception e) {
LogUtil.error("queryOrders_error", gson.toJson(queryOrdersDto), e);
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR);
......@@ -1289,7 +1289,7 @@ public class OrderServiceImpl implements Orderservice {
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
baseQueryOrderRequest.setOrderId(oid);
baseQueryOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
QueryOrderByIdResponse response = orderCenterSdkService.queryOrderById(baseQueryOrderRequest);
QueryOrderByIdResponse response = orderCenterSdkService.queryMCCafeOrderById(baseQueryOrderRequest);
if (!RESPONSE_SUCCESS_CODE.equals(response.getErrcode()) || response.getData() == null) {
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR);
}
......
......@@ -104,7 +104,7 @@ public class MCCafeOrderCenterSdkServiceImpl implements MCCafeOrderCenterSdkServ
@Override
public CreateOrderResponse createMCCafeOrderFlow(CreateOrderRequest config) {
com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest request = orderSdkAdapter.convent2NEWCreateOrderRequest(config.getBaseCreateOrderRequest());
com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest request = orderSdkAdapter.convent2NEWCreateMCCafeOrderRequest(config.getBaseCreateOrderRequest());
com.freemud.application.sdk.api.ordercenter.response.BaseResponse<OrderInfoReqs> order = orderSdkService.createOrder(request, config.getTrackingNo());
CreateOrderResponse createOrderResponse = orderSdkAdapter.convent2NEWOrderInfoReqs(order);
if (!RESPONSE_SUCCESS.equals(createOrderResponse.getErrcode())
......
......@@ -23,7 +23,9 @@ public enum ProductTypeEnum {
MORD_SPECIFICATION_PRODUCT(10,"多规格商品"),
WEIGHT_PRODUCT(11,"称重商品"),
TABLEWARE_PRODUCT(12,"餐具商品"),
MATERIAL_PRODUCT(88,"加料商品");
MATERIAL_PRODUCT(88,"加料商品"),
LITTLE_MATERIAL_PRODUCT(89,"小料"),
;
......
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