Commit 60b613cc by 徐康

重构代码

parent 0ab2b0a3
package cn.freemud.entities.bo;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.CreateOrderBaseVo;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.application.sdk.api.membercenter.response.GetSvcInfoByMemberIdResponse;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import lombok.Data;
import java.util.List;
@Data
public class CreateOrderBo {
private CreateOrderBaseVo createOrderBaseVo;
private AssortmentCustomerInfoVo userLoginInfoDto;
private ShoppingCartGoodsDto shoppingCartGoodsDto;
private StoreResponse storeResponseDto;
private List<GetSvcInfoByMemberIdResponse> svcInfoList;
}
......@@ -4,6 +4,7 @@ import cn.freemud.adapter.CreateOrderAdapter;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.util.DateUtil;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.bo.CreateOrderBo;
import cn.freemud.entities.dto.ConfirmOrderDto;
import cn.freemud.entities.dto.QueryOrdersResponseDto;
import cn.freemud.entities.dto.order.CreateOrderOperateDto;
......@@ -66,41 +67,73 @@ public abstract class UniversalOrderService {
public final BaseResponse createOrder(CreateOrderBaseVo createOrderBaseVo, AssortmentCustomerInfoVo userLoginInfoDto) {
String trackingNo = LogThreadLocal.getTrackingNo();
validParam(createOrderBaseVo);
CreateOrderBo createOrderBo = getCreateOrderBo(createOrderBaseVo, userLoginInfoDto);
checkCreateOrderParam(createOrderBo);
//校验会员svc卡信息
checkCardCode(createOrderBaseVo, userLoginInfoDto);
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
StoreResponse.BizVO storeResponseDto = checkOrderByStore(createOrderBaseVo, trackingNo);
// 查询购物车(内部校验券点餐方式,券是否可用) 校验当前订单类型的下单参数
ShoppingCartGoodsDto shoppingCartGoodsDto = checkShoppingCartGoodsDto(createOrderBaseVo);
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
StoreResponse.BizVO storeResponseDto = checkOrderByStore(createOrderBaseVo, trackingNo);
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满足起送条件
Integer pushOrderTime = checkOrderByOrderType(createOrderBaseVo, userLoginInfoDto, storeResponseDto, shoppingCartGoodsDto, trackingNo);
checkOrderByOrderType(createOrderBaseVo, userLoginInfoDto, storeResponseDto, shoppingCartGoodsDto, trackingNo);
Map<String, Object> customParam = getCustomParam(createOrderBaseVo, userLoginInfoDto, storeResponseDto, shoppingCartGoodsDto);
customCheck(customParam);
OrderExtInfoDto extInfo = getExtInfo(userLoginInfoDto, storeResponseDto, pushOrderTime, createOrderBaseVo, shoppingCartGoodsDto, customParam);
OrderExtInfoDto extInfo = getExtInfo(userLoginInfoDto, storeResponseDto, 0, createOrderBaseVo, shoppingCartGoodsDto);
//1.9.2套餐需求同步优化创建订单代码
BaseResponse createOrderOperateDtoResponse = this.createSharedOrder(createOrderBaseVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto, customParam);
BaseResponse createOrderOperateDtoResponse = this.createSharedOrder(createOrderBaseVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto);
if (createOrderOperateDtoResponse == null || !ResponseResult.SUCCESS.getCode().equals(createOrderOperateDtoResponse.getCode()) || createOrderOperateDtoResponse.getResult() == null) {
return createOrderOperateDtoResponse;
}
CreateOrderOperateDto createOrderOperateDto = (CreateOrderOperateDto) createOrderOperateDtoResponse.getResult();
//创建支付
CreatePrepayRequestDto createPrepayRequestDto = createOrderAdapter.convertToCreatePrepayRequestDto(userLoginInfoDto, createOrderBaseVo, createOrderOperateDto, extInfo);
handleCustomParam(createPrepayRequestDto, customParam);
return createPrepayOrder(createPrepayRequestDto);
}
public abstract void handleCustomParam(CreatePrepayRequestDto requestDto, Map<String, Object> customParam);
public void checkCreateOrderParam(CreateOrderBo createOrderBo) {
checkUniversalCreateOrderParam(createOrderBo);
checkCustomCreateOrderParam(createOrderBo);
}
public abstract void validParam(CreateOrderBaseVo createOrderBaseVo);
public void checkUniversalCreateOrderParam(CreateOrderBo createOrderBo) {
// 查询购物车(内部校验券点餐方式,券是否可用) 校验当前订单类型的下单参数
ShoppingCartGoodsDto shoppingCartGoodsDto = checkShoppingCartGoodsDto(createOrderBo.getCreateOrderBaseVo());
createOrderBo.setShoppingCartGoodsDto(shoppingCartGoodsDto);
}
public abstract BaseResponse createSharedOrder(CreateOrderBaseVo createOrderBaseVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto, AssortmentCustomerInfoVo userLoginInfoDto, Map<String, Object> customParam);
public abstract void checkCustomCreateOrderParam(CreateOrderBo createOrderBo);
public CreateOrderBo getCreateOrderBo(CreateOrderBaseVo createOrderBaseVo, AssortmentCustomerInfoVo userLoginInfoDto) {
CreateOrderBo createOrderBo = new CreateOrderBo();
createOrderBo.setCreateOrderBaseVo(createOrderBaseVo);
createOrderBo.setUserLoginInfoDto(userLoginInfoDto);
public abstract Map<String, Object> getCustomParam(CreateOrderBaseVo createOrderBaseVo, AssortmentCustomerInfoVo userLoginInfoDto, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto);
getUniversalCreateOrderBo(createOrderBo);
getCustomCreateOrderBo(createOrderBo);
return createOrderBo;
}
public void getUniversalCreateOrderBo(CreateOrderBo createOrderBo) {
StatisticalPropertyRequest request = new StatisticalPropertyRequest();
request.setPartnerId(createOrderBo.getCreateOrderBaseVo().getPartnerId());
request.setMemberId(createOrderBo.getUserLoginInfoDto().getMemberId());
List<GetSvcInfoByMemberIdResponse> svcInfoList = memberPropertyManager.getSvcInfoByMemberId(request, LogThreadLocal.getTrackingNo());
createOrderBo.setSvcInfoList(svcInfoList);
// 获取门店信息
StoreResponse storeResponseDto = storeInfoManager.getStoreInfo(createOrderBo.getCreateOrderBaseVo().getPartnerId(), createOrderBo.getCreateOrderBaseVo().getShopId(), LogThreadLocal.getTrackingNo());
createOrderBo.setStoreResponseDto(storeResponseDto);
}
public abstract void getCustomCreateOrderBo(CreateOrderBo createOrderBo);
public abstract void validParam(CreateOrderBaseVo createOrderBaseVo);
public abstract void customCheck(Map<String, Object> customParam);
public abstract BaseResponse createSharedOrder(CreateOrderBaseVo createOrderBaseVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto, AssortmentCustomerInfoVo userLoginInfoDto);
public void checkCardCode(CreateOrderBaseVo createOrderBaseVo, AssortmentCustomerInfoVo userLoginInfoDto) {
if (StringUtils.isBlank(createOrderBaseVo.getCardCode())) {
......@@ -184,7 +217,7 @@ public abstract class UniversalOrderService {
}
public OrderExtInfoDto getExtInfo(AssortmentCustomerInfoVo userLoginInfoDto, StoreResponse.BizVO storeResponseDto, Integer pushOrderTime,
CreateOrderBaseVo createOrderBaseVo, ShoppingCartGoodsDto shoppingCartGoodsDto, Map<String, Object> customParam) {
CreateOrderBaseVo createOrderBaseVo, ShoppingCartGoodsDto shoppingCartGoodsDto) {
Integer serviceTime = storeResponseDto.getServiceTime();
String sessionId = createOrderBaseVo.getSessionId();
......
package cn.freemud.service.universal.impl;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.bo.CreateOrderBo;
import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.CreateOrderBaseVo;
......@@ -32,6 +33,11 @@ public class SaasOrderService extends UniversalOrderService {
}
@Override
public CreateOrderBo getCreateOrderBo(CreateOrderBaseVo createOrderBaseVo, AssortmentCustomerInfoVo userLoginInfoDto) {
return null;
}
@Override
public void validParam(CreateOrderBaseVo createOrderBaseVo) {
CreateOrderSaasVo createOrderSaasVo = (CreateOrderSaasVo) createOrderBaseVo;
HibernateValidatorConfiguration configuration = Validation.byProvider(HibernateValidator.class)
......@@ -49,6 +55,11 @@ public class SaasOrderService extends UniversalOrderService {
}
@Override
public BaseResponse createSharedOrder(CreateOrderBaseVo createOrderBaseVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto, AssortmentCustomerInfoVo userLoginInfoDto) {
return null;
}
@Override
public BaseResponse createSharedOrder(CreateOrderBaseVo createOrderBaseVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto, AssortmentCustomerInfoVo userLoginInfoDto, Map<String, Object> customParam) {
return null;
}
......
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