Compare commits

...

63 Commits

Author SHA1 Message Date
chenbowen
e5d9036dfa Merge branch 'dev' into test 2025-12-18 14:22:23 +08:00
chenbowen
6dd44ea02d Merge remote-tracking branch 'base-version/main' into dev 2025-12-18 14:21:38 +08:00
chenbowen
1fa7416905 1. 统一 iwork 的同步组织代码生成逻辑 2025-12-18 14:18:56 +08:00
chenbowen
b96d40b8d1 Merge branch 'dev' into test 2025-12-18 13:21:54 +08:00
chenbowen
c86a765b73 Merge remote-tracking branch 'base-version/main' into dev 2025-12-18 13:21:03 +08:00
chenbowen
870c6a5f88 1. 统一 iwork 的同步组织代码生成逻辑 2025-12-18 13:19:39 +08:00
chenbowen
660e0cf401 Merge branch 'dev' into test 2025-12-17 20:18:58 +08:00
chenbowen
9bc519aa0d Merge remote-tracking branch 'base-version/main' into dev 2025-12-17 20:18:42 +08:00
chenbowen
4082e61874 1. 调整初始化脚本 2025-12-17 20:18:13 +08:00
chenbowen
f40ae1aa74 Merge branch 'dev' into test 2025-12-17 15:10:44 +08:00
chenbowen
878dfde572 Merge remote-tracking branch 'base-version/main' into dev 2025-12-17 15:10:28 +08:00
chenbowen
1303ac250e 1. 使用 id 进行同步,避免 username 修改后提示重复的 bug 2025-12-17 15:10:06 +08:00
chenbowen
bfee58e0d7 Merge branch 'dev' into test 2025-12-17 14:40:15 +08:00
chenbowen
a4924bd718 Merge remote-tracking branch 'base-version/main' into dev 2025-12-17 14:40:00 +08:00
chenbowen
d81413e239 1. 修复 databus 在多层嵌套的 json 报文,签名存在异常的 bug 2025-12-17 14:39:23 +08:00
wencai he
e6a0eef084 Merge branch 'dev' into 'test'
Dev

See merge request jygk/dsc!11
2025-12-17 03:32:22 +00:00
hewencai
0b8e200aa1 Merge remote-tracking branch 'origin/dev' into dev 2025-12-17 11:32:12 +08:00
hewencai
738c82b000 update:调整数据同步生产topic生成器 2025-12-17 11:31:57 +08:00
chenbowen
ccdf3d28ff 1. 固定 databus 服务在 64 ip 配合网络测试 2025-12-17 09:42:16 +08:00
chenbowen
498e0b864a Merge branch 'dev' into test 2025-12-16 21:36:52 +08:00
chenbowen
2d5b71896e Merge remote-tracking branch 'base-version/main' into dev 2025-12-16 21:36:36 +08:00
chenbowen
12157d5dcb 1. 修复 databus 在多层嵌套的 json 报文,签名存在异常的 bug 2025-12-16 21:35:08 +08:00
hewencai
7e25d6d106 fix:修复数据同步配置校验缺失问题
(cherry picked from commit 13403ea027)
2025-12-16 18:43:38 +08:00
hewencai
13403ea027 fix:修复数据同步配置校验缺失问题 2025-12-16 18:43:08 +08:00
hewencai
fcc32fa2d8 Merge remote-tracking branch 'ztcloud/main' into main-ztcloud 2025-12-16 16:36:56 +08:00
hewencai
72fe903447 update:数据同步分发机构岗位绑定关系 2025-12-16 16:36:34 +08:00
hewencai
8782631eaa update:数据同步分发机构岗位绑定关系 2025-12-16 16:36:30 +08:00
hewencai
a57d05ccd6 update:数据同步统一使用枚举类 2025-12-16 16:36:29 +08:00
wencai he
3828884a8b Merge branch 'dev' into 'test'
update:数据同步分发机构岗位绑定关系

See merge request jygk/dsc!10
2025-12-16 06:34:34 +00:00
hewencai
218c6aa3dc update:数据同步分发机构岗位绑定关系 2025-12-16 14:34:13 +08:00
chenbowen
aef2bf6e1d Merge branch 'dev' into test 2025-12-16 14:03:08 +08:00
chenbowen
afc8c0f23c Merge remote-tracking branch 'base-version/main' into dev 2025-12-16 14:02:53 +08:00
chenbowen
b6f5649b97 1. 新增生成自有组织 CODE,同步其他系统额外生成编码映射关系,添加相关的单元测试用例 2025-12-16 14:00:52 +08:00
wencai he
59ddd41590 Merge branch 'dev' into 'test'
update:数据同步分发机构岗位绑定关系

See merge request jygk/dsc!9
2025-12-16 04:03:41 +00:00
hewencai
ba1bc1fb6f update:数据同步分发机构岗位绑定关系 2025-12-16 12:03:15 +08:00
chenbowen
d62d06a45e Merge branch 'dev' into test 2025-12-15 21:15:03 +08:00
chenbowen
df3e80d907 Merge remote-tracking branch 'base-version/main' into dev 2025-12-15 21:14:45 +08:00
chenbowen
69d3dbc61f 1. 新增生成自有组织 CODE,同步其他系统额外生成编码映射关系 2025-12-15 21:14:06 +08:00
wencai he
fffea61d51 Merge branch 'dev' into 'test'
update:数据同步统一使用枚举类

See merge request jygk/dsc!8
2025-12-15 12:05:35 +00:00
hewencai
b7ec17694d update:数据同步统一使用枚举类 2025-12-15 20:04:43 +08:00
chenbowen
6fc1dface2 1. 测试 iwork 临时调整 2025-12-15 19:48:26 +08:00
chenbowen
b8406a907b Merge branch 'dev' into test 2025-12-15 19:26:27 +08:00
chenbowen
951b9bf67d Merge remote-tracking branch 'base-version/main' into dev 2025-12-15 19:26:14 +08:00
chenbowen
2323ee5c3b 1. 新增生成自有组织 CODE,同步其他系统额外生成编码映射关系 2025-12-15 19:25:19 +08:00
chenbowen
27bf25fdb0 Merge branch 'dev' into test 2025-12-14 13:53:20 +08:00
chenbowen
8254bb4536 Merge remote-tracking branch 'base-version/main' into dev 2025-12-14 13:52:57 +08:00
chenbowen
8d25f4224b 1. 临时去除掉硬性的 databus 签名校验 2025-12-14 13:52:14 +08:00
chenbowen
ec12664688 Merge branch 'dev' into test 2025-12-12 16:12:18 +08:00
chenbowen
5ad6886880 Merge remote-tracking branch 'base-version/main' into dev 2025-12-12 16:11:56 +08:00
chenbowen
b0838b6ae0 1. 新增 95 短信渠道回调接口 2025-12-12 16:09:22 +08:00
chenbowen
4d963f0f0c 1. 所有服务追加 dns 服务解析 2025-12-12 15:42:03 +08:00
chenbowen
ca82c9def3 Merge branch 'dev' into test 2025-12-12 14:46:15 +08:00
chenbowen
ce7b18997b 1. 修复注释移动云 mas 短信枚举导致启动失败 2025-12-12 14:45:53 +08:00
chenbowen
4fc05fc094 Merge branch 'dev' into test 2025-12-12 10:14:18 +08:00
chenbowen
1991863573 注释移动云 mas 短信相关的实现 2025-12-12 10:13:58 +08:00
chenbowen
1706a70499 Merge remote-tracking branch 'base-version/main' into dev
# Conflicts:
#	zt-framework/zt-spring-boot-starter-test/src/main/java/com/zt/plat/framework/test/core/ut/BaseDbUnitTest.java
#	zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/framework/sms/core/client/impl/SmsClientFactoryImpl.java
#	zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/framework/sms/core/enums/SmsChannelEnum.java
2025-12-12 10:05:36 +08:00
chenbowen
cae0b9e4af 1. 新增 api 绑定客户凭证进行权限校验
2. 去除 api 定义的缓存策略
3. 新增短信渠道
4. 新增用户信息模糊查询
5. 修复全局的单元测试
2025-12-12 10:03:10 +08:00
chenbowen
0f10bd2289 Merge branch 'dev' into test 2025-12-09 19:13:16 +08:00
chenbowen
3609cb2e18 Merge remote-tracking branch 'base-version/main' into dev 2025-12-09 19:13:01 +08:00
chenbowen
99645c5ac8 1. 修复 iwork api 与 controller 中的 vo dto 不对应的问题 2025-12-09 19:12:03 +08:00
chenbowen
39a82b6537 Merge branch 'dev' into test
# Conflicts:
#	zt-module-databus/zt-module-databus-server/src/main/resources/application-dev.yml
2025-12-09 16:25:53 +08:00
chenbowen
577df1c6e7 Merge remote-tracking branch 'base-version/main' into dev 2025-12-09 16:25:18 +08:00
chenbowen
29e0c7da14 1. 新增 api 绑定客户凭证进行权限校验 2025-12-09 16:24:17 +08:00
148 changed files with 4848 additions and 2351 deletions

View File

@@ -85,6 +85,11 @@ spec:
labels:
app: zt-module-infra
spec:
dnsPolicy: None
dnsConfig:
nameservers:
- "172.16.36.16"
- "172.16.36.220"
containers:
- name: zt-module-infra
image: 172.16.46.66:10043/zt/zt-module-infra:VERSION_PLACEHOLDER
@@ -157,6 +162,20 @@ spec:
labels:
app: zt-module-system
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- node-3
dnsPolicy: None
dnsConfig:
nameservers:
- "172.16.36.16"
- "172.16.36.220"
containers:
- name: zt-module-system
image: 172.16.46.66:10043/zt/zt-module-system:VERSION_PLACEHOLDER
@@ -373,6 +392,20 @@ spec:
labels:
app: zt-module-databus
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- node-3
dnsPolicy: None
dnsConfig:
nameservers:
- "172.16.36.16"
- "172.16.36.220"
containers:
- name: zt-module-databus
image: 172.16.46.66:10043/zt/zt-module-databus:VERSION_PLACEHOLDER
@@ -447,6 +480,11 @@ spec:
labels:
app: zt-module-template
spec:
dnsPolicy: None
dnsConfig:
nameservers:
- "172.16.36.16"
- "172.16.36.220"
containers:
- name: zt-module-template
image: 172.16.46.66:10043/zt/zt-module-template:VERSION_PLACEHOLDER

View File

@@ -8,8 +8,8 @@
- **核心特性**
1. API 全生命周期管理(定义、版本、回滚、发布缓存刷新)。
2. 编排引擎基于 Spring Integration 动态装配,支持 Start/HTTP/RPC/Script/End 步骤及 JSON 变换链路。
3. 多重安全防护IP 白/黑名单、应用凭证、时间戳 + 随机串、报文加解密、签名、防重放、租户隔离、匿名固定用户等。
4. QoS 能力可插拔限流策略Redis 固定窗口计数)、审计日志、追踪 ID & Step 级结果入库。
3. 多重安全防护:**精确 IP 白/黑名单(仅支持单 IP不支持 CIDR 段)**、应用凭证、时间戳 + 随机串、报文加解密、签名、防重放、租户隔离、匿名固定用户等。
4. QoS 能力可插拔限流策略Redis 固定窗口计数)、访问日志、追踪 ID & Step 级结果入库。
5. Debug 支持:管理端 `POST /databus/gateway/invoke` 可注入任意参数模拟真实调用。
## 2. 运行时架构概览
@@ -86,16 +86,17 @@
## 7. 配置项(`application.yml`)重点
> 说明:下表均有默认值,除非特别标注“必填”,其余可按需覆盖或直接使用默认。未配置 `allowed-ips` 表示放行所有来源;如开启多租户透传才需设置 `tenant-header`。
```yaml
databus:
api-portal:
base-path: /admin-api/databus/api/portal
allowed-ips: [10.0.0.0/24] # 可为空表示全放行
# 仅支持精确 IP留空表示全放行。示例允许两个固定出口 IP
allowed-ips: [10.0.0.12, 10.0.0.13]
denied-ips: []
enable-tenant-header: true
tenant-header: ZT-Tenant-Id
enable-audit: true
enable-rate-limit: true
tenant-header: ZT-Tenant-Id # 仅当 enable-tenant-header=true 时才需要配置
security:
enabled: true
signature-type: MD5 # 或 SHA256
@@ -109,6 +110,12 @@ databus:
connection-pool-enabled: true # 默认启用 Reactor Netty 连接池,可在排查连接复用/长连接异常时设为 false
```
### 必填/必选提示
- 无需在 yml 中显式写入必填项;若需要启用租户透传,请同步配置 `tenant-header`
- 安全校验依赖“客户端凭证”里的 `encryptionKey/encryptionType/signatureType`;当 `require-body-encryption=true` 且凭证缺少密钥时调用会失败HTTP 500 `应用未配置加密密钥`)。
- 限流能力取决于 API 绑定的策略;未绑定即不做限流。`connection-pool-enabled` 仅用于排障,可保持默认。
> `GatewaySecurityFilter` 会自动注册到最高优先级 +10确保该路径的请求先经过安全校验。
关闭连接池后,每次 HTTP Step 请求都会新建 TCP 连接,适合短期定位“连接被复用导致 Reset/超时”的场景,但会带来额外的握手开销;切换时可关注启动日志中的 `Databus gateway WebClient pooling` 提示。
@@ -133,7 +140,7 @@ databus:
| 1 | 生成时间戳 | `timestamp = System.currentTimeMillis()`,与服务器时间差 ≤ 300s。 |
| 2 | 生成随机串 | `nonce` 长度≥8可使用 `UUID.randomUUID().toString().replace("-", "")`。 |
| 3 | 准备明文 Body | 例如 `{"orderNo":"SO20251120001"}`,记为 `plainBody`。 |
| 4 | 计算签名 | 将所有签名字段放入 Map详见下节调用 `CryptoSignatureUtils.verifySignature` 同样的规则:对 key 排序、跳过 `signature` 字段、使用 `&``key=value`,再`MD5/SHA256` 计算;结果赋值给 `ZT-Signature`*注意:签名使用明文 body。* |
| 4 | 计算签名 | 使用**明文**请求数据构造签名载荷Query 参数 + JSON Body 字段(若 Body 非 JSON 则整体放入 `body` 字段)+ `ZT-App-Id` + `ZT-Timestamp` + `ZT-Nonce`,按字典序拼`key=value``&` 连接,使`MD5/SHA256` 计算;结果写入 `ZT-Signature`。 |
| 5 | 加密请求体 | 使用凭证的 `encryptionKey + encryptionType``plainBody` 进行对称加密Base64 结果作为 HTTP BodyContent-Type 可设 `text/plain``application/json`。 |
| 6 | 组装请求头 | `ZT-App-Id`, `ZT-Timestamp`, `ZT-Nonce`, `ZT-Signature`, `ZT-Tenant-Id`(可选), `X-Client-Id`(建议,与限流相关),如有自带 JWT 则设置 `Authorization`。 |
| 7 | 发送请求 | URL = `https://{host}{basePath}/{apiCode}/{version}`,方法与 API 定义保持一致。 |
@@ -141,14 +148,14 @@ databus:
#### 签名字段示例
```text
appId=demo-app
&body={"orderNo":"SO20251120001"}
&nonce=0c5e2df9a1
&timestamp=1732070400000
ZT-App-Id=demo-app
&ZT-Nonce=0c5e2df9a1
&ZT-Timestamp=1732070400000
&orderNo=SO20251120001
```
- Query 参数将被拼接为 `key=value`(多值以逗号连接),自动忽略 `signature` 字段。
- Request Body 若非 JSON则退化为字符串整体签名。
- Body 为 JSON 时会按字段展开参与签名;仅在非 JSON 场景下才使用整体报文字符串作为 `body` 字段参与签名。
#### cURL 示例
@@ -183,18 +190,17 @@ curl -X POST "https://gw.example.com/admin-api/databus/api/portal/order.create/v
## 9. 限流策略配置
- 存储在 `ApiPolicyRateLimitDO.config`JSON 结构示例
- 存储在 `ApiPolicyRateLimitDO.config`仅支持字段
```json
{
"limit": 1000,
"windowSeconds": 60,
"keyTemplate": "${apiCode}:${tenantId}:${header.X-Client-Id}" // 预留扩展
"windowSeconds": 60
}
```
- 当前默认实现读取 `limit`(默认 100`windowSeconds`(默认 60
- Redis Key 格式`databus:api:rl:{apiCode}:{version}:{X-Client-Id}`计数首次出现自动设置过期。
- 当前实现读取上述两个字段Key 模板不可配置
- Redis Key 固定为`databus:api:rl:{apiCode}:{version}:{X-Client-Id}``X-Client-Id` 缺省时使用 `anonymous`计数首次出现自动设置过期。
- 限流拦截后会抛出 `API_RATE_LIMIT_EXCEEDED`,在访问日志中标记 `status=1/2`
## 10. 访问日志字段对照

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,45 @@
/*
* Databus API 凭证绑定与访问日志补充字段DM8
* Generated on 2025-12-09
*/
-- ----------------------------
-- Table structure for databus_api_definition_credential
-- ----------------------------
CREATE TABLE databus_api_definition_credential (
id BIGINT NOT NULL PRIMARY KEY,
tenant_id BIGINT NOT NULL DEFAULT 0,
api_id BIGINT NOT NULL,
credential_id BIGINT NOT NULL,
app_id VARCHAR(128),
creator VARCHAR(64) DEFAULT '' NOT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
updater VARCHAR(64) DEFAULT '' NOT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
deleted BIT DEFAULT '0' NOT NULL
);
CREATE UNIQUE INDEX uk_databus_api_definition_credential ON databus_api_definition_credential (api_id, credential_id, deleted);
CREATE INDEX idx_databus_api_definition_credential_api ON databus_api_definition_credential (api_id);
CREATE INDEX idx_databus_api_definition_credential_cred ON databus_api_definition_credential (credential_id);
COMMENT ON TABLE databus_api_definition_credential IS 'Databus API 凭证绑定表';
COMMENT ON COLUMN databus_api_definition_credential.id IS '主键 ID';
COMMENT ON COLUMN databus_api_definition_credential.tenant_id IS '租户编号';
COMMENT ON COLUMN databus_api_definition_credential.api_id IS 'API 定义 ID';
COMMENT ON COLUMN databus_api_definition_credential.credential_id IS '凭证 ID';
COMMENT ON COLUMN databus_api_definition_credential.app_id IS '凭证应用标识冗余';
COMMENT ON COLUMN databus_api_definition_credential.creator IS '创建者';
COMMENT ON COLUMN databus_api_definition_credential.create_time IS '创建时间';
COMMENT ON COLUMN databus_api_definition_credential.updater IS '更新者';
COMMENT ON COLUMN databus_api_definition_credential.update_time IS '更新时间';
COMMENT ON COLUMN databus_api_definition_credential.deleted IS '逻辑删除标记';
-- ----------------------------
-- Alter databus_api_access_log add credential columns
-- ----------------------------
ALTER TABLE databus_api_access_log ADD credential_app_id VARCHAR(128);
COMMENT ON COLUMN databus_api_access_log.credential_app_id IS '调用凭证应用标识';
ALTER TABLE databus_api_access_log ADD credential_id BIGINT;
COMMENT ON COLUMN databus_api_access_log.credential_id IS '调用凭证 ID';

View File

@@ -0,0 +1,9 @@
-- 短信渠道新增鸿联九五支持达梦8
-- 1) system_sms_channel 表新增 epid 字段
-- 2) system_sms_channel_code 字典新增 HL95 选项
ALTER TABLE system_sms_channel ADD COLUMN epid VARCHAR(64);
COMMENT ON COLUMN system_sms_channel.epid IS '企业编号(epid)';
INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted)
VALUES (1592, 5, '鸿联九五', 'HL95', 'system_sms_channel_code', 0, '', '', '', '1', '2025-12-10 00:00:00', '1', '2025-12-10 00:00:00', '0');

View File

@@ -0,0 +1,25 @@
-- Databus API 凭证绑定 & 访问日志补充字段
-- API 与客户凭证绑定表
CREATE TABLE IF NOT EXISTS `databus_api_definition_credential` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`api_id` bigint NOT NULL COMMENT 'API 定义 ID',
`credential_id` bigint NOT NULL COMMENT '凭证 ID',
`app_id` varchar(128) DEFAULT NULL COMMENT '凭证应用标识冗余',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
`creator` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_api_credential` (`api_id`, `credential_id`, `deleted`),
KEY `idx_api_id` (`api_id`),
KEY `idx_credential_id` (`credential_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Databus API 凭证绑定表';
-- 访问日志补充凭证信息
ALTER TABLE `databus_api_access_log`
ADD COLUMN IF NOT EXISTS `credential_app_id` varchar(128) NULL COMMENT '调用凭证应用标识' AFTER `api_version`;
ALTER TABLE `databus_api_access_log`
ADD COLUMN IF NOT EXISTS `credential_id` bigint NULL COMMENT '调用凭证 ID' AFTER `credential_app_id`;

View File

@@ -871,6 +871,7 @@ INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `st
INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1589, 10, 'BPMN 设计器', '10', 'bpm_model_type', 0, 'primary', '', '', '1', '2024-08-26 15:22:17', '1', '2024-08-26 16:46:02', b'0');
INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1590, 20, 'SIMPLE 设计器', '20', 'bpm_model_type', 0, 'success', '', '', '1', '2024-08-26 15:22:27', '1', '2024-08-26 16:45:58', b'0');
INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1591, 4, '七牛云', 'QINIU', 'system_sms_channel_code', 0, '', '', '', '1', '2024-08-31 08:45:03', '1', '2024-08-31 08:45:24', b'0');
INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1592, 5, '鸿联九五', 'HL95', 'system_sms_channel_code', 0, '', '', '', '1', '2025-12-10 00:00:00', '1', '2025-12-10 00:00:00', b'0');
INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1592, 3, '新人券', '3', 'promotion_coupon_take_type', 0, 'info', '', '新人注册后,自动发放', '1', '2024-09-03 11:57:16', '1', '2024-09-03 11:57:28', b'0');
INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1593, 5, '微信零钱', '5', 'brokerage_withdraw_type', 0, '', '', 'API 打款', '1', '2024-10-13 11:06:48', '1', '2025-05-10 08:24:55', b'0');
INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1683, 10, '字节豆包', 'DouBao', 'ai_platform', 0, '', '', '', '1', '2025-02-23 19:51:40', '1', '2025-02-23 19:52:02', b'0');
@@ -3509,6 +3510,7 @@ DROP TABLE IF EXISTS `system_sms_channel`;
CREATE TABLE `system_sms_channel` (
`id` bigint NOT NULL COMMENT '编号',
`signature` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '短信签名',
`epid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '企业编号(epid)',
`code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '渠道编码',
`status` tinyint NOT NULL COMMENT '开启状态',
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',
@@ -3527,9 +3529,9 @@ CREATE TABLE `system_sms_channel` (
-- Records of system_sms_channel
-- ----------------------------
BEGIN;
INSERT INTO `system_sms_channel` (`id`, `signature`, `code`, `status`, `remark`, `api_key`, `api_secret`, `callback_url`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2, 'Ballcat', 'ALIYUN', 0, '你要改哦,只有我可以用!!!!', 'LTAI5tCnKso2uG3kJ5gRav88', 'fGJ5SNXL7P1NHNRmJ7DJaMJGPyE55C', NULL, '', '2021-03-31 11:53:10', '1', '2024-08-04 08:53:26', b'0');
INSERT INTO `system_sms_channel` (`id`, `signature`, `code`, `status`, `remark`, `api_key`, `api_secret`, `callback_url`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (4, '测试渠道', 'DEBUG_DING_TALK', 0, '123', '696b5d8ead48071237e4aa5861ff08dbadb2b4ded1c688a7b7c9afc615579859', 'SEC5c4e5ff888bc8a9923ae47f59e7ccd30af1f14d93c55b4e2c9cb094e35aeed67', NULL, '1', '2021-04-13 00:23:14', '1', '2022-03-27 20:29:49', b'0');
INSERT INTO `system_sms_channel` (`id`, `signature`, `code`, `status`, `remark`, `api_key`, `api_secret`, `callback_url`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (7, 'mock腾讯云', 'TENCENT', 0, '', '1 2', '2 3', '', '1', '2024-09-30 08:53:45', '1', '2024-09-30 08:55:01', b'0');
INSERT INTO `system_sms_channel` (`id`, `signature`, `epid`, `code`, `status`, `remark`, `api_key`, `api_secret`, `callback_url`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2, 'Ballcat', NULL, 'ALIYUN', 0, '你要改哦,只有我可以用!!!!', 'LTAI5tCnKso2uG3kJ5gRav88', 'fGJ5SNXL7P1NHNRmJ7DJaMJGPyE55C', NULL, '', '2021-03-31 11:53:10', '1', '2024-08-04 08:53:26', b'0');
INSERT INTO `system_sms_channel` (`id`, `signature`, `epid`, `code`, `status`, `remark`, `api_key`, `api_secret`, `callback_url`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (4, '测试渠道', NULL, 'DEBUG_DING_TALK', 0, '123', '696b5d8ead48071237e4aa5861ff08dbadb2b4ded1c688a7b7c9afc615579859', 'SEC5c4e5ff888bc8a9923ae47f59e7ccd30af1f14d93c55b4e2c9cb094e35aeed67', NULL, '1', '2021-04-13 00:23:14', '1', '2022-03-27 20:29:49', b'0');
INSERT INTO `system_sms_channel` (`id`, `signature`, `epid`, `code`, `status`, `remark`, `api_key`, `api_secret`, `callback_url`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (7, 'mock腾讯云', NULL, 'TENCENT', 0, '', '1 2', '2 3', '', '1', '2024-09-30 08:53:45', '1', '2024-09-30 08:55:01', b'0');
COMMIT;
-- ----------------------------

View File

@@ -32,8 +32,6 @@
<spring.boot.version>3.4.5</spring.boot.version>
<spring.cloud.version>2024.0.1</spring.cloud.version>
<spring.cloud.alibaba.version>2023.0.3.2</spring.cloud.alibaba.version>
<!-- 分布式事务相关 -->
<seata.version>2.4.0</seata.version>
<!-- Web 相关 -->
<springdoc.version>2.8.3</springdoc.version>
<knife4j.version>4.6.0</knife4j.version>
@@ -90,8 +88,6 @@
<mqtt.version>1.2.5</mqtt.version>
<pf4j-spring.version>0.9.0</pf4j-spring.version>
<okhttp3.version>4.12.0</okhttp3.version>
<docx4j.version>11.4.7</docx4j.version>
<docx4j-jaxb.version>11.4.7</docx4j-jaxb.version>
<!-- 规则引擎 -->
<liteflow.version>2.15.1</liteflow.version>
<vertx.version>4.5.13</vertx.version>
@@ -137,20 +133,6 @@
<scope>import</scope>
</dependency>
<!-- 分布式事务Seata -->
<!-- 显式覆盖 Spring Cloud Alibaba BOM 中的 Seata 1.8.0,升级到 2.4.0 以支持达梦数据库 -->
<!-- 注意Seata 2.2.0+ 改为使用 org.apache.seata groupId -->
<dependency>
<groupId>org.apache.seata</groupId>
<artifactId>seata-all</artifactId>
<version>${seata.version}</version>
</dependency>
<dependency>
<groupId>org.apache.seata</groupId>
<artifactId>seata-spring-boot-starter</artifactId>
<version>${seata.version}</version>
</dependency>
<!-- 业务组件 -->
<dependency>
<groupId>io.github.mouzt</groupId>

View File

@@ -1,6 +1,7 @@
package com.zt.plat.framework.common.util.security;
import cn.hutool.crypto.SecureUtil;
import com.zt.plat.framework.common.util.json.JsonUtils;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
@@ -126,7 +127,11 @@ public final class CryptoSignatureUtils {
continue;
}
sb.append(key).append('=');
sb.append(value);
if (value instanceof String || value instanceof Number || value instanceof Boolean) {
sb.append(value);
} else {
sb.append(JsonUtils.toJsonString(value));
}
sb.append('&');
}
if (sb.length() > 0) {

Some files were not shown because too many files have changed in this diff Show More