6dc6afece0
fix: 修复已删除店铺名称无法显示的问题
...
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m6s
店铺被软删除后,GORM 默认过滤 deleted_at IS NOT NULL 的记录,
导致查询店铺名称时找不到对应店铺,shop_name 字段被 omitempty 省略。
修复方案:在加载店铺名称的查询中添加 Unscoped(),包含已删除的店铺。
影响接口:
- GET /api/admin/devices(设备列表)
- GET /api/admin/iot-cards/standalone(独立卡列表)
- GET /api/admin/asset-allocation-records(分配记录列表)
- GET /api/admin/enterprises(企业列表)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-25 16:27:58 +08:00
409a68d60b
feat: OpenAPI 契约对齐与框架优化
...
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m45s
主要变更:
1. OpenAPI 文档契约对齐
- 统一错误响应字段名为 msg(非 message)
- 规范 envelope 响应结构(code, msg, data, timestamp)
- 个人客户路由纳入文档体系(使用 Register 机制)
- 新增 BuildDocHandlers() 统一管理 handler 构造
- 确保文档生成的幂等性
2. Service 层错误处理统一
- 全面替换 fmt.Errorf 为 errors.New/Wrap
- 统一错误码使用规范
- Handler 层参数校验不泄露底层细节
- 新增错误码验证集成测试
3. 代码质量提升
- 删除未使用的 Task handler 和路由
- 新增代码规范检查脚本(check-service-errors.sh)
- 新增注释路径一致性检查(check-comment-paths.sh)
- 更新 API 文档生成指南
4. OpenSpec 归档
- 归档 openapi-contract-alignment 变更(63 tasks)
- 归档 service-error-unify-core 变更
- 归档 service-error-unify-support 变更
- 归档 code-cleanup-docs-update 变更
- 归档 handler-validation-security 变更
- 同步 delta specs 到主规范文件
影响范围:
- pkg/openapi: 新增 handlers.go,优化 generator.go
- internal/service/*: 48 个 service 文件错误处理统一
- internal/handler/admin: 优化参数校验错误提示
- internal/routes: 个人客户路由改造,删除 task 路由
- scripts: 新增 3 个代码检查脚本
- docs: 更新 OpenAPI 文档(15750+ 行)
- openspec/specs: 同步 3 个主规范文件
破坏性变更:无
向后兼容:是
2026-01-30 11:40:36 +08:00
46e4e5f4f1
refactor: 将 DTO 文件从 internal/model 移动到 internal/model/dto 目录
...
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 4m22s
- 移动 17 个 DTO 文件到 internal/model/dto/ 目录
- 更新所有 DTO 文件的 package 声明从 model 改为 dto
- 更新所有引用文件的 import 和类型引用
- Handler 层:admin 和 h5 所有处理器
- Service 层:所有业务服务
- Routes 层:所有路由定义
- Tests 层:单元测试和集成测试
- 清理未使用的 import 语句
- 验证:项目构建成功,测试编译通过,LSP 无错误
2026-01-22 10:15:04 +08:00
91c9bbfeb8
feat: 实现账号与佣金管理模块
...
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 4m35s
新增功能:
- 店铺佣金查询:店铺佣金统计、店铺佣金记录列表、店铺提现记录
- 佣金提现审批:提现申请列表、审批通过、审批拒绝
- 提现配置管理:配置列表、新增配置、获取当前生效配置
- 企业管理:企业列表、创建、更新、删除、获取详情
- 企业卡授权:授权列表、批量授权、批量取消授权、统计
- 客户账号管理:账号列表、创建、更新状态、重置密码
- 我的佣金:佣金统计、佣金记录、提现申请、提现记录
数据库变更:
- 扩展 tb_commission_withdrawal_request 新增提现单号等字段
- 扩展 tb_account 新增 is_primary 字段
- 扩展 tb_commission_record 新增 shop_id、balance_after
- 扩展 tb_commission_withdrawal_setting 新增每日提现次数限制
- 扩展 tb_iot_card、tb_device 新增 shop_id 冗余字段
- 新建 tb_enterprise_card_authorization 企业卡授权表
- 新建 tb_asset_allocation_record 资产分配记录表
- 数据迁移:owner_type 枚举值 agent 统一为 shop
测试:
- 新增 7 个单元测试文件覆盖各服务
- 修复集成测试 Redis 依赖问题
2026-01-21 18:20:44 +08:00
4507de577b
代码质量改进:修复架构违规、完善文档注释和清理冗余代码
...
- 修复 health.go handler 直接操作响应的架构违规问题
- 为 model 字段添加 GORM comment 标签(account_role、base、role_permission)
- 为 handler、service、store 包添加包级文档注释
- 清理 customer service 和 personal_customer handler 中注释掉的代码
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-01-12 16:28:48 +08:00
a36e4a79c0
实现用户和组织模型(店铺、企业、个人客户)
...
核心功能:
- 实现 7 级店铺层级体系(Shop 模型 + 层级校验)
- 实现企业管理模型(Enterprise 模型)
- 实现个人客户管理模型(PersonalCustomer 模型)
- 重构 Account 模型关联关系(基于 EnterpriseID 而非 ParentID)
- 完整的 Store 层和 Service 层实现
- 递归查询下级店铺功能(含 Redis 缓存)
- 全面的单元测试覆盖(Shop/Enterprise/PersonalCustomer Store + Shop Service)
技术要点:
- 显式指定所有 GORM 模型的数据库字段名(column: 标签)
- 统一的字段命名规范(数据库用 snake_case,Go 用 PascalCase)
- 完整的中文字段注释和业务逻辑说明
- 100% 测试覆盖(20+ 测试用例全部通过)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-01-09 18:02:46 +08:00