Commit 8bd501f5 by 刘鹏飞

Merge remote-tracking branch 'origin/feature/2.0.1-collageOrder-刘鹏飞' into…

Merge remote-tracking branch 'origin/feature/2.0.1-collageOrder-刘鹏飞' into feature/2.0.1-collageOrder-刘鹏飞
parents ab36f29c 279927e6
...@@ -210,6 +210,9 @@ public class OrderSdkAdapter { ...@@ -210,6 +210,9 @@ public class OrderSdkAdapter {
request.setOrderType(getNewOrderType(requestVO.getOrderType(), requestVO.getGmtExpect())); request.setOrderType(getNewOrderType(requestVO.getOrderType(), requestVO.getGmtExpect()));
request.setBarCounter(requestVO.getBarCounter()); request.setBarCounter(requestVO.getBarCounter());
//订单market类型
request.setMarketingType(requestVO.getMarketingType());
//商品信息转换 //商品信息转换
List<OrderItemCreateReq> orderItemList = new ArrayList<>(); List<OrderItemCreateReq> orderItemList = new ArrayList<>();
//优惠信息转换 //优惠信息转换
......
...@@ -168,6 +168,11 @@ public class BaseCreateOrderRequest extends BaseConfig { ...@@ -168,6 +168,11 @@ public class BaseCreateOrderRequest extends BaseConfig {
*/ */
private String receiveId; private String receiveId;
/**
* 订单特殊类型 1:普通订单 2:拼团订单 3:秒杀订单 4:拼单订单
*/
private Integer marketingType;
@Data @Data
public static class DeliveryTypeInfo { public static class DeliveryTypeInfo {
/** /**
......
...@@ -569,6 +569,7 @@ public class OrderAdapter { ...@@ -569,6 +569,7 @@ public class OrderAdapter {
createOrderDto.setBarCounter(createOrderVo.getTableNumber()); createOrderDto.setBarCounter(createOrderVo.getTableNumber());
createOrderDto.setOperator(createOrderVo.getUserName()); createOrderDto.setOperator(createOrderVo.getUserName());
createOrderDto.setMenuType(BusinessTypeEnum.getByCode(createOrderVo.getMenuType())); createOrderDto.setMenuType(BusinessTypeEnum.getByCode(createOrderVo.getMenuType()));
createOrderDto.setMarketingType(createOrderVo.getMarketingType());
return createOrderDto; return createOrderDto;
} }
......
...@@ -83,6 +83,11 @@ public class CreateOrderVo { ...@@ -83,6 +83,11 @@ public class CreateOrderVo {
private Integer orderType; private Integer orderType;
/** /**
* 订单特殊类型 1:普通订单 2:拼团订单 3:秒杀订单 4:拼单订单
*/
private Integer marketingType;
/**
* 到店类型 orderType 传1的时候 如果reachStoreTyp为空转成订单类型4 如果不为空存储4(打包带走)和5(店内就餐) * 到店类型 orderType 传1的时候 如果reachStoreTyp为空转成订单类型4 如果不为空存储4(打包带走)和5(店内就餐)
*/ */
private Integer reachStoreType; private Integer reachStoreType;
......
package cn.freemud.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
/**
* 订单特殊类型
* @Auther: yong.huang
* @Date: 2018/12/29 15:58
* @Description:
*/
@Getter
@AllArgsConstructor
public enum OrderMarketType {
ORDER(1, "普通订单"),
GROUPB(2, "拼团订单"),
SEC_KILL(3, "秒杀订单"),
COLLAGE(4, "拼单订单")
;
private Integer index;
private String name;
public static final String API_DESC = "销售类型或营销活动类型 1:普通订单 2:拼团订单 3:秒杀订单 4:拼单订单";
public static OrderMarketType getByIndex(int index) {
return Arrays.stream(OrderMarketType.values())
.filter(e -> e.getIndex() == index)
.findFirst()
.orElseGet(() -> ORDER);
}
}
...@@ -21,9 +21,7 @@ import cn.freemud.entities.dto.order.BusinessDate; ...@@ -21,9 +21,7 @@ import cn.freemud.entities.dto.order.BusinessDate;
import cn.freemud.entities.dto.shoppingCart.GetShoppingCartGoodsApportionDto; import cn.freemud.entities.dto.shoppingCart.GetShoppingCartGoodsApportionDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto; import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.enums.CouponFlag; import cn.freemud.enums.*;
import cn.freemud.enums.CreateOrderType;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
import cn.freemud.manager.StoreTableNumberManager; import cn.freemud.manager.StoreTableNumberManager;
import cn.freemud.service.CouponService; import cn.freemud.service.CouponService;
...@@ -54,7 +52,6 @@ import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest; ...@@ -54,7 +52,6 @@ import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
import com.freemud.application.sdk.api.storecenter.response.QueryDeliverDetailResponse; import com.freemud.application.sdk.api.storecenter.response.QueryDeliverDetailResponse;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse; import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService; import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import cn.freemud.enums.CouponReqTypeEnum;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.gson.Gson; import com.google.gson.Gson;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
...@@ -508,7 +505,13 @@ public class CheckOrder { ...@@ -508,7 +505,13 @@ public class CheckOrder {
requestDto.setShoppingCartInfoRequestVo(shoppingCartInfoRequestVo); requestDto.setShoppingCartInfoRequestVo(shoppingCartInfoRequestVo);
//加价购商品 校验放购物车校验 //加价购商品 校验放购物车校验
requestDto.setPremiumExchangeActivity(createOrderVo.getPremiumExchangeActivity()); requestDto.setPremiumExchangeActivity(createOrderVo.getPremiumExchangeActivity());
cn.freemud.base.entity.BaseResponse<ShoppingCartGoodsDto> apportionResponse = shoppingCartClient.getShoppingCartGoodsApportionNew(requestDto); // 若为拼单类型,购物车信息从新的拼单购物车获取 update by miaohui for 【ID1010972】 多人拼单
cn.freemud.base.entity.BaseResponse<ShoppingCartGoodsDto> apportionResponse;
if (OrderMarketType.COLLAGE.getIndex() == createOrderVo.getMarketingType()) {
apportionResponse = shoppingCartClient.getCollageShoppingCartGoodsApportion(requestDto);
} else {
apportionResponse = shoppingCartClient.getShoppingCartGoodsApportionNew(requestDto);
}
if (!ObjectUtils.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, apportionResponse.getCode())) { if (!ObjectUtils.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, apportionResponse.getCode())) {
ResponseResult responseResult = ResponseResult.getResponseResult(apportionResponse.getCode()); ResponseResult responseResult = ResponseResult.getResponseResult(apportionResponse.getCode());
throw new ServiceException(responseResult != null ? responseResult : ResponseResult.SHOPPING_CART_GETINFO_ERROR); throw new ServiceException(responseResult != null ? responseResult : ResponseResult.SHOPPING_CART_GETINFO_ERROR);
......
...@@ -13,18 +13,10 @@ ...@@ -13,18 +13,10 @@
package cn.freemud.service.impl; package cn.freemud.service.impl;
import cn.freemud.adapter.OrderAdapter;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.dto.order.CreateOrderOperateDto;
import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.CreateOrderVo; import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.enums.ResponseResult; import cn.freemud.enums.OrderMarketType;
import cn.freemud.service.CollageOrderService; import cn.freemud.service.CollageOrderService;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -34,34 +26,11 @@ import org.springframework.stereotype.Service; ...@@ -34,34 +26,11 @@ import org.springframework.stereotype.Service;
public class CollageOrderServiceImpl implements CollageOrderService { public class CollageOrderServiceImpl implements CollageOrderService {
@Autowired @Autowired
private OrderServiceImpl orderService; private OrderServiceImpl orderService;
@Autowired
private CheckOrder checkOrder;
@Autowired
private OrderAdapter orderAdapter;
@Override @Override
public BaseResponse create(CreateOrderVo createOrderVo) { public BaseResponse create(CreateOrderVo createOrderVo) {
String trackingNo = LogThreadLocal.getTrackingNo(); // 标记订单类型-4 拼单
// 查询用户信息、校验svc卡,余额购物车校验 createOrderVo.setMarketingType(OrderMarketType.COLLAGE.getIndex());
AssortmentCustomerInfoVo userLoginInfoDto = checkOrder.checkOrderByMember(createOrderVo, trackingNo); return this.orderService.createOrderNew(createOrderVo);
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
StoreResponse.BizVO storeResponseDto = checkOrder.checkOrderByStore(createOrderVo, trackingNo);
// TODO 此处查询拼单订单购物车 返回类型转换为普通购物车Dto
ShoppingCartGoodsDto shoppingCartGoodsDto = checkOrder.getShoppingCartGoodsDto(createOrderVo);
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满足起送条件
Integer pushOrderTime = checkOrder.checkOrderByOrderType(createOrderVo, userLoginInfoDto, storeResponseDto, shoppingCartGoodsDto, trackingNo);
OrderExtInfoDto extInfo = orderService.getExtInfo(userLoginInfoDto, storeResponseDto, pushOrderTime, createOrderVo);
//1.9.2套餐需求同步优化创建订单代码
BaseResponse createOrderOperateDtoResponse = orderService.sdkCreateOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto);
if(createOrderOperateDtoResponse == null || !ResponseResult.SUCCESS.getCode().equals(createOrderOperateDtoResponse.getCode()) || createOrderOperateDtoResponse.getResult() == null ) {
return createOrderOperateDtoResponse;
}
CreateOrderOperateDto createOrderOperateDto = (CreateOrderOperateDto)createOrderOperateDtoResponse.getResult();
//创建支付
CreatePrepayRequestDto createPrepayRequestDto = orderAdapter.convertToCreatePrepayRequestDto(userLoginInfoDto, createOrderVo, createOrderOperateDto, extInfo);
return orderService.createPrepayOrder(createPrepayRequestDto);
} }
} }
...@@ -88,4 +88,10 @@ public interface ShoppingCartClient { ...@@ -88,4 +88,10 @@ public interface ShoppingCartClient {
@PostMapping(value = "/MCoffee/getShoppingCartGoodsApportion?lang=zh_CN") @PostMapping(value = "/MCoffee/getShoppingCartGoodsApportion?lang=zh_CN")
BaseResponse<ShoppingCartGoodsDto> getMCCafeShoppingCartGoodsApportionNew(@RequestBody GetShoppingCartGoodsApportionDto getShoppingCartGoodsApportionDto); BaseResponse<ShoppingCartGoodsDto> getMCCafeShoppingCartGoodsApportionNew(@RequestBody GetShoppingCartGoodsApportionDto getShoppingCartGoodsApportionDto);
/**
* 获取拼单订单购物车详情,包含均摊信息
*/
@PostMapping(value = "/collage/getShoppingCartGoodsApportion?lang=zh_CN")
BaseResponse<ShoppingCartGoodsDto> getCollageShoppingCartGoodsApportion(@RequestBody GetShoppingCartGoodsApportionDto getShoppingCartGoodsApportionDto);
} }
...@@ -117,7 +117,7 @@ public class OrderResp { ...@@ -117,7 +117,7 @@ public class OrderResp {
private String pickUpGoodsNo; private String pickUpGoodsNo;
/*** OrderMarketType.API_DESC***/ /*** OrderMarketType.API_DESC***/
private Byte marketingType; private Integer marketingType;
/*** "销售类型对应的场景值"***/ /*** "销售类型对应的场景值"***/
private String marketingCode; private String marketingCode;
......
...@@ -115,7 +115,7 @@ public class CreateOrderRequest extends BaseRequest { ...@@ -115,7 +115,7 @@ public class CreateOrderRequest extends BaseRequest {
//取货号 取餐号 //取货号 取餐号
private String pickUpGoodsNo; private String pickUpGoodsNo;
//订单特殊类型 1:普通订单 2:拼团订单 3:秒杀订单 //订单特殊类型 1:普通订单 2:拼团订单 3:秒杀订单 4:拼单订单
private Integer marketingType; private Integer marketingType;
//销售类型对应的场景值 //销售类型对应的场景值
......
...@@ -91,7 +91,7 @@ public class OrderItemCreateReq { ...@@ -91,7 +91,7 @@ public class OrderItemCreateReq {
private Boolean canRefund = true; private Boolean canRefund = true;
//销售类型或营销活动类型 1普通订单 2秒杀订单 3推广活动 //销售类型或营销活动类型 1普通订单 2秒杀订单 3推广活动
private Byte marketingType; private Integer marketingType;
//活动ID //活动ID
private String marketingCode; private String marketingCode;
......
...@@ -117,7 +117,7 @@ public class OrderResp { ...@@ -117,7 +117,7 @@ public class OrderResp {
private String pickUpGoodsNo; private String pickUpGoodsNo;
/*** OrderMarketType.API_DESC***/ /*** OrderMarketType.API_DESC***/
private Byte marketingType; private Integer marketingType;
/*** "销售类型对应的场景值"***/ /*** "销售类型对应的场景值"***/
private String marketingCode; private String marketingCode;
......
...@@ -91,8 +91,8 @@ public class OrderItemResp { ...@@ -91,8 +91,8 @@ public class OrderItemResp {
// @ApiModelProperty(value = CanRefundType.API_DESC) // @ApiModelProperty(value = CanRefundType.API_DESC)
private Boolean canRefund = true; private Boolean canRefund = true;
//销售类型或营销活动类型 1普通订单 2秒杀订单 3推广活动 //销售类型或营销活动类型 1普通订单 2秒杀订单 3推广活动 4拼单订单
private Byte marketingType; private Integer marketingType;
//活动ID //活动ID
private String marketingCode; private String marketingCode;
......
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