Files
ysch-question-service/README.md
T

49 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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)
```bash
# 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`
## 测试
```bash
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 按此登记)。