Files
cursor/plans/首充定格已解锁列_3c8b7cb9.plan.md
ray zhou 1bcb6120dd ok
2026-05-29 17:23:17 +08:00

4.5 KiB
Raw Blame History

name, overview, todos, isProject
name overview todos isProject
首充定格已解锁列 在 Free Credits 统计(首充定格)列表页增加「已解锁金额」列;后端 `claimed_amount_qf` 已按第二档及以后 release 档已完成金额聚合,主要改 slot_admin_vue 展示即可。
id content status
vue-column 在 freeCreditsStats/index.vue 增加 claimed_amount_qf 列(标题:已解锁金额)及金额展示模板 completed
id content status
verify-ui 本地打开页面核对列值与 remaining_amount_qf 公式;跑 verify-slot-backend.sh completed
false

首充定格列表增加「已解锁金额」列

背景

目标页面为 Free Credits 统计(菜单:活动管理 → Free Credits 统计):

需求文档 §18.2 中对应字段为 「已领取金额」(后续已 Claim 金额);产品侧列名为 「已解锁金额」,语义一致:第二档(package_type=release)起用户已成功领取的金额,不含第一档免打码提现。

现状(无需重复造数)

后端 list() 已在每行返回 claimed_amount_qf,聚合逻辑在 aggregatePackages()

                SUM(CASE WHEN package_type = {$typeFirstCash} AND status = {$statusCompleted} THEN amount_qf ELSE 0 END) AS first_cashout_amount_qf,
                SUM(CASE WHEN package_type = {$typeRelease} AND status = {$statusCompleted} THEN amount_qf ELSE 0 END) AS claimed_amount_qf,
  • TYPE_FIRST_CASH = 1:第一档提现
  • TYPE_RELEASE = 2:第二档及以后 Claim
  • status = STATUS_COMPLETED 计入

remaining_amount_qf 已用该字段参与计算:frozen - first_cashout - claimed

顶部汇总区已有「已领取金额」展示 stats.claimed_amount_qf,与行字段同源。

flowchart LR
  subgraph api [GET /game/freeCreditsStats/index]
    list[list.data]
    stats[otherData.statistics]
  end
  subgraph agg [aggregatePackages]
    release["SUM release completed amount_qf"]
  end
  release --> claimed["claimed_amount_qf per row"]
  claimed --> list
  release --> stats

实现方案

1. slot_admin_vue主要改动

文件:index.vue

columns「完成进度」与「剩余未释放金额」之间 插入一列:

列标题 dataIndex 说明
已解锁金额 claimed_amount_qf 千分位转美元,与定格金额等列一致

新增 slot 模板(复用现有 qfToDollar

<template #claimed_amount_qf="{ record }">
  ${{ qfToDollar(record.claimed_amount_qf) }}
</template>

无需改 freeCreditsStats.js API 封装。

2. slot_admin 后端(可选 / 建议不改)

FreeCreditsStatsLogic.php 已满足需求,无需新增接口或 SQL。

若希望 API 字段名与列标题一致,可额外返回别名 unlocked_amount_qf(与 claimed_amount_qf 同值),但会增加前后端两套字段,不建议,前端直接用 claimed_amount_qf 即可。

3. 命名对齐(可选)

  • 列表列名:已解锁金额(按产品要求)
  • 顶部汇总仍为「已领取金额」;与需求文档 §18.1 一致。若产品要求顶部也改名,可一并改为「已解锁金额」,本次可只做列表列。

验证

  1. 打开 Free Credits 统计页,确认新列有值;未领取第二档的用户为 $0.00
  2. 抽查:某用户第二档及以后 free_credits_packagepackage_type=2status=3amount_qf 之和 = 列表「已解锁金额」× 1000。
  3. 确认「剩余未释放金额」= 定格金额 第一档已提现 已解锁金额(与现有公式一致)。
  4. 执行 ~/.cursor/hooks/verify-slot-backend.sh(若仅改 Vue预期 PASS (no changed files) 或仅前端相关检查)。

改动范围小结

仓库 文件 改动
slot_admin_vue src/views/game/freeCreditsStats/index.vue 新增列 + 金额模板
slot_admin 无(数据已返回)