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
This commit is contained in:
apple
2026-03-23 22:32:19 +08:00
parent 788ee0c0c0
commit 434aa8c69d
13098 changed files with 2008990 additions and 961 deletions

View File

@@ -0,0 +1,47 @@
# Conversation - 2026-03-10 17:31:35
## Prompt
创建文件 hjfMember.js
文件路径: /Users/apple/scott2026/huangjingfen/pro_v3.5.1/view/uniapp/api/hjfMember.js
内容要求:
1. 导入 request from '@/utils/request.js' 和 MOCK_MEMBER_INFO, MOCK_TEAM_DATA, MOCK_TEAM_INCOME from '@/utils/hjfMockData.js'
2. USE_MOCK = true 开关
3. mockResponse 辅助函数
4. 导出函数:
- getMemberInfo() - 获取会员信息
- getTeamData(params) - 获取团队数据
- getTeamIncome(params) - 获取团队收益
5. 参考: docs/frontend-new-pages-spec.md 第 4.2.1 节
使用 ES6 语法,完整的 JSDoc 注释。
## Response
已按规范在指定路径创建 `hjfMember.js`,内容要点如下:
1. **导入**
- `request` 来自 `@/utils/request.js`
- `MOCK_MEMBER_INFO``MOCK_TEAM_DATA``MOCK_TEAM_INCOME` 来自 `@/utils/hjfMockData.js`
2. **USE_MOCK**
- `const USE_MOCK = true`,便于 Phase 4 时改为 `false` 切到真实接口
3. **mockResponse**
-`request.get()` 同形的 Promise`{ status: 200, data }`
- 300ms 延迟,并对 data 做深拷贝
4. **导出函数**
- **getMemberInfo()**:会员信息(等级、直推/伞下统计、升级进度)
- **getTeamData(params)**:团队成员列表,支持 `page`/`limit`
- **getTeamIncome(params)**:团队收益明细,支持分页
5. **注释与规范**
- 文件顶部 `@module` 说明
- 每个导出函数和 `mockResponse` 均有 JSDoc`@param``@returns`
- 使用 ES6`import`/`export``const`、箭头函数等)
实现与 `docs/frontend-new-pages-spec.md`**3.2.2 节**UniApp 会员 API 模块)一致;文档里的 4.2.1 是引导页 P23会员 API 在 3.2.2。当前无新的 lint 报错。

View File

@@ -0,0 +1,20 @@
# Conversation - 2026-03-10 16:54:42
## Prompt
创建文件 hjfQueue.js内容要求
1. 导入 request from '@/utils/request.js' 和 MOCK_QUEUE_STATUS, MOCK_QUEUE_HISTORY from '@/utils/hjfMockData.js'
2. 定义 USE_MOCK = true 开关
3. 实现 mockResponse 辅助函数300ms延迟返回Promise
4. 导出 getQueueStatus() 函数USE_MOCK时返回MOCK_QUEUE_STATUS否则调用 request.get('hjf/queue/status')
5. 导出 getQueueHistory(params) 函数USE_MOCK时返回MOCK_QUEUE_HISTORY否则调用 request.get('hjf/queue/history', params)
6. 代码使用 ES6 语法,包含完整的 JSDoc 注释
## Response
### 完成情况
- **已创建** `hjfQueue.js`,引入了 `request``MOCK_QUEUE_STATUS`, `MOCK_QUEUE_HISTORY`
- **已实现** `USE_MOCK` 开关、`mockResponse` 辅助函数(默认 300ms 延迟)。
- **已导出** `getQueueStatus()``getQueueHistory(params)`,在 `USE_MOCK` 时返回对应的 Mock 数据,否则走真实接口。
- 所有导出函数和辅助函数都添加了**完整 JSDoc 注释**,风格与现有 `hjfAssets.js` / `hjfMember.js` 保持一致。

View File

@@ -0,0 +1,36 @@
# Conversation - 2026-03-10 16:59:21
## Prompt
创建文件 hjfMember.js
1. 导入 request 和 MOCK_MEMBER_INFO, MOCK_TEAM_DATA, MOCK_TEAM_INCOME from '@/utils/hjfMockData.js'
2. USE_MOCK = true, mockResponse 函数
3. 导出 getMemberInfo() - 会员信息
4. 导出 getTeamData(params) - 团队数据(分页)
5. 导出 getTeamIncome(params) - 团队收益
6. 完整 JSDoc 注释ES6语法
## Response
已按你的要求整理并写好 `hjfMember.js`,包含以下内容:
1. **导入**
- `request``@/utils/request.js` 导入(与 `hjfAssets.js` 一致;`request` 不在 `hjfMockData.js` 中)
- `MOCK_MEMBER_INFO``MOCK_TEAM_DATA``MOCK_TEAM_INCOME``@/utils/hjfMockData.js` 导入
2. **USE_MOCK 与 mockResponse**
- `USE_MOCK = true`
- `mockResponse(data, delay = 300)`,返回 `Promise<{ status, data }>`,带 JSDoc
3. **导出接口**
- `getMemberInfo()`:会员信息
- `getTeamData(params)`团队数据分页params 如 `page``limit`
- `getTeamIncome(params)`:团队收益(分页)
4. **JSDoc 与语法**
- 文件顶部模块说明
- `USE_MOCK``mockResponse` 及三个导出函数均有完整 JSDoc`@param``@returns`
- 使用 ES6`import`/`export`、箭头函数、默认参数、`const`
当前无新的 lint 报错。若你希望 `request` 也从一个统一入口(例如某 index再导出可以说明目标路径我可以按那个方式改导入。

View File

@@ -0,0 +1,48 @@
# Conversation - 2026-03-10 17:30:38
## Prompt
创建文件 hjfAssets.js
文件路径: /Users/apple/scott2026/huangjingfen/pro_v3.5.1/view/uniapp/api/hjfAssets.js
内容要求:
1. 导入 request from '@/utils/request.js' 和 MOCK_ASSETS_OVERVIEW, MOCK_POINTS_DETAIL, MOCK_CASH_DETAIL, MOCK_WITHDRAW_INFO from '@/utils/hjfMockData.js'
2. USE_MOCK = true 开关
3. mockResponse 辅助函数
4. 导出函数:
- getAssetsOverview() - 获取资产概览
- getPointsDetail(params) - 获取积分明细
- getCashDetail(params) - 获取现金明细
- getWithdrawInfo() - 获取提现信息
- applyWithdraw(data) - 申请提现
5. 参考: docs/frontend-new-pages-spec.md 第 3.2.1 节
使用 ES6 语法,完整的 JSDoc 注释。
## Response
已按你的要求和 `docs/frontend-new-pages-spec.md` 第 3.2.1 节写好并保存 `hjfAssets.js`,内容概览如下:
**1. 导入**
- `request` from `@/utils/request.js`
- `MOCK_ASSETS_OVERVIEW``MOCK_POINTS_DETAIL``MOCK_CASH_DETAIL``MOCK_WITHDRAW_INFO` from `@/utils/hjfMockData.js`
**2. 开关与辅助**
- `USE_MOCK = true`
- `mockResponse(data, delay = 300)`:返回 `{ status: 200, data }` 的 Promise深拷贝并延迟
**3. 导出函数(含完整 JSDoc**
- **getAssetsOverview()** — 获取资产概览
- **getPointsDetail(params)** — 获取积分明细(分页)
- **getCashDetail(params)** — 获取现金明细(分页)
- **getWithdrawInfo()** — 获取提现信息
- **applyWithdraw(data)** — 申请提现POSTMock 时返回 `{ success: true, msg: '提现申请已提交' }`,联调走 `request.post('hjf/assets/withdraw', data)`
**4. 其他**
- 使用 ES6import/export、箭头函数、默认参数等
- 为模块和每个函数写了 JSDoc`@param``@returns`
- 未发现新的 lint 报错
说明:你要求的是导出 **applyWithdraw**,已按此命名实现;若页面里之前用的是 `submitWithdraw`,需要改成从本文件导入并调用 `applyWithdraw`

View File

@@ -0,0 +1,39 @@
# Conversation - 2026-03-10 16:56:23
## Prompt
创建文件 hjfAssets.js
1. 导入 request 和 MOCK_ASSETS_OVERVIEW, MOCK_POINTS_DETAIL, MOCK_CASH_DETAIL, MOCK_WITHDRAW_INFO from '@/utils/hjfMockData.js'
2. USE_MOCK = true, mockResponse 函数 300ms延迟
3. 导出 getAssetsOverview() - 资产总览
4. 导出 getPointsDetail(params) - 积分明细
5. 导出 getCashDetail(params) - 现金明细
6. 导出 getWithdrawInfo() - 提现信息
7. 导出 submitWithdraw(data) - POST提交提现
8. 完整 JSDoc 注释ES6语法
## Response
已按你的要求写好并更新 `hjfAssets.js`,主要内容如下:
**1. 导入**
- `request` 来自 `@/utils/request.js`
- `MOCK_ASSETS_OVERVIEW``MOCK_POINTS_DETAIL``MOCK_CASH_DETAIL``MOCK_WITHDRAW_INFO` 来自 `@/utils/hjfMockData.js`
**2. Mock 配置**
- `USE_MOCK = true`
- `mockResponse(data, delay = 300)`,默认 300ms 延迟,返回 `{ status: 200, data }`
**3. 导出接口(均带 JSDocES6**
- **getAssetsOverview()** — 资产总览
- **getPointsDetail(params)** — 积分明细(支持分页参数)
- **getCashDetail(params)** — 现金明细(支持分页参数)
- **getWithdrawInfo()** — 提现信息
- **submitWithdraw(data)** — POST 提交提现Mock 时返回 `{ success: true, msg: '提现申请已提交' }`,联调时走 `request.post('hjf/assets/withdraw', data)`
**4. JSDoc**
- 文件顶部模块说明
- `USE_MOCK``mockResponse` 及上述 5 个导出函数均有 `@param` / `@returns` 注释
当前无新的 lint 报错。需要把 `request` 的导入路径改成别的(例如 `@/utils/request`)可以说一下。

View File

@@ -0,0 +1,48 @@
# Conversation - 2026-03-10 17:29:36
## Prompt
创建文件 hjfQueue.js
文件路径: /Users/apple/scott2026/huangjingfen/pro_v3.5.1/view/uniapp/api/hjfQueue.js
内容要求:
1. 顶部导入import request from "@/utils/request.js"; 和 import { MOCK_QUEUE_STATUS, MOCK_QUEUE_HISTORY } from '@/utils/hjfMockData.js';
2. USE_MOCK = true 开关
3. mockResponse 辅助函数300ms延迟返回深拷贝的Promise
4. getQueueStatus() - 获取公排状态
5. getQueueHistory(params) - 获取公排历史记录
6. 参考: docs/frontend-new-pages-spec.md 第 2.2.1 节
使用 ES6 语法,完整的 JSDoc 注释。
## Response
已按规范在指定路径创建 `hjfQueue.js`,主要内容如下:
1. **顶部导入**
- `import request from '@/utils/request.js'`
- `import { MOCK_QUEUE_STATUS, MOCK_QUEUE_HISTORY } from '@/utils/hjfMockData.js'`
2. **USE_MOCK 开关**
- `const USE_MOCK = true`,并加 JSDoc 说明 Phase 4 时改为 `false`
3. **mockResponse 辅助函数**
- 默认 300ms 延迟
- 使用 `JSON.parse(JSON.stringify(data))` 深拷贝
- 返回 `Promise<{ status: 200, data }>`
4. **getQueueStatus()**
- 获取公排状态(我的排队 + 全局进度)
- Mock 时返回 `MOCK_QUEUE_STATUS`,否则请求 `hjf/queue/status`
5. **getQueueHistory(params)**
- 获取公排历史记录(支持分页参数)
- Mock 时返回 `MOCK_QUEUE_HISTORY`,否则请求 `hjf/queue/history`
6. **JSDoc**
- 文件头说明 + `@see` 指向 2.2.1
-`USE_MOCK``mockResponse``getQueueStatus``getQueueHistory` 做了完整 JSDoc 注释
语法为 ES6风格与 `hjfMember.js` 一致,当前无新的 lint 报错。