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 @@ - +