You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
3 days ago | |
|---|---|---|
| .superpowers/sdd/2026-08-03-issuance-request-implementation | 4 weeks ago | |
| docs | 4 weeks ago | |
| src | 3 days ago | |
| .gitignore | 4 weeks ago | |
| README.md | 2 weeks ago | |
| pom.xml | 3 weeks ago | |
README.md
数字人民币教学仿真后端
开发规范与模块目录约定见 开发规范。
运行环境
- JDK 8(已按 Temurin 8 验证)
- Spring Boot 2.7.18、Spring Security 5.7、MyBatis-Plus 3.5.17、Knife4j 4.4.0
- MySQL 8
登录方式
- 兼容综合实训平台登录:
POST /api/user/login。- 账号密码登录参数:
username、passwordEncode。 - Token 单点登录参数:
TOKEN。接口解析智云 HS256 Token,同步本地用户并直接返回本系统访问 Token。
- 账号密码登录参数:
- 原有主平台跳转登录:
GET /api/v1/auth/sso?token=...,验证成功后携带本系统 Token 跳转前端回调地址。 - 本地账号密码:
POST /api/v1/auth/login请求体为{"studentId":"tzs001","password":"123qwe"},按sys_user.student_id查询并校验本系统保存的 BCrypt 密码哈希。旧字段username暂时作为兼容别名。
Token 单点登录中的平台 userId 保存为 sys_user.zy_user_id;本地
sys_user.user_id 始终使用 UUID 主键。本系统只接受管理员、教师和学生角色。
必需配置
生产环境通过环境变量配置:
| 变量 | 说明 |
|---|---|
DIGITAL_RMB_DB_URL |
本系统 MySQL JDBC 地址 |
DIGITAL_RMB_DB_USERNAME |
本系统数据库账号 |
DIGITAL_RMB_DB_PASSWORD |
本系统数据库密码 |
DIGITAL_RMB_JWT_SECRET |
至少 64 字符的应用 JWT 密钥 |
DIGITAL_RMB_PLATFORM_DB_URL |
主平台 MySQL JDBC 地址 |
DIGITAL_RMB_PLATFORM_DB_USERNAME |
主平台只读数据库账号 |
DIGITAL_RMB_PLATFORM_DB_PASSWORD |
主平台只读数据库密码 |
DIGITAL_RMB_CAS_LOGIN_URL |
学校 CAS 登录地址 |
DIGITAL_RMB_CAS_VALIDATE_URL |
CAS serviceValidate 地址 |
DIGITAL_RMB_CAS_CALLBACK_URL |
本系统固定 CAS 回调地址 |
DIGITAL_RMB_FRONTEND_CALLBACK_URL |
前端接收一次性 code 的固定回调地址 |
主平台数据库账号必须仅授予 SELECT 权限。不要将主平台 Token 写入日志、数据库或前端最终 URL。
本地运行
mvn spring-boot:run -Dspring-boot.run.profiles=local -Dspring-boot.run.arguments=--server.port=8081
本地 Swagger:http://localhost:8081/doc.html
数字货币发行实验模块
学生携带有效 JWT 可操作商业银行端和中央银行端;接口不区分教师、学生角色。
- 商业银行端:
/api/v1/commercial-banks/issuance,包含库存查询、发行申请创建与更新、待签名原文、SM3 摘要、SM2 签名、报文封装和发送。 - 中央银行端:
/api/v1/central-banks/issuance/requests/{id},只读返回请求接收状态、接收时间和请求报文。 - 启动测试库配置:
mvn spring-boot:run -Dspring-boot.run.profiles=dev。 - Swagger 接口说明按“数字货币发行模块 - 商业银行端”和“数字货币发行模块 - 中央银行端”分组,使用中文 UTF-8 文本。
测试环境会执行 schema.sql,创建或更新测试账号 tzs001。dev 配置的
spring.sql.init.mode 为 never,不会自动修改真实 MySQL;开发库必须已有
sys_user 记录,并且 password 必须保存 BCrypt 哈希,不能保存密码明文。