|
|
dda3f96d28
|
feat: 完成营销中心优惠券后端模块
Build and Deploy TenantApi + SkuWorker / build-and-deploy (push) Successful in 1m54s
|
2026-02-28 11:14:55 +08:00 |
|
|
|
04e76cd519
|
feat: 添加订单超时自动取消与 SMS 告警任务
Build and Deploy TenantApi + SkuWorker / build-and-deploy (push) Successful in 1m50s
- OrderTimeoutJob 替换占位实现为真实逻辑(查询超时订单 → 批量取消 → 发布事件)
- 新增 OrderEscalationJob(每 2 分钟检查超时未接单订单,预留 SMS 告警)
- 新增 OrderTimeoutOptions(AutoCancelMinutes=15, SmsEscalationMinutes=10)
- RecurringJobRegistrar 注册 OrderEscalationJob
- SchedulerServiceCollectionExtensions 注册 Job + Options
|
2026-02-27 13:11:01 +08:00 |
|
|
|
3c423f87d4
|
feat: 添加订单大厅看板 API(四列数据 + 统计 + 重连补偿 + 操作端点)
Build and Deploy TenantApi + SkuWorker / build-and-deploy (push) Has been cancelled
- 新增 OrderBoardCardDto、OrderBoardResultDto、OrderBoardStatsDto
- 新增看板查询 Query + Handler(board/stats/pending-since)
- IOrderRepository 扩展 GetActiveOrdersAsync、GetOrdersChangedSinceAsync
- EfOrderRepository 实现看板查询方法
- 新增 OrderBoardController(GET board/stats/pending-since + POST accept/reject/complete/confirm)
- 新增 RejectOrderRequest 契约
|
2026-02-27 13:10:13 +08:00 |
|
|
|
1e5f0b2f93
|
feat: 添加支付回调链路(支付成功 → 订单状态流转 → SignalR 推送)
Build and Deploy TenantApi + SkuWorker / build-and-deploy (push) Failing after 12s
- 新增 ProcessPaymentCallbackCommand + Handler(幂等处理)
- 丰富 PaymentSucceededEvent(StoreId、OrderNo、Channel 等字段)
- 新增 PaymentSucceededConsumer(支付成功 → NewOrder 推送)
- 新增 PaymentCallbackController(微信/支付宝预留 + 内部测试端点)
- Program.cs 注册 PaymentSucceededConsumer
|
2026-02-27 13:09:25 +08:00 |
|
|
|
bb2ff6167e
|
feat: 添加订单事件管道与状态流转命令
Build and Deploy TenantApi + SkuWorker / build-and-deploy (push) Failing after 12s
- 新增 OrderStatusChangedEvent、OrderUrgeEvent 事件类型
- 扩展 EventRoutingKeys(orders.status-changed、orders.urged)
- 丰富 OrderCreatedEvent(StoreId、Channel、DeliveryType 等字段)
- CreateOrderCommandHandler 注入 IEventPublisher 并发布事件
- 新增接单/拒单/出餐完成/确认送达 Command + Handler(4对)
- 新增 MassTransit Consumer(OrderCreated/StatusChanged/Urge → SignalR)
- Program.cs 注册 3 个 Consumer
|
2026-02-27 13:08:41 +08:00 |
|
|
|
7c06ac3e29
|
feat: 添加 SignalR 基础设施(Hub + Redis Backplane + JWT 认证)
Build and Deploy TenantApi + SkuWorker / build-and-deploy (push) Has been cancelled
- 添加 Microsoft.AspNetCore.SignalR.StackExchangeRedis NuGet 包
- 新建 OrderBoardHub(连接/断开/切换门店 Group)
- 新建 SignalRJwtEvents(WebSocket query string JWT 提取)
- Program.cs 注册 SignalR + Redis Backplane + MapHub
- JwtAuthenticationExtensions 添加 OnMessageReceived 事件
- CORS 修复 AllowAnyOrigin 与 AllowCredentials 互斥问题
|
2026-02-27 13:07:51 +08:00 |
|
|
|
502f80473e
|
fix(order): move all-orders list to database pagination
Build and Deploy TenantApi + SkuWorker / build-and-deploy (push) Successful in 1m50s
|
2026-02-27 10:32:21 +08:00 |
|
|
|
b1c51c7712
|
fix(order): tighten payment method filter by paid status
Build and Deploy TenantApi + SkuWorker / build-and-deploy (push) Successful in 1m49s
|
2026-02-27 10:24:53 +08:00 |
|
|
|
11a1521b6a
|
feat(order): add all-orders APIs and query workflow
Build and Deploy TenantApi + SkuWorker / build-and-deploy (push) Successful in 1m51s
|
2026-02-27 10:09:19 +08:00 |
|
|
|
dd90bdfe0f
|
feat: 完成商品批量工具后端接口与Excel导入导出
Build and Deploy TenantApi + SkuWorker / build-and-deploy (push) Successful in 1m49s
|
2026-02-26 12:07:48 +08:00 |
|
|
|
3f5ca9c3ee
|
feat: 商品列表查询改为数据库分页过滤
Build and Deploy TenantApi + SkuWorker / build-and-deploy (push) Successful in 1m53s
|
2026-02-26 10:50:20 +08:00 |
|
|
|
8f64eb897b
|
fix: 修复PostgreSQL咨询锁函数参数不兼容
Build and Deploy TenantApi + SkuWorker / build-and-deploy (push) Successful in 2m0s
|
2026-02-25 11:55:30 +08:00 |
|
|
|
7d3542735b
|
ci: 流水线新增SkuWorker容器并自动执行数据库迁移
Build and Deploy TenantApi + SkuWorker / build-and-deploy (push) Successful in 1m55s
|
2026-02-25 11:37:27 +08:00 |
|
|
|
77caac3af9
|
feat: SKU保存链路切换到RabbitMQ Outbox并新增独立Worker
Build and Deploy TenantApi / build-and-deploy (push) Successful in 51s
|
2026-02-25 11:20:38 +08:00 |
|
|
|
aeef4ca649
|
feat: 新增商品单接口异步保存并内置SKU入队
Build and Deploy TenantApi / build-and-deploy (push) Successful in 50s
|
2026-02-25 10:51:04 +08:00 |
|
|
|
18af62e111
|
fix: 空SKU编码时改为自动生成避免冲突
Build and Deploy TenantApi / build-and-deploy (push) Successful in 50s
|
2026-02-25 10:00:48 +08:00 |
|
|
|
474c0c88c0
|
fix: 提前校验SKU最终编码冲突并返回明确错误
Build and Deploy TenantApi / build-and-deploy (push) Successful in 52s
|
2026-02-25 09:55:38 +08:00 |
|
|
|
b970cd4ba7
|
fix: 修复SKU软删除冲突导致唯一索引报错
Build and Deploy TenantApi / build-and-deploy (push) Successful in 50s
|
2026-02-25 09:49:20 +08:00 |
|
|
|
21d7be5a4f
|
fix: 增强SKU异步任务失败错误明细
Build and Deploy TenantApi / build-and-deploy (push) Successful in 51s
|
2026-02-25 09:39:21 +08:00 |
|
|
|
5fcc1e1484
|
feat: 商品SKU支持异步保存与软禁用替换策略
Build and Deploy TenantApi / build-and-deploy (push) Successful in 56s
|
2026-02-25 09:23:15 +08:00 |
|
|
|
c2a6cf7b1e
|
fix(api): 修复商品保存事务重试冲突并兼容kind缺省
Build and Deploy TenantApi / build-and-deploy (push) Successful in 46s
|
2026-02-24 16:51:45 +08:00 |
|
|
|
2c7981b6d0
|
chore(tenantapi): set production tenancy root domain
Build and Deploy TenantApi / build-and-deploy (push) Successful in 49s
|
2026-02-24 15:59:19 +08:00 |
|
|
|
d66879f5cf
|
feat(product): complete combo and detail editing data model
Build and Deploy TenantApi / build-and-deploy (push) Successful in 47s
|
2026-02-22 09:35:57 +08:00 |
|
|
|
f7c2ae4bac
|
feat(product): add product list/detail/save/soldout/batch api support
Build and Deploy TenantApi / build-and-deploy (push) Successful in 47s
|
2026-02-21 17:23:48 +08:00 |
|
|
|
d41f69045f
|
feat(product): add product schedule management api
Build and Deploy TenantApi / build-and-deploy (push) Successful in 46s
|
2026-02-21 11:46:55 +08:00 |
|
|
|
ad65ef3bf6
|
feat(product): add product label management backend
Build and Deploy TenantApi / build-and-deploy (push) Successful in 43s
|
2026-02-21 10:18:48 +08:00 |
|
|
|
93bc072b8d
|
feat: 新增加料管理接口与模板能力
Build and Deploy TenantApi / build-and-deploy (push) Successful in 43s
|
2026-02-21 08:44:26 +08:00 |
|
|
|
848778b8b5
|
fix: 修复规格模板查询并发DbContext异常
Build and Deploy TenantApi / build-and-deploy (push) Successful in 44s
|
2026-02-21 07:42:02 +08:00 |
|
|
|
392d9f03a1
|
feat: 新增规格做法模板管理接口与数据模型
Build and Deploy TenantApi / build-and-deploy (push) Successful in 45s
|
2026-02-20 20:08:34 +08:00 |
|
|
|
1b3525862a
|
feat: implement tenant product category management APIs
Build and Deploy TenantApi / build-and-deploy (push) Successful in 44s
|
2026-02-20 18:45:48 +08:00 |
|
|
|
eea8a53da3
|
chore(api): align tenant storage config with admin
Build and Deploy TenantApi / build-and-deploy (push) Successful in 46s
|
2026-02-20 16:45:54 +08:00 |
|
|
|
237e0a1a9f
|
fix(api): register storage services in tenant api
Build and Deploy TenantApi / build-and-deploy (push) Successful in 46s
|
2026-02-20 16:33:46 +08:00 |
|
|
|
750346fdb2
|
feat(api): add tenant files upload endpoint
Build and Deploy TenantApi / build-and-deploy (push) Successful in 49s
|
2026-02-20 16:23:29 +08:00 |
|
|
|
48cf852d46
|
feat(project): 新增包装费模式切换接口
Build and Deploy TenantApi / build-and-deploy (push) Successful in 44s
|
2026-02-20 10:39:34 +08:00 |
|
|
|
adac05521a
|
feat(store): add dedicated pickup mode save endpoint
Build and Deploy TenantApi / build-and-deploy (push) Successful in 46s
|
2026-02-20 10:09:33 +08:00 |
|
|
|
8a6fc867c2
|
refactor(store): remove fallback config behavior and expose isConfigured
Build and Deploy TenantApi / build-and-deploy (push) Successful in 43s
|
2026-02-20 09:55:11 +08:00 |
|
|
|
938da7469c
|
fix: 排班替换删除时忽略软删过滤
Build and Deploy TenantApi / build-and-deploy (push) Successful in 42s
|
2026-02-20 09:21:43 +08:00 |
|
|
|
f2142de407
|
fix: 排班事务兼容ef重试策略
Build and Deploy TenantApi / build-and-deploy (push) Successful in 42s
|
2026-02-20 09:17:48 +08:00 |
|
|
|
9651022261
|
refactor: 排班替换改为事务内先删后增
Build and Deploy TenantApi / build-and-deploy (push) Successful in 43s
|
2026-02-20 09:14:39 +08:00 |
|
|
|
669db14f64
|
fix: 修复员工排班保存唯一键冲突
Build and Deploy TenantApi / build-and-deploy (push) Successful in 43s
|
2026-02-20 09:12:21 +08:00 |
|
|
|
069d7de05e
|
fix: 员工排班移除mock与兜底逻辑
Build and Deploy TenantApi / build-and-deploy (push) Successful in 43s
|
2026-02-20 09:02:52 +08:00 |
|
|
|
145be01bfc
|
fix(store-fees): 保留包装费配置避免阶梯刷新丢失
Build and Deploy TenantApi / build-and-deploy (push) Successful in 45s
|
2026-02-20 08:28:41 +08:00 |
|
|
|
787ebe6b73
|
fix(pickup): remove mocked fine-slot reservation preview
Build and Deploy TenantApi / build-and-deploy (push) Successful in 43s
|
2026-02-19 18:21:06 +08:00 |
|
|
|
7ecf069efd
|
fix(pickup): prevent null rowversion on settings and slots save
Build and Deploy TenantApi / build-and-deploy (push) Successful in 43s
|
2026-02-19 17:57:52 +08:00 |
|
|
|
53f7c54c82
|
feat(geo): add tenant/merchant/store geocode fallback and retry workflow
Build and Deploy TenantApi / build-and-deploy (push) Successful in 43s
|
2026-02-19 17:13:00 +08:00 |
|
|
|
ad245078a2
|
feat: 提交配送中心点与门店地址映射全量变更
Build and Deploy TenantApi / build-and-deploy (push) Successful in 42s
|
2026-02-19 16:12:36 +08:00 |
|
|
|
d5b22a8d85
|
fix: 配送地图地理编码改为后端签名代理
Build and Deploy TenantApi / build-and-deploy (push) Failing after 36s
|
2026-02-19 16:05:57 +08:00 |
|
|
|
2c086d1149
|
fix(infra): auto-apply app and dictionary migrations on startup
Build and Deploy TenantApi / build-and-deploy (push) Successful in 41s
|
2026-02-18 20:41:22 +08:00 |
|
|
|
c853fd8edf
|
fix(store-hours): reject overlapping holiday date ranges
Build and Deploy TenantApi / build-and-deploy (push) Successful in 42s
|
2026-02-18 20:36:33 +08:00 |
|
|
|
8139c08b35
|
fix(store): enforce UTC holiday dates and exclude deleted stores
Build and Deploy TenantApi / build-and-deploy (push) Successful in 42s
|
2026-02-18 17:25:34 +08:00 |
|