Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
promotion-service
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
promotion
promotion-service
Commits
2ed93e0f
提交
2ed93e0f
authored
4月 24, 2025
作者:
000516
提交者:
Coding
4月 24, 2025
浏览文件
操作
浏览文件
下载
差异文件
修改经销商所属战区、大区上测试环境
Merge Request: 修改经销商所属战区、大区上测试环境 Created By: @李秋林 Accepted By: @李秋林 URL:
https://g-pkkp8204.coding.net/p/promotion/d/promotion-service/git/merge/284?initial=true
上级
69dba6e1
418a8c9b
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
159 行增加
和
53 行删除
+159
-53
QinceDealerDao.java
.../wangxiaolu/promotion/domain/user/dao/QinceDealerDao.java
+3
-0
QinCeDepartmentDaoImpl.java
...romotion/domain/user/dao/impl/QinCeDepartmentDaoImpl.java
+0
-1
QinceDealerDaoImpl.java
...lu/promotion/domain/user/dao/impl/QinceDealerDaoImpl.java
+28
-1
QinceDealerMapper.java
...iaolu/promotion/domain/user/mapper/QinceDealerMapper.java
+10
-4
QinCeDataTaskService.java
...ngxiaolu/promotion/service/user/QinCeDataTaskService.java
+2
-0
QinCeDataTaskServiceImpl.java
...promotion/service/user/impl/QinCeDataTaskServiceImpl.java
+34
-19
QinCeUtils.java
src/main/java/com/wangxiaolu/promotion/utils/QinCeUtils.java
+6
-7
XxlJobHandler.java
...va/com/wangxiaolu/promotion/xxljobtask/XxlJobHandler.java
+16
-17
application-live.yml
src/main/resources/application-live.yml
+1
-1
QinceDealerMapper.xml
src/main/resources/mapper/QinceDealerMapper.xml
+59
-3
没有找到文件。
src/main/java/com/wangxiaolu/promotion/domain/user/dao/QinceDealerDao.java
浏览文件 @
2ed93e0f
...
...
@@ -21,4 +21,7 @@ public interface QinceDealerDao {
Map
<
Object
,
Object
>
selectAll
();
List
<
QinCeDealerDto
>
selectList
(
DealerWrapper
dw
);
void
updateOrg
();
}
src/main/java/com/wangxiaolu/promotion/domain/user/dao/impl/QinCeDepartmentDaoImpl.java
浏览文件 @
2ed93e0f
...
...
@@ -55,7 +55,6 @@ public class QinCeDepartmentDaoImpl implements QinCeDepartmentDao {
}
}
}
@Override
...
...
src/main/java/com/wangxiaolu/promotion/domain/user/dao/impl/QinceDealerDaoImpl.java
浏览文件 @
2ed93e0f
...
...
@@ -33,7 +33,6 @@ public class QinceDealerDaoImpl implements QinceDealerDao {
public
void
saveList
(
List
<
Object
>
dealerJsons
)
{
// 目前没有查重逻辑,只在前边判断逻辑中判断是否新增
qinceDealerMapper
.
saveList
(
dealerJsons
);
log
.
info
(
"勤策同步经销商,新增数量:{}"
,
dealerJsons
.
size
());
}
@Override
...
...
@@ -77,6 +76,34 @@ public class QinceDealerDaoImpl implements QinceDealerDao {
return
transitionDtos
(
qinceDealerDOS
);
}
@Override
public
void
updateOrg
()
{
/**
* 更新非直营经销商的所属战区ID、战区名
* 非直营经销商所属部门是经销商级部门,上级战区无论是xx战区还是重客都可以直接将上级部门进行补充到org信息中
*/
qinceDealerMapper
.
updateOrg
();
/**
* 更新直营经销商的所属战区ID、战区名
* 直营经销商所属部门是直属战区(没有经销商级部门),直接将所属部门补充到org信息中
*/
qinceDealerMapper
.
updateOrgZY
();
/**
* 更新非直营经销商的所属大区ID、大区名
* 判断是否是重客,如果是重客直接将重客放到大区中
* 如果不是重客,直接将所属战区的parent部门放到大区中
*/
qinceDealerMapper
.
updateParentOrg
();
qinceDealerMapper
.
updateParentOrgZK
();
/**
* 直接将所属战区的parent部门放到大区中(目前重客没有直接经销商)
*/
qinceDealerMapper
.
updateParentOrgZY
();
}
/**
* DO to DTO (单个对象)
*
...
...
src/main/java/com/wangxiaolu/promotion/domain/user/mapper/QinceDealerMapper.java
浏览文件 @
2ed93e0f
package
com
.
wangxiaolu
.
promotion
.
domain
.
user
.
mapper
;
import
com.wangxiaolu.promotion.domain.user.mapper.entity.QinceDealerDO
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.wangxiaolu.promotion.domain.user.mapper.entity.QinceDealerDO
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.STRowID
;
import
org.springframework.stereotype.Repository
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author a02200059
...
...
@@ -23,6 +20,15 @@ public interface QinceDealerMapper extends BaseMapper<QinceDealerDO> {
void
saveList
(
@Param
(
"dealerJsons"
)
List
<
Object
>
dealerJsons
);
void
updateOrg
();
void
updateOrgZY
();
void
updateParentOrg
();
void
updateParentOrgZY
();
void
updateParentOrgZK
();
}
...
...
src/main/java/com/wangxiaolu/promotion/service/user/QinCeDataTaskService.java
浏览文件 @
2ed93e0f
...
...
@@ -17,4 +17,6 @@ public interface QinCeDataTaskService {
void
productAllTask
();
void
productDealers
();
void
putDealersOrg
();
}
src/main/java/com/wangxiaolu/promotion/service/user/impl/QinCeDataTaskServiceImpl.java
浏览文件 @
2ed93e0f
...
...
@@ -61,7 +61,6 @@ public class QinCeDataTaskServiceImpl implements QinCeDataTaskService {
return
;
}
qinCeDepartmentDao
.
departmentSyncTask
(
responseDatas
);
}
@Override
...
...
@@ -122,23 +121,33 @@ public class QinCeDataTaskServiceImpl implements QinCeDataTaskService {
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
productDealers
()
{
Set
<
Object
>
dealerIdsR
=
redisCache
.
getHashKeys
(
RedisKeys
.
UserKeys
.
DEALER_HAVE_LIST
.
getKey
());
if
(
CollectionUtils
.
isEmpty
(
dealerIdsR
)){
// 将数据库中的经销商保存到redis中
Map
<
Object
,
Object
>
dealers
=
qinceDealerDao
.
selectAll
();
dealerIdsR
=
dealers
.
keySet
();
redisCache
.
putAllHash
(
RedisKeys
.
UserKeys
.
DEALER_HAVE_LIST
.
getKey
(),
dealers
);
}
//
Set<Object> dealerIdsR = redisCache.getHashKeys(RedisKeys.UserKeys.DEALER_HAVE_LIST.getKey());
//
if (CollectionUtils.isEmpty(dealerIdsR)){
//
// 将数据库中的经销商保存到redis中
//
Map<Object, Object> dealers = qinceDealerDao.selectAll();
//
dealerIdsR = dealers.keySet();
//
redisCache.putAllHash(RedisKeys.UserKeys.DEALER_HAVE_LIST.getKey(),dealers);
//
}
int
i
=
0
;
boolean
nextPage
=
true
;
while
(
nextPage
)
{
i
++;
nextPage
=
booleanDealersPage
(
i
,
dealerIdsR
);
nextPage
=
booleanDealersPage
(
i
);
}
}
private
boolean
booleanDealersPage
(
Integer
pageNum
,
Set
<
Object
>
dealerIdsR
){
/**
* 修改经销商
* 同步有独立部门经销商的战区、大区
* 同步王小卤直营经销商数据
*/
@Override
public
void
putDealersOrg
()
{
qinceDealerDao
.
updateOrg
();
}
private
boolean
booleanDealersPage
(
Integer
pageNum
){
Map
<
String
,
Object
>
params
=
qinCeUtils
.
queryDealerParam
(
pageNum
);
String
url
=
qinCeUtils
.
builderUrl
(
QinCeUtils
.
QUERY_DEALER
,
params
);
...
...
@@ -148,36 +157,42 @@ public class QinCeDataTaskServiceImpl implements QinCeDataTaskService {
return
false
;
}
List
<
Object
>
dealerJsons
=
new
ArrayList
<>(
1500
);
List
<
Object
>
dealer
Add
Jsons
=
new
ArrayList
<>(
1500
);
Map
<
Object
,
Object
>
dealers
=
new
HashMap
<>(
1500
);
for
(
int
index
=
0
;
index
<
responseDatas
.
size
();
index
++)
{
JSONObject
jsonObject
=
responseDatas
.
getJSONObject
(
index
);
// 判断经销商是否有id,没有id则使用code
String
dealerId
=
jsonObject
.
getString
(
"dealer_id"
);
if
(
Objects
.
isNull
(
dealerId
)){
dealerId
=
jsonObject
.
getString
(
"dealer_code"
);
jsonObject
.
put
(
"dealer_id"
,
dealerId
);
}
if
(
StringUtils
.
isBlank
(
dealerId
)||
dealerIdsR
.
contains
(
dealerId
)){
// id、code都为空,跳过
if
(
StringUtils
.
isBlank
(
dealerId
)){
continue
;
}
dealerJsons
.
add
(
jsonObject
);
dealers
.
put
(
dealerId
,
jsonObject
.
getString
(
"dealer_name"
));
dealerAddJsons
.
add
(
jsonObject
);
// 如果经销商不是合作中,则不存在到redis中
String
dealerCooperateStatus
=
jsonObject
.
getString
(
"dealer_cooperate_status"
);
if
(
Objects
.
nonNull
(
dealerCooperateStatus
)
&&
"1"
.
equals
(
dealerCooperateStatus
)){
dealers
.
put
(
dealerId
,
jsonObject
.
getString
(
"dealer_name"
));
}
}
// 未新增数据不保存
if
(
CollectionUtils
.
isEmpty
(
dealerJsons
)){
if
(
CollectionUtils
.
isEmpty
(
dealer
Add
Jsons
)){
return
true
;
}
log
.
info
(
"勤策-经销商新增,第{}页数据「{}」条"
,
pageNum
,
dealerJsons
.
size
());
qinceDealerDao
.
saveList
(
dealerJsons
);
log
.
info
(
"勤策-经销商更新,第{}页数据「{}」条"
,
pageNum
,
dealerAddJsons
.
size
());
qinceDealerDao
.
saveList
(
dealerAddJsons
);
redisCache
.
putAllHash
(
RedisKeys
.
UserKeys
.
DEALER_HAVE_LIST
.
getKey
(),
dealers
);
return
true
;
}
private
boolean
booleanshopDetailPage
(
Integer
pageNum
)
{
Map
<
String
,
Object
>
params
=
qinCeUtils
.
queryShopParam
(
pageNum
);
String
url
=
qinCeUtils
.
builderUrl
(
QinCeUtils
.
QUERY_SHORE
,
params
);
...
...
src/main/java/com/wangxiaolu/promotion/utils/QinCeUtils.java
浏览文件 @
2ed93e0f
...
...
@@ -84,9 +84,8 @@ public class QinCeUtils {
*/
public
Map
<
String
,
Object
>
queryOrgParam
()
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
// DateTime dateTime = DateUtil.offsetDay(new Date(), -1);
// params.put("modify_date", DateUtil.format(dateTime, DatePattern.NORM_DATE_PATTERN));
params
.
put
(
"modify_date"
,
""
);
DateTime
dateTime
=
DateUtil
.
offsetDay
(
new
Date
(),
-
1
);
params
.
put
(
"modify_date"
,
DateUtil
.
format
(
dateTime
,
DatePattern
.
NORM_DATE_PATTERN
));
return
params
;
}
...
...
@@ -99,9 +98,8 @@ public class QinCeUtils {
if
(
queryId
)
{
params
.
put
(
"id"
,
""
);
}
// DateTime dateTime = DateUtil.offsetDay(new Date(), -1);
// params.put("modify_date", DateUtil.format(dateTime, DatePattern.NORM_DATE_PATTERN));
params
.
put
(
"modify_date"
,
""
);
DateTime
dateTime
=
DateUtil
.
offsetDay
(
new
Date
(),
-
1
);
params
.
put
(
"modify_date"
,
DateUtil
.
format
(
dateTime
,
DatePattern
.
NORM_DATE_PATTERN
));
return
params
;
}
...
...
@@ -113,7 +111,8 @@ public class QinCeUtils {
// 分页页码,默认1
params
.
put
(
"page_number"
,
pageNum
);
// 查询指定数据 params.put("store_code", "POS00040423"); after_modify_date:查询更新时间(2小时之内)的门店数据。格式:yyyy-MM-dd HH:mm:SS
DateTime
dateTime
=
DateUtil
.
offsetDay
(
new
Date
(),
-
1
);
// DateTime dateTime = DateUtil.offsetDay(new Date(), -1);
DateTime
dateTime
=
DateUtil
.
offsetHour
(
new
Date
(),
-
1
);
params
.
put
(
"after_modify_date"
,
DateUtil
.
format
(
dateTime
,
DatePattern
.
NORM_DATETIME_PATTERN
));
return
params
;
}
...
...
src/main/java/com/wangxiaolu/promotion/xxljobtask/XxlJobHandler.java
浏览文件 @
2ed93e0f
...
...
@@ -26,37 +26,37 @@ public class XxlJobHandler {
/**
* 同步组织架构/部门数据
* 每2小时同步修改日期为今天的数据
* t-1更新的组织架构/部门数据
*/
@XxlJob
(
"qince_department_task"
)
public
void
departmentSyncTask
(){
log
.
info
(
"[xxl-job] start === 同步
全量
勤策部门数据"
);
log
.
info
(
"[xxl-job] start === 同步
昨日修改过的
勤策部门数据"
);
qinCeDataTaskService
.
departmentSyncTask
();
log
.
info
(
"[xxl-job] end === 同步全量勤策部门数据"
);
log
.
info
(
"[xxl-job] end === 同步昨日修改过的勤策部门数据"
);
log
.
info
(
"[xxl-job] start === 更新经销商所属战区、大区信息"
);
qinCeDataTaskService
.
putDealersOrg
();
log
.
info
(
"[xxl-job] end === 更新经销商所属战区、大区信息"
);
}
/**
* 同步员工数据
* 每2小时同步修改日期为今天的数据
* t-1更新的员工数据
*/
@XxlJob
(
"qince_employee_task"
)
public
void
employeeSyncTask
(){
log
.
info
(
"[xxl-job] start === 同步
全量
员工数据"
);
log
.
info
(
"[xxl-job] start === 同步
昨日修改过的
员工数据"
);
qinCeDataTaskService
.
employeeSyncTask
();
log
.
info
(
"[xxl-job] end === 同步
全量
员工修改数据"
);
log
.
info
(
"[xxl-job] end === 同步
昨日修改过的
员工修改数据"
);
}
/**
* 同步[终端数据]
* 近2日内有更新的终端
* 0 0 0
* 1小时内修改过的终端数据
*/
@XxlJob
(
"qince_shop_task"
)
public
void
shopDetailAllTask
(){
log
.
info
(
"[xxl-job] start === 同步
近1日
内终端数据"
);
log
.
info
(
"[xxl-job] start === 同步
1小时
内终端数据"
);
qinCeDataTaskService
.
shopDetailAllTask
();
log
.
info
(
"[xxl-job] end === 同步近1
日
内终端数据"
);
log
.
info
(
"[xxl-job] end === 同步近1
小时
内终端数据"
);
}
/**
...
...
@@ -85,14 +85,13 @@ public class XxlJobHandler {
/**
* 同步[经销商列表]
* 近1日内更新的经销商
* 0 0 2
* t-1更新的经销商
*/
@XxlJob
(
"qince_dealers"
)
public
void
dealersTask
(){
log
.
info
(
"[xxl-job] start === 同步
近1日内
经销商"
);
log
.
info
(
"[xxl-job] start === 同步
昨日
经销商"
);
qinCeDataTaskService
.
productDealers
();
log
.
info
(
"[xxl-job] end === 同步
近1日内
经销商"
);
log
.
info
(
"[xxl-job] end === 同步
昨日
经销商"
);
}
}
src/main/resources/application-live.yml
浏览文件 @
2ed93e0f
...
...
@@ -85,7 +85,7 @@ xxl:
port
:
9998
logretentiondays
:
30
address
:
ip
:
ip
:
192.168.0.4
logpath
:
/var/logs/xxl_job
# 执行器日志路径
...
...
src/main/resources/mapper/QinceDealerMapper.xml
浏览文件 @
2ed93e0f
...
...
@@ -18,17 +18,73 @@
<insert
id=
"saveList"
>
insert into qince_dealer
(dealer_id, dealer_name, dealer_cooperate_status, create_time,dealer_dept_waiqin365_id,dealer_dept_name)
(dealer_id, dealer_name, dealer_cooperate_status, create_time,dealer_dept_waiqin365_id,dealer_dept_name
,dealer_type,dealer_status
)
VALUES
<foreach
collection=
"dealerJsons"
item=
"item"
separator=
","
>
(#{item.dealer_id}, #{item.dealer_name},
#{item.dealer_cooperate_status},#{item.create_time},#{item.dealer_dept_waiqin365_id},#{item.dealer_dept_name})
#{item.dealer_cooperate_status},#{item.create_time},#{item.dealer_dept_waiqin365_id},#{item.dealer_dept_name}
,#{item.dealer_type},#{item.dealer_status}
)
</foreach>
ON DUPLICATE KEY UPDATE
dealer_name = values(dealer_name),
dealer_cooperate_status = values(dealer_cooperate_status),
dealer_dept_waiqin365_id = values(dealer_dept_waiqin365_id),
dealer_dept_name = values(dealer_dept_name);
dealer_dept_name = values(dealer_dept_name),
dealer_type = values(dealer_type),
dealer_status = values(dealer_status);
</insert>
<update
id=
"updateOrg"
>
update qince_dealer de
inner join qince_department dept
set de.zq_org_qc_id = dept.waiqin365_parent_id,
de.zq_org_name = dept.parent_name
where de.dealer_dept_waiqin365_id = dept.qc_id
and de.dealer_cooperate_status = 1
and de.dealer_status = 1
and de.dealer_type = '经销商'
and de.dealer_dept_name = de.dealer_name;
</update>
<update
id=
"updateOrgZY"
>
update qince_dealer
set zq_org_qc_id = dealer_dept_waiqin365_id,
zq_org_name=dealer_dept_name
where dealer_cooperate_status = 1
and dealer_status = 1
and dealer_type = '经销商'
and dealer_name like '王小卤直营%';
</update>
<update
id=
"updateParentOrg"
>
update qince_dealer de inner join qince_department dept
set dq_org_qc_id = dept.waiqin365_parent_id,
dq_org_name = dept.parent_name
where de.zq_org_qc_id = dept.qc_id
and de.dealer_cooperate_status = 1
and de.dealer_status = 1
and de.dealer_type = '经销商'
and de.dealer_dept_name = de.dealer_name
and zq_org_name != '重客销售部'
</update>
<update
id=
"updateParentOrgZK"
>
update qince_dealer
set dq_org_qc_id = zq_org_qc_id,
dq_org_name = zq_org_name
where dealer_cooperate_status = 1
and dealer_status = 1
and dealer_type = '经销商'
and zq_org_name = '重客销售部';
</update>
<update
id=
"updateParentOrgZY"
>
update qince_dealer de inner join qince_department dept
set dq_org_qc_id = dept.waiqin365_parent_id,
dq_org_name = dept.parent_name
where de.zq_org_qc_id = dept.qc_id
and de.dealer_cooperate_status = 1
and de.dealer_status = 1
and de.dealer_type = '经销商'
and dealer_name like '王小卤直营%';
</update>
</mapper>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论