|
|
80f560df33
|
refactor(account): 统一账号管理API、完善权限检查和操作审计
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m17s
- 合并 customer_account 和 shop_account 路由到统一的 account 接口
- 新增统一认证接口 (auth handler)
- 实现越权防护中间件和权限检查工具函数
- 新增操作审计日志模型和服务
- 更新数据库迁移 (版本 39: account_operation_log 表)
- 补充集成测试覆盖权限检查和审计日志场景
|
2026-02-02 17:23:20 +08:00 |
|
|
|
5851cc6403
|
feat(permission): 为权限树接口添加状态查询参数和返回值
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m22s
- 新增 PermissionTreeRequest DTO 支持 status 查询参数
- PermissionTreeNode 返回值新增 status 字段
- Store 层 GetAll 方法支持状态过滤
- Handler 层使用 QueryParser 解析请求参数
|
2026-02-02 17:12:14 +08:00 |
|
|
|
76b539e867
|
chore: 归档 OpenSpec 变更 refactor-series-binding-to-series-id
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m22s
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-02-02 12:21:00 +08:00 |
|
|
|
b47f7b4f46
|
修复: 更新集成测试以适配 series_id 字段重命名
- 将所有测试用例的 series_allocation_id 改为 series_id
- 更新测试逻辑,直接使用 series.ID 而非 allocation.ID
- 修复禁用系列测试,直接禁用 PackageSeries 而非 ShopSeriesAllocation
- 所有集成测试通过验证
|
2026-02-02 12:16:55 +08:00 |
|
|
|
37f43d2e2d
|
重构: 将卡/设备的套餐系列绑定从分配ID改为系列ID
- 数据库: 重命名 series_allocation_id → series_id
- Model: IotCard 和 Device 字段重命名
- DTO: 所有请求/响应字段统一为 series_id
- Store: 方法重命名,新增 GetByShopAndSeries 查询
- Service: 业务逻辑优化,系列验证和权限验证分离
- 测试: 更新所有测试用例,新增 shop_series_allocation_store_test.go
- 文档: 更新 API 文档说明参数变更
BREAKING CHANGE: API 参数从 series_allocation_id 改为 series_id
|
2026-02-02 12:09:53 +08:00 |
|
|
|
a30b3036bb
|
feat(iot-card-import): 为导入任务接口添加平台用户权限控制
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m10s
- 在 Import/List/GetByID 接口添加用户类型校验
- 仅超级管理员和平台用户可访问
- 同步更新 OpenAPI 路由描述
- 补充集成测试覆盖权限拒绝场景
|
2026-02-02 10:25:03 +08:00 |
|
|
|
d81bd242a4
|
fix(force-recharge): 补充强充配置缺失的接口和数据库字段
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m19s
- 订单管理:增加 payment_method 字段支持,合并代购订单逻辑
- 套餐系列分配:增加强充配置字段(enable_force_recharge、force_recharge_amount、force_recharge_trigger_type)
- 数据库迁移:添加 force_recharge_trigger_type 字段
- 测试:更新订单服务测试用例
- OpenSpec:归档 fix-force-recharge-missing-interfaces 变更
|
2026-01-31 15:34:32 +08:00 |
|
|
|
d309951493
|
feat(import): 用 Excel 格式替换 CSV 导入
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m33s
- 删除 CSV 解析代码,新增 Excel 解析器 (excelize)
- 更新 IoT 卡和设备导入任务处理器
- 更新 API 路由文档和前端接入指南
- 归档变更到 openspec/changes/archive/
- 同步 delta specs 到 main specs
|
2026-01-31 14:13:02 +08:00 |
|
|
|
62708892ec
|
文档
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m2s
|
2026-01-31 13:06:30 +08:00 |
|
|
|
b8dda7e62a
|
chore(bootstrap): 更新依赖注入和 API 文档
- Bootstrap 注册 RechargeHandler 和 RechargeService
- Bootstrap 注册 RechargeStore 数据访问层
- 更新 PaymentCallback 依赖注入(添加 RechargeService)
- 更新 OpenAPI 文档生成器注册充值接口
- 同步 admin-openapi.yaml 文档(新增充值和代购预检接口)
|
2026-01-31 12:15:12 +08:00 |
|
|
|
5891e9db8d
|
feat(routes): 注册充值和代购订单路由
- 新增 H5 充值路由(创建订单、预检、列表、详情)
- 新增 Admin 代购订单预检路由
- 更新 H5 路由组注册充值处理器
- 更新 Admin 路由组注册代购预检接口
|
2026-01-31 12:15:07 +08:00 |
|
|
|
902ddb3687
|
feat(handler): 支持代购订单预检和充值订单支付回调
- OrderHandler 新增 PurchaseCheck 接口用于代购订单预检
- PaymentCallback 支持充值订单支付回调处理
- 根据订单号前缀区分订单类型(代购订单 vs 充值订单)
- 充值订单回调自动更新订单状态和钱包余额
|
2026-01-31 12:15:03 +08:00 |
|
|
|
760b3db1df
|
feat(h5): 新增充值订单处理器和 DTO
- 实现 RechargeHandler 处理充值订单创建、预检、查询等接口
- 添加充值相关 DTO(CreateRechargeRequest、RechargeCheckRequest 等)
- 支持充值预检(强充检查、金额限制等)
- 支持充值订单列表和详情查询
|
2026-01-31 12:14:59 +08:00 |
|
|
|
001eb81e5e
|
chore(openspec): 清理已归档的 gateway-integration 变更
|
2026-01-31 12:01:47 +08:00 |
|
|
|
1ec7de4ec4
|
chore(bootstrap): 更新依赖注入和配置
- bootstrap/services.go
- OrderService 初始化新增依赖注入
- 添加 ShopSeriesAllocationStore、IotCardStore、DeviceStore
- docker-compose.prod.yml
- 对象存储 S3 端点改为 HTTPS(安全性提升)
- 同时更新 API 和 Worker 服务配置
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-01-31 12:01:37 +08:00 |
|
|
|
113b3edd69
|
feat(order): 支持代购订单和强充要求检查
- OrderService 新增代购订单支持
- 强充要求检查(首次购买最低充值)
- 代购订单支付限制(无需支付)
- 强充金额验证
- 新增 OrderDTO 请求/响应结构
- PurchaseCheckRequest/Response(购买预检)
- CreatePurchaseOnBehalfRequest(代购订单创建)
- Order 模型新增支付方式
- PaymentMethodOffline(线下支付,仅平台代购使用)
- OrderService 依赖注入扩展
- 新增 SeriesAllocationStore、IotCardStore、DeviceStore
- 支持强充要求检查逻辑
- 完整的集成测试覆盖(534 行)
- 代购订单创建、强充验证、支付限制等场景
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-01-31 12:01:33 +08:00 |
|
|
|
22f19377a5
|
feat(recharge): 新增充值服务和 DTO
- 实现 RechargeService 完整充值业务逻辑
- 创建充值订单、预检强充要求
- 支付回调处理、幂等性检查
- 累计充值更新、一次性佣金触发
- 新增 RechargeDTO 请求/响应结构
- CreateRechargeRequest、RechargeResponse
- RechargeListRequest/Response、RechargeCheckRequest/Response
- 完整的单元测试覆盖(1488 行)
- 强充要求检查、支付回调、佣金发放等场景
- 事务处理、幂等性验证
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-01-31 12:01:26 +08:00 |
|
|
|
c7bf43f306
|
fix(commission): 代购订单跳过一次性佣金和累计充值更新
|
2026-01-31 11:46:50 +08:00 |
|
|
|
1036b5979e
|
feat(store): 新增 RechargeStore 充值订单数据访问层
实现充值订单的完整 CRUD 操作:
- Create: 创建充值订单
- GetByRechargeNo: 根据订单号查询(不存在返回 nil)
- GetByID: 根据 ID 查询
- List: 支持分页和多条件筛选(用户、钱包、状态、时间范围)
- UpdateStatus: 更新状态(支持乐观锁检查)
- UpdatePaymentInfo: 更新支付信息
测试覆盖率: 94.7%(7个方法全部覆盖)
- 包含正常流程、边界条件、错误处理测试
- 使用 testutils.NewTestTransaction 和 GetTestRedis
- 所有测试通过
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-01-31 11:37:47 +08:00 |
|
|
|
cb0835cd94
|
feat(constants): 添加充值订单状态和配置常量
|
2026-01-31 11:32:07 +08:00 |
|
|
|
526d9c62b7
|
feat(errors): 添加充值和代购相关错误码
- 充值相关: CodeRechargeAmountInvalid (1120), CodeRechargeNotFound (1121), CodeRechargeAlreadyPaid (1122)
- 代购相关: CodePurchaseOnBehalfForbidden (1130), CodePurchaseOnBehalfInvalidTarget (1131)
- 强充验证: CodeForceRechargeRequired (1140), CodeForceRechargeAmountMismatch (1141)
|
2026-01-31 11:31:58 +08:00 |
|
|
|
116355835a
|
feat(model): 添加代购和强充配置字段
|
2026-01-31 11:31:57 +08:00 |
|
|
|
f6a0f0f39c
|
feat(migration): 添加代购和强充配置字段迁移
|
2026-01-31 11:31:42 +08:00 |
|
|
|
e461791a0e
|
解决冲突
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m7s
|
2026-01-30 18:09:31 +08:00 |
|
|
|
109ae688d2
|
解决冲突
|
2026-01-30 17:37:35 +08:00 |
|
|
|
65b4127b84
|
Merge branch 'emdash/wechat-official-account-payment-integration-30g'
# Conflicts:
# README.md
# cmd/api/main.go
# internal/bootstrap/dependencies.go
# pkg/config/config.go
# pkg/config/defaults/config.yaml
|
2026-01-30 17:32:33 +08:00 |
|
|
|
bf591095a2
|
微信相关能力
|
2026-01-30 17:25:30 +08:00 |
|
|
|
accf7cb293
|
Merge branch 'emdash/login-prome-47c'
|
2026-01-30 17:23:33 +08:00 |
|
|
|
ffeb0417c0
|
登录权限返回修改
|
2026-01-30 17:22:38 +08:00 |
|
|
|
32beac4424
|
chore: 更新 Gateway 集成任务清单,标记所有任务完成
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled
- 完成 Phase 1-5 所有任务(14 个 API 接口、45 个测试、2 个文档)
- 测试覆盖率 88.8%(接近 90% 目标)
- 编译通过,无 LSP 错误
- 依赖注入到 Service 层成功
- 符合项目代码规范(中文注释、Go 命名规范)
|
2026-01-30 17:12:14 +08:00 |
|
|
|
3f63fffbb1
|
chore: apply task changes
|
2026-01-30 17:05:44 +08:00 |
|
|
|
4856a88d41
|
docs: 新增 Gateway 集成和微信公众号支付集成的 OpenSpec 规划文档
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 43s
|
2026-01-30 16:09:32 +08:00 |
|
|
|
1cf17e8f14
|
清理冗余的梯度返佣(TierCommission)配置
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m46s
- 移除 Model 层:删除 ShopSeriesCommissionTier 模型及相关字段
- 更新 DTO:删除 TierCommissionConfig、TierEntry 类型及相关请求/响应字段
- 删除 Store 层:移除 ShopSeriesCommissionTierStore 及相关查询逻辑
- 简化 Service 层:删除梯度返佣处理逻辑,统计查询移除 tier_bonus 字段
- 数据库迁移:创建 000034_remove_tier_commission 移除相关表和字段
- 更新测试:移除梯度返佣相关测试用例,更新集成测试
- OpenAPI 文档:删除梯度返佣相关 schema 和枚举值
- 归档变更:归档 remove-tier-commission-redundancy 到 archive/2026-01-30-
- 同步规范:更新 4 个主 specs,标记废弃功能并添加迁移指引
原因:梯度返佣功能与一次性梯度佣金功能重复,且从未实现实际计算逻辑
迁移:使用一次性佣金的梯度模式 (OneTimeCommissionConfig.type = "tiered") 替代
|
2026-01-30 14:57:24 +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 |
|
|
|
1290160728
|
fix: 修复订单支付幂等性问题,防止重复激活套餐
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m22s
- 使用条件更新实现支付状态原子转换(pending -> paid)
- 重复请求返回幂等成功,不再重复激活套餐
- 新增 tb_package_usage 唯一索引(order_id, package_id)
- 新增幂等性和异常状态测试,测试覆盖率 71.7%
- 归档 OpenSpec 变更 fix-order-activation-idempotency
|
2026-01-29 16:33:53 +08:00 |
|
|
|
2b0f79be81
|
归档一次性佣金配置落库与累计触发修复,同步规范文档到主 specs
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m45s
- 归档 fix-one-time-commission-config-and-accumulation 到 archive/2026-01-29-*
- 同步 delta specs 到主规范(one-time-commission-trigger、commission-calculation)
- 新增累计触发逻辑文档和测试用例
- 修复一次性佣金配置落库和累计充值更新逻辑
|
2026-01-29 16:00:18 +08:00 |
|
|
|
d977000a66
|
feat: 归档佣金计算触发和快照变更,同步规范文档
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m40s
- 归档 OpenSpec 变更到 archive 目录
- 创建 2 个新的主规范文件:commission-trigger 和 order-commission-snapshot
- 实现订单佣金快照字段和支付自动触发
- 确保事务一致性,所有佣金操作在同一事务内完成
- 提取成本价计算为公共工具函数
|
2026-01-29 14:58:35 +08:00 |
|
|
|
c9fee7f2f6
|
fix: 修复授权记录备注修改权限问题
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m42s
- 实现备注权限检查逻辑(authorization_service.go)
- 添加备注权限验证存储层(authorization_store.go)
- 新增集成测试覆盖备注权限场景
- 归档 fix-authorization-remark-permission 变更
- 同步 enterprise-card-authorization spec 规范
|
2026-01-29 14:29:11 +08:00 |
|
|
|
b02175271a
|
feat: 实现企业设备授权功能并归档 OpenSpec 变更
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m39s
- 新增企业设备授权模块(Model、DTO、Service、Handler、Store)
- 实现设备授权的创建、查询、更新、删除等完整业务逻辑
- 添加企业卡授权与设备授权的关联关系
- 新增 2 个数据库迁移脚本
- 同步 OpenSpec delta specs 到 main specs
- 归档 add-enterprise-device-authorization 变更
- 更新 API 文档和路由配置
- 新增完整的集成测试和单元测试覆盖
|
2026-01-29 13:18:49 +08:00 |
|
|
|
e87513541b
|
feat: 实现一次性佣金功能
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m41s
- 新增佣金计算服务,支持一次性佣金和返佣计算
- 新增 ShopSeriesOneTimeCommissionTier 模型和存储层
- 新增两个数据库迁移:一次性佣金表和订单佣金字段
- 更新 Commission 模型,新增佣金来源和关联字段
- 更新 CommissionRecord 存储层,支持一次性佣金查询
- 更新 MyCommission 服务,集成一次性佣金计算逻辑
- 更新 ShopCommission 服务,支持一次性佣金统计
- 新增佣金计算异步任务处理器
- 更新 API 路由,新增一次性佣金相关端点
- 归档 OpenSpec 变更文档,同步规范到主规范库
|
2026-01-29 09:36:12 +08:00 |
|
|
|
dfcf16f548
|
feat: 实现订单支付功能模块
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m36s
- 新增订单管理、支付回调、购买验证等核心服务
- 实现订单、订单项目的数据存储层和 API 接口
- 添加订单数据库迁移和 DTO 定义
- 更新 API 文档和路由配置
- 同步 3 个新规范到主规范库(订单管理、订单支付、套餐购买验证)
- 完成 OpenSpec 变更归档
Ultraworked with Sisyphus
|
2026-01-28 22:12:15 +08:00 |
|
|
|
a945a4f554
|
feat: 实现卡和设备的套餐系列绑定功能
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m37s
- 添加 Device 和 IotCard 模型的 SeriesID 字段
- 实现 DeviceService 和 IotCardService 的套餐系列绑定逻辑
- 添加 DeviceStore 和 IotCardStore 的数据库操作方法
- 更新 API 接口和路由支持套餐系列绑定
- 创建数据库迁移脚本(000027_add_series_binding_fields)
- 添加完整的单元测试和集成测试
- 更新 OpenAPI 文档
- 归档 OpenSpec 变更文档
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
2026-01-28 19:49:45 +08:00 |
|
|
|
1da680a790
|
重构: 店铺套餐分配系统从加价模式改为返佣模式
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m18s
主要变更:
- 重构分配模型:从加价模式(pricing_mode/pricing_value)改为返佣模式(base_commission + tier_commission)
- 删除独立的 my_package 接口,统一到 /api/admin/packages(通过数据权限自动过滤)
- 新增批量分配和批量调价功能,支持事务和性能优化
- 新增配置版本管理,订单创建时锁定返佣配置
- 新增成本价历史记录,支持审计和纠纷处理
- 新增统计缓存系统(Redis + 异步任务),优化梯度返佣计算性能
- 删除冗余的梯度佣金独立 CRUD 接口(合并到分配配置中)
- 归档 3 个已完成的 OpenSpec changes 并同步 8 个新 capabilities 到 main specs
技术细节:
- 数据库迁移:000026_refactor_shop_package_allocation
- 新增 Store:AllocationConfigStore, PriceHistoryStore, CommissionStatsStore
- 新增 Service:BatchAllocationService, BatchPricingService, CommissionStatsService
- 新增异步任务:统计更新、定时同步、周期归档
- 测试覆盖:批量操作集成测试、梯度佣金 CRUD 清理验证
影响:
- API 变更:删除 4 个梯度 CRUD 接口(POST/GET/PUT/DELETE /:id/tiers)
- API 新增:批量分配、批量调价接口
- 数据模型:重构 shop_series_allocation 表结构
- 性能优化:批量操作使用 CreateInBatches,统计使用 Redis 缓存
相关文档:
- openspec/changes/archive/2026-01-28-refactor-shop-package-allocation/
- openspec/specs/agent-available-packages/
- openspec/specs/allocation-config-versioning/
- 等 8 个新 capability specs
|
2026-01-28 17:11:55 +08:00 |
|
|
|
23eb0307bb
|
feat: 实现门店套餐分配功能并统一测试基础设施
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m30s
新增功能:
- 门店套餐分配管理(shop_package_allocation):支持门店套餐库存管理
- 门店套餐系列分配管理(shop_series_allocation):支持套餐系列分配和佣金层级设置
- 我的套餐查询(my_package):支持门店查询自己的套餐分配情况
测试改进:
- 统一集成测试基础设施,新增 testutils.NewIntegrationTestEnv
- 重构所有集成测试使用新的测试环境设置
- 移除旧的测试辅助函数和冗余测试文件
- 新增 test_helpers_test.go 统一任务测试辅助
技术细节:
- 新增数据库迁移 000025_create_shop_allocation_tables
- 新增 3 个 Handler、Service、Store 和对应的单元测试
- 更新 OpenAPI 文档和文档生成器
- 测试覆盖率:Service 层 > 90%
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-01-28 10:45:16 +08:00 |
|
|
|
5fefe9d0cb
|
重构: 使用 testutils.NewIntegrationTestEnv 替换旧的测试环境设置
- 移除 setupAuthorizationTestEnv 和 teardown 函数
- 移除所有 DELETE 清理代码,改用事务隔离
- 每个测试函数改用 env := testutils.NewIntegrationTestEnv(t)
- 使用 env.TX 替代 env.db
- 使用 env.AsSuperAdmin().Request() 和 env.AsUser() 发送请求
- 使用 env.CreateTestShop/Enterprise/Account 创建测试数据
- 移除未使用的导入(bytes, net/http/httptest)
- 保持所有测试业务逻辑不变
|
2026-01-27 22:44:21 +08:00 |
|
|
|
79c061b6fa
|
feat: 实现套餐管理模块,包含套餐系列、双状态管理、废弃模型清理
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m24s
- 新增套餐系列管理 (CRUD + 状态切换)
- 新增套餐管理 (CRUD + 启用/禁用 + 上架/下架双状态)
- 清理 8 个废弃分佣模型及对应数据库表
- Package 模型新增建议成本价、建议售价、上架状态字段
- 完整的 Store/Service/Handler 三层实现
- 包含单元测试和集成测试
- 归档 add-package-module change
- 新增多个 OpenSpec changes (订单支付、店铺套餐分配、一次性分佣、卡设备系列绑定)
|
2026-01-27 19:55:47 +08:00 |
|
|
|
30a0717316
|
补充 PackageService 的 Update 和 Delete 测试
- 添加 TestPackageService_Update:更新成功、更新不存在的套餐
- 添加 TestPackageService_Delete:删除成功、删除不存在的套餐
- 测试覆盖率从 47.2% 提升到 66.9%
|
2026-01-27 19:38:05 +08:00 |
|
|
|
e2e6a64ba4
|
创建 PackageService 单元测试(覆盖双状态逻辑)
- 创建 internal/service/package/service_test.go 文件
- 测试 Create 方法:创建成功、编码重复失败、系列不存在失败
- 测试 UpdateStatus 方法:禁用时自动强制下架、启用时保持原上架状态
- 测试 UpdateShelfStatus 方法:启用状态可上架、禁用状态不能上架、下架成功
- 测试 Get 方法:获取成功、不存在返回错误
- 测试 List 方法:列表查询、按类型过滤、按状态过滤
- 使用 testutils.NewTestTransaction 创建测试事务
- 使用 middleware.SetUserContext 设置用户上下文
- 使用唯一的 PackageCode(基于时间戳)
- 重点覆盖双状态逻辑的测试
|
2026-01-27 19:37:08 +08:00 |
|
|
|
d104d297ca
|
feat: 实现运营商模块重构,添加冗余字段优化查询性能
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m16s
主要变更:
- 新增 Carrier CRUD API(创建、列表、详情、更新、删除、状态更新)
- IotCard/IotCardImportTask 添加 carrier_type/carrier_name 冗余字段
- 移除 Carrier 表的 channel_name/channel_code 字段
- 查询时直接使用冗余字段,避免 JOIN Carrier 表
- 添加数据库迁移脚本(000021-000023)
- 添加单元测试和集成测试
- 同步更新 OpenAPI 文档和 specs
|
2026-01-27 12:18:19 +08:00 |
|
|
|
5a179ba16b
|
更新openspec
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 4m48s
|
2026-01-27 10:03:49 +08:00 |
|