Commit 7d9b62b1 by 徐康

麦咖啡套餐定制属性和加料

parent ecf161fc
......@@ -176,4 +176,6 @@ public class CreateOrderProductRequest extends BaseConfig {
private double tax;
private String taxId;
private List<String> specialCodes;
}
......@@ -70,4 +70,6 @@ public class OrderProductAddInfoDto extends BaseConfig {
private double tax;
private String taxId;
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());
......
......@@ -40,7 +40,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.0.9-RELEASE</version>
<version>2.0.16-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......
......@@ -162,13 +162,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);
}
}
}
......@@ -1810,7 +1808,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);
......@@ -2116,26 +2127,36 @@ public class OrderAdapter {
}
public CreateOrderProductRequest convent2MCCafeOrderProduct(ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto) {
CreateOrderProductRequest createOrderProductDemoDto = convent2MCCafeOrderProductDemo(cartGoodsDetailDto);
//套餐
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));
});
createOrderProductDemoDto.setComboProduct(comboProducts);
}
//加料商品
if (cartGoodsDetailDto.getProductType() != null && (cartGoodsDetailDto.getProductType() == ProductType.MATERIALPRODUCT_UPPRICE.getCode())) {
List<CreateOrderProductRequest> materialProducts = new ArrayList<>();
cartGoodsDetailDto.getMaterialList().forEach(product -> {
materialProducts.add(convent2OrderProductMaterial(product));
});
createOrderProductDemoDto.setMaterialProduct(materialProducts);
CreateOrderProductRequest createOrderProductDemoDto = convent2MCCafeOrderProductDemo(cartGoodsDetailDto, 0, cartGoodsDetailDto.getProductType());
if(cartGoodsDetailDto.getProductType() != null) {
if(cartGoodsDetailDto.getProductType() == ProductType.SETMEALPRODUCT.getCode()
|| cartGoodsDetailDto.getProductType() == ProductType.SETMEALPRODUCT_UPPRICE.getCode()) {
//套餐
List<CreateOrderProductRequest> comboProducts = new ArrayList<>();
cartGoodsDetailDto.getComboProducts().forEach(product -> {
CreateOrderProductRequest createOrderComboProduct = convent2MCCafeOrderProductDemo(product, product.getOriginalPrice(), cartGoodsDetailDto.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, cartMaterial.getOriginalPrice(), ProductType.LITTLE_MATERIAL_PRODUCT.getCode()));
});
createOrderComboProduct.setMaterialProduct(materialProducts);
}
});
createOrderProductDemoDto.setComboProduct(comboProducts);
} else if(CollectionUtils.isNotEmpty(cartGoodsDetailDto.getMaterialList())) {
//加料商品
List<CreateOrderProductRequest> materialProducts = new ArrayList<>();
cartGoodsDetailDto.getMaterialList().forEach(product -> {
product.setProductType(ProductType.MATERIALPRODUCT_UPPRICE.getCode());
materialProducts.add(convent2MCCafeOrderProductDemo(product, product.getOriginalPrice(), ProductType.LITTLE_MATERIAL_PRODUCT.getCode()));
});
createOrderProductDemoDto.setMaterialProduct(materialProducts);
}
}
createOrderProductDemoDto.setProductType(cartGoodsDetailDto.getProductType());
return createOrderProductDemoDto;
}
......@@ -2199,20 +2220,20 @@ public class OrderAdapter {
return createOrderProductDemoDto;
}
public CreateOrderProductRequest convent2MCCafeOrderProductDemo(ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto) {
public CreateOrderProductRequest convent2MCCafeOrderProductDemo(ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto, long price, Integer productType) {
CreateOrderProductRequest createOrderProductDemoDto = new CreateOrderProductRequest();
createOrderProductDemoDto.setProductId(cartGoodsDetailDto.getSpuId());
createOrderProductDemoDto.setProductName(cartGoodsDetailDto.getSpuName());
createOrderProductDemoDto.setSpecification(cartGoodsDetailDto.getSkuId());
createOrderProductDemoDto.setSpecificationName(cartGoodsDetailDto.getSkuName());
createOrderProductDemoDto.setPrice(0l);
createOrderProductDemoDto.setPrice(price);
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());
......@@ -2226,6 +2247,9 @@ public class OrderAdapter {
createOrderProductDemoDto.setTaxId(cartGoodsDetailDto.getTaxId());
createOrderProductDemoDto.setClassificationId(cartGoodsDetailDto.getClassificationId());
createOrderProductDemoDto.setClassificationName(cartGoodsDetailDto.getClassificationName());
if(CollectionUtils.isNotEmpty(cartGoodsDetailDto.getExtraList())) {
createOrderProductDemoDto.setSpecialCodes(cartGoodsDetailDto.getExtraList().stream().map(ShoppingCartGoodsDto.CartGoodsDetailDto.CartGoodsExtra::getSpecialCode).collect(Collectors.toList()));
}
return createOrderProductDemoDto;
}
......
......@@ -231,6 +231,10 @@ public class ShoppingCartGoodsDto {
* 属性名
*/
private String attributeName;
/**
* 入机code
*/
private String specialCode;
}
......
......@@ -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,31 +480,6 @@ 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());
// }
if (StringUtils.isNotBlank(createOrderVo.getCouponCode())) {
// 校验couponCode
MCCafeCouponRequest mcCafeCouponRequest = MCCafeCouponRequest.builder()
......
......@@ -903,7 +903,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);
......@@ -1269,7 +1269,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