Commit Graph

12 Commits

Author SHA1 Message Date
apple
35b6d76d50 fix(fsgx): 周期佣金锁与分销海报小程序码
- StoreOrderCreateServices: lockWrite 改为 lock(true),避免佣金计算整段异常
- QrcodeServices: 移除误加的 imageInfo 清空、补充小程序码失败日志
- UserBill getRoutineCode: 小程序码失败时回退为 H5 分享链接 ?spread=uid

Made-with: Cursor
2026-03-28 12:36:03 +08:00
panchengyong
ec56ae3286 fix(fsgx): 修复 issues-0325-1 前端与后端问题
UniApp:会员码图片兜底、海报下载 Promise、账单移除公排退款、
佣金状态与资产页 NavBar、资产接口 total_points_earned。

后端:推荐人须自报单才得周期佣金;升级前快照等级再发积分;
积分按报单商品数量倍乘;伞下级差按伞下基数传递;直推/伞下任务
统计补充 refund_status;周期佣金在事务内锁推荐人行防竞态;
新增 hjf:verify-agent-config 命令做等级与任务 e2e 验收。

Made-with: Cursor
2026-03-28 10:23:20 +08:00
apple
6e5bbee71d feat(hjf): 公排入队可配置,默认关闭时同步发放积分奖励
- 新增 hjf_queue_pool_enable(迁移 SQL),后台公排配置读写统一为该键
- Pay 监听:关闭公排时同步执行等级检查与 PointsRewardServices::reward,开启时仍派发 HjfOrderPayJob
- PointsRewardServices: bcInc 增量传 string,避免 PHP 类型错误
- hjf:patch-rewards 补偿命令补充等级检查与正确的幂等条件
- uniapp vue.config.js 本地 API 代理调整(H5 开发)
- docs/issues-0323-1 更新

Made-with: Cursor
2026-03-25 07:38:12 +08:00
mac
d0cd7e4667 fix(fsgx): 伞下人数与待释放积分发放链路
- spread/people 增加 umbrellaCount、umbrellaOrderCount;MemberLevelServices 递归统计伞下人数
- 佣金记录页使用新字段展示团队业绩
- 报单积分改由 HjfOrderPayJob 在等级升级后发放,避免 grade=0 时序问题
- PointsRewardServices::reward 按 points_release_log 幂等防重复
- 移除 backOrderBrokerage 内同步 grantFrozenPointsByBrokerage

Made-with: Cursor
2026-03-24 23:27:55 +08:00
mac
451918bc73 fix(fsgx): 修复5个未修复Bug — 积分解耦/定时任务/积分日志/团队统计/历史补偿
Bug3: 解耦积分奖励与佣金发放,报单订单只要推荐人存在即触发积分,
不再依赖 brokeragePrice > 0;grantFrozenPointsByBrokerage 移至
佣金判断之前独立执行。

Bug1: 定时任务手动触发返回真实结果 —— 补充 fsgx_release_frozen_points
到 taskName 映射;runNow() try/catch 后抛出异常;控制器捕获并返回
fail;修复 SystemTimer listener catch 块运算符优先级 bug。

Bug5: PointsReleaseServices 每日释放同步写入 eb_user_bill,使管理
后台积分日志页面可见;UserPointServices::pointRecord $status 数组
补充 hjf_frozen_direct/hjf_frozen_umbrella/frozen_points_release 等
fsgx 类型映射,防止未知类型报错。

Bug2: hjfMember.js getTeamData 改为 POST 与路由匹配;loadTeamData
字段映射 total/totalLevel/order_count → 界面展示字段。

Bug4: 新增 HjfPatchMissingRewards 命令(hjf:patch-rewards),支持
扫描全量/指定订单补发缺失积分奖励,支持 --dry-run 预览;注册命令
到 config/console.php。

Made-with: Cursor
2026-03-24 20:40:46 +08:00
apple
a41e0ab0f7 feat(fsgx): 完善报单佣金与积分奖励落库链路
放宽报单/人人分销场景下的推广员校验,确保订单返现佣金可落库;并将直推/伞下积分奖励补充写入 user_bill 明细,支持后台页面可见与审计追踪,同时更新对应 PRD 和问题记录。

Made-with: Cursor
2026-03-24 20:10:42 +08:00
apple
c2420e7393 feat(fsgx): 更新用户列表直推/伞下统计并同步测试文档
补充用户列表中的直推人数与伞下订单数统计逻辑,便于验证分销链路数据;同时更新验收与问题文档,记录当前手测结论和检查项。

Made-with: Cursor
2026-03-24 19:05:53 +08:00
apple
b5cd96f92b refactor(fsgx): 积分奖励改为按 eb_agent_level 直推/伞下配置值发放
- grantFrozenPointsByBrokerage: 移除「比例×佣金」换算,改为委托
  PointsRewardServices::reward() 按 direct_reward_points /
  umbrella_reward_points 全链路发放 frozen_points
- HjfOrderPayJob: 移除重复的 PointsRewardServices::reward() 调用,
  避免同一笔订单双重发放;Job 仅保留公排入队与等级升级检查

Made-with: Cursor
2026-03-24 14:07:14 +08:00
apple
f9ae632f33 fix(fsgx): 修复 type=8 订单不计算/不发放佣金的三个 Bug
Bug1: Pay.php::compute() 将 type=8 订单排除在佣金计算之外,导致
      is_queue_goods=1 的报单订单 one_brokerage 始终为 0。
      修复:is_queue_goods=1 时跳过 type 限制。

Bug2: backOrderBrokerage() 同样对 type=8 提前 return,即使
      one_brokerage 有值也不发放。修复同 Bug1。

Bug3: Pay::handle() 在 compute() 更新 DB 后,用陈旧的 $orderInfo
      (one_brokerage=0) 调用 backOrderBrokerage,导致发放金额为 0。
      修复:调用 backOrderBrokerage 前重新从 DB 读取最新订单数据。
Made-with: Cursor
2026-03-24 13:20:58 +08:00
apple
76ccb24679 feat(fsgx): HJF queue merge, brokerage timing, cycle commission, points release
- Add HJF jobs, services, DAOs, models, admin/API controllers, release command
- Respect brokerage_timing (on_pay vs confirm); dispatch HjfOrderPayJob for queue goods
- Queue-only cycle commission and position index fix in StoreOrderCreateServices
- UserBill income types: frozen_points_brokerage, frozen_points_release
- Timer: fsgx_release_frozen_points -> PointsReleaseServices
- Agent tasks: no_assess filtering for direct/umbrella counts
- Migrations: queue_pool, points_release_log, fsgx_v1 checklist updates
- Admin/uniapp: crontab preset, membership level, user list, finance routes, docs

Made-with: Cursor
2026-03-24 11:59:09 +08:00
apple
434aa8c69d feat(fsgx): 完成全部24项开发任务 Phase1-7
Phase1 后端核心:
- 新增 fsgx_v1.sql 迁移脚本(is_queue_goods/frozen_points/available_points/no_assess)
- SystemConfigServices 返佣设置扩展(周期人数/分档比例/范围/时机)
- StoreOrderCreateServices 周期循环佣金计算
- StoreOrderTakeServices 佣金发放后同步冻结积分
- StoreProductServices/StoreProduct 保存 is_queue_goods

Phase2 后端接口:
- GET /api/hjf/brokerage/progress 佣金周期进度
- GET /api/hjf/assets/overview 资产总览
- HjfPointsServices 每日 frozen_points 0.4‰ 释放定时任务
- PUT /adminapi/hjf/member/{uid}/no_assess 不考核接口
- GET /adminapi/hjf/points/release_log 积分日志接口

Phase3 前端清理:
- hjfCustom.js 路由精简(仅保留 points/log)
- hjfQueue.js/hjfMember.js API 清理/重定向至 CRMEB 原生接口
- pages.json 公排→推荐佣金/佣金记录/佣金规则

Phase4-5 前端改造:
- queue/status.vue 推荐佣金进度页整体重写
- 商品详情/订单确认/支付结果页文案与逻辑改造
- 个人中心/资产页/引导页/规则页文案改造
- HjfQueueProgress/HjfRefundNotice/HjfAssetCard 组件改造
- 推广中心嵌入佣金进度摘要
- hjfMockData.js 全量更新(公排字段→佣金字段)

Phase6 Admin 增强:
- 用户列表新增 frozen_points/available_points 列及不考核操作按钮
- hjfPoints.js USE_MOCK=false 对接真实积分日志接口

Phase7 配置文档:
- docs/fsgx-phase7-config-checklist.md 后台配置与全链路验收清单

Made-with: Cursor
2026-03-23 22:32:19 +08:00
panchengyong
7acbf45ff7 new files 2026-03-07 22:29:07 +08:00