Files
webman-buildadmin/docs/渠道管理后台说明.md
zhenhui e65c3474bd 1.修改电话号码格式为60前缀,马来西亚格式
2.优化渠道可以查看分红方式,可以查看游玩详情
2026-05-30 11:09:54 +08:00

6.7 KiB
Raw Blame History

渠道管理后台说明

1. 文档目的

说明 渠道管理/admin/channel)页面的统计卡片、列表数据范围、操作按钮权限、下注记录弹窗与相关接口,便于运营配置权限与开发联调。

分红计算与代理树拆分口径见 分红说明文档.md


2. 页面入口与统计卡片

卡片 说明
渠道总数 当前账号可读范围内渠道数量
启用渠道 status = 1 的渠道数
待分红渠道 carryover_balance > 0 的渠道数
待分红总额 上述渠道 carryover_balance 合计
已分红金额 可读范围内渠道下,已发放佣金(agent_commission_record.status = 1)合计;可点击打开已分红记录弹窗(需 viewDividendRecords 权限)

列表上方筛选:全部 / 有分红余额 / 无分红余额 / 仅启用 / 仅停用(前端 search 条件,不改变数据范围规则)。


3. 数据可见范围(只读)

app/common/service/AdminChannelScopeService.php 统一判定,列表与统计均遵守:

条件(满足任一即全平台渠道可读 说明
超管 权限含 *
角色组均未绑定 channel_id 该管理员所属角色组 admin_group.channel_id 均为空
拥有「查看所有渠道」 按钮权限 channel/viewAllChannels

否则仅可读:

  • 角色组绑定的 channel_id 集合,或
  • 本人 admin.channel_id(若 > 0
  • 无绑定且无账号渠道时返回空列表。

写操作(新增/编辑/删除渠道、手动结算写库)仍限制在可写渠道:角色组绑定渠道 + 账号 channel_id因「查看所有渠道」而扩大写范围。

其它菜单(用户、充值/提现订单、游玩记录、控制台等)在只读全平台时同样可不按 admin_id 收窄,逻辑与 Backend::hasGlobalReadScope() 一致。


4. 列表字段与操作

4.1 常用列

  • 渠道标识、名称、代理模式、联营负结转、契约编号、结算周期等
  • 直属投注额:该渠道下 game_play_record 投注合计;可点击打开直属下注记录弹窗(需 viewDirectBetRecords
  • 操作列:查看总投注金额手动结算、编辑、删除(后两者受写权限约束)

4.2 操作按钮权限

按钮权限节点 名称 行为
channel/index 查看 列表与详情
channel/viewAllChannels 查看所有渠道 扩大只读范围至全平台渠道
channel/viewDividendRecords 查看已分红记录 顶部「已分红金额」卡片与弹窗
channel/viewDirectBetRecords 查看直属投注记录 「直属投注额」列点击
channel/viewSettlementBetRecords 查看总投注金额 操作列;分红口径已结算注单
channel/manualSettle 手动结算 操作列;预览并提交渠道结算(见 §5
channel/batchSettlePending 一键批量结算 仅超管可见;结算全部待结算渠道
channel/add / edit / del 增删改 须对目标渠道具备写权限

角色组在 权限管理 → 角色组 中勾选对应按钮;保存后管理员需重新登录以刷新前端 authNode


5. 手动结算

  • 接口GET /admin/channel/manualSettlePreview?id={channelId}POST /admin/channel/manualSettle
  • 权限:超管,或拥有 channel/manualSettle 且目标渠道在可读范围
  • 逻辑:与超管结算相同,调用 ChannelSettlementService::settleBySuperAdmin,结算即按代理树发放至 admin_wallet
  • 周期:上次结算结束时间 ~ 当前时间;金额来自期内 已结算 游玩记录(game_play_record.status = 2
  • 批量POST /admin/channel/batchSettlePending仅超管

6. 下注记录弹窗

两种入口共用同一套 UI 与筛选(接口不同):

入口 接口 数据范围
直属投注额 GET /admin/channel/directBetRecordList 该渠道全部游玩记录
查看总投注金额 GET /admin/channel/settlementBetRecordList 该渠道 已结算 记录(status = 2,参与分红口径)

6.1 顶部统计Card

  • 总笔数、总投注额、总中奖额(随筛选条件重算)

6.2 列表列

游戏期号、玩家名、渠道、选号、中奖号码、中奖状态(已中奖 / 未中奖 / 待开奖)、投注金额、玩家中奖金额(含 jackpot_extra_amount)。

6.3 筛选参数GET

参数 说明
channel_id 必填
page / limit 分页,默认 1 / 20最大 200
period_no 期号模糊(pr.period_nogame_record.period_no
user_keyword 玩家名或手机号模糊
result_number 开奖号码精确匹配
pick_number 选号模糊(匹配 pick_numbers JSON 文本)
win_hit won / lost / pending(与列表中奖状态一致)

6.4 移动端适配

  • 弹窗宽度约 92% 视口,内容区可纵向滚动(勿使用 ba-operate-dialog 固定高度)
  • 统计 Card 一行三列;筛选项纵向铺满;表格区域可横向滑动

7. 已分红记录弹窗

  • 接口GET /admin/channel/dividendRecordList
  • 权限channel/viewDividendRecords
  • 字段:结算单号、渠道名、代理账号、分红金额、结算周期、发放时间等

8. 相关接口一览

方法 路径 说明
GET /admin/channel/index 渠道列表
GET /admin/channel/settleStats 顶部统计卡片
GET /admin/channel/directBetRecordList 直属下注记录
GET /admin/channel/settlementBetRecordList 分红口径下注记录
GET /admin/channel/dividendRecordList 已分红记录
GET /admin/channel/manualSettlePreview 手动结算预览
POST /admin/channel/manualSettle 提交手动结算
POST /admin/channel/batchSettlePending 超管批量结算

9. 相关代码

模块 路径
渠道控制器 app/admin/controller/Channel.php
数据范围 app/common/service/AdminChannelScopeService.php
渠道结算 app/common/service/ChannelSettlementService.php
前端页面 web/src/views/backend/channel/index.vue
权限迁移 database/migrations/20260530120000_*20260530130000_*

10. 变更记录

日期 说明
2026-05-30 新增:查看所有渠道、下注/分红查看按钮;下注记录弹窗列与筛选;移动端弹窗适配
2026-05-30 手动结算:拥有 channel/manualSettle 且渠道可读即可操作(不再仅限超管展示按钮)