Commit 0576d258 by zhiheng.zhang

Merge branch 'feature/20210125-益禾堂添加排队号-张志恒'

# Conflicts:
#	order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
#	ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/service/OrderSdkService.java
parents bb2f1380 253b3441
...@@ -3305,4 +3305,15 @@ public class OrderSdkAdapter { ...@@ -3305,4 +3305,15 @@ public class OrderSdkAdapter {
return couponLockRequest; return couponLockRequest;
} }
public QueryLineUpResponse convent2QueryLineUpResponse(BaseResponse baseResponse) {
QueryLineUpResponse response = new QueryLineUpResponse();
response.setErrcode(Integer.parseInt(baseResponse.getCode()));
response.setErrmsg(baseResponse.getMessage());
if (baseResponse.getResult() == null) {
return response;
}
response.setOrderCodes((List<String>) baseResponse.getResult());
return response;
}
} }
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: QueryOrderResponse
* @Package cn.freemud.entities.dto
* @Description: 订单列表
* @author: liming.guo
* @date: 2018/5/24 17:37
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package com.freemud.sdk.api.assortment.order.response.order;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@NoArgsConstructor
@Data
public class QueryLineUpResponse {
/**
* errcode : 100
* errmsg : 查询订单成功
*/
private List<String> orderCodes;
private int errcode;
private String errmsg;
}
\ No newline at end of file
...@@ -225,6 +225,14 @@ public class QueryOrdersResponse { ...@@ -225,6 +225,14 @@ public class QueryOrdersResponse {
*/ */
private String queueIndex; private String queueIndex;
/** /**
* 预计排队时间,排队人数
*/
private String returnWords;
/**
* 排队进度百分比
*/
private String progress = "" ; //进度
/**
* 订单类型 1 外卖 2 预订单 3 商城 4 打包带走 5 店内就餐 * 订单类型 1 外卖 2 预订单 3 商城 4 打包带走 5 店内就餐
*/ */
private Integer type; private Integer type;
......
...@@ -2,6 +2,7 @@ package com.freemud.sdk.api.assortment.order.service; ...@@ -2,6 +2,7 @@ package com.freemud.sdk.api.assortment.order.service;
import com.freemud.application.sdk.api.ordercenter.request.OrderModifyRelatingCodeReq; import com.freemud.application.sdk.api.ordercenter.request.OrderModifyRelatingCodeReq;
import com.freemud.application.sdk.api.ordercenter.request.QueryAfterSalesOrderConditionsReq; import com.freemud.application.sdk.api.ordercenter.request.QueryAfterSalesOrderConditionsReq;
import com.freemud.application.sdk.api.ordercenter.request.QueryLineUpOrderReq;
import com.freemud.application.sdk.api.ordercenter.response.AfterSalesListResp; import com.freemud.application.sdk.api.ordercenter.response.AfterSalesListResp;
import com.freemud.sdk.api.assortment.order.request.order.*; import com.freemud.sdk.api.assortment.order.request.order.*;
import com.freemud.sdk.api.assortment.order.response.order.*; import com.freemud.sdk.api.assortment.order.response.order.*;
...@@ -351,4 +352,9 @@ public interface OrderCenterSdkService { ...@@ -351,4 +352,9 @@ public interface OrderCenterSdkService {
*/ */
QueryPartnerRefundCountResponse queryRefundCount(QueryStoreRefundCountRequest request); QueryPartnerRefundCountResponse queryRefundCount(QueryStoreRefundCountRequest request);
/**
* 获取历史订单
*/
QueryLineUpResponse queryLineUpOrder(QueryLineUpOrderReq queryLineUpOrderReq);
} }
...@@ -1958,4 +1958,10 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -1958,4 +1958,10 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
} }
return null; return null;
} }
@Override
public QueryLineUpResponse queryLineUpOrder(QueryLineUpOrderReq queryLineUpOrderReq) {
com.freemud.application.sdk.api.ordercenter.response.BaseResponse<List<String>> response = orderSdkService.queryLineUpOrder(queryLineUpOrderReq, LogThreadLocal.getTrackingNo());
return orderSdkAdapter.convent2QueryLineUpResponse(response);
}
} }
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
<!-- 商户门店sdk --> <!-- 商户门店sdk -->
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<version>3.3.5-SNAPSHOT</version> <version>3.3.9-SNAPSHOT</version>
<artifactId>storecenter-sdk</artifactId> <artifactId>storecenter-sdk</artifactId>
</dependency> </dependency>
<dependency> <dependency>
......
...@@ -44,7 +44,7 @@ import java.util.concurrent.ThreadPoolExecutor; ...@@ -44,7 +44,7 @@ import java.util.concurrent.ThreadPoolExecutor;
@EnableSwagger2 @EnableSwagger2
@EnableCircuitBreaker @EnableCircuitBreaker
@SpringBootApplication @SpringBootApplication
@EnableDiscoveryClient //@EnableDiscoveryClient
@EnableAspectJAutoProxy @EnableAspectJAutoProxy
@ComponentScan({"cn.freemud", "com.freemud"}) @ComponentScan({"cn.freemud", "com.freemud"})
@MapperScan({"cn.freemud.*.dao","com.freemud.sdk.api.assortment.orderdistributor.mapper","com.freemud.api.assortment.datamanager.manager", @MapperScan({"cn.freemud.*.dao","com.freemud.sdk.api.assortment.orderdistributor.mapper","com.freemud.api.assortment.datamanager.manager",
......
...@@ -1407,6 +1407,9 @@ public class OrderAdapter { ...@@ -1407,6 +1407,9 @@ public class OrderAdapter {
responseVo.setEnableRefund(true); responseVo.setEnableRefund(true);
} }
responseVo.setMarketingType(ordersBean.getMarketingType()); responseVo.setMarketingType(ordersBean.getMarketingType());
responseVo.setReturnWords(ordersBean.getReturnWords());
responseVo.setProgress(ordersBean.getProgress());
responseVo.setQueueIndex(ordersBean.getQueueIndex());
list.add(responseVo); list.add(responseVo);
}); });
return list; return list;
......
...@@ -153,6 +153,14 @@ public class QueryOrderResponseVo { ...@@ -153,6 +153,14 @@ public class QueryOrderResponseVo {
*/ */
private String queueIndex; private String queueIndex;
/** /**
* 预计排队时间,排队人数
*/
private String returnWords;
/**
* 排队进度百分比
*/
private String progress = "" ; //进度
/**
* 申请退款按钮 * 申请退款按钮
*/ */
private Boolean buttonRefund; private Boolean buttonRefund;
......
...@@ -96,6 +96,7 @@ import com.freemud.application.sdk.api.ordercenter.request.OrderConditionsReq; ...@@ -96,6 +96,7 @@ import com.freemud.application.sdk.api.ordercenter.request.OrderConditionsReq;
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.OrderExtendedReq; import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq;
import com.freemud.application.sdk.api.ordercenter.request.SdkUpdateAbnormalState; import com.freemud.application.sdk.api.ordercenter.request.SdkUpdateAbnormalState;
import com.freemud.application.sdk.api.ordercenter.request.*;
import com.freemud.application.sdk.api.ordercenter.request.carpark.ParkingOrderCreateReq; import com.freemud.application.sdk.api.ordercenter.request.carpark.ParkingOrderCreateReq;
import com.freemud.application.sdk.api.ordercenter.response.carpark.OrderResp; import com.freemud.application.sdk.api.ordercenter.response.carpark.OrderResp;
import com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse; import com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse;
...@@ -128,6 +129,7 @@ import com.freemud.sdk.api.assortment.message.request.MessagePushOrderTemplateRe ...@@ -128,6 +129,7 @@ import com.freemud.sdk.api.assortment.message.request.MessagePushOrderTemplateRe
import com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest; import com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest;
import com.freemud.sdk.api.assortment.message.service.IMessageTemplatePushService; import com.freemud.sdk.api.assortment.message.service.IMessageTemplatePushService;
import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter; import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter;
import com.freemud.sdk.api.assortment.order.enums.AutoOrderConfigTime;
import com.freemud.sdk.api.assortment.order.enums.NewOrderType; import com.freemud.sdk.api.assortment.order.enums.NewOrderType;
import com.freemud.sdk.api.assortment.order.enums.OldOrderStatus; import com.freemud.sdk.api.assortment.order.enums.OldOrderStatus;
import com.freemud.sdk.api.assortment.order.request.order.*; import com.freemud.sdk.api.assortment.order.request.order.*;
...@@ -146,6 +148,8 @@ import com.google.common.collect.Lists; ...@@ -146,6 +148,8 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.JsonElement; import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import jdk.nashorn.internal.runtime.ECMAException;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
...@@ -162,6 +166,7 @@ import org.springframework.stereotype.Service; ...@@ -162,6 +166,7 @@ import org.springframework.stereotype.Service;
import tk.mybatis.mapper.util.StringUtil; import tk.mybatis.mapper.util.StringUtil;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
...@@ -920,7 +925,59 @@ public class OrderServiceImpl implements Orderservice { ...@@ -920,7 +925,59 @@ public class OrderServiceImpl implements Orderservice {
} }
orderBean.setQueueIndex(""); orderBean.setQueueIndex("");
// 查询待取餐订单才需要查询排队人数和订单状态扭转记录 // 查询待取餐订单才需要查询排队人数和订单状态扭转记录
if (QueryOrderStatus.TAKE_MEAL.getCode().equals(queryOrderDto.getQueryOrderStatus())) { if (QueryOrderStatus.TAKE_MEAL.getCode().equals(queryOrderDto.getQueryOrderStatus()) ) {
String returnWords = "";
Integer productSum = 0; //件数
Long pickUpTime = 0L; //预计
Integer totalSumTime = 0;
String progress = "0" ; //进度
//订单状态为已接单并且无售后单展示进度条
if(OrderStatus.RECEIPT.getCode() == orderBean.getStatus() && null == orderBean.getAfterSalesOrderResp()) {
try {
// 查询订单的排队人数
QueryLineUpOrderReq queryLineUpOrderReq = new QueryLineUpOrderReq();
queryLineUpOrderReq.setPartnerId(orderBean.getCompanyId());
queryLineUpOrderReq.setStoreId(orderBean.getShopId());
queryLineUpOrderReq.setStartTime(DateUtil.addHours(new Date(orderBean.getGmtCreate()), -24).getTime());
queryLineUpOrderReq.setEndTime(orderBean.getGmtCreate());
// 取餐排队人数查询代码去除
QueryLineUpResponse response = orderCenterSdkService.queryLineUpOrder(queryLineUpOrderReq);
if (RESPONSE_SUCCESS_CODE.equals(response.getErrcode())) {
if (null == response.getOrderCodes()) {
progress = "100";
returnWords = "";
} else {
List<String> orderCodeList = response.getOrderCodes();
if (null != orderCodeList && orderCodeList.size() > 0) {
JSONObject jsonObject = JSONObject.parseObject(storeResponseDto.getConfiguration());
StoreResponse.Configuration configuration = jsonObject.toJavaObject(StoreResponse.Configuration.class);
Integer goodsAvgTimeOfMaking = 0 == configuration.getGoodsAvgTimeOfMaking() ? 15 : configuration.getGoodsAvgTimeOfMaking();
returnWords += "前方还有 " + orderCodeList.size() + " 单";
//开启制作时间 1 :是 , 2 :否"
if (1 != configuration.getTurnOnTimeOfMaking()) {
totalSumTime = orderCodeList.size() * AutoOrderConfigTime.getTime(configuration.getAutoSelfmentionTakeOrderWorkflowFinishTime()); //分钟
} else {
productSum = orderCodeList.stream().mapToInt(product -> Integer.parseInt(product.split("-")[1])).sum();
totalSumTime = productSum * goodsAvgTimeOfMaking;
returnWords += " / " + productSum + " 件";
}
pickUpTime = DateUtil.addMinutes(new Date(orderBean.getGmtAccept()), totalSumTime).getTime();
Date date = new Date(pickUpTime);
returnWords += ",预计 " + (String.valueOf( date.getHours()).length()==1 ? "0"+(String.valueOf( date.getHours())) : date.getHours()) + ":" + (String.valueOf(date.getMinutes()).length()==1 ? "0"+(String.valueOf(date.getMinutes())) : date.getMinutes()) + " 可取餐";
//制餐进度(当前时间-接单时间)/总时长(制餐时长)x100%
BigDecimal progressB = new BigDecimal(DateUtil.diffMinute(new Date(orderBean.getGmtAccept()), new Date())).divide(new BigDecimal(totalSumTime), 2, BigDecimal.ROUND_HALF_UP);
progress = progressB.compareTo(new BigDecimal(1)) == 1 ? "100" : progressB.multiply(new BigDecimal(100)).toString();
}
}
}
} catch (Exception e) {
log.error("get returnWords error {}", e.getMessage());
}
}
orderBean.setProgress(String.valueOf(progress));
orderBean.setReturnWords(returnWords);
//以下代码为老代码,不确定还在不在用,就留着了
// 查询订单的排队人数 // 查询订单的排队人数
BaseQueryOrderRequest var1 = new BaseQueryOrderRequest(); BaseQueryOrderRequest var1 = new BaseQueryOrderRequest();
var1.setOrderId(orderBean.getOid()); var1.setOrderId(orderBean.getOid());
...@@ -3858,5 +3915,4 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3858,5 +3915,4 @@ public class OrderServiceImpl implements Orderservice {
return Boolean.TRUE; return Boolean.TRUE;
} }
} }
...@@ -293,4 +293,16 @@ public class DateTimeUtil { ...@@ -293,4 +293,16 @@ public class DateTimeUtil {
return res; return res;
} }
/**
* 时间戳转换成时间
* @param l 传入的时间戳
* @return 返回格式化时间
*/
public static String timeStampToDate(Long l){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date(l);
String res = simpleDateFormat.format(date);
return res;
}
} }
...@@ -240,4 +240,9 @@ public class InterfaceAddressConstant { ...@@ -240,4 +240,9 @@ public class InterfaceAddressConstant {
*/ */
public static final String UPDATE_BUYONEGIVEONE_SEND_COUPON = "order/v2/updateBuyOneGiveOneSendCoupon"; public static final String UPDATE_BUYONEGIVEONE_SEND_COUPON = "order/v2/updateBuyOneGiveOneSendCoupon";
/**
* 查询当前门店24小时内的订单
*/
public static final String QUERY_LINEUP_ORDER = "order/v2/queryLineUpOrder";
} }
...@@ -88,6 +88,12 @@ public class OrderConditionsReq { ...@@ -88,6 +88,12 @@ public class OrderConditionsReq {
//订单更新结束时间戳(单位:秒) //订单更新结束时间戳(单位:秒)
private Long endUpdateTimestamp; private Long endUpdateTimestamp;
//订单接单时间戳(单位:秒)
private Long startAcceptTimestamp;
//订单接单时间戳(单位:秒)
private Long endAcceptTimestamp;
//是否打印 0:显示打印次数为0 1:显示打印次数大于0 //是否打印 0:显示打印次数为0 1:显示打印次数大于0
private Byte printNum; private Byte printNum;
......
package com.freemud.application.sdk.api.ordercenter.request;
import lombok.Data;
@Data
public class QueryLineUpOrderReq {
/**
* 商户号
*/
private String partnerId;
/**
* 门店编号
*/
private String storeId;
/**
* 时间开始
*/
private Long startTime;
/**
* 时间开始
*/
private Long endTime;
}
...@@ -913,4 +913,14 @@ public class OrderSdkService { ...@@ -913,4 +913,14 @@ public class OrderSdkService {
return responseHandle(responseDTO); return responseHandle(responseDTO);
} }
/**
* 查询历史订单
*/
public BaseResponse<List<String>> queryLineUpOrder(QueryLineUpOrderReq queryLineUpOrderReq, String trackingNo) {
OrderBaseResp<List<String>> responseDTO = RequestThirdPartyUtils.httpJsonReqComplexNew(restTemplate, QUERY_LINEUP_ORDER,
createBaseRequest(queryLineUpOrderReq, trackingNo), new ParameterizedTypeReference<OrderBaseResp<List<String>>>() {
});
return responseHandle(responseDTO);
}
} }
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