MSuMshk
f69904e195
feat: 商户冻结/解冻功能及字典缓存重构
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-04 10:46:32 +08:00
MSuMshk
be34159cb8
feat: 租户创建时自动创建商户和证照记录
...
- 扩展 MerchantDocumentType 枚举,新增法人身份证、卫生许可证等类型
- 新增 TenantCreatedEvent 领域事件
- 修改 CreateTenantManuallyCommandHandler 发布租户创建事件
- 新增 TenantCreatedEventConsumer 消费者,自动创建商户和证照
- 实现 Tenant 1:1 Merchant 的业务关系
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-03 15:30:33 +08:00
MSuMshk
ef7aec1b60
fix: 创建租户时自动创建默认角色并分配给管理员
...
- 在 CreateTenantManuallyCommandHandler 中添加创建 tenant-admin 角色逻辑
- 自动将默认角色分配给租户管理员用户
- 更新 Saga 补偿逻辑,失败时回滚角色和用户角色关系
- 修复 TenantsController 中 4 处 CS8625 可空引用类型警告
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-03 12:51:59 +08:00
MSuMshk
e92b333076
refactor: 精简手动创建租户命令字段
...
- 移除冗余字段:CoverImageUrl、Website、SuspendedAt、SuspensionReason
- 移除冗余字段:ScheduledPackageId、AdditionalDataJson、ReviewedByName、ReviewRemarks、AdminMerchantId
- 更新Handler移除对应字段的处理逻辑
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-02 21:43:22 +08:00
MSuMshk
a995d3c64d
refactor: 删除审核接口的 renewMonths 字段
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-02 21:14:46 +08:00
MSuMshk
2c90aa6f5c
refactor: 删除旧的 approve/reject 接口,统一使用 /review
...
- 删除 PUT /approve 和 PUT /reject 接口
- 删除 ApproveTenantCommand/Handler
- 删除 RejectTenantCommand/Handler
- 保留统一的 POST /review 接口
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-02 21:07:30 +08:00
MSuMshk
a55ebad675
feat: 添加统一的租户审核接口 POST /review
...
- 新增 ReviewTenantCommand 支持 approve/reason/renewMonths/operatingMode
- 新增 ReviewTenantCommandHandler 统一处理通过/驳回逻辑
- 添加 TenantsController.Review 接口
- 审核完成后自动释放领取、记录审核日志
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-02 21:01:54 +08:00
MSuMshk
cfb20ca0d7
fix: 审核领取显示用户真实姓名而非 ID
...
- ClaimTenantReviewCommandHandler 通过 IIdentityUserRepository 查询用户 DisplayName
- ForceClaimTenantReviewCommandHandler 同步修改
- ReleaseTenantReviewClaimCommandHandler 同步修改
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-02 20:54:14 +08:00
MSuMshk
abeb352b04
feat: 租户列表 API 支持按状态过滤
...
- ListTenantsQuery 添加 Status 可选参数
- ITenantRepository.GetAllAsync 添加 status 参数
- EfTenantRepository 实现状态过滤逻辑
- TenantsController.List 添加 status 查询参数
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-02 20:46:40 +08:00
MSuMshk
6ffcc09c26
feat: 新增租户审核领取和审核日志接口
...
- 新增 TenantReviewClaim 和 TenantAuditLog 实体
- 新增 TenantAuditAction 枚举
- 新增审核领取相关接口:GET/POST /review/claim, /review/force-claim, /review/release
- 新增审核日志接口:GET /audits
- 更新 ITenantRepository 和 EfTenantRepository
- 更新 TakeoutAppDbContext 添加 DbSet
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-02 20:22:03 +08:00
MSuMshk
a586407e60
feat: 手动创建租户支持可选审核,新增审核通过/驳回接口
...
- CreateTenantManuallyCommand 添加 IsSkipApproval 字段
- 根据 IsSkipApproval 自动设置租户状态和认证状态
- 新增 ApproveTenantCommand/Handler 审核通过逻辑
- 新增 RejectTenantCommand/Handler 审核驳回逻辑
- TenantsController 添加 PUT /approve 和 PUT /reject 接口
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-02 19:59:03 +08:00
MSuMshk
59bc3005af
feat: 完善手动创建租户功能,添加账单明细和支付记录
...
1. 手动创建租户时自动生成账单明细(LineItemsJson)
2. 账单状态为已支付时自动创建支付记录
3. 租户列表接口返回联系人信息和认证状态
4. 账单详情接口返回支付记录和解析后的账单明细
5. 管理员账号自动复用租户联系人信息
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-02 17:32:05 +08:00
MSuMshk
0f900e108d
feat(admin): 新增管理员角色、账单、订阅、套餐管理功能
...
- 新增 AdminRolesController 实现角色 CRUD 和权限管理
- 新增 BillingsController 实现账单查询功能
- 新增 SubscriptionsController 实现订阅管理功能
- 新增 TenantPackagesController 实现套餐管理功能
- 新增租户详情、配额使用、账单列表等查询功能
- 新增 TenantPackage、TenantSubscription 等领域实体
- 新增相关枚举:SubscriptionStatus、TenantPackageType 等
- 更新 appsettings 配置文件
- 更新权限授权策略提供者
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-02 09:11:44 +08:00
764661f9e3
fix: 租户列表接口添加分页支持
...
- 支持 page 和 pageSize 参数
- 返回 PagedResult<TenantListItemDto>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-30 08:07:04 +00:00
e15ab4f0be
feat: 实现租户列表查询接口
...
- 获取租户列表:GET /api/admin/v1/tenants
- 用于填充租户下拉选择器
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-30 08:04:12 +00:00
83a4eb0831
refactor: 移除租户侧能力
2026-01-30 02:32:01 +00:00
4f8424adb6
refactor: AdminApi 剔除租户侧能力
2026-01-29 23:24:44 +00:00
71e5a9dc29
feat: 门店模块移除租户上下文依赖
2026-01-29 14:27:01 +00:00
010c2b7043
feat: 商品模块移除租户上下文依赖
2026-01-29 14:04:20 +00:00
b5dfb58a8b
refactor: 订单写操作移除租户上下文依赖
2026-01-29 13:56:33 +00:00
4dc5b067eb
feat: 商户模块移除租户上下文依赖
2026-01-29 13:52:36 +00:00
bb3bb842bc
feat: 配送单查询支持tenantId可选过滤
2026-01-29 13:30:49 +00:00
a035334c94
feat: 支付模块支持tenantId可选过滤
2026-01-29 13:11:09 +00:00
63b05da39a
feat: 订单商品查询支持tenantId可选过滤
2026-01-29 12:14:43 +00:00
b3639ff34b
refactor: 管理端去租户过滤并Portal化RBAC菜单
2026-01-29 10:46:49 +00:00
be0282af9f
refactor: 移除租户头校验并后置租户解析
2026-01-29 05:22:09 +00:00
725f89ae24
feat: Add tiered packaging fee support for stores
...
Introduces tiered packaging fee configuration for stores by adding OrderPackagingFeeMode and PackagingFeeTiers fields to StoreFee. Updates DTOs, validators, handlers, and mapping logic to support both fixed and tiered packaging fee modes. Adds StoreFeeTierHelper for tier normalization and serialization, and includes a database migration to persist the new fields.
2026-01-26 09:26:49 +08:00
187534ecca
fix: 允许平台账号跨租户更新门店
2026-01-21 17:21:30 +08:00
36abd83e83
chore: update store delivery zone handlers
2026-01-21 11:27:13 +08:00
8bde1a6440
fix: 门店时段与临时调整跨租户处理
2026-01-20 20:38:05 +08:00
32f5bbbd43
feat(store): 扩展临时时段配置
2026-01-20 18:41:34 +08:00
3385674490
fix: 门店资质日期字段改为date
2026-01-20 13:09:06 +08:00
30e54e2bea
fix: 修复门店租户写入与跨租户查看
2026-01-19 20:43:27 +08:00
a042c7ef82
Merge branch 'dev' of https://github.com/msumshk/TakeoutAPI into dev
2026-01-05 19:11:16 +08:00
6eea61264b
refactor: 重命名商户门店DTO
2026-01-05 10:43:04 +08:00
398c716734
fix:修复注释错误
2026-01-04 21:22:26 +08:00
fc55003d3d
完成门店管理后端接口与任务
2026-01-01 07:26:14 +08:00
b9dc49b7a9
feat:修复商户审核校验
2025-12-29 22:10:23 +08:00
7cb5e9a805
feat:补齐商户版本号
2025-12-29 21:55:05 +08:00
febef6caaf
feat:修复商户审核日志
2025-12-29 21:16:09 +08:00
dd91c1010a
feat:商户管理
2025-12-29 16:40:27 +08:00
57f4c2d394
fix: 公告模块第一次修复
2025-12-27 18:22:30 +08:00
b75f4bca54
fix: 移除AutoMapper依赖
2025-12-27 12:32:54 +08:00
04444c6554
fix: 修复公告过时警告并补齐用户权限
2025-12-27 12:32:52 +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
40e914dc92
feat: 新增一键确认收款接口
...
问题: 原recordPayment只创建Pending支付记录,不更新账单状态
用户点击确认收款后需要再次审核才能生效
解决方案:
- 新增POST /api/admin/v1/billings/{id}/payments/confirm接口
- 内部原子化执行: 创建支付+自动审核+更新账单状态
- 保留原recordPayment接口用于需要审核的场景
新增文件:
- ConfirmPaymentCommand.cs
- ConfirmPaymentCommandHandler.cs
- ConfirmPaymentCommandValidator.cs
2025-12-18 15:29:30 +08:00