diff --git a/api/libs/open-sdk-2.1.9.jar b/api/libs/open-sdk-2.1.10.jar
similarity index 93%
rename from api/libs/open-sdk-2.1.9.jar
rename to api/libs/open-sdk-2.1.10.jar
index 4d4a29b..b2a79a3 100644
Binary files a/api/libs/open-sdk-2.1.9.jar and b/api/libs/open-sdk-2.1.10.jar differ
diff --git a/api/pom.xml b/api/pom.xml
index cf59395..add21ee 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -118,7 +118,7 @@
open-sdk
1.0
system
- ${project.basedir}/libs/open-sdk-2.1.9.jar
+ ${project.basedir}/libs/open-sdk-2.1.10.jar
org.codehaus.jackson
diff --git a/api/src/main/java/cn/qihangerp/api/dou/DouPullRequest.java b/api/src/main/java/cn/qihangerp/api/dou/DouPullRequest.java
index 94b96e1..fa84d5d 100644
--- a/api/src/main/java/cn/qihangerp/api/dou/DouPullRequest.java
+++ b/api/src/main/java/cn/qihangerp/api/dou/DouPullRequest.java
@@ -7,4 +7,5 @@ public class DouPullRequest {
private Long shopId;//店铺Id
private Integer pullType;//拉取类型:0或不传全量;1更新(用于拉取商品的条件)
private String orderId;
+ private String orderDate;
}
diff --git a/api/src/main/java/cn/qihangerp/api/dou/controller/DouOrderApiController.java b/api/src/main/java/cn/qihangerp/api/dou/controller/DouOrderApiController.java
index 9cf4356..b22ab18 100644
--- a/api/src/main/java/cn/qihangerp/api/dou/controller/DouOrderApiController.java
+++ b/api/src/main/java/cn/qihangerp/api/dou/controller/DouOrderApiController.java
@@ -24,6 +24,7 @@ import lombok.AllArgsConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
+import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.time.Duration;
@@ -33,6 +34,8 @@ import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
/**
* 订单更新
@@ -48,6 +51,10 @@ public class DouOrderApiController {
private final MqUtils mqUtils;
private final OShopPullLogsService pullLogsService;
private final OShopPullLasttimeService pullLasttimeService;
+ private final String DATE_PATTERN =
+ "^(?:(?:(?:\\d{4}-(?:0?[1-9]|1[0-2])-(?:0?[1-9]|1\\d|2[0-8]))|(?:(?:(?:\\d{2}(?:0[48]|[2468][048]|[13579][26])|(?:(?:0[48]|[2468][048]|[13579][26])00))-0?2-29))$)|(?:(?:(?:\\d{4}-(?:0?[13578]|1[02]))-(?:0?[1-9]|[12]\\d|30))$)|(?:(?:(?:\\d{4}-0?[13-9]|1[0-2])-(?:0?[1-9]|[1-2]\\d|30))$)|(?:(?:(?:\\d{2}(?:0[48]|[13579][26]|[2468][048])|(?:(?:0[48]|[13579][26]|[2468][048])00))-0?2-29))$)$";
+ private final Pattern DATE_FORMAT = Pattern.compile(DATE_PATTERN);
+
/**
* 增量更新订单
* @param req
@@ -61,6 +68,18 @@ public class DouOrderApiController {
if (req.getShopId() == null || req.getShopId() <= 0) {
return AjaxResult.error(HttpStatus.PARAMS_ERROR, "参数错误,没有店铺Id");
}
+ if(StringUtils.isEmpty(req.getOrderDate())) return AjaxResult.error("参数错误,没有下单日期");
+
+ String orderDate = null;
+ if(StringUtils.hasText(req.getOrderDate())) {
+ // 判断时间格式
+ Matcher matcher = DATE_FORMAT.matcher(req.getOrderDate());
+ boolean b = matcher.find();
+ if (!b) {
+ return AjaxResult.error("下单日期格式错误");
+ }
+ orderDate = req.getOrderDate();
+ }
Date currDateTime = new Date();
Long currTimeMillis = System.currentTimeMillis();
@@ -73,34 +92,37 @@ public class DouOrderApiController {
String appSecret = checkResult.getData().getAppSecret();
Long douShopId = checkResult.getData().getSellerId();
String accessToken = checkResult.getData().getAccessToken();
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 获取最后更新时间
LocalDateTime startTime = null;
LocalDateTime endTime = null;
- OShopPullLasttime lasttime = pullLasttimeService.getLasttimeByShop(req.getShopId(), "ORDER");
- if(lasttime == null){
- endTime = LocalDateTime.now();
- startTime = endTime.minusDays(1);
- }else {
- startTime = lasttime.getLasttime().minusHours(1);//取上次结束一个小时前
- Duration duration = Duration.between(startTime, LocalDateTime.now());
- long hours = duration.toHours();
- if (hours > 24) {
- // 大于24小时,只取24小时
- endTime = startTime.plusHours(24);
- } else {
- endTime = LocalDateTime.now();
- }
-// endTime = startTime.plusDays(1);//取24小时
-// if(endTime.isAfter(LocalDateTime.now())){
+ startTime = LocalDateTime.parse(orderDate + " 00:00:01", formatter);
+ endTime = LocalDateTime.parse(orderDate + " 23:59:59", formatter);
+// OShopPullLasttime lasttime = pullLasttimeService.getLasttimeByShop(req.getShopId(), "ORDER");
+// if(lasttime == null){
+// endTime = LocalDateTime.now();
+// startTime = endTime.minusDays(1);
+// }else {
+// startTime = lasttime.getLasttime().minusHours(1);//取上次结束一个小时前
+// Duration duration = Duration.between(startTime, LocalDateTime.now());
+// long hours = duration.toHours();
+// if (hours > 24) {
+// // 大于24小时,只取24小时
+// endTime = startTime.plusHours(24);
+// } else {
// endTime = LocalDateTime.now();
// }
- }
- String startTimeStr = startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
- String endTimeStr = endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+//// endTime = startTime.plusDays(1);//取24小时
+//// if(endTime.isAfter(LocalDateTime.now())){
+//// endTime = LocalDateTime.now();
+//// }
+// }
+// String startTimeStr = startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+// String endTimeStr = endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
Long startTimestamp = startTime.toEpochSecond(ZoneOffset.ofHours(8));
Long endTimestamp = endTime.toEpochSecond(ZoneOffset.ofHours(8));
- String pullParams = "{startTime:"+startTime+",endTime:"+endTime+"}";
+ String pullParams = "{startTime:"+startTime.format(formatter)+",endTime:"+endTime.format(formatter)+"}";
// ApiResultVo token = DouTokenApiHelper.getToken(appKey, appSecret,checkResult.getData().getSellerId());
//
// if(token.getCode()==0) {
@@ -176,25 +198,25 @@ public class DouOrderApiController {
}
}
- if(totalError==0) {
- if (lasttime == null) {
- // 新增
- OShopPullLasttime insertLasttime = new OShopPullLasttime();
- insertLasttime.setShopId(req.getShopId());
- insertLasttime.setCreateTime(new Date());
- insertLasttime.setLasttime(endTime);
- insertLasttime.setPullType("ORDER");
- pullLasttimeService.save(insertLasttime);
-
- } else {
- // 修改
- OShopPullLasttime updateLasttime = new OShopPullLasttime();
- updateLasttime.setId(lasttime.getId());
- updateLasttime.setUpdateTime(new Date());
- updateLasttime.setLasttime(endTime);
- pullLasttimeService.updateById(updateLasttime);
- }
- }
+// if(totalError==0) {
+// if (lasttime == null) {
+// // 新增
+// OShopPullLasttime insertLasttime = new OShopPullLasttime();
+// insertLasttime.setShopId(req.getShopId());
+// insertLasttime.setCreateTime(new Date());
+// insertLasttime.setLasttime(endTime);
+// insertLasttime.setPullType("ORDER");
+// pullLasttimeService.save(insertLasttime);
+//
+// } else {
+// // 修改
+// OShopPullLasttime updateLasttime = new OShopPullLasttime();
+// updateLasttime.setId(lasttime.getId());
+// updateLasttime.setUpdateTime(new Date());
+// updateLasttime.setLasttime(endTime);
+// pullLasttimeService.updateById(updateLasttime);
+// }
+// }
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
OShopPullLogs logs = new OShopPullLogs();
logs.setShopType(EnumShopType.DOU.getIndex());
diff --git a/api/src/main/java/cn/qihangerp/api/dou/controller/DouOrderContoller.java b/api/src/main/java/cn/qihangerp/api/dou/controller/DouOrderContoller.java
index f991d13..a0ce725 100644
--- a/api/src/main/java/cn/qihangerp/api/dou/controller/DouOrderContoller.java
+++ b/api/src/main/java/cn/qihangerp/api/dou/controller/DouOrderContoller.java
@@ -28,7 +28,7 @@ public class DouOrderContoller extends BaseController {
private final DouOrderService orderService;
private final MqUtils mqUtils;
@RequestMapping(value = "/list", method = RequestMethod.GET)
- public TableDataInfo goodsList(DouOrderBo bo, PageQuery pageQuery) {
+ public TableDataInfo orderList(DouOrderBo bo, PageQuery pageQuery) {
PageResult result = orderService.queryPageList(bo, pageQuery);
return getDataTable(result);
diff --git a/service/src/main/java/cn/qihangerp/module/service/impl/DouOrderServiceImpl.java b/service/src/main/java/cn/qihangerp/module/service/impl/DouOrderServiceImpl.java
index dc69162..eca2109 100644
--- a/service/src/main/java/cn/qihangerp/module/service/impl/DouOrderServiceImpl.java
+++ b/service/src/main/java/cn/qihangerp/module/service/impl/DouOrderServiceImpl.java
@@ -26,6 +26,9 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.util.StringUtils;
+import java.time.LocalDateTime;
+import java.time.ZoneOffset;
+import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.List;
import java.util.regex.Matcher;
@@ -52,31 +55,38 @@ public class DouOrderServiceImpl extends ServiceImpl
private final Pattern DATE_FORMAT = Pattern.compile(DATE_PATTERN);
@Override
public PageResult queryPageList(DouOrderBo bo, PageQuery pageQuery) {
- long startTimeStamp = 0;
- long endTimeStamp = 0;
- if(StringUtils.hasText(bo.getStartTime())){
- Matcher matcher = DATE_FORMAT.matcher(bo.getStartTime());
- boolean b = matcher.find();
- if(b){
- bo.setStartTime(bo.getStartTime()+" 00:00:00");
- startTimeStamp = DateUtils.dateTimeStrToTimeStamp(null,bo.getStartTime());
- }
- }
+
+
if(StringUtils.hasText(bo.getEndTime())){
Matcher matcher = DATE_FORMAT.matcher(bo.getEndTime());
boolean b = matcher.find();
if(b){
bo.setEndTime(bo.getEndTime()+" 23:59:59");
- endTimeStamp = DateUtils.dateTimeStrToTimeStamp(null,bo.getEndTime());
+ }
+ }else{
+ bo.setEndTime(bo.getStartTime()+" 23:59:59");
+ }
+ if(StringUtils.hasText(bo.getStartTime())){
+ Matcher matcher = DATE_FORMAT.matcher(bo.getStartTime());
+ boolean b = matcher.find();
+ if(b){
+ bo.setStartTime(bo.getStartTime()+" 00:00:00");
}
}
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+ LocalDateTime startTime = LocalDateTime.parse(bo.getStartTime(), formatter);
+ LocalDateTime endTime = LocalDateTime.parse(bo.getEndTime(), formatter);
+
+ Long startTimestamp = startTime.toEpochSecond(ZoneOffset.ofHours(8));
+ Long endTimestamp = endTime.toEpochSecond(ZoneOffset.ofHours(8));
+
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper()
.eq(bo.getShopId()!=null,DouOrder::getShopId,bo.getShopId())
.eq(StringUtils.hasText(bo.getOrderId()),DouOrder::getOrderId,bo.getOrderId())
.eq(StringUtils.hasText(bo.getOrderStatus()),DouOrder::getOrderStatus,bo.getOrderStatus())
- .ge(StringUtils.hasText(bo.getStartTime()),DouOrder::getCreateTime, startTimeStamp)
- .le(StringUtils.hasText(bo.getEndTime()),DouOrder::getCreateTime,endTimeStamp)
+ .ge(StringUtils.hasText(bo.getStartTime()),DouOrder::getCreateTime, startTimestamp)
+ .le(StringUtils.hasText(bo.getEndTime()),DouOrder::getCreateTime,endTimestamp)
;
pageQuery.setOrderByColumn("create_time");
pageQuery.setIsAsc("desc");
diff --git a/vue/src/views/dou/order/index.vue b/vue/src/views/dou/order/index.vue
index 31858f2..9f8d143 100644
--- a/vue/src/views/dou/order/index.vue
+++ b/vue/src/views/dou/order/index.vue
@@ -458,34 +458,40 @@ export default {
this.multiple = !selection.length
},
handlePull() {
- if(this.queryParams.shopId){
- this.pullLoading = true
- pullOrder({shopId:this.queryParams.shopId,updType:0}).then(response => {
- console.log('拉取dou订单接口返回=====',response)
- if(response.code === 1401) {
- MessageBox.confirm('Token已过期,需要重新授权!请前往店铺列表重新获取授权!', '系统提示', { confirmButtonText: '前往授权', cancelButtonText: '取消', type: 'warning' }).then(() => {
- this.$router.push({path:"/shop/shop_list",query:{type:400}})
- // isRelogin.show = false;
- // store.dispatch('LogOut').then(() => {
- // location.href = response.data.tokenRequestUrl+'?shopId='+this.queryParams.shopId
- // })
- }).catch(() => {
- isRelogin.show = false;
- });
-
- // return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
- }else{
- this.$modal.msgSuccess(JSON.stringify(response));
- this.getList()
- this.pullLoading = false
- }
- this.pullLoading = false
- })
- }else{
- this.$modal.msgSuccess("请先选择店铺");
+ if (!this.queryParams.shopId) {
+ this.$modal.msgError("请先选择店铺");
+ return
}
+ if (!this.queryParams.startTime) {
+ this.$modal.msgError("请选择下单时间")
+ return
+ }
+ this.pullLoading = true
+ pullOrder({ shopId: this.queryParams.shopId, updType: 0,orderDate: this.queryParams.startTime }).then(response => {
+ console.log('拉取dou订单接口返回=====', response)
+ if (response.code === 1401) {
+ MessageBox.confirm('Token已过期,需要重新授权!请前往店铺列表重新获取授权!', '系统提示', {
+ confirmButtonText: '前往授权',
+ cancelButtonText: '取消',
+ type: 'warning'
+ }).then(() => {
+ this.$router.push({ path: "/shop/shop_list", query: { type: 400 } })
+ // isRelogin.show = false;
+ // store.dispatch('LogOut').then(() => {
+ // location.href = response.data.tokenRequestUrl+'?shopId='+this.queryParams.shopId
+ // })
+ }).catch(() => {
+ isRelogin.show = false;
+ });
- // this.$modal.msgSuccess("请先配置API");
+ // return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
+ } else {
+ this.$modal.msgSuccess(JSON.stringify(response));
+ this.getList()
+ this.pullLoading = false
+ }
+ this.pullLoading = false
+ })
},
handlePullUpdate(row) {
// 接口拉取订单并更新