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
56d525b1
提交
56d525b1
authored
4月 24, 2025
作者:
000516
提交者:
Coding
4月 24, 2025
浏览文件
操作
浏览文件
下载
差异文件
xxl-job定时回写勤策经销商大区、战区信息
xxl-job定时回写勤策经销商大区、战区信息
上级
393d1dbd
95e5e094
显示空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
521 行增加
和
1 行删除
+521
-1
SfaJobApplication.java
src/main/java/com/sfa/job/SfaJobApplication.java
+2
-1
IQinceDealerDao.java
...in/java/com/sfa/job/domain/qince/dao/IQinceDealerDao.java
+17
-0
QinceDealerDaoImpl.java
...java/com/sfa/job/domain/qince/dao/QinceDealerDaoImpl.java
+32
-0
QinceDealer.java
...ain/java/com/sfa/job/domain/qince/entity/QinceDealer.java
+97
-0
QinceDealerMapper.java
...va/com/sfa/job/domain/qince/mapper/QinceDealerMapper.java
+24
-0
QinceDealerDto.java
.../java/com/sfa/job/pojo/qince/response/QinceDealerDto.java
+90
-0
IQinceDealerQueryService.java
...a/com/sfa/job/service/qince/IQinceDealerQueryService.java
+10
-0
QinceDealerQueryServiceImpl.java
...a/job/service/qince/impl/QinceDealerQueryServiceImpl.java
+62
-0
QinCeUtils.java
src/main/java/com/sfa/job/util/QinCeUtils.java
+72
-0
QinceCoreTask.java
src/main/java/com/sfa/job/xxljob/qince/QinceCoreTask.java
+26
-0
QinceDealerMapper.xml
src/main/resources/mapper/qince/QinceDealerMapper.xml
+60
-0
QinceDealerQueryServiceImplTest.java
...b/service/qince/impl/QinceDealerQueryServiceImplTest.java
+29
-0
没有找到文件。
src/main/java/com/sfa/job/SfaJobApplication.java
浏览文件 @
56d525b1
...
...
@@ -14,7 +14,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
@EnableCustomConfig
@EnableRyFeignClients
@SpringBootApplication
@MapperScan
({
"com.sfa.job.domain.job.mapper"
,
"com.sfa.job.domain.system.mapper"
,
"com.sfa.job.domain.order.mapper"
,
"com.sfa.job.domain.erp.mapper"
,
"com.sfa.job.domain.use.mapper"
})
@MapperScan
(
"com.sfa.job.domain.*.mapper"
)
//@MapperScan({"com.sfa.job.domain.job.mapper","com.sfa.job.domain.system.mapper","com.sfa.job.domain.order.mapper","com.sfa.job.domain.erp.mapper","com.sfa.job.domain.use.mapper"})
public
class
SfaJobApplication
{
public
static
void
main
(
String
[]
args
)
{
...
...
src/main/java/com/sfa/job/domain/qince/dao/IQinceDealerDao.java
0 → 100644
浏览文件 @
56d525b1
package
com
.
sfa
.
job
.
domain
.
qince
.
dao
;
import
com.sfa.job.pojo.qince.response.QinceDealerDto
;
import
java.util.List
;
/**
* @author : liqiulin
* @date : 2025-04-24 15
* @describe :
*/
public
interface
IQinceDealerDao
{
List
<
QinceDealerDto
>
getPushQinceDealers
();
}
src/main/java/com/sfa/job/domain/qince/dao/QinceDealerDaoImpl.java
0 → 100644
浏览文件 @
56d525b1
package
com
.
sfa
.
job
.
domain
.
qince
.
dao
;
import
cn.hutool.core.date.DateUtil
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.sfa.common.core.utils.bean.BeanUtils
;
import
com.sfa.job.domain.qince.entity.QinceDealer
;
import
com.sfa.job.domain.qince.mapper.QinceDealerMapper
;
import
com.sfa.job.pojo.qince.response.QinceDealerDto
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
* @author : liqiulin
* @date : 2025-04-24 15
* @describe :
*/
@DS
(
"promotion"
)
@Service
public
class
QinceDealerDaoImpl
implements
IQinceDealerDao
{
@Autowired
private
QinceDealerMapper
qinceDealerMapper
;
@Override
public
List
<
QinceDealerDto
>
getPushQinceDealers
()
{
String
today
=
DateUtil
.
today
();
List
<
QinceDealer
>
qinceDealers
=
qinceDealerMapper
.
pushQinceDealers
(
today
);
return
BeanUtils
.
transitionDtos
(
qinceDealers
,
QinceDealerDto
.
class
);
}
}
src/main/java/com/sfa/job/domain/qince/entity/QinceDealer.java
0 → 100644
浏览文件 @
56d525b1
package
com
.
sfa
.
job
.
domain
.
qince
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.util.Date
;
import
lombok.Data
;
/**
* 勤策-经销商表
* @TableName qince_dealer
*/
@TableName
(
value
=
"qince_dealer"
)
@Data
public
class
QinceDealer
implements
Serializable
{
/**
* 主键id
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Integer
id
;
/**
* 所属大区
*/
private
String
dqOrgQcId
;
/**
* 所属大区
*/
private
String
dqOrgName
;
/**
* 所属战区
*/
private
String
zqOrgQcId
;
/**
* 所属战区
*/
private
String
zqOrgName
;
/**
*
*/
private
String
dealerDeptWaiqin365Id
;
/**
*
*/
private
String
dealerDeptName
;
/**
* 经销商编码
*/
private
String
dealerId
;
/**
* 经销商名称
*/
private
String
dealerName
;
/**
* 经销商类型名称
*/
private
String
dealerType
;
/**
* 经销商删除状态。0:删除,1:正常
*/
private
String
dealerStatus
;
/**
* 合作状态。0:终止合作,1:合作中,2:未合作,3:有意向
*/
private
String
dealerCooperateStatus
;
/**
* 勤策中的创建时间
*/
private
Date
createTime
;
/**
* CP系统创建时间
*/
private
Date
ct
;
/**
* CP系统修改时间
*/
private
Date
mt
;
@TableField
(
exist
=
false
)
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
src/main/java/com/sfa/job/domain/qince/mapper/QinceDealerMapper.java
0 → 100644
浏览文件 @
56d525b1
package
com
.
sfa
.
job
.
domain
.
qince
.
mapper
;
import
com.sfa.job.domain.qince.entity.QinceDealer
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* @author a02200059
* @description 针对表【qince_dealer(勤策-经销商表)】的数据库操作Mapper
* @createDate 2025-04-24 15:30:23
* @Entity com.sfa.job.domain.qince.entity.QinceDealer
*/
@Repository
public
interface
QinceDealerMapper
extends
BaseMapper
<
QinceDealer
>
{
List
<
QinceDealer
>
pushQinceDealers
(
String
today
);
}
src/main/java/com/sfa/job/pojo/qince/response/QinceDealerDto.java
0 → 100644
浏览文件 @
56d525b1
package
com
.
sfa
.
job
.
pojo
.
qince
.
response
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 勤策-经销商表
*/
@Data
public
class
QinceDealerDto
implements
Serializable
{
/**
* 主键id
*/
private
Integer
id
;
/**
* 所属大区
*/
private
String
dqOrgQcId
;
/**
* 所属大区
*/
private
String
dqOrgName
;
/**
* 所属战区
*/
private
String
zqOrgQcId
;
/**
* 所属战区
*/
private
String
zqOrgName
;
/**
*
*/
private
String
dealerDeptWaiqin365Id
;
/**
*
*/
private
String
dealerDeptName
;
/**
* 经销商编码
*/
private
String
dealerId
;
/**
* 经销商名称
*/
private
String
dealerName
;
/**
* 经销商类型名称
*/
private
String
dealerType
;
/**
* 经销商删除状态。0:删除,1:正常
*/
private
String
dealerStatus
;
/**
* 合作状态。0:终止合作,1:合作中,2:未合作,3:有意向
*/
private
String
dealerCooperateStatus
;
/**
* 勤策中的创建时间
*/
private
Date
createTime
;
/**
* CP系统创建时间
*/
private
Date
ct
;
/**
* CP系统修改时间
*/
private
Date
mt
;
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
src/main/java/com/sfa/job/service/qince/IQinceDealerQueryService.java
0 → 100644
浏览文件 @
56d525b1
package
com
.
sfa
.
job
.
service
.
qince
;
/**
* @author : liqiulin
* @date : 2025-04-24 16
* @describe :
*/
public
interface
IQinceDealerQueryService
{
void
updateQinceDealerInfo
();
}
src/main/java/com/sfa/job/service/qince/impl/QinceDealerQueryServiceImpl.java
0 → 100644
浏览文件 @
56d525b1
package
com
.
sfa
.
job
.
service
.
qince
.
impl
;
import
com.alibaba.fastjson.JSONObject
;
import
com.sfa.job.domain.qince.dao.IQinceDealerDao
;
import
com.sfa.job.pojo.qince.response.QinceDealerDto
;
import
com.sfa.job.service.qince.IQinceDealerQueryService
;
import
com.sfa.job.util.QinCeUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.Arrays
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author : liqiulin
* @date : 2025-04-24 16
* @describe :
*/
@Slf4j
@Service
public
class
QinceDealerQueryServiceImpl
implements
IQinceDealerQueryService
{
@Autowired
private
IQinceDealerDao
qinceDealerDao
;
@Autowired
private
QinCeUtils
qinCeUtils
;
@Override
public
void
updateQinceDealerInfo
()
{
/**
* 查询需要更新的经销商
*/
List
<
QinceDealerDto
>
pushQinceDealers
=
qinceDealerDao
.
getPushQinceDealers
();
/**
* 反写勤策中的自定义字段:大区、战区
*/
for
(
QinceDealerDto
dealerDTO
:
pushQinceDealers
)
{
Map
<
String
,
Object
>
ext1
=
new
HashMap
<>();
ext1
.
put
(
"dealer_ext_key"
,
"大区"
);
ext1
.
put
(
"dealer_ext_value"
,
dealerDTO
.
getDqOrgName
());
Map
<
String
,
Object
>
ext2
=
new
HashMap
<>();
ext2
.
put
(
"dealer_ext_key"
,
"战区"
);
ext2
.
put
(
"dealer_ext_value"
,
dealerDTO
.
getZqOrgName
());
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"dealer_id"
,
dealerDTO
.
getDealerId
());
params
.
put
(
"exts"
,
Arrays
.
asList
(
ext1
,
ext2
));
String
url
=
qinCeUtils
.
builderUrl
(
QinCeUtils
.
MODIFY_DEALER
,
params
);
qinCeUtils
.
postQC
(
url
,
params
);
}
log
.
info
(
"更新勤策经销商战区、大区信息完成,更新量:{}"
,
pushQinceDealers
.
size
());
}
}
src/main/java/com/sfa/job/util/QinCeUtils.java
0 → 100644
浏览文件 @
56d525b1
package
com
.
sfa
.
job
.
util
;
import
cn.hutool.http.HttpUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.codec.digest.DigestUtils
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
java.util.Map
;
import
java.util.UUID
;
/**
* @author : liqiulin
* @date : 2025-04-24 16
* @describe :
*/
@Slf4j
@Component
public
class
QinCeUtils
{
/**
* =================== 勤策API - config ===================
*/
@Value
(
"${qince.open_api}"
)
private
String
OPEN_API
;
@Value
(
"${qince.open_id}"
)
private
String
OPEN_ID
;
@Value
(
"${qince.app_key}"
)
private
String
APP_KEY
;
/**
* =================== 勤策API - path ===================
*/
// 修改经销商
public
static
final
String
MODIFY_DEALER
=
"/api/dealer/v1/modifyDealer/"
;
public
String
builderUrl
(
String
sidepath
,
Map
<
String
,
Object
>
params
)
{
String
msgId
=
UUID
.
randomUUID
().
toString
();
Long
currentTimeMillis
=
System
.
currentTimeMillis
();
String
digest
=
getDigest
(
params
,
currentTimeMillis
);
StringBuilder
builder
=
new
StringBuilder
().
append
(
OPEN_API
).
append
(
sidepath
).
append
(
OPEN_ID
).
append
(
"/"
).
append
(
currentTimeMillis
).
append
(
"/"
).
append
(
digest
).
append
(
"/"
).
append
(
msgId
);
return
builder
.
toString
();
}
public
Map
<
String
,
Object
>
modifyDealerParams
(){
return
null
;
}
public
JSONObject
postQC
(
String
url
,
Object
params
)
{
String
requestBody
=
HttpUtil
.
createPost
(
url
).
contentType
(
"application/json;charset=utf-8"
).
header
(
""
,
""
).
body
(
JSONObject
.
toJSONString
(
params
)).
execute
().
body
();
JSONObject
resultJson
=
JSONObject
.
parseObject
(
requestBody
);
String
returnCode
=
resultJson
.
getString
(
"return_code"
);
if
(!
"0"
.
equals
(
returnCode
))
{
throw
new
RuntimeException
(
"OkHttp.post请求error,详情:"
+
requestBody
);
}
return
resultJson
;
}
private
String
getDigest
(
Map
<
String
,
Object
>
params
,
Long
currentTimeMillis
)
{
String
json
=
""
;
if
(!
CollectionUtils
.
isEmpty
(
params
))
{
json
=
JSONObject
.
toJSONString
(
params
);
}
String
digest
=
DigestUtils
.
md5Hex
(
json
+
"|"
+
APP_KEY
+
"|"
+
currentTimeMillis
);
return
digest
;
}
}
src/main/java/com/sfa/job/xxljob/qince/QinceCoreTask.java
0 → 100644
浏览文件 @
56d525b1
package
com
.
sfa
.
job
.
xxljob
.
qince
;
import
com.sfa.job.service.qince.IQinceDealerQueryService
;
import
com.xxl.job.core.handler.annotation.XxlJob
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
/**
* @author : liqiulin
* @date : 2025-04-24 17
* @describe :
*/
@Component
@Slf4j
public
class
QinceCoreTask
{
@Autowired
private
IQinceDealerQueryService
qinceCoreService
;
@XxlJob
(
"qince_modify_dealer"
)
public
void
qinceCoreTask
()
{
log
.
info
(
"回写勤策经销商大区、战区信息 start"
);
qinceCoreService
.
updateQinceDealerInfo
();
log
.
info
(
"回写勤策经销商大区、战区信息 end"
);
}
}
src/main/resources/mapper/qince/QinceDealerMapper.xml
0 → 100644
浏览文件 @
56d525b1
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.sfa.job.domain.qince.mapper.QinceDealerMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.sfa.job.domain.qince.entity.QinceDealer"
>
<id
property=
"id"
column=
"id"
jdbcType=
"INTEGER"
/>
<result
property=
"dqOrgQcId"
column=
"dq_org_qc_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"dqOrgName"
column=
"dq_org_name"
jdbcType=
"VARCHAR"
/>
<result
property=
"zqOrgQcId"
column=
"zq_org_qc_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"zqOrgName"
column=
"zq_org_name"
jdbcType=
"VARCHAR"
/>
<result
property=
"dealerDeptWaiqin365Id"
column=
"dealer_dept_waiqin365_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"dealerDeptName"
column=
"dealer_dept_name"
jdbcType=
"VARCHAR"
/>
<result
property=
"dealerId"
column=
"dealer_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"dealerName"
column=
"dealer_name"
jdbcType=
"VARCHAR"
/>
<result
property=
"dealerType"
column=
"dealer_type"
jdbcType=
"VARCHAR"
/>
<result
property=
"dealerStatus"
column=
"dealer_status"
jdbcType=
"CHAR"
/>
<result
property=
"dealerCooperateStatus"
column=
"dealer_cooperate_status"
jdbcType=
"CHAR"
/>
<result
property=
"createTime"
column=
"create_time"
jdbcType=
"TIMESTAMP"
/>
<result
property=
"ct"
column=
"ct"
jdbcType=
"TIMESTAMP"
/>
<result
property=
"mt"
column=
"mt"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<resultMap
id=
"PushQince"
type=
"com.sfa.job.domain.qince.entity.QinceDealer"
>
<id
property=
"id"
column=
"id"
jdbcType=
"INTEGER"
/>
<result
property=
"dqOrgQcId"
column=
"dq_org_qc_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"dqOrgName"
column=
"dq_org_name"
jdbcType=
"VARCHAR"
/>
<result
property=
"zqOrgQcId"
column=
"zq_org_qc_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"zqOrgName"
column=
"zq_org_name"
jdbcType=
"VARCHAR"
/>
<result
property=
"dealerId"
column=
"dealer_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"dealerName"
column=
"dealer_name"
jdbcType=
"VARCHAR"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id,dq_org_qc_id,dq_org_name,
zq_org_qc_id,zq_org_name,dealer_dept_waiqin365_id,
dealer_dept_name,dealer_id,dealer_name,
dealer_type,dealer_status,dealer_cooperate_status,
create_time,ct,mt
</sql>
<select
id=
"pushQinceDealers"
resultMap=
"PushQince"
>
select id,
dq_org_qc_id,
dq_org_name,
zq_org_qc_id,
zq_org_name,
dealer_id,
dealer_name
from qince_dealer
where dealer_cooperate_status = 1
and dealer_status = 1
and dealer_type = '经销商'
and dq_org_qc_id is not null
and zq_org_qc_id is not null
and DATE (mt) = #{today}
</select>
</mapper>
src/test/java/com/sfa/job/service/qince/impl/QinceDealerQueryServiceImplTest.java
0 → 100644
浏览文件 @
56d525b1
package
com
.
sfa
.
job
.
service
.
qince
.
impl
;
import
com.sfa.job.service.qince.IQinceDealerQueryService
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
static
org
.
junit
.
Assert
.*;
/**
* @author : liqiulin
* @date : 2025-04-24 16
* @describe :
*/
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
public
class
QinceDealerQueryServiceImplTest
{
@Autowired
private
IQinceDealerQueryService
qinceDealerQueryService
;
@Test
public
void
updateQinceDealerInfo
()
{
qinceDealerQueryService
.
updateQinceDealerInfo
();
}
}
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论