Commit Graph

303 Commits

Author SHA1 Message Date
zzh
15785cdf2b feat: enrich publish snapshots with downstream names and use API provider code for track ApiCode
Persist group/app/API provider display names in sales product and service channel rules publish snapshots, and resolve trajectory ApiCode from the service channel API provider code instead of forecast code.
2026-07-23 10:23:56 +08:00
zzh
6314790598 feat: persist track upsert response in batch job item resultJson
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-23 09:28:34 +08:00
zzh
1545bc385f feat: ????????????? A0101/A0301/A0701
Fix UpsertSmallBag ApiCode/TrackNo assembly and MQ-disabled direct fallback; append lifecycle tracks on parcel create, inbound, and outbound. Redact channel fields for customer order list.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 20:11:25 +08:00
zzh
3d5eaa223a feat: 小包全链路加固、待排货与运单号 IDE 前缀
查价/下单/入库/出库统一校验与计费上下文;待排货状态及可选入库排货;运单号改为 IDE+yyMMddHHmmss;补充迁移 SQL 与测试修复。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 19:00:55 +08:00
zzh
c2d854b83f fix: 批量任务详情查询不再写库,修复 ConcurrencyStamp 冲突
- MapJobOutputAsync 改为只读聚合,GET /jobs/{id} 不再 UpdateJob
- /jobs/{id}/items 仅校验存在,避免并行查询双写
- 重写 migrate_rename_warehouse_C_to_c.sql,支持 Navicat 与大小写两步改名

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 16:51:13 +08:00
zzh
a1daea6b35 refactor: 仓储表 C_* 改为 c_*,优化专线小包批量模板
- 仓储实体与 db.sql 统一为小写 c_ 前缀,新增 migrate_rename_warehouse_C_to_c.sql
- 专线小包批量模板精简版/标准版双模板,Excel 必填标红与发件地址上传参数

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 16:18:59 +08:00
zzh
d791f7b251 fix: 批量任务插入后回填 JobItemId,修复 MQ 消费后仍待处理
InsertItemsAsync 批量插入后按 MessageId 回填自增 Id;消费者支持 JobItemId=0 时按 JobId+MessageId 解析子项。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 15:12:41 +08:00
zzh
ab63920e85 chore: 触发 CI 重新构建发布,部署 OrderTask 合并后的上传接口
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 12:55:08 +08:00
zzh
bb09a51f4a refactor: 合并 OrderTask 至批量任务,移除 t_order_task 依赖
Excel 导入与任务进度统一走 t_order_batch_job;删除旧实体、仓储与 /order/task/* 接口,上传返回 jobId。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 12:36:57 +08:00
zzh
377cc525d6 feat: 增强批量任务子项反馈与客户单号持久化
统一成功/失败结果快照,补全客户单号与 Excel 行号;系统重试耗尽后标记失败避免子项长期停留在执行中;任务 API 返回 pending/running/cancelled 计数。
2026-07-22 12:00:53 +08:00
zzh
fc92e2903b fix: 字典列表分页改用 RepositoryPageHelper 避免 Where 丢失
Fake GetPagedListAsync 带 sorting 时 total 正确但 items 返回全表;dictType 筛选已生效但被该 bug 掩盖。
2026-07-22 11:06:21 +08:00
zzh
793085607a refactor: 字节枚举整型落库并统一发布快照 Status
发布记录 Status 改为 EsSnapshotStatus(TINYINT),计费启用判断改用 EnableStatus;db.sql 与 migrate_enum_int_comments.sql 补全枚举字段注释及旧库迁移。
2026-07-22 10:22:54 +08:00
zzh
dd2abab42b fix: 字典类型项数统计按 trim 后 DictType 分组汇总
避免类型编码首尾空格导致左侧菜单 itemCount 匹配失败。
2026-07-22 09:25:00 +08:00
zzh
5a2d56986a fix: 字典创建支持恢复软删项并完善类型迁移脚本
批量导入时若同类型编码曾被软删,改为恢复并更新而非插入,避免唯一键冲突 500;迁移脚本补全预置类型中文名并支持覆盖 Remark/TypeSort。
2026-07-21 18:49:59 +08:00
zzh
93cf065165 feat: 新增字典类型元数据表与类型备注 API
支持字典类型备注维护及左侧类型列表查询,创建字典项时自动补齐类型元数据。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 17:48:42 +08:00
zzh
dcf856568e fix: 批量任务系统失败重新抛异常以触发 EventBus 重试
Restore InvalidOperationException on system failures after EventBus refactor; use OrderTaskStatusCodes when syncing import tasks.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 17:38:03 +08:00
zzh
365f9d8a94 fix: 数值枚举从 1 起编并统一 OrderTaskStatus 常量
Reserve 0 as None for byte enums and align customer group labels with dict codes; add OrderTaskStatusCodes for import task status strings.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 17:37:54 +08:00
32753e7606 简化 2026-07-21 10:45:57 +08:00
98664aad3b fix 2026-07-21 09:12:46 +08:00
d49efcb341 upgrade 2026-07-20 20:48:15 +08:00
a4d6400318 refactor: 订单批量任务改走 Fake.EventBus.RabbitMQ
移除自建消费者与队列拓扑,统一由事件总线发布/消费,并优化下游转发查询与配置。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 17:54:29 +08:00
zzh
188aed1ee6 feat: 店铺订单创建物流/代发,并补齐收件人字段与种子数据
- 新增 batch-create-logistics / batch-create-fulfill:按平台行建物流单并回写 LinkedOrderId,代发支持绑定冻结与失败回滚
- ParcelBuilder 支持无 SKU 映射的平台行申报;批量创建可指定 OrderSource=platform
- 库存绑定候选接口支持 orderId=0 草稿选仓
- 店铺订单增加结构化收件人字段(db.sql + 迁移脚本),拉单回填;补充 customer9 店铺/揽收种子与 ConcurrencyStamp 修复脚本

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 22:33:55 +08:00
zzh
2b9c677fa7 perf: 登录单次快照、refresh 去 UserInfo,并失效角色菜单缓存
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 23:39:29 +08:00
zzh
b0813ea12d fix: 登录 UserInfo 构建改为串行查询,避免 DbContext 并发异常
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 23:26:47 +08:00
zzh
2188a3ce6e perf: 登录带回 userInfo,并加速 get-current-user
登录/刷令牌返回完整用户信息(含 menus);用户资料与权限并行查询并缓存 3 分钟,减少登录后二次慢请求。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 23:13:24 +08:00
zzh
e1f40ce36c fix: 显式注册面单 PDF 服务与 ILabelPdfRenderer,修复打印激活失败
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 19:19:44 +08:00
zzh
8929ebc5b3 refactor: 面单字段字典去掉发件人组,单号组按标题字数排序
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 19:10:41 +08:00
zzh
7bc7cdf417 fix: 批量队列消费者串行处理,避免 channel 并发导致消息长期 Unacked
AsyncEventingBasicConsumer + Prefetch>1 时 IModel 非线程安全,并发 Ack 易卡死;改为同队列串行消费并加固 Ack/Nack。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 18:22:26 +08:00
2d229bbedd fix 2026-07-18 17:27:34 +08:00
zzh
b679151eb1 feat: Hiprint模板转QuestPDF异步出面单,并接通打印链路
支持模板预览/字段字典、产品绑定 LabelTemplateId、订单 Pending→Ready 生成 PDF,以及 order/print、批量与仓内 printUrl。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 14:52:39 +08:00
zzh
9957b79b19 feat: 打印面单扫码核对 lookup(运单/客户单/跟踪号/包裹/SKU)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 12:53:35 +08:00
zzh
fd9f57bac1 feat: SKU/入库预报返回客户信息,库存出入库历史与可用冻结量
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 12:07:07 +08:00
zzh
f4ddd993b9 feat: 管理端列表返回客户名称/编码,并加固绑定与客户会话
订单/包裹/库存/店铺授权/店铺订单列表补充 customerName、customerCode;库存绑定按会话客户解析并兼容可用量;修复客户 mapId 识别与 ConcurrencyStamp 迁移。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 11:10:53 +08:00
zzh
dc3071c90d feat: 物流单绑定包裹/库存(冻结可用库存)
支持我的订单对已创建物流单绑定仓储资源:新增 t_order_stock_bind 与 stock-bind API,库存/包裹增加 FrozenQty、AvailableQty。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 10:32:44 +08:00
039cbba3d1 feat:fake 2026-07-17 17:43:13 +08:00
zzh
fc823ed24e feat: 工作台统计补充店铺数量与待处理店铺订单,包裹单号前缀改为 ID
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 14:17:00 +08:00
zzh
a9338a4b25 feat: 揽收订单与列表支持管理端按客户筛选
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 12:41:20 +08:00
zzh
1cf55b2669 fix: 地址簿管理端可查全部,修复 SqlSugar 条件翻译
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 12:30:30 +08:00
zzh
9a48ec1a63 feat: 店铺订单拉单同步、RTS 与重新获取面单
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 11:38:06 +08:00
zzh
c2c03f63e3 feat: 店铺平台 OAuth 配置迁入其他配置页
运行时优先读 t_system_other_config,修正管理端客户提示文案,并提供配置种子 SQL。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 11:03:02 +08:00
zzh
674cbdd011 feat: 店铺真授权跳转与地址类型(发件/退件/收件)
对接 Lazada/Shopee/TikTok/Temu OAuth 与回调落库,移除手工店;地址管理支持按类型默认与揽收校验。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 10:25:13 +08:00
zzh
341a318f0b feat: 客户发件地址与揽收订单,复用小包创建全链路。
新增地址簿 CRUD、pickup/create、订单 orderSource 筛选;附带包裹商品图片上传接口。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 18:58:48 +08:00
zzh
4b7c396d92 包裹明细增加商品图片 ImageUrl,支持采集落库与列表返回。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 14:32:55 +08:00
zzh
d73c98b44e 修复列表分页丢Where:改用GetListAsync分页,状态筛选生效。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 13:45:08 +08:00
zzh
3d0db418d2 修复列表状态Tab将all误当状态筛选,并完善插件草稿TTL与客户上下文。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 12:46:05 +08:00
zzh
f0d0659750 包裹明细增加 AttributeText 属性字段。
EOF

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-14 20:10:39 +08:00
zzh
d0df7e864c 新增快递到仓 API 与表结构,并支持 SKU 图片上传。
EOF

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-14 20:06:47 +08:00
zzh
600ab37594 统一 OMS DDL 到 db.sql,并新增采集插件草稿 API。
清理 sql/ 增量与种子脚本;E2E 不再依赖种子;PluginBrowserService 对接哪哪发「我的包裹」采集。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-14 19:44:09 +08:00
zzh
7e90112cbf 完善仓储客户上下文解析(未传客户查全部),并补充库位与确认收货权限种子。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-14 11:12:41 +08:00
zzh
c36bdb237c 重构客户编号生成规则,并修复店铺订单 summary SQL 翻译错误。
采用年码+月码+序号编码(5/6位,单月最多10000);summary 接口改用 hasStoreFilter 避免 SqlSugar 生成非法 SQL。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 17:54:29 +08:00
zzh
86a978b557 修复仓储与店铺订单列表 SqlSugar 可空筛选条件 SQL 翻译错误。
列表 predicate 改用 hasWarehouseFilter/hasStoreFilter 等本地变量,避免 ORM 生成非法 SQL。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 17:15:06 +08:00
zzh
c2d7b5c854 修复店铺列表 ExpirationFilter 嵌套三元导致 SqlSugar IIF 翻译失败。
按 expired/within7days/normal 分支构造独立 predicate,与充值等模块写法对齐。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 17:10:31 +08:00
zzh
fb61fbb072 修复仓储/店铺列表 ConcurrencyStamp 缺失与可空客户ID的 SQL 翻译错误。
补迁移脚本为 C_* 与 t_sales_* 表增加 ConcurrencyStamp;列表查询改用 hasCustomerFilter 模式避免 ORM 生成非法 SQL。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 16:48:05 +08:00
zzh
36fb191f94 修复管理端访问仓储与店铺接口时客户ID必填报错。
列表/汇总/详情改用 ResolveListCustomerIdAsync,管理端未传 customerId 时可查询全部数据。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 16:14:44 +08:00
zzh
8000162f02 docs: 仓储与店铺接口补充 Swagger 中文命名
为 WarehouseService、PlatformStoreService、PlatformStoreOrderService 全部新增接口添加 XML 注释,便于 Swagger 中文展示与前端对接。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 15:46:32 +08:00
zzh
a383ee6f32 feat: 实现仓储模块与平台店铺订单后端能力
新增仓储领域实体、仓储库、WarehouseService 全套接口及数据库迁移脚本;
实现店铺授权、店铺订单服务与库存匹配创建小包单;补充仓储模块 RBAC 权限种子数据。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 15:19:35 +08:00
zzh
18b53de20c fix: 批量邮件 SMTP 改用 MailKit 修复 SSL 465 连接
替换 System.Net.Mail,正确支持隐式 SSL 与 STARTTLS,解决 Syntax error 测试连接失败。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 11:59:01 +08:00
zzh
8ac7e6487c feat: 优化公告通知接收人过滤与客户删除同步
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 11:22:21 +08:00
zzh
36525ca688 fix: 微信注册头像仅写入客户表避免 RBAC Avatar 超长
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 10:26:50 +08:00
zzh
9d57d221af fix: 微信注册软删除占坑与字段过长导致保存失败
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 10:15:38 +08:00
zzh
5e26c5bcec fix: 微信注册保存失败提示与订单模板申报字段推导
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 09:52:44 +08:00
zzh
43563b727f feat: 自动触发公式引擎与查价运输方式分组接口
实现中文公式预报前拦截、规则测试 API 及按销售产品分组返回查价运输方式选项。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-09 18:36:17 +08:00
zzh
27e7ade388 feat: 销售产品对客说明字段与保存接口
支持 CustomerGuideMarkdown 存储、迁移脚本及 customer-guide/save API,完善销售产品详情输出。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-09 15:17:36 +08:00
zzh
3818ce7876 feat: RBAC用户扩展、专属顾问接口及仓库字段清理
接管用户 API 支持电话/工号/微信号/微信二维码,新增客户专属顾问查询,并移除仓库客服电话与微信相关字段。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-09 11:23:54 +08:00
zzh
d8752959e7 feat(order): 强化小包下单规则并暴露预报失败原因
客户单号必填且同客户唯一,运单号统一 NE 前缀自动生成;模板导入不再接受跟踪号/运单号;列表与导出返回预报失败原因字段。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-09 09:44:12 +08:00
zzh
7d5bc2408f fix(order): 批量导入回写订单 ID 并增强 Excel 表头映射匹配
导入行成功后写入 batch job 的 orderId/serviceNo;预报失败时尽量关联草稿订单。Excel 读取与行映射支持表头归一化,兼容带括号说明的列名。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 18:34:59 +08:00
zzh
fc22d9c6c6 feat(order): 优化标准模板 Excel 生成并支持保存映射时选择标准模板
标准模板仅保留中文表头、必填标黄与枚举下拉;导入起始行改为第2行;保存自定义映射时可指定 standardTemplateKey。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 17:23:19 +08:00
zzh
9ab112a36e feat(order): 下单模板映射与 Excel 批量导入小包创建
新增专线小包标准模板生成、自定义列映射 API,并将 /order/upload 改为按映射解析 Excel 后走 CreateParcelCoreAsync;列表查询时自动补齐标准模板种子数据。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 16:42:22 +08:00
zzh
7ab6b6fb51 refactor(order): 移除链路演练功能
删除模拟签收 API 与 RBAC 菜单/权限种子,E2E 测试回退至待上网状态。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 12:41:59 +08:00
zzh
c918faec97 feat(order): 订单链路演练签收 API、E2E 测试与批量任务 SQL 修复
补充链路演练模拟签收接口、E2E 主数据/菜单种子与测试项目,并修复批量任务列表 SqlSugar 查询及表结构注释脚本。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 11:32:45 +08:00
zzh
4f3bbd17bc feat(order): 订单批量任务 RabbitMQ 异步处理与治理 API
引入批量 Job 表、RabbitMQ 队列与消费者,支持导入/小包创建及我的订单批量操作异步化,并提供任务列表、重试失败、取消 pending 与 DLX 监控接口及测试。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 09:52:22 +08:00
zzh
dd5c82e523 feat(order): 支持订单详情手动添加费用项
新增 OrderFeeAddInput 并在 OrderEdit 服务中实现费用追加逻辑,配合前端订单详情抽屉添加费用能力。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 12:36:18 +08:00
zzh
74151b0738 feat(customer): 列表返回 Id 并支持管理员代登客户门户
补充客户分页 Id 字段与 customer-oms-login 接口,修复管理端删除/免密登录;公告通知增加接收人候选项与客户接收类型。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 18:35:46 +08:00
zzh
90f6c25b04 feat(order): 问题件/理赔件标记、通知投递与自动触发
新增 mark-problematic/mark-claimed/handle-status 接口,异常事件审计表与占位符渲染;inApp/email 通知及下单/入库/出库自动触发运行时。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 16:46:52 +08:00
zzh
9359c9cb5b fix(channel): 修复 inApp 通知方式被 Normalize 误过滤
统一映射为 canonical code inApp,并修正站内信显示名匹配。
2026-07-06 15:39:22 +08:00
zzh
0c763f9707 fix(channel): 修复问题模板重复校验 SQL 语法错误
避免 SqlSugar 翻译闭包 null 比较,改用分支与布尔标志构建查询条件。
2026-07-06 15:28:01 +08:00
zzh
d49573fe9a feat(channel): 新增问题模板 CRUD 与 options API
支持按组织与问题类型维护通知模板,含建表脚本与仓储层唯一性校验。
2026-07-06 14:58:37 +08:00
zzh
cde0ccb6b0 feat: 新增工作台与实时监控统计 API
- GET /order/workplace-stats 与 /order/workplace-trend 供工作台使用

- GET /monitor/overview 供实时监控页订单/客户/轨迹统计

- 扩展订单仓储聚合查询,status-counts 同步应用数据权限

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 18:24:48 +08:00
zzh
991ad49255 fix(微信): 加固 GET 验签,直接输出 echostr 原文
- 从 Query 读取 signature/timestamp/nonce/echostr 并记录失败原因

- 验签通过后 WriteAsync 写回 echostr,避免 JSON 包装

- 补充生产 Token 验签集成测试

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 13:43:42 +08:00
zzh
da1227d8aa feat(微信): 消息推送支持明文 XML/JSON 验签与回包
- POST /apiwechat/verification 恢复消息回调,支持 JSON/XML 明文包体

- SHA1 验签通过后 GET 原样返回 echostr,POST 无回复时返回 success

- 补充官方验签示例与 JSON/XML 推送集成测试

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 12:52:43 +08:00
zzh
6c2e095196 fix(微信): 验签接口仅保留 GET 并原样返回 echostr
- /apiwechat/verification 移除 HEAD/POST,仅保留 GET 验签

- 验签通过后从 Query 原样返回 echostr 纯文本

- 扫码回调测试改走 /wechat/mp/{appId}

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 12:30:42 +08:00
zzh
0a5bd75618 feat: 新增财务应收应付接口并补充 Swagger 接口名称
- 新增 Finance 模块应收应付分页查询及订单费用联查

- 为 DataPerm、Xhs 等缺失接口补充中文 summary 接口名称

- 优化微信公众号验签 Swagger 命名并补充路由集成测试

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 12:15:15 +08:00
zzh
11520d014b fix(数据权限): 修复 DataScopeContext 缓存 JSON 反序列化失败
将 IReadOnlySet/IReadOnlyList 改为 HashSet/List 等可序列化类型;缓存读取失败时自动重建。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 17:47:29 +08:00
zzh
5f1f16c9ad fix(数据权限): 组织树递归查询使用 ParentId 而非 PId
修复 get-effective-by-user 展开下级组织时报 Unknown column c.PId。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 16:44:46 +08:00
zzh
0bf909dc2b feat(rbac): 新增内部用户列表接口,排除纯客户账号
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 12:19:14 +08:00
zzh
ad367998d2 fix(数据权限): 修复 GUID 种子/SqlQuery 映射并补充诊断修复 SQL
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 11:58:24 +08:00
zzh
c442833d9c feat(数据权限): 实现 P1 后端 API、有效范围合并与订单列表集成
- 新增 DataPerm 模块(配置 CRUD、模板、字段脱敏、变更/访问日志 API)及 SQL 脚本
- 订单列表/导出接入 EffectiveScopeBuilder 五维数据权限过滤
- 修复集成测试 JSON 反序列化与 RBAC 用户名解析;新增 DataPerm API 集成测试

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 10:27:37 +08:00
zzh
02cb06b86c feat(wechat): 完善扫码登录缓存账号信息与轮询状态接口
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-02 15:51:59 +08:00
zzh
bf81f00c91 fix(wechat): 注册失败时返回中文错误并校验 RBAC 账号
避免 user 表重复写入抛出英文 DbUpdateException;注册前检查 RBAC 登录账号/邮箱是否已占用。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-02 15:08:24 +08:00
zzh
4d93a9b50d fix(wechat): 注册 OAuth/绑定 API 未注册导致 404
将 WeChatCustomerService 纳入动态 API 映射,暴露 /wechat/oauth/user-info 等 H5 接口。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-02 14:51:47 +08:00
zzh
76ff60e793 fix(wechat): 验签接口支持 HEAD 并避免配置异常返回非 200
微信后台/探活对 HEAD 会收到 405;读取 wechat_mp 配置异常时改为 HTTP 200 + error,与 WMS 行为一致。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-02 12:15:25 +08:00
zzh
7257bf869e fix(wechat): 创建二维码 POST 改用 StringContent 避免微信 412
PostAsJsonAsync 可能走 chunked 传输缺少 Content-Length,微信网关直接返回 HTTP 412 空响应。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-02 11:49:12 +08:00
zzh
8ef9a43f76 feat(wechat): 将 access_token 持久化到 t_system_other_config
改用数据库存储 token 并支持 AppId/Secret 变更时自动清空,替代内存缓存并增加无效 token 重试。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-02 11:03:36 +08:00
zzh
5c6c4f6e48 feat(wechat): 公众号配置改从 t_system_other_config 读取,支持后台其他配置维护
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 16:18:43 +08:00
zzh
d168a21e96 fix(wechat): 公众号验签接口始终返回 HTTP 200,避免 BusinessException 导致非 200
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 15:25:20 +08:00
zzh
1b8a5af807 配置微信公众号本地开发参数:补充 AppId 与 Token,支持 apiwechat/verification 验签联调。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 13:50:31 +08:00
zzh
50c6fd8ac8 fix(xhs): reject offline agent for analysis and normalize browse task results
Validate agent is online before starting analysis tasks; normalize list_feeds JSON when persisting task reports.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 12:36:28 +08:00
zzh
f7be966adc fix(xhs): task/report 与 task/cancel 返回 JSON 响应
避免 Agent 客户端解析空 body 报「非 JSON 响应」导致任务上报失败。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 11:58:48 +08:00
zzh
607e09433b fix(xhs): 管理员账号使用 customerId=0,取消客户账号限制
小红书各服务统一走 ResolveXhsCustomerIdAsync,管理员无需客户上下文即可操作 Agent、拟人设置等接口。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 09:02:18 +08:00
zzh
ffaf325563 fix(xhs): repair publish/task list SQL and RBAC menu seeds
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 11:23:37 +08:00
zzh
af53c48f7f feat: 新增小红书模块后端(Agent/任务/发布/分析/技能/AI)及 SQL 种子与 RBAC GUID 修复脚本
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 09:43:09 +08:00
zzh
42b41e68c7 fix: 微信回调路由挂到 AuthService 以修复 404
Fake 框架未注册 SimpleAdmin.Api.WeChat 下的 ApplicationService,
将 /apiwechat/verification 等公众号验签与消息接口并入 AuthService。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 20:46:49 +08:00
zzh
26ccc69dc6 feat: 兼容 WMS 公众号回调路径 /apiwechat/verification
支持公众平台配置 oms.nanafa.com/api/apiwechat/verification 的验签与消息推送。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 20:27:07 +08:00
zzh
e4894f9627 feat: 批量发送邮件 API(模板、SMTP 配置、发送记录)
新增模板/账号持久化、SMTP 测试与单封发送接口,发送成功后写入邮件记录表供前端列表展示。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 19:56:35 +08:00
zzh
1c0dce9956 fix: 查价运费匹配与费用公式展示优化
修复卖价明细英文货物类型无法匹配导致 freight 为 0 的问题;查价返回算法算式、其他费用明细及中文货物属性名;运费列仅汇总 freight 费用项。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 19:25:33 +08:00
zzh
07fc7fffe7 feat: resolve createBy/updateBy to RBAC user display names
Add OmsRbacUserDisplayNameResolver and use it in customer, order, warehouse, and channel APIs so audit fields return names instead of mapIds.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 19:07:17 +08:00
zzh
e875f0c012 feat: price-check by cargo type and warehouse, customer auto-code, track apiCode
Support multi cargo-type and warehouse combinations in price check billing. Auto-generate customer codes (W+yyMM+seq) on create/register; require email. Use order DownstreamSupplierCode as track UpsertSmallBag apiCode.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 18:40:10 +08:00
zzh
bc0bde72bc feat(track): return reproducible curl in UpsertSmallBag result
Expose CurlCommand in SmallBagTrackUpsertResult so track sync dialog can show the exact curl used for the request.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 13:00:11 +08:00
zzh
3046f26837 fix(track): forward Authorization Bearer to UpsertSmallBag
Track gateway requires the logged-in user JWT in addition to appKey/timestamp/sign headers. Capture token before async enqueue so background sync still works.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 12:53:28 +08:00
zzh
bd1288edc9 fix(track): send UpsertSmallBag auth via HTTP headers
Track SignatureValidationFilter reads appKey/timestamp/sign from headers, not query. Reverts e642f08 query transport and aligns debug script.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 12:35:39 +08:00
zzh
eac7b84f6a feat(order): downstream createOrderOne API from order DB
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 12:29:06 +08:00
zzh
e642f089ba fix(track): UpsertSmallBag auth params in query, align sign helper
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 12:18:57 +08:00
zzh
545f0825f8 feat(order): 规则快照下游元数据、订单绑定字段与系统其他配置
排货发布 enrich Providers 并确认渠道时写入 t_order 下游四字段;接入 itfx 元数据客户端;系统其他配置与小包轨迹 DB 配置;手动轨迹 UpsertSmallBag 接口。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 11:31:15 +08:00
zzh
fe30d071e6 feat(order): 修复列表状态筛选、收件国家名与小包轨迹同步
改用仓储链式 Where 修复分页列表状态过滤失效;保存并返回 ConsigneeCountryName;预报成功后异步 UpsertSmallBag;仅草稿/已预报可删除。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 19:43:35 +08:00
zzh
095ad66717 feat(order): 增加 IsPaid 字段并修复列表状态筛选
- t_order 新增 IsPaid,支付/出库以该字段判断;含迁移脚本

- 列表接口补充 productName、channelName

- 修复 BuildOrderPredicate 状态条件 SqlSugar 翻译丢失

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 19:13:15 +08:00
zzh
e7fd69b644 feat(order): 排货确认渠道与应付计费,出入库计费对齐设计
- 预报/入库后按排货规则选服务渠道并写入渠道买价应付费用

- 排货发布快照 Providers 去除 CreateTime/UpdateTime

- 出库扫描扩展 OutboundRecord 字段与 ApplyShipBillingByWaybillAsync

- 服务渠道买价发布预览;按 ChargingStage 删除应付费用

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 16:44:04 +08:00
zzh
fdbdfa8124 20260627 2026-06-27 11:56:06 +08:00
zzh
d766343ffe feat(customer): account flow ledger, pay deduct balance, status counts
Add t_customer_account_flow with list API, deduct balance on order pay, credit ledger on recharge approve, and GET /order/status-counts for tab badges.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 19:09:43 +08:00
zzh
82df5d1e79 feat(order): add order edit APIs, inbound lookup, and fee output
Support order detail/weight/declaration updates, receivable and payable recalculation, inbound scan order lookup, receive billing overwrite, and OrderOutput feeList for my-orders drawer.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 17:30:41 +08:00
zzh
5e26de6ff3 feat: remove ChargingTime and bill receivables by weight stage
Drop sell/buy price charging-time config; write receivable fees after forecast or receive chargeable weight, hook inbound billing, fix order list status filter, and add DB migration.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 16:24:53 +08:00
zzh
91ba6d5d59 fix: 计重进位快照兼容与 KPI 分区明细 Excel 导入
- 发布规则快照反序列化合并 StartValue/EndValue 至 Start/End
- 小包创建进位时快照区间无效则降级读 t_weight_rounding_info
- 新增 KPI 分区明细导入模板下载与 Excel 批量导入接口
- 补充快照进位与导入相关单元测试

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 15:29:17 +08:00
zzh
7827b4803e feat: slim rules/price publish snapshots with PostcodeRange (left,right]
Use slim DTOs without audit timestamps; migrate legacy LeftPostcode/RightPostcode on read.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 14:10:34 +08:00
zzh
d8a98fbbc8 feat: 规则发布预览接口并抽取快照组装逻辑
新增 GET publish/preview 返回含黑名单/偏远/计重/进位明细的完整 rules 快照,便于核对 Content。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 13:48:07 +08:00
zzh
2c69e8e5b8 feat: 规则快照固化计重/分区规则并修正卖价公式
规则发布写入黑名单、偏远、计重规则与进位明细;查价/下单优先读快照。修正 unit/total/continue 算价及续单价相邻档位总价基数。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 12:57:34 +08:00
zzh
8aa6ceb677 fix: 价格发布从卖价明细分区推断 PriceAreaId 并写入快照
产品未配置 PriceAreaId 时,根据卖价明细「分区」值匹配 t_kpi_area 或 t_kpi_area_info 后固化 PriceAreaInfos。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 11:58:01 +08:00
zzh
3a65e8c58f feat: 价格发布快照固化分区规则,查价优先从快照匹配不再查库
发布/LIVE 快照写入 PriceAreaId、PriceAreaInfos;US+06000 命中分区键 3 单测通过。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 11:20:33 +08:00
zzh
cd061aaaed fix: 查价失败原因按价格项细化,指出分区/重量等具体不匹配项
新增 ExplainQuotePriceMiss 逐条说明运费/操作费等未命中原因;zone 失败时附带卖价明细分区。单元测试 6/6 通过。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 10:49:08 +08:00
zzh
94a503afb3 fix: 查价分区键从国家+邮编解析,移除默认分区兜底
PriceAreaId 优先取产品表并从规则快照回退;未命中 t_kpi_area_info 时在 zone 步骤返回明确原因,避免与卖价明细分区键不匹配。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 10:31:52 +08:00
zzh
148caae1e7 查价增强与小包国家码:查价忽略收费时机,支持 unit/total 字典公式与重量左开右闭区间,未命中返回 failures 步骤与原因;收发件人 countryCode 改为 ISO 二字码。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 09:57:14 +08:00
zzh
13ccd198d5 修复创建订单报错 2026-06-25 19:59:06 +08:00
zzh
b7ed14d6af 修复订单隔离和查价 2026-06-25 19:39:07 +08:00
zzh
00835bfadd 修复充值和查价 2026-06-25 19:10:44 +08:00
zzh
12ee25ad57 build 2026-06-25 17:47:46 +08:00
zzh
f18dd7a470 修复充值 2026-06-25 12:14:59 +08:00
zzh
1c5a38ad73 微信登录和创建应收和应付费用 2026-06-24 17:00:35 +08:00
c1219e0238 ok 2026-06-10 17:57:43 +08:00
dab31a7c8f fix:audit 2026-06-10 10:30:41 +08:00
73d4d112a2 1 2026-06-09 15:37:56 +08:00
20b95da384 1 2026-06-09 15:37:52 +08:00
96724376a6 feat: new 2026-04-29 09:38:07 +08:00
6458ab89ba fix 2026-04-22 17:48:05 +08:00
22bb8ab425 ai-fix 2026-04-21 17:54:52 +08:00
4fa45b6944 ai-fix:proxy https police? 2026-04-17 11:25:50 +08:00
2e65ea4ee7 feat:remarks 2026-04-17 11:09:01 +08:00
829af8c576 upgrade 2026-04-16 17:22:58 +08:00
a4e73283af append 2026-04-15 17:05:30 +08:00
b912c5b159 feat: remarks 2026-04-15 16:50:57 +08:00
91a8ccdecb ai-init 2026-04-15 15:25:38 +08:00
b1520cfebf feat: add consul kv 2026-03-20 15:48:22 +08:00
85627807eb add fei shu 2026-03-20 15:42:08 +08:00
5b8fa4a577 move 2026-03-20 15:40:25 +08:00
31f13dac73 add docker 2026-03-20 15:24:40 +08:00
619518e7bf init 2026-03-20 15:15:43 +08:00