Commit e832e1e7 by 李学兴

Merge branch 'qa' into qa_20210705

parents df3c88cc 2215d754
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>assortment-ordercenter-sdk</artifactId> <artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.3.14-SNAPSHOT</version> <version>3.0.2-SNAPSHOT</version>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
......
...@@ -152,4 +152,5 @@ ...@@ -152,4 +152,5 @@
| 2.1.74-RELEASE | 麦咖啡p7v2 | xukang | 2021-06-24| | 2.1.74-RELEASE | 麦咖啡p7v2 | xukang | 2021-06-24|
| 2.1.75-RELEASE | 集点活动改造 | 张志恒 | 2021-06-28| | 2.1.75-RELEASE | 集点活动改造 | 张志恒 | 2021-06-28|
| 3.0.1-SNAPSHOT | 配送回调增加商家承担运费字段 | 王世昌 | 2021-07-05 | | 3.0.1-SNAPSHOT | 配送回调增加商家承担运费字段 | 王世昌 | 2021-07-05 |
\ No newline at end of file | 3.0.2-SNAPSHOT | 新增配置用于OrderTask增加处理时间 | 周晓航 | 2021-07-06 |
\ No newline at end of file
package com.freemud.sdk.api.assortment.order.constant;
import java.util.Arrays;
import java.util.List;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/7/5 下午4:17
* @description :
*/
public class CommonConstant {
/**
* 2:星期二
* 4:星期四
*/
public static List<Integer> weekDay = Arrays.asList(2, 4);
}
...@@ -33,7 +33,6 @@ import com.freemud.application.sdk.api.ordercenter.enums.*; ...@@ -33,7 +33,6 @@ import com.freemud.application.sdk.api.ordercenter.enums.*;
import com.freemud.application.sdk.api.ordercenter.request.*; import com.freemud.application.sdk.api.ordercenter.request.*;
import com.freemud.application.sdk.api.ordercenter.request.create.*; 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.*;
import com.freemud.application.sdk.api.ordercenter.response.AfterSalesListResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.AfterSalesOrderResp; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.AfterSalesOrderResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.QueryByCodeResponse; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.QueryByCodeResponse;
...@@ -60,6 +59,7 @@ import com.freemud.application.sdk.api.structure.MessageCenterType; ...@@ -60,6 +59,7 @@ import com.freemud.application.sdk.api.structure.MessageCenterType;
import com.freemud.application.sdk.api.structure.request.PushMessageNoticeDto; import com.freemud.application.sdk.api.structure.request.PushMessageNoticeDto;
import com.freemud.application.sdk.api.structure.service.MessageCenterClient; import com.freemud.application.sdk.api.structure.service.MessageCenterClient;
import com.freemud.sdk.api.assortment.order.adapter.*; import com.freemud.sdk.api.assortment.order.adapter.*;
import com.freemud.sdk.api.assortment.order.constant.CommonConstant;
import com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant; import com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant;
import com.freemud.sdk.api.assortment.order.entities.OrderEditInfo; import com.freemud.sdk.api.assortment.order.entities.OrderEditInfo;
import com.freemud.sdk.api.assortment.order.enums.*; import com.freemud.sdk.api.assortment.order.enums.*;
...@@ -77,8 +77,10 @@ import org.apache.commons.collections4.CollectionUtils; ...@@ -77,8 +77,10 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -124,6 +126,13 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -124,6 +126,13 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
@Autowired @Autowired
private OfflineCouponSdkService offlineCouponSdkService; private OfflineCouponSdkService offlineCouponSdkService;
/**
* 规避 发版时间配置的双虎
*/
@Value("${avoid.version.upgrade.config:}")
private String avoidVersionUpgradeConfig;
@Override @Override
public CreateOrderResponse createOrderFlow(CreateOrderRequest config) { public CreateOrderResponse createOrderFlow(CreateOrderRequest config) {
com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest request = orderSdkAdapter.convent2NEWCreateOrderRequest(config.getBaseCreateOrderRequest()); com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest request = orderSdkAdapter.convent2NEWCreateOrderRequest(config.getBaseCreateOrderRequest());
...@@ -544,7 +553,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -544,7 +553,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
&& !ObjectUtils.equals("0", configuration.getAutoChargebackOrderTime())) { && !ObjectUtils.equals("0", configuration.getAutoChargebackOrderTime())) {
request.setTimeOut(AutoOrderConfigTime.getTime(configuration.getAutoChargebackOrderTime())); request.setTimeOut(AutoOrderConfigTime.getTime(configuration.getAutoChargebackOrderTime()));
} }
OrderTaskReq orderTask = setAfterSalesOrderTimeOutTask(configuration); OrderTaskReq orderTask = setAfterSalesOrderTimeOutTask(configuration,orderRefundRequest.getPartnerId());
request.setOrderTask(orderTask); request.setOrderTask(orderTask);
com.freemud.application.sdk.api.ordercenter.response.BaseResponse response = orderSdkService.createAfterSalesOrder(request, orderRefundRequest.getTrackingNo()); com.freemud.application.sdk.api.ordercenter.response.BaseResponse response = orderSdkService.createAfterSalesOrder(request, orderRefundRequest.getTrackingNo());
return orderSdkAdapter.convent2BaseOrderResponse(response); return orderSdkAdapter.convent2BaseOrderResponse(response);
...@@ -557,13 +566,24 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -557,13 +566,24 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
* 为了防止同一时刻的退款量太大,需要将退款的订单分散到指定的时间后半小时内 * 为了防止同一时刻的退款量太大,需要将退款的订单分散到指定的时间后半小时内
*/ */
private OrderTaskReq setAfterSalesOrderTimeOutTask(StoreResponse.Configuration configuration) { private OrderTaskReq setAfterSalesOrderTimeOutTask(StoreResponse.Configuration configuration) {
OrderTaskReq orderTaskReq = setAfterSalesOrderTimeOutTask(configuration, null);
return orderTaskReq;
}
/**
* 设置申请退款时间
* 如果时间的类型是2表示采用原来的48小时逻辑
* 如果时间的类型是1表示在指定的时间之后进行退款
* 为了防止同一时刻的退款量太大,需要将退款的订单分散到指定的时间后半小时内
*/
public OrderTaskReq setAfterSalesOrderTimeOutTask(StoreResponse.Configuration configuration, String partnerId) {
if(configuration == null ){ if(configuration == null ){
return null; return null;
} }
OrderTaskReq orderTask;
if((configuration.getTimeTypeOfRefund() != null && 2 == configuration.getTimeTypeOfRefund().intValue()) || configuration.getTimeTypeOfRefund() == null){// 48小时之后 if((configuration.getTimeTypeOfRefund() != null && configuration.getTimeTypeOfRefund().compareTo(2) == 0 ) || configuration.getTimeTypeOfRefund() == null){// 48小时之后
OrderTaskReq orderTask = new OrderTaskReq(); orderTask = new OrderTaskReq();
orderTask.setTaskType(4); orderTask.setTaskType(4);
orderTask.setTimeout(1); orderTask.setTimeout(1);
//1000*60*60*24*2 毫秒(48小时) //1000*60*60*24*2 毫秒(48小时)
...@@ -574,10 +594,8 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -574,10 +594,8 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
orderTask.setTaskTime(DateUtil.convert2String(taskTime, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS)); orderTask.setTaskTime(DateUtil.convert2String(taskTime, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
//处理时间,当前时间加48小时减1分钟 //处理时间,当前时间加48小时减1分钟
orderTask.setProcessingTime(DateUtil.convert2String(processingDate, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS)); orderTask.setProcessingTime(DateUtil.convert2String(processingDate, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
}else if(configuration.getTimeTypeOfRefund() != null && configuration.getTimeTypeOfRefund().compareTo(1) == 0 ){// 指定时间
return orderTask; orderTask = new OrderTaskReq();
}else if(configuration.getTimeTypeOfRefund() != null && 1 == configuration.getTimeTypeOfRefund().intValue()){// 指定时间
OrderTaskReq orderTask = new OrderTaskReq();
orderTask.setTaskType(4); orderTask.setTaskType(4);
orderTask.setTimeout(1); orderTask.setTimeout(1);
// 获取门店配置的当天指定的退款时间 // 获取门店配置的当天指定的退款时间
...@@ -597,13 +615,76 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -597,13 +615,76 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
String processingStr = DateUtil.convert2String(processingDate, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS); String processingStr = DateUtil.convert2String(processingDate, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS);
orderTask.setTaskTime(processingStr); orderTask.setTaskTime(processingStr);
orderTask.setProcessingTime(processingStr); orderTask.setProcessingTime(processingStr);
} else {
orderTask = null;
}
return orderTask; // fisherman [KA-20210702] 规避版本升级
if (orderTask != null) {
avoidVersionUpgrade(orderTask,partnerId);
} }
return null; return null;
} }
/** /**
* fisherman 规避版本升级
* 周二周四晚 23:00开始发版, 服务器会存在宕机, 延迟定时器处理时间
* 1.校验时间
* 2.校验 apollo配置商户
* @param orderTask
*/
private void avoidVersionUpgrade(OrderTaskReq orderTask, String partnerId) {
if (Objects.isNull(partnerId)) {
return;
}
// 时间校验
boolean checkResult = checkDate(orderTask);
if (checkResult && StringUtils.isNotBlank(avoidVersionUpgradeConfig)) {
// 读取 是否商户配置
Map<String,Integer> map = JSON.parseObject(avoidVersionUpgradeConfig, Map.class);
if (map.containsKey(partnerId)) {
Integer addHours = map.get(partnerId);
// 增加 时间
String processingTime = orderTask.getProcessingTime();
Date datet = DateUtil.convert2Date(processingTime, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS);
Date date = DateUtil.addHours(datet, addHours);
String resultTime = DateUtil.convert2String(date, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS);
orderTask.setProcessingTime(resultTime);
// 显示时间一起设置
processingTime = orderTask.getProcessingTime();
datet = DateUtil.convert2Date(processingTime, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS);
date = DateUtil.addHours(datet, addHours);
resultTime = DateUtil.convert2String(date, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS);
orderTask.setTaskTime(resultTime);
}
}
}
private boolean checkDate(OrderTaskReq orderTask) {
// 校验 是否 周二 周四
String processingTime = orderTask.getProcessingTime();
Calendar cal = Calendar.getInstance();
Date datet = DateUtil.convert2Date(processingTime, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS);
if (datet == null) {
return false;
}
cal.setTime(datet);
int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
if (CommonConstant.weekDay.contains(w)) {
// 校验时间 是否是 23:00 之后
int hourOfDay = cal.get(Calendar.HOUR_OF_DAY);
if (hourOfDay >= 23){
// 表示 设置时间为23点之后
return true;
}
}
return false;
}
/**
* 获取门店自动配置信息 * 获取门店自动配置信息
* *
* @param partnerId * @param partnerId
...@@ -739,7 +820,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -739,7 +820,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
&& !ObjectUtils.equals("0", configuration.getAutoChargebackOrderTime())) { && !ObjectUtils.equals("0", configuration.getAutoChargebackOrderTime())) {
request.setTimeOut(AutoOrderConfigTime.getTime(configuration.getAutoChargebackOrderTime())); request.setTimeOut(AutoOrderConfigTime.getTime(configuration.getAutoChargebackOrderTime()));
} }
OrderTaskReq orderTask = setAfterSalesOrderTimeOutTask(configuration); OrderTaskReq orderTask = setAfterSalesOrderTimeOutTask(configuration,cancelOrderRequest.getPartnerId());
request.setOrderTask(orderTask); request.setOrderTask(orderTask);
} }
request.setRefundDeliveryAmount(cancelOrderRequest.isRefundDeliveryAmount()); request.setRefundDeliveryAmount(cancelOrderRequest.isRefundDeliveryAmount());
......
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId> <artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.3.14-SNAPSHOT</version> <version>3.0.2-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
......
...@@ -412,5 +412,6 @@ public class OrderController { ...@@ -412,5 +412,6 @@ public class OrderController {
orderReportJobHandler.sendYesterDayStoreMsg(); orderReportJobHandler.sendYesterDayStoreMsg();
return ResponseUtil.success(); return ResponseUtil.success();
} }
} }
...@@ -68,7 +68,7 @@ public interface PromotionActivityClient { ...@@ -68,7 +68,7 @@ public interface PromotionActivityClient {
/** /**
* 根据活动ID查询活动信息 * 根据活动ID查询活动信息
*/ */
@GetMapping("/activities/share/getById") @GetMapping("/activities/share/getActivity")
ActivityGetByIdResponseDto getById(@RequestParam("activityId") Long activityId); ActivityGetByIdResponseDto getById(@RequestParam("activityId") Long activityId);
/** /**
......
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