Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
wangxiaolu-sfa-module-job
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
sfa
wangxiaolu-sfa-module-job
Commits
074d5470
提交
074d5470
authored
1月 23, 2025
作者:
吕本才
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1、修复定时任务不退出的问题,
2、增加总条数的日志记录
上级
8c70b4da
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
40 行增加
和
16 行删除
+40
-16
FinanceSyncOrderDetailDto.java
.../com/sfa/job/pojo/response/FinanceSyncOrderDetailDto.java
+1
-0
WangdiantongQueryDto.java
.../java/com/sfa/job/pojo/response/WangdiantongQueryDto.java
+16
-0
FinanceOrderSyncServiceImpl.java
...a/job/service/order/impl/FinanceOrderSyncServiceImpl.java
+10
-6
WangdiantongUtil.java
src/main/java/com/sfa/job/util/WangdiantongUtil.java
+13
-10
没有找到文件。
src/main/java/com/sfa/job/pojo/response/FinanceSyncOrderDetailDto.java
浏览文件 @
074d5470
...
...
@@ -18,5 +18,6 @@ public class FinanceSyncOrderDetailDto {
private
Integer
syncType
;
private
String
batchNo
;
private
Integer
pageNo
;
private
Integer
totalCount
;
}
src/main/java/com/sfa/job/pojo/response/WangdiantongQueryDto.java
0 → 100644
浏览文件 @
074d5470
package
com
.
sfa
.
job
.
pojo
.
response
;
import
com.alibaba.fastjson2.JSONArray
;
import
lombok.Data
;
/**
* @author lvbencai
* @date 2025-01-22 21:15:39
* @Description: 旺店通查询订单请求参数, 可以按照旺店通的来定义
*/
@Data
public
class
WangdiantongQueryDto
{
private
JSONArray
result
;
private
Integer
totalCount
;
}
src/main/java/com/sfa/job/service/order/impl/FinanceOrderSyncServiceImpl.java
浏览文件 @
074d5470
package
com
.
sfa
.
job
.
service
.
order
.
impl
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.alibaba.fastjson2.JSONArray
;
import
com.alibaba.fastjson2.JSONReader
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
...
...
@@ -13,12 +15,12 @@ import com.sfa.job.domain.order.entity.*;
import
com.sfa.job.domain.order.mapper.FinanceOrderMapper
;
import
com.sfa.job.pojo.request.WangdiantongQueryVO
;
import
com.sfa.job.pojo.response.FinanceSyncOrderDetailDto
;
import
com.sfa.job.pojo.response.WangdiantongQueryDto
;
import
com.sfa.job.service.order.FinanceBaseProductService
;
import
com.sfa.job.service.order.FinanceBaseZbjTypeService
;
import
com.sfa.job.service.order.FinanceOrderDetailService
;
import
com.sfa.job.service.order.FinanceOrderSyncService
;
import
com.sfa.job.util.WangdiantongUtil
;
import
com.xxl.job.core.util.DateUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -78,11 +80,11 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper,
if
(
ObjectUtils
.
isNotEmpty
(
collectOrderLogInfo
))
{
latestTime
=
collectOrderLogInfo
.
getLatestTime
();
Integer
pageNoExist
=
collectOrderLogInfo
.
getPageNo
();
beginPageNo
.
set
(
pageNoExist
>
0
?
collectOrderLogInfo
.
getPageNo
()
:
0
);
nextPageFlag
=
pageNoExist
>
0
;
beginPageNo
.
set
(
ObjectUtil
.
isNotEmpty
(
pageNoExist
)
&&
pageNoExist
>
0
?
collectOrderLogInfo
.
getPageNo
()
:
0
);
nextPageFlag
=
beginPageNo
.
get
()
>
0
;
}
else
{
// 默认上个月的第一天 00:00:00
startTime
=
cn
.
hutool
.
core
.
date
.
DateUtil
.
beginOfDay
(
cn
.
hutool
.
core
.
date
.
DateUtil
.
beginOfMonth
(
cn
.
hutool
.
core
.
date
.
DateUtil
.
lastMonth
()));
startTime
=
DateUtil
.
beginOfDay
(
DateUtil
.
beginOfMonth
(
DateUtil
.
lastMonth
()));
}
if
(
nextPageFlag
)
{
...
...
@@ -102,14 +104,15 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper,
if
(
ObjectUtils
.
isEmpty
(
endTime
))
{
endTime
=
DateUtils
.
addMinutes
(
startTime
,
60
);
}
log
.
info
(
"查询订单参数:开始时间{},结束时间{},当前页:{}"
,
DateUtil
.
formatDateTime
(
startTime
),
DateUtil
.
formatDateTime
(
endTime
),
beginPageNo
.
get
());
log
.
info
(
"查询订单参数:开始时间{},结束时间{},当前页:{}"
,
DateUtil
.
formatDateTime
(
startTime
),
DateUtil
.
formatDateTime
(
endTime
),
beginPageNo
.
get
());
WangdiantongQueryVO
wangdiantongQueryVO
=
new
WangdiantongQueryVO
();
wangdiantongQueryVO
.
setStart_time
(
com
.
alibaba
.
fastjson2
.
util
.
DateUtils
.
format
(
startTime
));
wangdiantongQueryVO
.
setEnd_time
(
com
.
alibaba
.
fastjson2
.
util
.
DateUtils
.
format
(
endTime
));
// 旺店通入参 和其他入参分开传入 旺店通入参bean转map
JSONArray
orderAllArray
=
wangdiantongUtil
.
queryWithDetail
(
wangdiantongQueryVO
,
beginPageNo
);
WangdiantongQueryDto
wangdiantongQueryDto
=
wangdiantongUtil
.
queryWithDetail
(
wangdiantongQueryVO
,
beginPageNo
);
JSONArray
orderAllArray
=
wangdiantongQueryDto
.
getResult
();
if
(
ObjectUtils
.
isEmpty
(
orderAllArray
))
{
throw
new
ServiceException
(
"旺店通没有查询到订单数据"
);
}
...
...
@@ -217,6 +220,7 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper,
detailDto
.
setStartTime
(
finalStartTime
);
detailDto
.
setPageNo
(
beginPageNo
.
get
());
detailDto
.
setEndTime
(
finalEndTime
);
detailDto
.
setTotalCount
(
wangdiantongQueryDto
.
getTotalCount
());
detailDto
.
setBatchNo
(
batchNo
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
...
...
src/main/java/com/sfa/job/util/WangdiantongUtil.java
浏览文件 @
074d5470
...
...
@@ -6,6 +6,7 @@ import com.alibaba.fastjson2.JSONObject;
import
com.lark.oapi.okhttp.*
;
import
com.sfa.common.core.exception.ServiceException
;
import
com.sfa.job.pojo.request.WangdiantongQueryVO
;
import
com.sfa.job.pojo.response.WangdiantongQueryDto
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.springframework.stereotype.Component
;
...
...
@@ -24,13 +25,13 @@ public class WangdiantongUtil {
/**
* 卖家账号/接口账号/盐/接口名称
*/
public
JSONArray
queryWithDetail
(
WangdiantongQueryVO
wangdiantongQuery
,
AtomicInteger
beginPageNo
)
{
public
WangdiantongQueryDto
queryWithDetail
(
WangdiantongQueryVO
wangdiantongQuery
,
AtomicInteger
beginPageNo
)
{
WangdiantongQueryDto
wangdiantongQueryDto
=
new
WangdiantongQueryDto
();
JSONArray
allArray
=
new
JSONArray
();
Integer
totalCount
=
0
;
try
{
// 最大处理量,超过了,不再查询
int
maxDealCount
=
500
;
int
currentDealTotal
=
0
;
int
size
=
0
;
int
pageNo
=
beginPageNo
.
get
();
int
maxPage
=
0
;
...
...
@@ -54,7 +55,7 @@ public class WangdiantongUtil {
List
<
HashMap
<
String
,
Object
>>
paramsList
=
Arrays
.
asList
(
params
);
String
signParams
=
appsecret
+
"body"
+
JSONObject
.
toJSONString
(
paramsList
)
+
"calc_total1"
+
"key"
+
key
+
"method"
+
method
+
"page_no"
+
pageNo
+
"page_size200"
+
"salt"
+
salt
+
"sid"
+
sid
+
+
"method"
+
method
+
"page_no"
+
pageNo
+
"page_size200"
+
"salt"
+
salt
+
"sid"
+
sid
+
"timestamp"
+
(
System
.
currentTimeMillis
()
/
1000
-
1325347200
)
+
"v"
+
v
+
appsecret
;
String
sign
=
DigestUtils
.
md5DigestAsHex
(
signParams
.
toString
().
getBytes
());
log
.
debug
(
signParams
);
...
...
@@ -85,25 +86,27 @@ public class WangdiantongUtil {
log
.
error
(
"访问旺店通接口错误"
+
messageJson
.
toString
());
throw
new
ServiceException
(
"访问旺店通接口错误"
+
messageJson
.
toString
());
}
Integer
totalCount
=
dataR
.
getInteger
(
"total_count"
);
totalCount
=
dataR
.
getInteger
(
"total_count"
);
JSONArray
orderJsonArray
=
dataR
.
getJSONArray
(
"order"
);
currentDealTotal
=
totalCount
;
allArray
.
addAll
(
orderJsonArray
);
size
=
allArray
.
size
();
pageNo
++;
maxPage
=
(
totalCount
/
200
);
log
.
info
(
"当前时间段{}-{},查询返回的order条数:{},总条数totalCount:{},page_no:{}"
,
wangdiantongQuery
.
getStart_time
(),
wangdiantongQuery
.
getEnd_time
(),
orderJsonArray
.
size
(),
totalCount
,
pageNo
);
}
while
(
size
<
maxDealCount
&&
size
<
currentDealTotal
);
maxPage
=
(
currentDealTotal
/
200
);
}
while
(
size
<
maxDealCount
&&
pageNo
<=
maxPage
);
if
(
pageNo
>=
maxPage
)
{
beginPageNo
.
set
(-
1
);
}
else
{
beginPageNo
.
set
(
pageNo
);
}
return
allArray
;
wangdiantongQueryDto
.
setResult
(
allArray
);
wangdiantongQueryDto
.
setTotalCount
(
totalCount
);
}
catch
(
Exception
e
)
{
// 记录异常日志
log
.
error
(
"异常信息:{}"
+
e
.
getMessage
(),
e
);
return
allArray
;
throw
new
ServiceException
(
"旺店通接口获取数据错误"
+
e
.
getMessage
())
;
}
return
wangdiantongQueryDto
;
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论