100 Commits
Author SHA1 Message Date
wangziqi 3bd72596c9 Merge pull request 'Update data.sql' (#53) from update-data-sql into main 2026-07-24 08:57:21 +00:00
wangziqi 4fc77aec07 Update data.sql 2026-07-24 16:57:15 +08:00
wangziqi 6dcb2bc28a Merge pull request 'Clean up data.sql: remove unused entries' (#52) from cleanup-data-sql into main 2026-07-24 08:48:06 +00:00
wangziqi d5a1d23037 Clean up data.sql: remove unused entries 2026-07-24 16:47:54 +08:00
wangziqi 1f198d48ea Merge pull request 'Refactor AI chat: streaming, tool calls, UI polish' (#51) from refactor-ai-chat-streaming into main 2026-07-24 08:28:10 +00:00
wangziqi 5cf68e3f8a Merge pull request 'main' (#50) from xiongyuxing/gongxue-base:main into main 2026-07-24 08:28:07 +00:00
wangziqi 8656394b9b Refactor AI chat: streaming, tool calls, UI polish 2026-07-24 16:27:50 +08:00
wangziqi e605586fc9 Merge pull request 'Refactor AI config to step-based wizard with DeepSeek defaults' (#49) from refactor-ai-config-wizard into main 2026-07-24 06:35:16 +00:00
wangziqi 150e6ecff0 Refactor AI config to step-based wizard with DeepSeek defaults 2026-07-24 14:34:32 +08:00
wangziqi 065dfd9a38 Merge pull request '修复管理员班级可见范围、 修复班级归档查询参数转换、 移除账号启用状态统一使用归档' (#48) from xiongyuxing/gongxue-base:main into main
Reviewed-on: https://git.gongxue100.com/wangziqi/gongxue-base/pulls/48
2026-07-24 06:32:55 +00:00
wangziqi 106c30683f Merge pull request 'fix: 修复 CI — 安装 AI 依赖 + 移除 lucide-react + 删除 docs' (#47) from fix/ci-deps-and-cleanup into main 2026-07-23 07:38:53 +00:00
wangziqi 3a2b3f1239 fix: add AI deps, remove lucide-react; chore: remove docs 2026-07-23 15:25:20 +08:00
wangziqi b8d5927a16 Merge branch 'review-pr44' 2026-07-23 15:21:51 +08:00
wangziqi fb787c3e0d Merge pull request '集成 AI 对话与只读查询工具' (#44) from xiongyuxing/gongxue-base:main into main 2026-07-23 07:15:07 +00:00
wangziqi 176f098923 chore: add @ant-design/x deps for AI chat feature 2026-07-23 15:08:57 +08:00
wangziqi c401766bc5 fix: replace lucide-react Sparkles with RobotOutlined to avoid extra dependency 2026-07-23 15:02:36 +08:00
wangziqi 2a20b1fc97 Merge pull request 'fix: 权限按钮可见性与Modal/Popconfirm撤权一致性修复' (#45) from worktree-audit-permission-ui into main 2026-07-23 06:40:18 +00:00
wangziqi 446c6bcc91 fix: harden permission-gated UI — minimum-org endpoint, modal/Popconfirm fail-closed on revocation 2026-07-23 14:28:58 +08:00
wangziqi a7a7af1667 fix: close permission review gaps
fix: harden permission-gated UI — minimum-org endpoint, modal/Popconfirm fail-closed on revocation
2026-07-23 14:28:58 +08:00
wangziqi c98d37307e fix: align permission-gated UI actions 2026-07-23 12:34:37 +08:00
wangziqi adf738288f Merge pull request 'chore: 修复 npm 高危依赖漏洞' (#43) from worktree-npm-security-updates into main 2026-07-23 04:12:10 +00:00
wangziqi 585e955720 Merge pull request 'test: cover end-to-end attendance workflow' (#41) from worktree-working-session into main 2026-07-23 04:10:31 +00:00
wangziqi eaca56617c chore: patch vulnerable npm dependencies 2026-07-23 12:02:20 +08:00
wangziqi 0bdc8a067b fix: satisfy attendance workflow lint 2026-07-23 11:48:50 +08:00
wangziqi 490a337446 Merge remote-tracking branch 'origin/main' into fix/pr41-ci 2026-07-23 11:47:30 +08:00
wangziqi 302dbe0621 Merge pull request 'fix: 避免 PR #40 触屏双击时缩放页面' (#42) from fix/pr40-touch-action into main 2026-07-23 03:32:57 +00:00
wangziqi 5bd63846d1 fix: prevent touch double-tap zoom 2026-07-23 11:27:41 +08:00
wangziqi 301064dbf6 Merge pull request '修复手机端双击编辑单元格' (#40) from xiongyuxing/gongxue-base:main into main 2026-07-23 03:26:42 +00:00
wangziqi 099cff7f00 test: cover end-to-end attendance workflow 2026-07-23 10:31:23 +08:00
wangziqi 0ce8f58adb chore: remove dead code and tune frontend chunks
Remove unused production symbols, starter assets, and stale browser tooling; reduce frontend chunk fragmentation.
2026-07-23 01:26:41 +00:00
wangziqi 43ca5a6e36 Merge pull request 'fix: UI优化 + 钉钉考勤已结算课程刷新 + dev脚本改进' (#38) from fix/ux-improvements-20260722 into main 2026-07-22 09:52:03 +00:00
wangziqi 90cc321221 fix: UI improvements and DingTalk attendance refresh for completed sessions
- DatePicker editors open immediately on double-click
- Student archive drawer hides empty studentNo parentheses
- Student add/edit form uses 2-column grid layout
- Table horizontal scrollbars show only on hover/focus
- Remove fake 近7日趋势 stats from attendance student detail
- Allow DingTalk refresh to update completed attendance sessions
  (late-arriving punches can now change absent → present)
- Switch dev command from concurrently to turbo run dev
- Remove concurrently/wait-on dependencies
2026-07-22 17:50:59 +08:00
wangziqi d33c37b4b0 Merge pull request '修复学习记录实体未注册问题' (#37) from xiongyuxing/gongxue-base:main into main 2026-07-22 09:38:45 +00:00
wangziqi 5b10e80d3a Merge pull request '修正换宿当天查寝归属、修复 SQLite 钱包调账锁异常' (#36) from xiongyuxing/gongxue-base:main into main 2026-07-22 08:59:43 +00:00
wangziqi cd1996f281 Merge pull request '增加金数据学生同步与匹配规则' (#35) from feature/jinshuju-student-sync into main 2026-07-22 04:30:03 +00:00
wangziqi e1bc3a6b2c ci: remove cache steps that add overhead 2026-07-22 12:27:51 +08:00
wangziqi 6052b03fc6 ci: cache npm and Turbo artifacts 2026-07-22 11:50:53 +08:00
wangziqi 67fdf093e5 perf: split oversized admin bundles 2026-07-22 11:45:35 +08:00
wangziqi 393ee62168 feat: add Jinshuju student sync 2026-07-22 11:41:50 +08:00
wangziqi 1dc13274de Merge pull request '增加宿舍查寝功能' (#34) from xiongyuxing/gongxue-base:main into main 2026-07-22 03:33:32 +00:00
wangziqi e27d8b512e Merge pull request '修复学生余额多选充值一次性最高只能选15个' (#33) from xiongyuxing/gongxue-base:main into main 2026-07-22 02:23:09 +00:00
wangziqi 25760a4ec7 Merge pull request '学生信息导入' (#32) from xiongyuxing/gongxue-base:main into main 2026-07-22 01:05:47 +00:00
wangziqi 6a35e406d5 Merge pull request '添加可拖拽的路由停靠组件,支持动态标签管理,支持侧边栏多项同时展开' (#31) from xiongyuxing/gongxue-base:main into main 2026-07-21 06:37:33 +00:00
wangziqi b32dc33e8b Merge pull request 'feat: 移除 Docker 部署,添加 Gitea CI/CD + PM2 手动部署' (#30) from worktree-ci-cd-pm2-deploy into main 2026-07-20 07:46:18 +00:00
wangziqi 151ef06ec2 refactor: 精简部署流程,移除 MySQL 管理
MySQL 已在服务器运行,部署只需三步:
1. 本地构建 → rsync 同步
2. npm ci(首次)+ migration:run
3. pm2 startOrReload
2026-07-20 15:35:45 +08:00
wangziqi a87f26a915 feat: 移除 Docker 部署,添加 Gitea CI/CD workflows
- 删除 docker-compose.yml、Dockerfile、.dockerignore、docker/ 目录
- 更新 deploy.sh:移除 Docker Compose MySQL 启动,改为 systemd 检查
- 新增 .gitea/workflows/deploy.yml:手动触发、rsync + SSH + PM2 部署
- 新增 .gitea/workflows/ci.yml:PR lint + typecheck + test 自动检查
2026-07-20 15:33:46 +08:00
wangziqi ad62b8595c Merge pull request 'test: 为边界条件修复添加测试用例' (#29) from test/boundary-conditions into main 2026-07-20 07:31:36 +00:00
wangziqi 2c0be0f033 test: 为边界条件修复添加测试用例
- rooms: parseRoomNumber 未知格式、楼层0、capacity ?? 测试
- occupancies: capacity undefined/null/0 fail-closed 防守测试
- schedules: startTime > endTime 拒绝测试
- attendance: 重叠检查按时间排序、raw[index] 移除测试
- expenses: 金额零/负/NaN 拒绝、period反转校验测试

5 modules, 40 tests, all passing
2026-07-20 15:30:41 +08:00
wangziqi bbd700369c Merge pull request 'fix: 修复多处边界条件问题' (#27) from fix/boundary-conditions into main 2026-07-20 06:50:21 +00:00
wangziqi 00e9c5e45a fix: 修复多处边界条件问题
- rooms: parseRoomNumber 未知格式返回默认 capacity=4,防止 undefined 绕过入住容量检查
- rooms: 修复 parseInt() || undefined 导致楼层 0 被吞掉
- rooms: batchImport 中 capacity 使用 ?? 代替 ||,显式 0 不被覆盖
- occupancies: 所有 capacity 比较加 ?? 0 防守兜底,fail closed
- schedules: assertValidScheduleRange 增加 startTime > endTime 校验
- attendance: 时段重叠检查改为按 startTime 排序后再比较,消除漏检
- attendance: 移除 getScheduleOptionsForAttendance 中不可靠的 raw[index] fallback
- expenses: 个人附加费批量导入增加 assertPositiveAmount 校验
- expenses: 水电费导入增加 periodEnd >= periodStart 校验
2026-07-20 14:45:53 +08:00
wangziqi 990c0c16e6 feat: Docker Compose deployment + auto migration on startup
- docker-compose.yml: 移除 MySQL 容器,连宿主机 MySQL
- main.ts: 启动前通过独立 DataSource 执行 runMigrations
- migration-runner.ts: 独立 migration 执行器
- app.module.ts: TypeORM 配置增加 migrations
- 修复 InitialSchema 中 room_expenses 和 financial_operations 重复索引
2026-07-20 12:43:13 +08:00
wangziqi 4c2192d85e feat: switch to Docker Compose + auto-migration
- docker-compose.yml: 移除 MySQL 容器,后端连宿主机 MySQL
- main.ts: 启动时自动 runMigrations
- 前端 Nginx 反代 /api/ → backend:3000 不变
2026-07-20 12:24:51 +08:00
wangziqi 2d7c30eb30 Merge pull request 'feat: add TypeORM CLI migration support' (#26) from feat/migration-setup into main 2026-07-20 04:16:59 +00:00
wangziqi 2ee8bd47e2 feat: add TypeORM CLI migration support
- 新增 datasource.ts 支持 mysql/sqlite 双模式
- 新增 migration 脚本: generate/create/run/revert/show
- 生成 InitialSchema migration (35 张表全量建表)
2026-07-20 12:16:48 +08:00
wangziqi a871bb3f96 Merge pull request 'fix: 修正档案报告品牌名 工学云 → 恭学教育' (#25) from fix/brand-name into main 2026-07-20 04:00:17 +00:00
wangziqi ed428c8aa3 fix: 修正档案报告品牌名 工学云 → 恭学教育 2026-07-20 11:59:51 +08:00
wangziqi 62a5f817ae Merge pull request 'feat: 拆分学号/身份证字段 + 考勤教师展示 + 代码优化' (#24) from feat/split-student-id-number into main 2026-07-20 03:54:21 +00:00
wangziqi c7ba2799b9 feat: 拆分学号/身份证字段 + 考勤教师展示 + 代码优化
- 入住导入模板:学号和身份证号拆为独立字段,前后端对齐
- 排课查询关联教师,考勤归档页展示教师姓名
- 抽查时段增加 IsIn 校验
- 抽取 withPessimisticWriteLock 去重悲观锁查询
- import 增加文件空 buffer 校验
- 测试 mock 补全,适配事务 manager
- MySQL init.sql VALUES() 语法兼容修复
2026-07-20 11:54:01 +08:00
wangziqi 375c7ec60b feat: refine admin forms, attendance and finance workflows
Squash merge PR #23.

Included changes:
- complete occupancy check-in required fields/default payload
- improve responsive admin management pages
- fix attendance edge cases and attendance period config
- refine wallet/finance-related workflow handling

Checks:
- npm run typecheck -w apps/admin
- npm run typecheck -w apps/server
2026-07-18 12:54:10 +00:00
wangziqi 92d303ed01 Merge pull request #22: financial safety and attendance workspace 2026-07-18 07:35:49 +00:00
wangziqi 295debee33 Merge teacher attendance workspace 2026-07-18 15:34:36 +08:00
wangziqi a8da6de235 Merge financial safety fixes 2026-07-18 15:34:36 +08:00
wangziqi 98d335b889 feat: redesign teacher attendance workspace 2026-07-18 15:34:02 +08:00
wangziqi 5836b421d8 fix: harden financial transaction boundaries 2026-07-18 15:33:41 +08:00
wangziqi 4af7acbeaa Merge pull request #21: harden DingTalk student synchronization 2026-07-18 06:52:33 +00:00
wangziqi c11f6bb614 fix: harden DingTalk student synchronization 2026-07-18 14:51:53 +08:00
wangziqi d25e451b61 Merge pull request #20: refine deposit workflows and RBAC permissions 2026-07-18 06:07:19 +00:00
wangziqi 7edb4ff853 fix: prune unused RBAC permissions 2026-07-17 17:43:45 +08:00
wangziqi b3d0bafc22 feat: refine deposit room type workflows 2026-07-17 17:36:04 +08:00
wangziqi a5bda6f093 Merge pull request 'fix: 归档删除改为软删除' (#19)
fix: 归档删除改为软删除
2026-07-17 06:18:38 +00:00
wangziqi f7328d670d fix: 归档删除改为软删除 2026-07-17 14:13:17 +08:00
wangziqi 3131d2e141 Merge pull request 'fix:修复无法导出账单pdf' (#18) 2026-07-16 03:47:38 +00:00
wangziqi fa086e4c1c Merge pull request '修复考勤服务测试 mock' (#17) 2026-07-16 03:01:59 +00:00
wangziqi 4fbcde48b1 test: update attendance service mocks 2026-07-16 11:01:24 +08:00
wangziqi c93ac986aa Merge pull request '移除删除账号功能' (#15) 2026-07-16 02:55:22 +00:00
wangziqi ab7f7c725a Merge pull request '添加考勤设备 SN 教室绑定' (#16) 2026-07-16 02:49:30 +00:00
wangziqi 559b8a56e9 feat: add attendance device SN classroom bindings 2026-07-16 10:22:23 +08:00
wangziqi d037787346 feat: support batch wallet balance changes 2026-07-16 10:22:23 +08:00
wangziqi 8ba51f48c0 fix: map expense type sort order column 2026-07-16 10:22:23 +08:00
wangziqi 7a62d8962a chore: update production deployment config 2026-07-16 10:21:40 +08:00
wangziqi 6a43f33f7a Merge pull request '优化管理端移动端适配与班级教师候选人' (#14)
Merge PR #14
2026-07-15 05:57:32 +00:00
wangziqi d582d641c0 feat: improve admin responsive pages and teacher candidates 2026-07-15 13:56:58 +08:00
wangziqi fb9697bd05 Merge pull request '完善全业务边界校验与回归测试' (#12)
Merge PR #12
2026-07-15 05:53:46 +00:00
wangziqi bc49d1016a feat: filter rooms by rental category 2026-07-15 13:52:39 +08:00
wangziqi 8bd445df5a fix student import and profile labels 2026-07-15 10:52:43 +08:00
wangziqi fcde6caaaa fix: defer attendance settlement until lesson end 2026-07-15 09:39:21 +08:00
wangziqi b1f35f9d1a test: harden business boundary conditions 2026-07-15 00:03:55 +08:00
wangziqi 17a5046ea0 Merge pull request '完善考勤排课与接口校验' (#11) from wangziqi/gongxue-base:codex/wzq into main
完善考勤排课、钉钉同步与接口参数校验
2026-07-14 15:13:12 +00:00
wangziqi e45da7f998 feat: improve attendance scheduling and API validation 2026-07-14 23:12:14 +08:00
wangziqi c75a08affe feat: add student wallet utility billing 2026-07-14 20:42:21 +08:00
wangziqi 05a936bbc2 Merge pull request 'feat: 优化入住办理与名单导入' (#9) from codex/wzq into main 2026-07-14 04:26:53 +00:00
wangziqi 3adf4933d8 Merge pull request '修复pdf导出' (#8) from xiongyuxing/gongxue-base:main into main 2026-07-14 04:26:34 +00:00
wangziqi d84f37e98f feat: streamline occupancy check-in and imports 2026-07-14 12:23:53 +08:00
wangziqi 718c58589f Merge PR #7: improve attendance and occupancy workflows 2026-07-14 03:22:19 +00:00
wangziqi aaf49d5580 fix: guard bill generation submission 2026-07-14 11:20:42 +08:00
wangziqi 5cf6aede1e feat: improve occupancy import template 2026-07-14 11:20:41 +08:00
wangziqi 811e7ce826 feat: show DingTalk punch device details 2026-07-14 11:20:41 +08:00
wangziqi d572e984d2 Merge PR #6: keep room capacity and beds consistent 2026-07-14 02:58:01 +00:00
wangziqi a93ba657a8 fix: keep room capacity and beds consistent 2026-07-14 10:57:13 +08:00
wangziqi 77714642a5 Merge PR #5: main 2026-07-14 02:56:04 +00:00