接入医科大开放平台数据同步
新增 com.gxwebsoft.gxmu.openplat:开放平台客户端(oauth 鉴权、token 缓存与失效 重取、分页拉取)、部门/教师/班级/学生四段同步、异步编排与手动同步接口、学生认领、 学生名册查询与导出、每天 03:30 的定时任务、同步记录。 关键设计: - 名册与登录账号分离,学生通过「认领」(手机号自动 / 学号姓名自助)关联 sys_user - 组织数据以 sys_organization 为唯一载体,gxmu_college 废弃 - 平台无可用增量字段,只做全量拉取 + 幂等 upsert - 上游消失只停用不删除,且只作用于同步来源的记录(避免误停用人工维护的研究生班) - 平台权威字段按白名单覆盖,人工字段不触碰 - 码表可配置并保留原始码,码值实测存在两套编码混用,不做硬编码 - 手动同步为异步:提交返回批次号,前端轮询 /status 看分段进度 性能: - 班级/部门由逐条 update 改为多行 upsert,班级 1584 条 41s -> 0.19s - 码表解析加进程内缓存,学生同步由 >17 分钟不完成 -> 170 秒完成 98187 行 迁移脚本需手动执行(可重复执行): sql/20260912_create_openplat_sync_tables.sql sql/20260912_add_openplat_menu.sql 离线单测 43 个;另有联网集成测试 OpenPlatformClientIT(需 -Dopenplat.it=true)。
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
# 数据源配置
|
||||
spring:
|
||||
datasource:
|
||||
url: jdbc:mysql://132.232.214.96:13306/tuanwei?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
|
||||
url: jdbc:mysql://132.232.214.96:13306/tuanwei?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true
|
||||
username: tuanwei
|
||||
password: TytQZsSW5m4wGh38
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
@@ -14,6 +14,7 @@ logging:
|
||||
level:
|
||||
com.gxwebsoft: DEBUG
|
||||
com.baomidou.mybatisplus: DEBUG
|
||||
com.gxwebsoft.gxmu.openplat: INFO
|
||||
|
||||
|
||||
# 框架配置
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# 数据源配置
|
||||
spring:
|
||||
datasource:
|
||||
url: jdbc:mysql://1Panel-mysql-Bqdt:3306/tuanwei?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
|
||||
url: jdbc:mysql://1Panel-mysql-Bqdt:3306/tuanwei?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true
|
||||
username: tuanwei
|
||||
password: TytQZsSW5m4wGh38
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
@@ -23,6 +23,9 @@ logging:
|
||||
root: WARN
|
||||
com.gxwebsoft: ERROR
|
||||
com.baomidou.mybatisplus: ERROR
|
||||
# 开放平台同步过程保留日志:一次同步动辄一两分钟,
|
||||
# 若沿用 com.gxwebsoft 的 ERROR 级,进度与失败原因在生产完全不可见
|
||||
com.gxwebsoft.gxmu.openplat: INFO
|
||||
|
||||
# 框架配置
|
||||
config:
|
||||
|
||||
@@ -107,3 +107,20 @@ wxpay:
|
||||
app-id: wxf7ee9cd5801bf7a6
|
||||
mch-id: 1732930031
|
||||
mch-serial-no: 7EE24C695B278DB2C4F0C1CB42069065ECCBE3FD
|
||||
|
||||
# 医科大开放平台对接
|
||||
gxmu:
|
||||
openplat:
|
||||
base-url: http://210.36.49.10:15031/api/bd-api
|
||||
app-id: d50666e1621f493688a2
|
||||
app-secret: c12ba36360a82ae7a59a4f0a056ec39d
|
||||
kfzzh: twxt2026
|
||||
# 开发者密码, 建议用环境变量 OPENPLAT_KFZMM 覆盖
|
||||
kfzmm: ${OPENPLAT_KFZMM:twxt2026}
|
||||
timeout-ms: 30000
|
||||
max-retries: 2
|
||||
page-size: 10000
|
||||
openplat-sync:
|
||||
enabled: true
|
||||
# 每天 03:30
|
||||
cron: 0 30 3 * * ?
|
||||
|
||||
Reference in New Issue
Block a user