Commit Graph

37 Commits

Author SHA1 Message Date
53f7c54c82 feat(geo): add tenant/merchant/store geocode fallback and retry workflow
All checks were successful
Build and Deploy TenantApi / build-and-deploy (push) Successful in 43s
2026-02-19 17:13:00 +08:00
c032608a57 Revert "refactor: 清理租户API旧模块代码"
This reverts commit 992930a821.
2026-02-17 12:12:01 +08:00
992930a821 refactor: 清理租户API旧模块代码 2026-02-17 09:57:26 +08:00
2711893474 feat: 完成租户个人中心 API 首版实现 2026-02-09 20:01:11 +08:00
MSuMshk
e88c41c11e feat: 实现动态租户解析与移除菜单回退逻辑
1. 新增 ITenantCodeResolver 接口和 DatabaseTenantCodeResolver 实现
2. 修改 TenantResolutionMiddleware 支持从数据库动态解析租户编码
3. ITenantRepository 新增 FindIdByCodeAsync 方法
4. 移除 EfMenuRepository 中危险的系统菜单回退逻辑
5. 调整服务注册顺序确保依赖正确注入

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 13:05:52 +08:00
root
a0b77d4847 fix: 禁止账单跨租户查询 2026-01-29 14:51:56 +00:00
root
1622c38043 refactor: 订阅任务按租户上下文执行 2026-01-29 14:51:21 +00:00
root
52fb4fde72 refactor: 清理平台表述并统一为系统 2026-01-29 13:49:03 +00:00
root
bc1c4cc41b refactor: 禁止 TenantId=0 并改为系统租户 2026-01-29 13:16:15 +00:00
root
77836e270f refactor: 移除平台公告与跨租户目标 2026-01-29 13:15:53 +00:00
root
c7307c1942 refactor: 移除租户审核领取模型 2026-01-29 12:15:19 +00:00
dd91c1010a feat:商户管理 2025-12-29 16:40:27 +08:00
b2a90cf8af feat: 用户管理后端与日志库迁移 2025-12-27 06:23:03 +08:00
755b61a044 fix: 修复公告模块核心问题并完善功能
主要修复内容:
1. 修复 RowVersion 并发控制
   - 配置 EF Core RowVersion 映射为 bytea 类型
   - 添加 PostgreSQL 触发器自动生成 RowVersion
   - 在更新/发布/撤销操作中添加 RowVersion 校验
   - 移除 Application 层对 EF Core 的直接依赖

2. 修复 API 路由和校验问题
   - 添加平台公告列表路由的版本化别名
   - 租户公告接口添加 X-Tenant-Id 必填校验,返回 400
   - 生效时间校验返回 422 而非 500
   - 修复 FluentValidation 异常命名冲突

3. 实现关键词搜索功能
   - 在查询参数中添加 keyword 字段
   - 使用 PostgreSQL ILIKE 实现大小写不敏感搜索
   - 支持标题和内容字段的模糊匹配

4. 数据库迁移
   - 新增 RowVersion 触发器迁移文件
   - 回填现有公告记录的 RowVersion
2025-12-26 09:16:07 +08:00
857f776447 feat: 实现完整的多租户公告管理系统
核心功能:
- 公告状态机(草稿/已发布/已撤销)支持发布、撤销和重新发布
- 发布者范围区分平台级和租户级公告
- 目标受众定向推送(全部租户/指定角色/指定用户)
- 平台管理、租户管理和应用端查询API
- 已读/未读管理和未读统计

技术实现:
- CQRS+DDD架构,清晰的领域边界和事件驱动
- 查询性能优化:数据库端排序和限制,估算策略减少内存占用
- 并发控制:修复RowVersion配置(IsRowVersion→IsConcurrencyToken)
- 完整的FluentValidation验证器和输入保护

测试验证:
- 36个测试全部通过(27单元+9集成)
- 性能测试达标(1000条数据<5秒)
- 代码质量评级A(优秀)

文档:
- 完整的ADR、API文档和迁移指南
- 交付报告和技术债务记录
2025-12-20 19:57:09 +08:00
00eb357e6e fix: 平台订阅管理支持跨租户查询 2025-12-18 23:58:24 +08:00
907c9938ae feat(admin-api): 实现 TD-001 和 TD-002 后端接口
TD-001 - PUT /api/admin/v1/tenants/{tenantId}:
- 新增 UpdateTenantCommand + UpdateTenantCommandHandler
- Controller 新增 Update 端点(tenant:update 权限)
- 校验:租户存在、name 非空、name/contactPhone 冲突返回 409
- 仓储扩展:ITenantRepository.ExistsByNameAsync

TD-002 - GET /api/admin/v1/tenants/{tenantId}/quota-usage-history:
- 新增 CQRS Query/Handler/DTO/Validator
- 支持分页(Page>=1, PageSize 1~100)
- 支持时间范围和 QuotaType 过滤
- 新增 tenant_quota_usage_histories 表(含迁移)
- 写入点:CheckTenantQuotaCommandHandler + PurchaseQuotaPackageCommandHandler

构建验证:dotnet build 通过
数据库迁移:已应用 20251218121053_AddTenantQuotaUsageHistories
2025-12-18 20:19:33 +08:00
4b53862ded feat: 完成账单管理模块后端功能开发及API优化
核心功能:
- 账单CRUD操作(创建、查询、详情、更新状态、删除)
- 支付记录管理(创建支付、审核支付)
- 批量操作支持(批量更新账单状态)
- 统计分析功能(账单统计、逾期账单查询)
- 导出功能(Excel/PDF/CSV)

API端点 (16个):
- GET /api/admin/v1/billings - 账单列表(分页、筛选、排序)
- POST /api/admin/v1/billings - 创建账单
- GET /api/admin/v1/billings/{id} - 账单详情
- DELETE /api/admin/v1/billings/{id} - 删除账单
- PUT /api/admin/v1/billings/{id}/status - 更新状态
- POST /api/admin/v1/billings/batch/status - 批量更新
- GET /api/admin/v1/billings/{id}/payments - 支付记录
- POST /api/admin/v1/billings/{id}/payments - 创建支付
- PUT /api/admin/v1/billings/payments/{paymentId}/verify - 审核支付
- GET /api/admin/v1/billings/statistics - 统计数据
- GET /api/admin/v1/billings/overdue - 逾期账单
- POST /api/admin/v1/billings/export - 导出账单

架构优化:
- 采用CQRS模式分离读写(MediatR + Dapper + EF Core)
- 完整的领域模型设计(TenantBillingStatement, TenantPayment等)
- FluentValidation请求验证
- 状态机管理账单和支付状态流转

API设计优化 (三项改进):
1. 导出API响应Content-Type改为application/octet-stream
2. 支付审核API添加Approved和Notes可选参数,支持通过/拒绝
3. 移除TenantBillings API中重复的TenantId参数

数据库变更:
- 新增账单相关表及关系
- 支持Snowflake ID主键
- 完整的审计字段支持

🤖 Generated with Claude Code

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 11:24:44 +08:00
98f49ea7ad feat: 实现订阅自动化定时任务系统
新增定时任务 (Scheduler Module):
- SubscriptionAutoRenewalJob: 自动续费账单生成
- SubscriptionRenewalReminderJob: 续费提醒发送 (7/3/1天)
- SubscriptionExpiryCheckJob: 到期检查与宽限期处理

新增 Command/Handler:
- ProcessAutoRenewalCommand: 处理自动续费逻辑
- ProcessRenewalRemindersCommand: 处理续费提醒逻辑
- ProcessSubscriptionExpiryCommand: 处理订阅到期逻辑

配置项 (SubscriptionAutomationOptions):
- AutoRenewalDaysBeforeExpiry: 到期前N天生成续费账单
- ReminderDaysBeforeExpiry: 提醒天数数组
- GracePeriodDays: 宽限期天数
- 各任务执行小时配置

Repository 增强:
- ISubscriptionRepository: 新增自动化查询方法
- ITenantBillingRepository: 新增账单创建方法
- ITenantNotificationRepository: 新增通知创建方法

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 21:06:01 +08:00
ab59e2e3e2 feat: 新增配额包/支付相关实体与迁移
App:新增 operation_logs/quota_packages/tenant_payments/tenant_quota_package_purchases 表

Identity:修正 Avatar 字段类型(varchar(256)->text),保持现有数据不变
2025-12-17 17:27:45 +08:00
9c28790f5e feat: 套餐增加推荐标识与标签 2025-12-15 22:32:02 +08:00
fd377624d8 fix: 修复套餐新增草稿默认值与开关落库 2025-12-15 21:06:23 +08:00
2778a4ebdf feat: 套餐发布状态与可见/可购开关 2025-12-15 17:29:41 +08:00
2249588e07 feat: 支持租户伪装登录与管理员重置链接 2025-12-15 14:43:50 +08:00
2339775fcb feat: 租户审核领单与强制接管 2025-12-15 10:40:50 +08:00
c5a3243bd8 feat: tenants 列表支持名称/联系人/电话/认证状态过滤 2025-12-14 16:23:32 +08:00
8b18d0cb96 feat: admin simple 登录支持 账号@手机号 2025-12-12 22:06:37 +08:00
c7df64f2e1 feat: add public tenant packages listing and sort order 2025-12-11 23:57:04 +08:00
37e7d721f3 docs: 完善参数注释与StyleCop配置 2025-12-04 12:45:26 +08:00
17d143a351 docs: refine tenant repository comments 2025-12-03 23:18:17 +08:00
bf88f0e041 docs: add xml comments for tenant modules 2025-12-03 22:56:35 +08:00
a3dc5f54e5 chore: 优化公告已读批量与用户维度 2025-12-03 21:13:52 +08:00
9fe7d9606d feat: 租户账单公告通知接口 2025-12-03 21:08:28 +08:00
19137f3cf7 feat: 套餐管理与配额校验能力 2025-12-03 20:17:55 +08:00
a536a554c2 feat: 实现租户管理及套餐流程 2025-12-03 16:37:50 +08:00
148475fa43 feat: migrate snowflake ids and refresh migrations 2025-12-02 09:04:37 +08:00
贺爱泽
5ddad07658 feat: 扩展领域模型与配置 2025-12-01 13:26:05 +08:00