Commit 8a6a793b by 周晓航

预定单开发

Signed-off-by: 周晓航 <xiaohang.zhou@freemud.com>
parent 79a6d6cd
...@@ -679,6 +679,7 @@ public class OrderAdapter { ...@@ -679,6 +679,7 @@ public class OrderAdapter {
// log.debug("getCreateOrderDto sessionId:{},createOrderVo:{}",createOrderVo.getSessionId(),JSON.toJSONString(createOrderVo)); // log.debug("getCreateOrderDto sessionId:{},createOrderVo:{}",createOrderVo.getSessionId(),JSON.toJSONString(createOrderVo));
Integer orderType; Integer orderType;
String receiveAddress = createOrderVo.getStoreAddress(); String receiveAddress = createOrderVo.getStoreAddress();
// fisherman -> 爱马哥 orderType落库的类型处理
if (Objects.equals(createOrderVo.getOrderType(), CreateOrderType.TAKE_OUT.getCode())) { if (Objects.equals(createOrderVo.getOrderType(), CreateOrderType.TAKE_OUT.getCode())) {
orderType = OrderType.TAKE_OUT.getCode(); orderType = OrderType.TAKE_OUT.getCode();
receiveAddress = (userDeliveryInfoDto != null ? userDeliveryInfoDto.getReceiveOfficeName() + "," + userDeliveryInfoDto.getReceiveAddress() : ""); receiveAddress = (userDeliveryInfoDto != null ? userDeliveryInfoDto.getReceiveOfficeName() + "," + userDeliveryInfoDto.getReceiveAddress() : "");
......
...@@ -270,6 +270,17 @@ public class CreateOrderVo { ...@@ -270,6 +270,17 @@ public class CreateOrderVo {
private String monthlyCardCode; private String monthlyCardCode;
/** /**
* 预定单的 您的电话
*/
private String userPhone;
/**
* 预定单 蛋糕寄语(额外祝福语) 最多20个字
*/
private String sendWord;
/**
* 是否使用电子风味卡,如果不为空则为使用 * 是否使用电子风味卡,如果不为空则为使用
*/ */
@Valid @Valid
......
...@@ -3,7 +3,7 @@ package cn.freemud.service.adapter; ...@@ -3,7 +3,7 @@ package cn.freemud.service.adapter;
import cn.freemud.entities.vo.CreateOrderBaseVo; import cn.freemud.entities.vo.CreateOrderBaseVo;
import cn.freemud.entities.vo.CreateOrderVo; import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.enums.BizTypeEnum; import com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
import cn.freemud.utils.AppLogUtil; import cn.freemud.utils.AppLogUtil;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse; import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
......
...@@ -3,7 +3,6 @@ package cn.freemud.service.impl; ...@@ -3,7 +3,6 @@ package cn.freemud.service.impl;
import cn.freemud.adapter.OrderAdapter; import cn.freemud.adapter.OrderAdapter;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.constant.ResponseCodeConstant; import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.constant.ShoppingCartConstant;
import cn.freemud.entities.dto.ConfirmOrderDto; import cn.freemud.entities.dto.ConfirmOrderDto;
import cn.freemud.entities.dto.QueryOrdersResponseDto; import cn.freemud.entities.dto.QueryOrdersResponseDto;
import cn.freemud.entities.dto.coupon.InvalidCouponsRequestDto; import cn.freemud.entities.dto.coupon.InvalidCouponsRequestDto;
...@@ -29,6 +28,7 @@ import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare; ...@@ -29,6 +28,7 @@ import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare;
import com.freemud.application.sdk.api.constant.ResponseResultEnum; import com.freemud.application.sdk.api.constant.ResponseResultEnum;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType; import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType;
import com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType; import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto; import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest; import com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest;
...@@ -63,7 +63,6 @@ import org.springframework.stereotype.Service; ...@@ -63,7 +63,6 @@ import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
......
...@@ -50,7 +50,6 @@ import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformIapp ...@@ -50,7 +50,6 @@ import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformIapp
import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformPartnerStoreDeliveryConfigManager; import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformPartnerStoreDeliveryConfigManager;
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager; import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
import com.freemud.application.sdk.api.base.BaseResponse; import com.freemud.application.sdk.api.base.BaseResponse;
import com.freemud.application.sdk.api.log.ApiLog;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest; import com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest;
import com.freemud.application.sdk.api.membercenter.request.StatisticalPropertyRequest; import com.freemud.application.sdk.api.membercenter.request.StatisticalPropertyRequest;
...@@ -58,6 +57,7 @@ import com.freemud.application.sdk.api.membercenter.response.GetSvcInfoByMemberI ...@@ -58,6 +57,7 @@ import com.freemud.application.sdk.api.membercenter.response.GetSvcInfoByMemberI
import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse; import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse;
import com.freemud.application.sdk.api.membercenter.service.MemberCenterService; import com.freemud.application.sdk.api.membercenter.service.MemberCenterService;
import com.freemud.application.sdk.api.membercenter.service.MemberPropertyService; import com.freemud.application.sdk.api.membercenter.service.MemberPropertyService;
import com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum;
import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService; import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService;
import com.freemud.application.sdk.api.storecenter.request.QueryDeliveryRequest; import com.freemud.application.sdk.api.storecenter.request.QueryDeliveryRequest;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest; import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
...@@ -271,24 +271,21 @@ public class CheckOrder { ...@@ -271,24 +271,21 @@ public class CheckOrder {
CreateOrderType.TAKE_OUT.getCode().equals(createOrderVo.getOrderType()))) { CreateOrderType.TAKE_OUT.getCode().equals(createOrderVo.getOrderType()))) {
throw new ServiceException(ResponseResult.PARAMETER_MISSING); throw new ServiceException(ResponseResult.PARAMETER_MISSING);
} }
// fisherman-ka 预定单-> 预订时间 校验
if (Objects.nonNull(createOrderVo.getBizType())
&& BizTypeEnum.ADVANCE_ORDER.getBizType().compareTo(createOrderVo.getBizType()) == 0) {
// 取餐时间
String takeMealTimes = createOrderVo.getTakeMealTime();
if (Objects.isNull(takeMealTimes)) {
throw new ServiceException(ResponseResult.PARAMETER_MISSING);
}
}
// TODO: 2020/6/16 门店校验处理 // TODO: 2020/6/16 门店校验处理
// 取餐标识 -> 0 我已到店 1预约单 // 取餐标识 -> 0 我已到店 1预约单
String takeMealFlag = createOrderVo.getTakeMealFlag(); String takeMealFlag = createOrderVo.getTakeMealFlag();
// 取餐时间 // 取餐时间
String takeMealTimes = createOrderVo.getTakeMealTime(); String takeMealTimes = createOrderVo.getTakeMealTime();
// fisherman-ka 预定单-> 预订时间 校验
//立即送达 boolean isAdvanceOrder = this.getIsAdvanceOrder(createOrderVo.getBizType());
if (isAdvanceOrder) {
// 预定单 到店&外卖 必须有取餐时间
if (Objects.isNull(takeMealTimes)) {
throw new ServiceException(ResponseResult.PARAMETER_MISSING);
}
}
//立即送达 预定单不会走立即送达
if ("0".equals(takeMealFlag) || (StringUtils.isEmpty(createOrderVo.getExpectTime()) && StringUtils.isEmpty(takeMealTimes))) { if ("0".equals(takeMealFlag) || (StringUtils.isEmpty(createOrderVo.getExpectTime()) && StringUtils.isEmpty(takeMealTimes))) {
//未营业无预约时间无法下单 //未营业无预约时间无法下单
if (!StoreConstant.BUSINESS.equals(storeResponseDto.getState())) { if (!StoreConstant.BUSINESS.equals(storeResponseDto.getState())) {
...@@ -306,8 +303,13 @@ public class CheckOrder { ...@@ -306,8 +303,13 @@ public class CheckOrder {
Date takeMealDateTime = getOrderExpectTime(takeMealFlag, takeMealTimes, createOrderVo.getExpectTime(), Date takeMealDateTime = getOrderExpectTime(takeMealFlag, takeMealTimes, createOrderVo.getExpectTime(),
CreateOrderType.getByCode(createOrderVo.getOrderType()), storeResponseDto.getServiceTime(), storeResponseDto); CreateOrderType.getByCode(createOrderVo.getOrderType()), storeResponseDto.getServiceTime(), storeResponseDto);
if (takeMealDateTime != null) { if (takeMealDateTime != null) {
//校验预约时间 //校验预约时间 -->
checkOrderExpectTime(createOrderVo, storeResponseDto, takeMealDateTime); if (!isAdvanceOrder) {
checkOrderExpectTime(createOrderVo, storeResponseDto, takeMealDateTime);
}else {
//fisherman-ka 预定单校验是否在预计开业时间范围内, 2. 校验 营业结束前十分钟,不允许下预约单(上面有代码,可以复用)
// checkAdvanceOrderExpectTime();
}
//重新赋值为yyyy-MM-dd HH:mm:ss格式字符串时间 //重新赋值为yyyy-MM-dd HH:mm:ss格式字符串时间
createOrderVo.setExpectTime(DateUtil.convert2String(takeMealDateTime, "yyyy-MM-dd HH:mm:ss")); createOrderVo.setExpectTime(DateUtil.convert2String(takeMealDateTime, "yyyy-MM-dd HH:mm:ss"));
} }
...@@ -394,6 +396,16 @@ public class CheckOrder { ...@@ -394,6 +396,16 @@ public class CheckOrder {
} }
/** /**
* 是否是 预定单
* @param bizType=7 就是预定单
* @return true 预定单
*/
private boolean getIsAdvanceOrder(Integer bizType) {
return Objects.nonNull(bizType)
&& BizTypeEnum.ADVANCE_ORDER.getBizType().compareTo(bizType) == 0;
}
/**
* 获取门店营业时间 * 获取门店营业时间
* *
* @param storeResponseDto * @param storeResponseDto
......
...@@ -2520,6 +2520,9 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2520,6 +2520,9 @@ public class OrderServiceImpl implements Orderservice {
AssortmentCustomerInfoVo userLoginInfoDto) { AssortmentCustomerInfoVo userLoginInfoDto) {
CreateOrderOperateDto response = new CreateOrderOperateDto(); CreateOrderOperateDto response = new CreateOrderOperateDto();
OrderExtendedReq orderExtendedReq = orderAdapter.saveStoreInfo(storeResponseDto); OrderExtendedReq orderExtendedReq = orderAdapter.saveStoreInfo(storeResponseDto);
// fisherman 爱马哥蛋糕 预定 额外字段存储
orderExtendedReq.setUserPhone(createOrderVo.getUserPhone());
orderExtendedReq.setSendWord(createOrderVo.getSendWord());
OrderClientType orderClient = OrderClientType.SAAS; OrderClientType orderClient = OrderClientType.SAAS;
String appId = userLoginInfoDto.getWxAppId(); String appId = userLoginInfoDto.getWxAppId();
if ("2".equals(userLoginInfoDto.getChannel())) { if ("2".equals(userLoginInfoDto.getChannel())) {
......
package cn.freemud.enums; package com.freemud.application.sdk.api.ordercenter.enums;
/** /**
...@@ -37,8 +37,8 @@ public enum BizTypeEnum { ...@@ -37,8 +37,8 @@ public enum BizTypeEnum {
this.desc = desc; this.desc = desc;
} }
public static cn.freemud.enums.BizTypeEnum getByCode(Integer code) { public static BizTypeEnum getByCode(Integer code) {
for (cn.freemud.enums.BizTypeEnum bizTypeEnum : values()) { for (BizTypeEnum bizTypeEnum : values()) {
if (bizTypeEnum.getBizType().equals(code)) { if (bizTypeEnum.getBizType().equals(code)) {
return bizTypeEnum; return bizTypeEnum;
} }
......
...@@ -36,4 +36,13 @@ public class OrderExtendedReq { ...@@ -36,4 +36,13 @@ public class OrderExtendedReq {
* 团号 * 团号
*/ */
private String spellGroupCode; private String spellGroupCode;
/**
* 预定单的 您的电话
*/
private String userPhone;
/**
* 预定单 蛋糕寄语(额外祝福语)
*/
private String sendWord;
} }
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