Go to file
夏犀麟 4aca0c7f6f
Some checks failed
Build and Deploy (service.xpcool.com) / build-and-deploy (push) Failing after 5m7s
feat(house): 实现看房模块后端功能
- 新增 9 张房屋相关数据表(社区/楼宇/房源/价格快照/交易/设施/社区设施/学区/偏好)
- 添加菜单权限种子数据并绑定超级管理员角色
- 生成 DAO 层代码和实体对象
- 实现房屋模块 API 接口(社区/房源/看板)和控制器服务层
- 支持多平台软关联匹配、笋盘标记和低可信度标记功能
- 更新超级管理员账号为 xxcool/xxCool@2026
- 调整 RBAC 菜单结构,移除管理员管理功能,新增日志管理菜单
- 修复 RBAC 安全漏洞,确保禁用角色权限失效
- 重构认证模块,将登录相关接口迁移到统一包结构下
- 移除废弃的管理模块和工具类接口定义
- 为通用工具包添加中文注释和文档说明
2026-08-26 23:42:38 +08:00
.gitea/workflows feat(house): 实现看房模块后端功能 2026-08-26 23:42:38 +08:00
.workbuddy/memory feat(house): 实现看房模块后端功能 2026-08-26 23:42:38 +08:00
api feat(house): 实现看房模块后端功能 2026-08-26 23:42:38 +08:00
common feat(house): 实现看房模块后端功能 2026-08-26 23:42:38 +08:00
docs feat(house): 实现看房模块后端功能 2026-08-26 23:42:38 +08:00
hack feat(house): 实现看房模块后端功能 2026-08-26 23:42:38 +08:00
internal feat(house): 实现看房模块后端功能 2026-08-26 23:42:38 +08:00
manifest feat(house): 实现看房模块后端功能 2026-08-26 23:42:38 +08:00
resource feat(dev): 项目初始化。 2026-07-17 17:58:08 +08:00
utility feat(dev): 项目初始化。 2026-07-17 17:58:08 +08:00
.gitattributes feat(dev): 项目初始化。 2026-07-17 17:58:08 +08:00
.gitignore feat(house): 实现看房模块后端功能 2026-08-26 23:42:38 +08:00
AGENTS.md chore: CHANGELOG 纳入 git 管理;AGENTS.md 中央工作空间路径改相对引用 ../workbuddy.xpcool.com 2026-08-26 19:07:23 +08:00
go.mod feat(admin): 后台登录/菜单/按钮级权限/RBAC管理与服务器日志监控 2026-08-24 22:35:54 +08:00
go.sum feat(admin): 后台登录/菜单/按钮级权限/RBAC管理与服务器日志监控 2026-08-24 22:35:54 +08:00
main.go feat(admin): 后台登录/菜单/按钮级权限/RBAC管理与服务器日志监控 2026-08-24 22:35:54 +08:00
Makefile feat(dev): 项目初始化。 2026-07-17 17:58:08 +08:00
PROJECT_STRUCTURE.md refactor(api): 契约文件 index.go 重命名为 <功能名>.go 2026-08-24 18:07:33 +08:00
README.MD feat(house): 实现看房模块后端功能 2026-08-26 23:42:38 +08:00

Personal multi-client service

Layout

api → internal/controller → internal/service → internal/dao → internal/model(entity/do) is enforced. DTO and VO live in internal/model/dto and internal/model/vo; neither API types nor entities cross that boundary.

Database model generation

Run manifest/sql/001_core.sql on MySQL, set DB_DSN, then run:

gf gen dao -p internal -g default -gt -c

The command is intentionally the only source of internal/dao, internal/model/do, and internal/model/entity.

API isolation

  • /api/v1/*: user API, terminal header/body supports mini, h5, and app.
  • /admin/v1/*: admin API. Protected endpoints require both an admin access token and an X-Permission identifier.

Use GF_GCFG_FILE=config.dev.yaml (or config.test.yaml / config.prod.yaml) and set DB_DSN plus a strong JWT_SECRET before startup.

Local startup

  • Terminal: source .env.dev && go run main.go (.env.dev is gitignored, holds local DSN + secret).
  • GoLand: run configuration .run/service-dev.run.xml (project-level, auto-detected after reloading the project) already injects GF_GCFG_FILE / DB_DSN / JWT_SECRET; pick it in the run dropdown. The file is gitignored because it contains the DB password.