main
build / build-push (push) Successful in 51s
question-center 问卷后端(ysch-question-service)
问卷应用 R1「先行跑通」后端:Spring Boot 2.7.18,包名 com.yunhai.question,端口 8090,库 ysch_question。链路:新建问卷(自动挂接 FC 表单)→ iframe 内用 FC 设计器编辑 → 发布投放(链接+二维码)→ FC 填写页提交 → 投影拉取 → 回收明细与基础统计。表单定义/版本/校验/答卷权威全在 form-center(FC),本服务零改动 FC;提交入口永远在 FC 填写页 #/f/{code}(不建第二提交入口)。
配套前端:ysch-question-front(Vue3+TS+Vite5,端口 8091)。
├── sql/question_r1.sql 建表脚本(questionnaire / pull_cursor / answer_projection)
└── src/ 主代码 + 无外部依赖单测(H2+mock,23 例:投影幂等/游标推进/人数口径/绑定 uk)
前置依赖(联调)
| 依赖 | 地址 | 说明 |
|---|---|---|
| form-center 后端/前端 | localhost:8086 / 8089 | /oapi 三端点 + 设计器 iframe / 填写页 #/f/{code} |
| MySQL | localhost:3306 | 建库 ysch_question(执行 sql/question_r1.sql;开发期 ddl-auto=update 可自动建表) |
| Redis | localhost:6379 | 平台 starter 密钥链(trust-registry) |
| CAS/UserBase | localhost:8443 / 8060 | 登录与模块下发(local-debug 形态,同 flow-center) |
| appKey | UserBase | question-center appKey=100020 已注册(2026-10-22);FC 验签走 trust-registry 密钥链,FC 本地 trusted-apps 仅停摆兜底、可不配 |
| AppRegistry | FC 管理页 | 校管理员在 FC 管理面登记 question 应用(appCode 恒 question,不写代码注册) |
启动(本地 dev)
# 1) MySQL 建库
mysql -uroot -p123456 < sql/question_r1.sql
# 2) 启动(:8090)
mvn -o spring-boot:run
# 健康探针:登录态 curl http://localhost:8090/api/question/ping → 200 {pong,user,shcId};未登录 → 302 CAS
关键配置(src/main/resources/application.yml)
yh.app-auth.app-key: 100020(UserBase 已注册;FC 侧经 trust-registry 密钥链验签,secret 两端须一致)yh.open.services.form-center: http://localhost:8086(FormCenterClient 唯一出站点)question.projection.fixed-delay-ms: 30000
测试
mvn -o test # 23 例单测(H2/mock,无外部依赖)
红线(沿任务书 §7)
不迁旧数据;不做家长问卷;不跨校;不建第二答卷提交入口;不改 form-center/flow-center/svc-hall/Notice/UserBase/BasePlatform;不 import FC 在途未提交类(FormConsumerAccessService/AnswerDelivery*/SubmissionContext* 等);OAPI 只用已提交的 schema/answer/answers 三端点;appCode 恒为 question(2026-10-22 改定;FC AppRegistry 按此登记)。
Languages
Java
99%
Dockerfile
1%