Commit 8a9c4b03 by 徐康

Merge remote-tracking branch 'origin/develop' into develop

parents b5a3f887 fb3599cd
......@@ -102,7 +102,7 @@ public class CreateOrderVo {
private String expectTime;
/**
* 取餐标识 0=我已到店、尽快送出
* 取餐标识 0=我已到店、尽快送出 1预约单
*/
private String takeMealFlag;
/**
......
......@@ -61,9 +61,11 @@ public enum ResponseResult {
STORE_BIND_MALL_NOT_FOUND("43014", "商城门店存在"),
STORE_DISCONTENT_DELIVERY_CONDITION("43015", "门店起送条件设置错误"),
STORE_DISCONTENT_DELIVERY_CUP("43016", "不满足起送杯数"),
STORE_CLOSED_FOREVER("43017", "门店已关闭,请选择其他门店"),
STORE_CLOSED_THE_NIGHT("43018", "门店已打烊,请选择其他门店"),
STORE_DELIVERY_HOUR_ERROR("43019", "门店外卖时间错误"),
STORE_MAKE_AN_APPOINTMENT_STOP_BUSINESS("43017", "预约失败,请重新下单"),
STORE_MAKE_AN_APPOINTMENT_OPEN_BUSINESS("43018", "门店不支持预约,请重新选择"),
STORE_CLOSED_FOREVER("43019", "门店已关闭,请选择其他门店"),
STORE_CLOSED_THE_NIGHT("43020", "门店已打烊,请选择其他门店"),
STORE_DELIVERY_HOUR_ERROR("43021", "门店外卖时间错误"),
/**
* 购物车状态码
......@@ -149,10 +151,6 @@ public enum ResponseResult {
ORDER_STATUS_PRE_PAYMENT_NOT_SUPPORT("45060", "订单非待支付状态, 创建预支付失败"),
ORDER_TAKEMEALTIME_INVALID("45061", "你的隔日预约时间有误,请重新刷新后选择!"),
ORDER_CONVERT_ERROR("45062", "查询订单结果转换失败"),
ORDER_TAKE_MEAL_TIME_ERROR("450062", "你的到店取餐时间异常,请重新选择!"),
ORDER_MEALTIME_MISSING("450063", "你的取餐方式或取餐时间异常,请重新选择!"),
ORDER_TAKE_OUT_TIME_ERROR("450062", "你的外卖送达时间异常,请重新选择!"),
/**
* 支付
*/
......
package cn.freemud.service.adapter;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import java.util.Objects;
public abstract class AbstractOrderCheck implements OrderCheck {
/**
* 校验门店状态
* @param bizVO
*/
void doStoreStateCheck(StoreResponse.BizVO bizVO) {
// 校验门店是否停业 1 营业 2 停业 3 繁忙置休
if (!Objects.equals(bizVO.getState(), "1")) {
throw new ServiceException(ResponseResult.STORE_MAKE_AN_APPOINTMENT_STOP_BUSINESS);
// 营业
} else {
throw new ServiceException(ResponseResult.STORE_MAKE_AN_APPOINTMENT_OPEN_BUSINESS);
}
}
}
package cn.freemud.service.adapter;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.enums.CreateOrderType;
import cn.freemud.interceptor.ServiceException;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
/**
* 订单检查
*/
public interface OrderCheck {
/***
* 是否匹配
* @param orderType {@link CreateOrderType}
* @return
*/
boolean support(int orderType);
/**
* 检查
* @param vo
* @param storeResponse
*/
void check(CreateOrderVo vo, StoreResponse storeResponse) throws ServiceException;
}
package cn.freemud.service.adapter;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.Objects;
/**
* 订单校验
*/
@Slf4j
public class OrderCheckAdapter {
static ArrayList<OrderCheck> orderCheckList = Lists.newArrayList(new ToStoreCheck(), new TakeOutOrderCheck());
/***
* 校验预约单门店数据
* @param vo
* @param storeResponse
* @throws ServiceException 抛出异常校验异常数据
*/
public static void check(CreateOrderVo vo, StoreResponse storeResponse) throws ServiceException {
//非预约单的过滤
if (Objects.isNull(vo.getOrderType()) ||
(!Objects.equals(vo.getTakeMealFlag(), "1"))) {
return;
}
StoreResponse.Configuration configuration = storeResponse.getBizVO().getStoreConfig();
log.info("门店:{},外卖预约单状态:{},自提预约单状态:{}", vo.getShopId(), configuration.getDeliveryAppoint(), configuration.getSelfMentionSwitch());
for (OrderCheck orderCheck : orderCheckList) {
if (orderCheck.support(vo.getOrderType())) {
orderCheck.check(vo, storeResponse);
return;
}
}
}
}
package cn.freemud.service.adapter;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.enums.CreateOrderType;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import java.util.Objects;
/**
* 外卖订单检查
*/
public class TakeOutOrderCheck extends AbstractOrderCheck {
@Override
public boolean support(int orderType) {
return CreateOrderType.TAKE_OUT.getCode() == orderType;
}
@Override
public void check(CreateOrderVo vo, StoreResponse storeResponse) {
StoreResponse.BizVO bizVO = storeResponse.getBizVO();
StoreResponse.Configuration storeConfig = bizVO.getStoreConfig();
// 关闭预约单
if (Objects.equals(storeConfig.getDeliveryAppoint(), 0)) {
super.doStoreStateCheck(bizVO);
}
}
}
package cn.freemud.service.adapter;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.enums.CreateOrderType;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import java.util.Objects;
/**
* 到店订单检查
*/
public class ToStoreCheck extends AbstractOrderCheck {
@Override
public boolean support(int orderType) {
return CreateOrderType.COLLECT_GOODS.getCode() == orderType;
}
@Override
public void check(CreateOrderVo vo, StoreResponse storeResponse) {
StoreResponse.BizVO bizVO = storeResponse.getBizVO();
StoreResponse.Configuration storeConfig = bizVO.getStoreConfig();
// 关闭预约单
if (Objects.equals(storeConfig.getSelfMentionSwitch(), 0)) {
super.doStoreStateCheck(bizVO);
}
}
}
......@@ -27,6 +27,7 @@ import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.manager.StoreTableNumberManager;
import cn.freemud.service.CouponService;
import cn.freemud.service.adapter.OrderCheckAdapter;
import cn.freemud.service.thirdparty.ShoppingCartClient;
import cn.freemud.service.thirdparty.StockClient;
import cn.freemud.utils.LogUtil;
......@@ -120,7 +121,7 @@ public class CheckOrder {
throw new ServiceException(ResponseResult.NOT_LOGIN);
}
//校验会员svc卡信息
checkCardCode(createOrderVo.getPartnerId(),userLoginInfoDto.getMemberId(),createOrderVo.getCardCode());
checkCardCode(createOrderVo.getPartnerId(), userLoginInfoDto.getMemberId(), createOrderVo.getCardCode());
createOrderVo.setUserId(userLoginInfoDto.getMemberId());
return userLoginInfoDto;
......@@ -134,7 +135,7 @@ public class CheckOrder {
throw new ServiceException(ResponseResult.NOT_LOGIN);
}
//校验会员svc卡信息
checkCardCode(userLoginInfoDto.getPartnerId(),userLoginInfoDto.getMemberId(),cardCode);
checkCardCode(userLoginInfoDto.getPartnerId(), userLoginInfoDto.getMemberId(), cardCode);
return userLoginInfoDto;
}
......@@ -159,6 +160,9 @@ public class CheckOrder {
if (storeResponse == null || storeResponse.getBizVO() == null) {
throw new ServiceException(ResponseResult.STORE_NOT_FOUND);
}
//订单预约单检查
OrderCheckAdapter.check(createOrderVo, storeResponse);
StoreResponse.BizVO storeResponseDto = storeResponse.getBizVO();
// 校验门店是否停业 1 营业 2 停业 3 繁忙置休
if (storeResponseDto.getActiveFlag() == null || storeResponseDto.getActiveFlag() != 1) {
......
......@@ -144,7 +144,7 @@
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
<artifactId>sdk-common-base</artifactId>
<version>1.3.9-SNAPSHOT</version>
<version>1.5.2.RELEASE</version>
</dependency>
<!-- mybatis -->
......
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