Commit 07ea3939 by ping.wu

隔天预约单调整

parent 650a7edc
......@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.2.2.RELEASE</version>
<version>1.1.7-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
......@@ -38,7 +38,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>ordercenter-sdk</artifactId>
<version>1.1.6.RELEASE</version>
<version>1.1.7-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......
......@@ -15,3 +15,4 @@
| 1.2.0.RELEASE| 开放平台创建订单 | 姜海波 | 2020-02-24 |
| 1.2.1.RELEASE| 基于1.2.0.RELEASE | 丁凯 | 2020-03-04 |
| 1.2.2.RELEASE| 升级RELEASE | wuping | 2020-03-04 |
| 1.1.7-SNAPSHOT| 预约单支付成功接口增加预约任务 | wuping | 2020-03-10 |
\ No newline at end of file
......@@ -52,6 +52,10 @@ public class ConfirmOrderRequest extends BaseConfig {
//操作人
private String operator;
private List<OrderSettlement>orderSettlements;
//用户预约时间,仅为预约单时存放
private String expectTime;
@Data
public static class OrderSettlement{
/**
......
......@@ -4,6 +4,7 @@ import cn.freemud.amqp.Header;
import cn.freemud.amqp.MQAction;
import cn.freemud.amqp.MQMessage;
import cn.freemud.amqp.MQService;
import cn.freemud.base.util.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
......@@ -28,10 +29,7 @@ import com.freemud.application.sdk.api.membercenter.service.MemberPropertyServic
import com.freemud.application.sdk.api.membercenter.service.MemberScoreService;
import com.freemud.application.sdk.api.ordercenter.enums.*;
import com.freemud.application.sdk.api.ordercenter.request.*;
import com.freemud.application.sdk.api.ordercenter.request.create.BatchQueryByCodesReq;
import com.freemud.application.sdk.api.ordercenter.request.create.CreateFatherSonOrderReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderItemCreateReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderSettlementCreateReq;
import com.freemud.application.sdk.api.ordercenter.request.create.*;
import com.freemud.application.sdk.api.ordercenter.response.*;
import com.freemud.application.sdk.api.ordercenter.response.AfterSalesListResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
......@@ -60,6 +58,7 @@ import com.freemud.sdk.api.assortment.order.adapter.*;
import com.freemud.sdk.api.assortment.order.entities.OrderEditInfo;
import com.freemud.sdk.api.assortment.order.entities.OrderExtInfoDTO;
import com.freemud.sdk.api.assortment.order.enums.*;
import com.freemud.sdk.api.assortment.order.request.order.CreateOrderRequest;
import com.freemud.sdk.api.assortment.order.request.order.OrderDownloadRequest;
import com.freemud.sdk.api.assortment.order.request.order.*;
import com.freemud.sdk.api.assortment.order.response.order.*;
......@@ -75,10 +74,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Import;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import static com.freemud.application.sdk.api.membercenter.constant.InterfaceAddressConstant.MEMBER_EXTEND_INFO;
......@@ -244,8 +240,21 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
request.setPayRequestNo(confirmOrderRequest.getPayVoucher());
request.setCompleteOrderCode(confirmOrderRequest.getCompleteOrderCode());
request.setOrderCode(confirmOrderRequest.getOrderId());
Integer timeout = getPaySuccessTimeout(confirmOrderRequest);
// 引入门店基础服务 查询自动制作完成配置时间
request.setTimeout(getPaySuccessTimeout(confirmOrderRequest));
request.setTimeout(timeout);
//设置预约单支付成功超时任务
if(StringUtils.isNotBlank(confirmOrderRequest.getExpectTime()) && timeout != 0){
OrderTaskReq orderTask = new OrderTaskReq();
orderTask.setTaskType(2);
orderTask.setTaskTime(confirmOrderRequest.getExpectTime());
Date processingDate = DateUtil.addMinutes(DateUtil.convert2Date(confirmOrderRequest.getExpectTime(), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS), timeout);
orderTask.setProcessingTime(DateUtil.convert2String(processingDate,DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
orderTask.setTimeout(timeout);
request.setTimeout(0);
request.setOrderTask(orderTask);
}
if (!org.springframework.util.CollectionUtils.isEmpty(confirmOrderRequest.getOrderSettlements())) {
List<OrderSettlementCreateReq> orderSettlementCreateReqs = new ArrayList<>();
int size = confirmOrderRequest.getOrderSettlements().size();
......@@ -282,7 +291,6 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
request.setExtInfo(JSON.toJSONString(extInfoDTO));
}catch (Exception e){
ErrorLog.printErrorLog("getMemberExtendInfoError",MEMBER_EXTEND_INFO,confirmOrderRequest,e);
}
com.freemud.application.sdk.api.ordercenter.response.BaseResponse<PaySuccessResp> response = orderSdkService.paySuccess(request, confirmOrderRequest.getTrackingNo());
//获取会员信息直接返回,非空判断
......
......@@ -40,7 +40,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.2.2.RELEASE</version>
<version>1.1.7-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......
......@@ -468,13 +468,13 @@ public class OrderAdapter {
String latitude = userDeliveryInfoDto != null ? userDeliveryInfoDto.getUserLatitude() : "";
String longitude = userDeliveryInfoDto != null ? userDeliveryInfoDto.getUserLongitude() : "";
String remark = StringUtils.isNotBlank(createOrderVo.getOrderRemark()) ? createOrderVo.getOrderRemark() : "";
StringBuffer takeMealTime = new StringBuffer("");
Date takeMealDate = null;
if (StringUtils.isNotBlank(createOrderVo.getTakeMealTime())) {
takeMealTime = takeMealTime.append(DateUtil.convert2String(new Date(), "yyyy-MM-dd"))
.append(" ").append(createOrderVo.getTakeMealTime()).append(":00");
takeMealDate = DateUtil.convert2Date(takeMealTime.toString(), "yyyy-MM-dd HH:mm:ss");
}
// StringBuffer takeMealTime = new StringBuffer("");
// Date takeMealDate = null;
// if (StringUtils.isNotBlank(createOrderVo.getTakeMealTime())) {
// takeMealTime = takeMealTime.append(DateUtil.convert2String(new Date(), "yyyy-MM-dd"))
// .append(" ").append(createOrderVo.getTakeMealTime()).append(":00");
// takeMealDate = DateUtil.convert2Date(takeMealTime.toString(), "yyyy-MM-dd HH:mm:ss");
// }
BaseCreateOrderRequest createOrderDto = new BaseCreateOrderRequest();
createOrderDto.setCompanyId(createOrderVo.getPartnerId());
createOrderDto.setShopId(createOrderVo.getShopId());
......@@ -495,7 +495,7 @@ public class OrderAdapter {
createOrderDto.setSource(OrderSourceType.SAAS.getCode());
createOrderDto.setSourceName(OrderSourceType.SAAS.getDesc());
createOrderDto.setRemark(remark);
createOrderDto.setGmtExpect(takeMealDate != null ? takeMealDate.getTime() : null);
createOrderDto.setGmtExpect(createOrderVo.getTakeMealTime() != null ? DateUtil.convert2Date(createOrderVo.getTakeMealTime(),"yyyy-MM-dd HH:mm:ss").getTime() : null);
BaseCreateOrderRequest.DeliveryTypeInfo deliveryTypeInfo = new BaseCreateOrderRequest.DeliveryTypeInfo();
deliveryTypeInfo.setDeliveryType(QueryDeliveryType.getByCode(deliveryType));
createOrderDto.setAddInfo(deliveryTypeInfo);
......@@ -529,15 +529,15 @@ public class OrderAdapter {
String latitude = userDeliveryInfoDto != null ? userDeliveryInfoDto.getUserLatitude() : "";
String longitude = userDeliveryInfoDto != null ? userDeliveryInfoDto.getUserLongitude() : "";
String remark = StringUtils.isNotBlank(createOrderVo.getOrderRemark()) ? createOrderVo.getOrderRemark() : "";
StringBuffer takeMealTime = new StringBuffer("");
// StringBuffer takeMealTime = new StringBuffer("");
CreateFatherSonOrderRequest.OrderInfo productOrderInfo = new CreateFatherSonOrderRequest.OrderInfo();
Date takeMealDate = null;
if (StringUtils.isNotBlank(createOrderVo.getTakeMealTime())) {
takeMealTime = takeMealTime.append(DateUtil.convert2String(new Date(), "yyyy-MM-dd"))
.append(" ").append(createOrderVo.getTakeMealTime()).append(":00");
takeMealDate = DateUtil.convert2Date(takeMealTime.toString(), "yyyy-MM-dd HH:mm:ss");
productOrderInfo.setOrderTask(saveOrderTaskReq(orderWarnTime,takeMealDate.getTime()));
}
// Date takeMealDate = null;
// if (StringUtils.isNotBlank(createOrderVo.getTakeMealTime())) {
// takeMealTime = takeMealTime.append(DateUtil.convert2String(new Date(), "yyyy-MM-dd"))
// .append(" ").append(createOrderVo.getTakeMealTime()).append(":00");
// takeMealDate = DateUtil.convert2Date(takeMealTime.toString(), "yyyy-MM-dd HH:mm:ss");
// productOrderInfo.setOrderTask(saveOrderTaskReq(orderWarnTime,takeMealDate.getTime()));
// }
productOrderInfo.setPartnerId(createOrderVo.getPartnerId());
productOrderInfo.setShopId(createOrderVo.getShopId());
productOrderInfo.setShopName(createOrderVo.getStoreName());
......@@ -558,17 +558,17 @@ public class OrderAdapter {
productOrderInfo.setSource(OrderSourceType.SAAS.getCode());
productOrderInfo.setSourceName(OrderSourceType.SAAS.getDesc());
productOrderInfo.setRemark(remark);
productOrderInfo.setGmtExpect(takeMealDate != null ? takeMealDate.getTime() : null);
productOrderInfo.setGmtExpect(createOrderVo.getTakeMealTime() != null ? DateUtil.convert2Date(createOrderVo.getTakeMealTime(),"yyyy-MM-dd HH:mm:ss").getTime() : null);
BaseCreateOrderRequest.DeliveryTypeInfo deliveryTypeInfo = new BaseCreateOrderRequest.DeliveryTypeInfo();
deliveryTypeInfo.setDeliveryType(QueryDeliveryType.getByCode(deliveryType));
productOrderInfo.setAddInfo(deliveryTypeInfo);
productOrderInfo.setAmount(0L);
productOrderInfo.setBarCounter(createOrderVo.getTableNumber());
productOrderInfo.setOrderClient(OrderClientType.SAAS.getIndex());
if (StringUtils.isNotBlank(createOrderVo.getTakeMealTime())) {
takeMealTime = takeMealTime.append(DateUtil.convert2String(new Date(), "yyyy-MM-dd"))
.append(" ").append(createOrderVo.getTakeMealTime()).append(":00");
}
// if (StringUtils.isNotBlank(createOrderVo.getTakeMealTime())) {
// takeMealTime = takeMealTime.append(DateUtil.convert2String(new Date(), "yyyy-MM-dd"))
// .append(" ").append(createOrderVo.getTakeMealTime()).append(":00");
// }
long deliveryAmount = 0;
if (userDeliveryInfoDto != null) {
deliveryAmount = getUserRealDeliveryAmount(userDeliveryInfoDto.getStoreDeliveryInfoDto(), userDeliveryInfoDto.getUserLongitude(), userDeliveryInfoDto.getUserLatitude());
......
......@@ -154,15 +154,20 @@ public class CheckOrder {
}
Date date = new Date();
String startDateTimeStr = DateUtil.convert2String(date, DateUtil.FORMAT_YMD) + " " + businessHours[0] + ":00";
Date startDateTime = DateUtil.convert2Date(startDateTimeStr, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS);
String endDateTimeStr = DateUtil.convert2String(date, DateUtil.FORMAT_YMD) + " " + businessHours[1] + ":00";
Date startDateTime ;
Date endDateTime ;
startDateTime = DateUtil.convert2Date(startDateTimeStr, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS);
SimpleDateFormat hhmmss = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date endDateTime;
try {
endDateTime = hhmmss.parse(endDateTimeStr);
} catch (ParseException e) {
throw new ServiceException(ResponseResult.STORE_BUSINESS_HOUR_ERROR);
}
//隔天营业时间处理
if(startDateTime.after(endDateTime)){
endDateTime = DateUtil.addDays(endDateTime,1);
}
storeResponseDto.setBusinessHoursDayStartTime(startDateTime);
storeResponseDto.setBusinessHoursDayEndTime(endDateTime);
......@@ -197,6 +202,20 @@ public class CheckOrder {
.append(" ").append(createOrderVo.getTakeMealTime()).append(":00");
takeMealDateTime = DateUtil.convert2Date(takeMealTime.toString(), "yyyy-MM-dd HH:mm:ss");
}
// System.out.println(takeMealDateTime.before(storeResponseDto.getBusinessHoursDayStartTime()));
// Date convert2Date = DateUtil.convert2Date(storeResponseDto.getBusinessHoursDayStartTime(), "yyyy-MM-dd");
// boolean before = takeMealDateTime.before(DateUtil.addDays(convert2Date, 1));
//隔天预约时间处理 8:00-2:00 预约1:00 ,下单时间在2:00 - 23:59加1天,00:00-1:59不加
if(takeMealDateTime != null && takeMealDateTime.before(storeResponseDto.getBusinessHoursDayStartTime())
&& takeMealDateTime.before(DateUtil.addDays(DateUtil.convert2Date(storeResponseDto.getBusinessHoursDayStartTime(),"yyyy-MM-dd"),1))){
takeMealDateTime = DateUtil.addDays(takeMealDateTime,1);
}
//有预约时间,预约时间要在营业时间范围内
if (takeMealDateTime != null && (takeMealDateTime.before(storeResponseDto.getBusinessHoursDayStartTime())
|| takeMealDateTime.after(storeResponseDto.getBusinessHoursDayEndTime()))) {
throw new ServiceException(ResponseResult.ORDER_TAKEMEALTIME_INVAILD);
}
String appId = userLoginInfoDto.getWxAppId();
// 校验小程序是否支持到店或者外卖
OpenPlatformIappWxappConfig config = openPlatformIappWxappConfigManager.selectIappWxappConfigByWxAppId(appId);
......@@ -208,12 +227,6 @@ public class CheckOrder {
if (storeResponseDto.getIsSelfMention() == null || storeResponseDto.getIsSelfMention() != 1) {
throw new ServiceException(ResponseResult.STORE_NOT_ENABLE_COLLECT_GOODS);
}
//有预约时间,预约时间要在营业时间范围内
if (takeMealDateTime != null && (takeMealDateTime.before(storeResponseDto.getBusinessHoursDayStartTime())
|| takeMealDateTime.after(storeResponseDto.getBusinessHoursDayEndTime()))) {
throw new ServiceException(ResponseResult.ORDER_TAKEMEALTIME_INVAILD);
}
createOrderVo.setUserName(userLoginInfoDto.getNickName());
createOrderVo.setMobile(userLoginInfoDto.getMobile());
}
......@@ -256,14 +269,11 @@ public class CheckOrder {
if (startDate == null || endDate == null || date.after(endDate)) {
throw new ServiceException(ResponseResult.ORDER_CREATE_TIME_NOT_DELIVERY);
}
if (StringUtils.isNotBlank(createOrderVo.getTakeMealTime())) {
storeDeliveryInfoDto.setPushOrderTime(30);
}
// 校验预约配送时间
if (StringUtils.isBlank(createOrderVo.getTakeMealTime()) && date.before(startDate)) {
long takeAwayTime = startDate.getTime() + storeResponseDto.getServiceTime() * 60 * 1000L;
takeMealDateTime = new Date(takeAwayTime);
createOrderVo.setTakeMealTime(DateUtil.convert2Str(takeMealDateTime, "HH:mm"));
// createOrderVo.setTakeMealTime(DateUtil.convert2Str(takeMealDateTime, "HH:mm"));
}
if (takeMealDateTime != null && (takeMealDateTime.before(startDate) || takeMealDateTime.after(endDate))) {
throw new ServiceException(ResponseResult.ORDER_CREATE_TIME_NOT_DELIVERY);
......@@ -271,7 +281,10 @@ public class CheckOrder {
storeDeliveryInfoDto.setEnableTakeaway(true);
// 校验收货地址是否可配送
checkReceiveAddress(storeDeliveryInfoDto, createOrderVo);
pushOrderTime = storeDeliveryInfoDto.getPushOrderTime();
}
//重新赋值为yyyy-MM-dd HH:mm:ss格式字符串时间
if(takeMealDateTime != null){
createOrderVo.setTakeMealTime(DateUtil.convert2String(takeMealDateTime, "yyyy-MM-dd HH:mm:ss"));
}
//非到店或者外卖,类型错误
if (!(CreateOrderType.COLLECT_GOODS.getCode().equals(createOrderVo.getOrderType()) ||
......
......@@ -393,6 +393,7 @@ public class OrderServiceImpl implements Orderservice {
var1.setPayDate(DateUtil.convert2String(new Date(), "yyyy-MM-dd HH:mm:ss"));
var1.setPayTransId(message.getOut_trade_no());
var1.setOperator(orderBean.getUserName());
var1.setExpectTime(DateUtil.convert2String(new Date(orderBean.getGmtExpect()),DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
// 订单支付成功
com.freemud.sdk.api.assortment.order.response.order.PayAccessResponse payAccessRes = orderCenterSdkService.payAccess(var1);
......
......@@ -8,7 +8,7 @@
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<version>1.1.6.RELEASE</version>
<version>1.1.7-SNAPSHOT</version>
<artifactId>ordercenter-sdk</artifactId>
<dependencies>
......
......@@ -10,3 +10,4 @@
| 1.1.4-SNAPSHOT | 优化活动订单 | 胡超 | 2020-02-10 |
| 1.1.6-SNAPSHOT | OrderExtInfo新增formId | wuping | 2020-02-27 |
| 1.1.6.RELEASE | 升级RELEASE | wuping | 2020-03-04 |
| 1.1.7-SNAPSHOT | 预约单支付成功接口增加预约任务 | wuping | 2020-03-10 |
\ No newline at end of file
......@@ -13,6 +13,7 @@
package com.freemud.application.sdk.api.ordercenter.request;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderSettlementCreateReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderTaskReq;
import lombok.Data;
import java.util.List;
......@@ -48,4 +49,7 @@ public class PaySuccessReq {
//操作人
private String operator;
//预订单任务
private OrderTaskReq orderTask;
}
......@@ -24,6 +24,9 @@ public class OrderTaskReq {
private String taskTime;
//任务类型:1预约单 (OrderType设置为2预约堂食,4预约外送,6预约自取 默认为预约单)
//2 超时回调
private Integer taskType;
private Integer timeout;
}
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