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
f4fcf50b
提交
f4fcf50b
authored
9月 26, 2025
作者:
吕本才
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改定时任务调用问题:不同dao区分不同的数据源,暂时将没有找到分区的数据放在2021数据表中
上级
a8339062
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
33 行增加
和
24 行删除
+33
-24
PayTimeYearShardingAlgorithm.java
...java/com/sfa/job/config/PayTimeYearShardingAlgorithm.java
+13
-12
CollectOrderLogDaoImpl.java
...sfa/job/domain/order/dao/impl/CollectOrderLogDaoImpl.java
+1
-0
ProductDaoImpl.java
...ava/com/sfa/job/domain/order/dao/impl/ProductDaoImpl.java
+2
-0
WdtQimenOrderDetailPayTime.java
...a/job/domain/order/entity/WdtQimenOrderDetailPayTime.java
+3
-2
WdtQimenOrderPayTimeSyncServiceImpl.java
...rvice/order/impl/WdtQimenOrderPayTimeSyncServiceImpl.java
+10
-8
WdtQimenOrderDetailPayTimeMapper.xml
...sources/mapper/order/WdtQimenOrderDetailPayTimeMapper.xml
+4
-2
没有找到文件。
src/main/java/com/sfa/job/config/PayTimeYearShardingAlgorithm.java
浏览文件 @
f4fcf50b
package
com
.
sfa
.
job
.
config
;
package
com
.
sfa
.
job
.
config
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.shardingsphere.sharding.api.sharding.standard.PreciseShardingValue
;
import
org.apache.shardingsphere.sharding.api.sharding.standard.PreciseShardingValue
;
import
org.apache.shardingsphere.sharding.api.sharding.standard.RangeShardingValue
;
import
org.apache.shardingsphere.sharding.api.sharding.standard.RangeShardingValue
;
import
org.apache.shardingsphere.sharding.api.sharding.standard.StandardShardingAlgorithm
;
import
org.apache.shardingsphere.sharding.api.sharding.standard.StandardShardingAlgorithm
;
...
@@ -10,20 +11,9 @@ import java.util.*;
...
@@ -10,20 +11,9 @@ import java.util.*;
/**
/**
* ShardingSphere 5.4.1 按 pay_time 年份分表算法
* ShardingSphere 5.4.1 按 pay_time 年份分表算法
*/
*/
@Slf4j
public
class
PayTimeYearShardingAlgorithm
implements
StandardShardingAlgorithm
<
LocalDateTime
>
{
public
class
PayTimeYearShardingAlgorithm
implements
StandardShardingAlgorithm
<
LocalDateTime
>
{
/**
* 精确分片(处理 = 条件)
* 例:pay_time = '2023-05-01 10:00:00' → 路由到 t_order_2023
*/
/**
* 范围分片(处理 >、<、BETWEEN 等条件)
* 例:pay_time BETWEEN '2023-01-01' AND '2024-12-31' → 路由到 t_order_2023、t_order_2024
*/
// 初始化方法(可留空)
// 初始化方法(可留空)
@Override
@Override
public
void
init
(
Properties
props
)
{
public
void
init
(
Properties
props
)
{
...
@@ -46,10 +36,17 @@ public class PayTimeYearShardingAlgorithm implements StandardShardingAlgorithm<L
...
@@ -46,10 +36,17 @@ public class PayTimeYearShardingAlgorithm implements StandardShardingAlgorithm<L
return
StandardShardingAlgorithm
.
super
.
isDefault
();
return
StandardShardingAlgorithm
.
super
.
isDefault
();
}
}
/**
* 精确分片(处理 = 条件)
* 例:pay_time = '2023-05-01 10:00:00' → 路由到 t_order_2023
*/
@Override
@Override
public
String
doSharding
(
Collection
<
String
>
collection
,
PreciseShardingValue
<
LocalDateTime
>
preciseShardingValue
)
{
public
String
doSharding
(
Collection
<
String
>
collection
,
PreciseShardingValue
<
LocalDateTime
>
preciseShardingValue
)
{
// 获取精确查询的时间值
// 获取精确查询的时间值
LocalDateTime
payTime
=
preciseShardingValue
.
getValue
();
LocalDateTime
payTime
=
preciseShardingValue
.
getValue
();
if
(
payTime
==
null
){
return
preciseShardingValue
.
getLogicTableName
()+
"_2021"
;
}
int
year
=
payTime
.
getYear
();
int
year
=
payTime
.
getYear
();
// 生成目标表名(逻辑表名_年份)
// 生成目标表名(逻辑表名_年份)
String
targetTable
=
preciseShardingValue
.
getLogicTableName
()
+
"_"
+
year
;
String
targetTable
=
preciseShardingValue
.
getLogicTableName
()
+
"_"
+
year
;
...
@@ -60,6 +57,10 @@ public class PayTimeYearShardingAlgorithm implements StandardShardingAlgorithm<L
...
@@ -60,6 +57,10 @@ public class PayTimeYearShardingAlgorithm implements StandardShardingAlgorithm<L
throw
new
IllegalArgumentException
(
"未找到匹配的表:"
+
targetTable
);
throw
new
IllegalArgumentException
(
"未找到匹配的表:"
+
targetTable
);
}
}
/**
* 范围分片(处理 >、<、BETWEEN 等条件)
* 例:pay_time BETWEEN '2023-01-01' AND '2024-12-31' → 路由到 t_order_2023、t_order_2024
*/
@Override
@Override
public
Collection
<
String
>
doSharding
(
Collection
<
String
>
collection
,
RangeShardingValue
<
LocalDateTime
>
shardingValue
)
{
public
Collection
<
String
>
doSharding
(
Collection
<
String
>
collection
,
RangeShardingValue
<
LocalDateTime
>
shardingValue
)
{
Set
<
String
>
result
=
new
HashSet
<>();
Set
<
String
>
result
=
new
HashSet
<>();
...
...
src/main/java/com/sfa/job/domain/order/dao/impl/CollectOrderLogDaoImpl.java
浏览文件 @
f4fcf50b
...
@@ -37,6 +37,7 @@ public class CollectOrderLogDaoImpl implements CollectOrderLogDao {
...
@@ -37,6 +37,7 @@ public class CollectOrderLogDaoImpl implements CollectOrderLogDao {
logInfoMapper
.
insert
(
collectOrderLog
);
logInfoMapper
.
insert
(
collectOrderLog
);
}
}
@DS
(
"bi"
)
@Override
@Override
public
CollectOrderLogDto
selectOrderSyncLatest
(
Integer
syncType
,
String
method
)
{
public
CollectOrderLogDto
selectOrderSyncLatest
(
Integer
syncType
,
String
method
)
{
// 查询最新发货日期
// 查询最新发货日期
...
...
src/main/java/com/sfa/job/domain/order/dao/impl/ProductDaoImpl.java
浏览文件 @
f4fcf50b
package
com
.
sfa
.
job
.
domain
.
order
.
dao
.
impl
;
package
com
.
sfa
.
job
.
domain
.
order
.
dao
.
impl
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.sfa.job.domain.order.dao.IProductDao
;
import
com.sfa.job.domain.order.dao.IProductDao
;
import
com.sfa.job.domain.order.entity.PrdInfo
;
import
com.sfa.job.domain.order.entity.PrdInfo
;
...
@@ -18,6 +19,7 @@ import java.util.Map;
...
@@ -18,6 +19,7 @@ import java.util.Map;
* @describe :
* @describe :
*/
*/
@DS
(
"bi"
)
@Service
@Service
public
class
ProductDaoImpl
implements
IProductDao
{
public
class
ProductDaoImpl
implements
IProductDao
{
@Autowired
@Autowired
...
...
src/main/java/com/sfa/job/domain/order/entity/WdtQimenOrderDetailPayTime.java
浏览文件 @
f4fcf50b
...
@@ -8,6 +8,7 @@ import lombok.Data;
...
@@ -8,6 +8,7 @@ import lombok.Data;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.ObjectUtils
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.regex.Matcher
;
import
java.util.regex.Matcher
;
...
@@ -209,9 +210,9 @@ public class WdtQimenOrderDetailPayTime extends BaseDo {
...
@@ -209,9 +210,9 @@ public class WdtQimenOrderDetailPayTime extends BaseDo {
// 发票内容
// 发票内容
private
String
invoiceContent
;
private
String
invoiceContent
;
// 支付时间,DateTime格式,取自原始订单支付时间
// 支付时间,DateTime格式,取自原始订单支付时间
private
Dat
e
payTime
;
private
LocalDateTim
e
payTime
;
// 订单支付时间,DateTime格式,取自原始订单支付时间
// 订单支付时间,DateTime格式,取自原始订单支付时间
private
Dat
e
orderPayTime
;
private
LocalDateTim
e
orderPayTime
;
// 货品简称
// 货品简称
private
String
shortName
;
private
String
shortName
;
...
...
src/main/java/com/sfa/job/service/order/impl/WdtQimenOrderPayTimeSyncServiceImpl.java
浏览文件 @
f4fcf50b
...
@@ -37,7 +37,6 @@ import java.util.*;
...
@@ -37,7 +37,6 @@ import java.util.*;
* @author lvbencai
* @author lvbencai
* @date 2025年01月07日17:00:16
* @date 2025年01月07日17:00:16
*/
*/
@DS
(
"sharding"
)
@Slf4j
@Slf4j
@Service
@Service
public
class
WdtQimenOrderPayTimeSyncServiceImpl
implements
IWdtQimenOrderPayTimeSyncService
{
public
class
WdtQimenOrderPayTimeSyncServiceImpl
implements
IWdtQimenOrderPayTimeSyncService
{
...
@@ -60,7 +59,7 @@ public class WdtQimenOrderPayTimeSyncServiceImpl implements IWdtQimenOrderPayTim
...
@@ -60,7 +59,7 @@ public class WdtQimenOrderPayTimeSyncServiceImpl implements IWdtQimenOrderPayTim
@Autowired
@Autowired
WdtQimenConfig
wdtQimenConfig
;
WdtQimenConfig
wdtQimenConfig
;
@Transactional
(
rollbackFor
=
Exception
.
class
)
//
@Transactional(rollbackFor = Exception.class)
@Override
@Override
public
SyncOrderDetailDto
syncWdtQimenOrderByTradeNo
(
Date
startTime
,
Date
endTime
,
Integer
syncType
,
String
tradeNo
,
Long
pageNo
,
Long
pageSize
)
{
public
SyncOrderDetailDto
syncWdtQimenOrderByTradeNo
(
Date
startTime
,
Date
endTime
,
Integer
syncType
,
String
tradeNo
,
Long
pageNo
,
Long
pageSize
)
{
WdtSalesTradeQueryQueryWithDetailVo
request
=
new
WdtSalesTradeQueryQueryWithDetailVo
();
WdtSalesTradeQueryQueryWithDetailVo
request
=
new
WdtSalesTradeQueryQueryWithDetailVo
();
...
@@ -126,12 +125,12 @@ public class WdtQimenOrderPayTimeSyncServiceImpl implements IWdtQimenOrderPayTim
...
@@ -126,12 +125,12 @@ public class WdtQimenOrderPayTimeSyncServiceImpl implements IWdtQimenOrderPayTim
}
}
/**
/**
*
多线程调用此方法
*
按照付款时间来同步旺店通订单
*
*
* @param startTime
* @param startTime
* @param endTime
* @param endTime
*/
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
//
@Transactional(rollbackFor = Exception.class)
@Override
@Override
public
SyncOrderDetailDto
syncWdtQimenOrder
(
Date
startTime
,
Date
endTime
,
Integer
syncType
,
Long
pageSize
)
{
public
SyncOrderDetailDto
syncWdtQimenOrder
(
Date
startTime
,
Date
endTime
,
Integer
syncType
,
Long
pageSize
)
{
SyncOrderDetailDto
detailDto
=
new
SyncOrderDetailDto
();
SyncOrderDetailDto
detailDto
=
new
SyncOrderDetailDto
();
...
@@ -185,8 +184,8 @@ public class WdtQimenOrderPayTimeSyncServiceImpl implements IWdtQimenOrderPayTim
...
@@ -185,8 +184,8 @@ public class WdtQimenOrderPayTimeSyncServiceImpl implements IWdtQimenOrderPayTim
WdtSalesTradeQueryQueryWithDetailVo
.
Params
params
=
new
WdtSalesTradeQueryQueryWithDetailVo
.
Params
();
WdtSalesTradeQueryQueryWithDetailVo
.
Params
params
=
new
WdtSalesTradeQueryQueryWithDetailVo
.
Params
();
params
.
setStartTime
(
DateUtil
.
formatDateTime
(
startTime
));
params
.
setStartTime
(
DateUtil
.
formatDateTime
(
startTime
));
params
.
setEndime
(
DateUtil
.
formatDateTime
(
endTime
));
params
.
setEndime
(
DateUtil
.
formatDateTime
(
endTime
));
// 旺店通的页码从0开始,奇门从1开始
// 旺店通的页码从0开始,奇门从1开始
时间类型 1:修改时间 2:付款时间 默认1
params
.
setTimeType
(
1
);
params
.
setTimeType
(
2
);
request
.
setParams
(
params
);
request
.
setParams
(
params
);
WdtSalesTradeQueryQueryWithDetailVo
.
Pager
pager
=
new
WdtSalesTradeQueryQueryWithDetailVo
.
Pager
();
WdtSalesTradeQueryQueryWithDetailVo
.
Pager
pager
=
new
WdtSalesTradeQueryQueryWithDetailVo
.
Pager
();
...
@@ -270,9 +269,12 @@ public class WdtQimenOrderPayTimeSyncServiceImpl implements IWdtQimenOrderPayTim
...
@@ -270,9 +269,12 @@ public class WdtQimenOrderPayTimeSyncServiceImpl implements IWdtQimenOrderPayTim
orderDetail
.
setBatchNo
(
batchNo
);
orderDetail
.
setBatchNo
(
batchNo
);
orderDetail
.
setTradeNo
(
order
.
getTradeNo
());
orderDetail
.
setTradeNo
(
order
.
getTradeNo
());
if
(
ObjectUtils
.
isEmpty
(
orderDetail
.
getPayTime
()))
{
if
(
ObjectUtils
.
isEmpty
(
orderDetail
.
getPayTime
()))
{
// orderDetail.setPayTime(order.getPayTime());
orderDetail
.
setPayTime
(
order
.
getPayTime
());
}
if
(
ObjectUtils
.
isEmpty
(
order
.
getPayTime
())){
log
.
info
(
"订单号:{},订单明细支付时间为空,使用订单支付时间"
,
orderDetail
.
getTradeNo
());
}
}
//
orderDetail.setOrderPayTime(order.getPayTime());
orderDetail
.
setOrderPayTime
(
order
.
getPayTime
());
// 计算分销信息
// 计算分销信息
orderDetail
.
setFenxiaoNick
(
order
.
getFenxiaoNick
());
orderDetail
.
setFenxiaoNick
(
order
.
getFenxiaoNick
());
...
...
src/main/resources/mapper/order/WdtQimenOrderDetailPayTimeMapper.xml
浏览文件 @
f4fcf50b
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
#{item.weight}, #{item.imgUrl}, #{item.actualNum}, #{item.barcode}, #{item.paid},
#{item.weight}, #{item.imgUrl}, #{item.actualNum}, #{item.barcode}, #{item.paid},
#{item.suiteId}, #{item.bindOid}, #{item.printSuiteMode}, #{item.flag}, #{item.stockState},
#{item.suiteId}, #{item.bindOid}, #{item.printSuiteMode}, #{item.flag}, #{item.stockState},
#{item.isConsigned}, #{item.isReceived}, #{item.cid}, #{item.modifiedDate}, #{item.createdDate},
#{item.isConsigned}, #{item.isReceived}, #{item.cid}, #{item.modifiedDate}, #{item.createdDate},
#{item.sharePostPrice}, #{item.invoiceContent}, #{item.payTime}, #{item.shortName},
#{item.sharePostPrice}, #{item.invoiceContent}, #{item.payTime}, #{item.
orderPayTime}, #{item.
shortName},
#{item.fenxiaoNick}, #{item.fenxiaoId}, #{item.fenxiaoName}, #{item.batchNo},
#{item.fenxiaoNick}, #{item.fenxiaoId}, #{item.fenxiaoName}, #{item.batchNo},
#{item.startTime}, #{item.endTime}, #{item.tradeNo}, #{item.shopNo}, #{item.shopName},
#{item.startTime}, #{item.endTime}, #{item.tradeNo}, #{item.shopNo}, #{item.shopName},
#{item.shopRemark}, #{item.tradeStatus}, #{item.tradeTime}, #{item.consignTime},
#{item.shopRemark}, #{item.tradeStatus}, #{item.tradeTime}, #{item.consignTime},
...
@@ -92,6 +92,7 @@
...
@@ -92,6 +92,7 @@
share_post_price = VALUES(share_post_price),
share_post_price = VALUES(share_post_price),
invoice_content = VALUES(invoice_content),
invoice_content = VALUES(invoice_content),
pay_time = VALUES(pay_time),
pay_time = VALUES(pay_time),
order_pay_time = VALUES(order_pay_time),
short_name = VALUES(short_name),
short_name = VALUES(short_name),
fenxiao_nick = VALUES(fenxiao_nick),
fenxiao_nick = VALUES(fenxiao_nick),
fenxiao_id = VALUES(fenxiao_id),
fenxiao_id = VALUES(fenxiao_id),
...
@@ -150,7 +151,7 @@
...
@@ -150,7 +151,7 @@
suite_discount, api_goods_name, api_spec_name, api_goods_id, api_spec_id, goods_id, spec_id,
suite_discount, api_goods_name, api_spec_name, api_goods_id, api_spec_id, goods_id, spec_id,
commission, goods_type, from_mask, remark, modified, created, prop1, prop2, weight, img_url,
commission, goods_type, from_mask, remark, modified, created, prop1, prop2, weight, img_url,
actual_num, barcode, paid, suite_id, bind_oid, print_suite_mode, flag, stock_state, is_consigned,
actual_num, barcode, paid, suite_id, bind_oid, print_suite_mode, flag, stock_state, is_consigned,
is_received, cid, modified_date, created_date, share_post_price, invoice_content, pay_time, short_name,
is_received, cid, modified_date, created_date, share_post_price, invoice_content, pay_time,
order_pay_time,
short_name,
fenxiao_nick, fenxiao_id, fenxiao_name, batch_no, start_time, end_time, trade_no, shop_no, shop_name,
fenxiao_nick, fenxiao_id, fenxiao_name, batch_no, start_time, end_time, trade_no, shop_no, shop_name,
shop_remark, trade_status, trade_time, consign_time, receiver_area, zbj_name, zbj_id, zbj_zb_id,
shop_remark, trade_status, trade_time, consign_time, receiver_area, zbj_name, zbj_id, zbj_zb_id,
zbj_sale_type, zbj_qd_type, receivable, spec_name_erp, flavor_erp, sync_type, actual_cost,
zbj_sale_type, zbj_qd_type, receivable, spec_name_erp, flavor_erp, sync_type, actual_cost,
...
@@ -219,6 +220,7 @@
...
@@ -219,6 +220,7 @@
<result
column=
"share_post_price"
property=
"sharePostPrice"
jdbcType=
"DECIMAL"
/>
<result
column=
"share_post_price"
property=
"sharePostPrice"
jdbcType=
"DECIMAL"
/>
<result
column=
"invoice_content"
property=
"invoiceContent"
jdbcType=
"VARCHAR"
/>
<result
column=
"invoice_content"
property=
"invoiceContent"
jdbcType=
"VARCHAR"
/>
<result
column=
"pay_time"
property=
"payTime"
jdbcType=
"VARCHAR"
/>
<result
column=
"pay_time"
property=
"payTime"
jdbcType=
"VARCHAR"
/>
<result
column=
"order_pay_time"
property=
"orderPayTime"
jdbcType=
"VARCHAR"
/>
<result
column=
"short_name"
property=
"shortName"
jdbcType=
"VARCHAR"
/>
<result
column=
"short_name"
property=
"shortName"
jdbcType=
"VARCHAR"
/>
<result
column=
"fenxiao_nick"
property=
"fenxiaoNick"
jdbcType=
"VARCHAR"
/>
<result
column=
"fenxiao_nick"
property=
"fenxiaoNick"
jdbcType=
"VARCHAR"
/>
<result
column=
"fenxiao_id"
property=
"fenxiaoId"
jdbcType=
"VARCHAR"
/>
<result
column=
"fenxiao_id"
property=
"fenxiaoId"
jdbcType=
"VARCHAR"
/>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论