diff --git a/api/oms-api/libs/open-sdk-2.1.9.jar b/api/oms-api/libs/open-sdk-2.1.11.jar
similarity index 90%
rename from api/oms-api/libs/open-sdk-2.1.9.jar
rename to api/oms-api/libs/open-sdk-2.1.11.jar
index 4d4a29b3..1a298475 100644
Binary files a/api/oms-api/libs/open-sdk-2.1.9.jar and b/api/oms-api/libs/open-sdk-2.1.11.jar differ
diff --git a/api/oms-api/pom.xml b/api/oms-api/pom.xml
index 96de6c1d..3277cada 100644
--- a/api/oms-api/pom.xml
+++ b/api/oms-api/pom.xml
@@ -98,7 +98,7 @@
open-sdk
1.0
system
- ${project.basedir}/libs/open-sdk-2.1.9.jar
+ ${project.basedir}/libs/open-sdk-2.1.11.jar
diff --git a/api/oms-api/src/main/java/cn/qihangerp/oms/dou/controller/DouOrderApiController.java b/api/oms-api/src/main/java/cn/qihangerp/oms/dou/controller/DouOrderApiController.java
index 0533a51f..7eb2ecf5 100644
--- a/api/oms-api/src/main/java/cn/qihangerp/oms/dou/controller/DouOrderApiController.java
+++ b/api/oms-api/src/main/java/cn/qihangerp/oms/dou/controller/DouOrderApiController.java
@@ -23,6 +23,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 cn.qihangerp.model.request.OrderPullRequest;
import java.time.Duration;
@@ -32,6 +33,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;
/**
* 订单更新
@@ -47,6 +50,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
@@ -60,6 +67,16 @@ public class DouOrderApiController {
if (req.getShopId() == null || req.getShopId() <= 0) {
return AjaxResult.error(HttpStatus.PARAMS_ERROR, "参数错误,没有店铺Id");
}
+ if(StringUtils.isEmpty(req.getStartTime())) {
+ return AjaxResult.error("缺少参数:下单日期不能为空");
+ }
+ // 判断时间格式
+ Matcher matcher = DATE_FORMAT.matcher(req.getStartTime());
+ boolean b = matcher.find();
+ if (!b) {
+ return AjaxResult.error("下单日期格式错误");
+ }
+
Date currDateTime = new Date();
Long currTimeMillis = System.currentTimeMillis();
@@ -72,34 +89,38 @@ 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())){
+// 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();
+//// }
+// }
+ startTime = LocalDateTime.parse(req.getStartTime() + " 00:00:01", formatter);
+ endTime = LocalDateTime.parse(req.getStartTime() + " 23:59:59", formatter);
+// 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) {
@@ -108,7 +129,7 @@ public class DouOrderApiController {
// return AjaxResult.error(token.getMsg());
// }
//第一次获取
- ApiResultVo resultVo = DouOrderApiHelper.pullOrderList(startTimestamp, endTimestamp, 0, 20, appKey, appSecret, accessToken);
+ ApiResultVo resultVo = DouOrderApiHelper.pullOrderList(startTimestamp, endTimestamp, 0, 100, appKey, appSecret, accessToken);
if(resultVo.getCode() !=0 ){
OShopPullLogs logs = new OShopPullLogs();
logs.setShopId(req.getShopId());
@@ -182,26 +203,26 @@ 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);
+// 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);
+// }
+// }
- } 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());
logs.setShopId(req.getShopId());
@@ -213,7 +234,7 @@ public class DouOrderApiController {
logs.setDuration(System.currentTimeMillis() - currTimeMillis);
pullLogsService.save(logs);
- String msg = "成功{startTime:"+startTime.format(df)+",endTime:"+endTime.format(df)+"}总共找到:" + resultVo.getTotalRecords() + "条订单,新增:" + insertSuccess + "条,添加错误:" + totalError + "条,更新:" + hasExistOrder + "条";
+ String msg = "成功{startTime:"+startTime.format(formatter)+",endTime:"+endTime.format(formatter)+"}总共找到:" + resultVo.getTotalRecords() + "条订单,新增:" + insertSuccess + "条,添加错误:" + totalError + "条,更新:" + hasExistOrder + "条";
log.info("/**************主动更新DOU订单:END:" + msg + "****************/");
return AjaxResult.success(msg);
}
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 5dfaae53..965f1879 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
@@ -58,23 +58,27 @@ public class DouOrderServiceImpl extends ServiceImpl
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");
+ if(!b){
+ bo.setStartTime("");
// 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");
+ if(!b){
+ bo.setEndTime("");
// endTimeStamp = DateUtils.dateTimeStrToTimeStamp(null,bo.getEndTime());
}
+ }else{
+ if(StringUtils.hasText(bo.getStartTime())) {
+ bo.setEndTime(bo.getStartTime());
+ }
}
if(StringUtils.hasText(bo.getStartTime())) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
- LocalDateTime startTime = LocalDateTime.parse(bo.getStartTime(), formatter);
- LocalDateTime endTime = LocalDateTime.parse(bo.getEndTime(), formatter);
+ LocalDateTime startTime = LocalDateTime.parse(bo.getStartTime()+" 00:00:00", formatter);
+ LocalDateTime endTime = LocalDateTime.parse(bo.getEndTime()+" 23:59:59", formatter);
startTimestamp = startTime.toEpochSecond(ZoneOffset.ofHours(8));
endTimestamp = endTime.toEpochSecond(ZoneOffset.ofHours(8));
diff --git a/vue/src/views/dou/order/index.vue b/vue/src/views/dou/order/index.vue
index c86eb344..f5c8bcb0 100644
--- a/vue/src/views/dou/order/index.vue
+++ b/vue/src/views/dou/order/index.vue
@@ -19,13 +19,10 @@
-
-
+
+
@@ -122,7 +119,7 @@
| 标题 |
SKU名 |
Sku编码 |
- 平台SkuId |
+ 平台SkuId |
数量 |
@@ -142,7 +139,7 @@
-
+
{{scope.row.itemNum}}
@@ -410,8 +407,11 @@ export default {
this.queryParams.startTime = this.orderTime[0]
this.queryParams.endTime = this.orderTime[1]
}else {
- this.queryParams.startTime = null
- this.queryParams.endTime = null
+ if(!this.queryParams.startTime){
+ this.queryParams.startTime = null
+ this.queryParams.endTime = null
+ }
+
}
this.loading = true;
listOrder(this.queryParams).then(response => {
@@ -465,34 +465,41 @@ 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:3}})
- // 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,startTime: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 if(response.code === 200){
+ this.$modal.msgSuccess(JSON.stringify(response));
+ this.getList()
+ }else{
+ this.$modal.msgError(response.msg)
+ }
+ this.pullLoading = false
+ })
},
handlePullUpdate(row) {
// 接口拉取订单并更新