13 Commits
Author SHA1 Message Date
root 37757d6aa5 代码提交 2026-11-14 11:24:19 +08:00
rootandClaude Opus 5 e1674ec96b 退款订单列表增加金额汇总
refundOrder/list 响应增加 totalMoney(单位:分),走 $sum 聚合统计
整个筛选结果的退款金额,而不是当前这一页 —— 按渠道搜出几百笔时
只汇总当页会得出错误金额。

命中数为 0 时直接返回,不再多跑一次聚合和列表查询。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-11-11 17:49:17 +08:00
rootandClaude Opus 5 3c8cefbb2a 广告素材增加排序字段
advitise_info 增加 sort 字段,列表默认按 sort 从小到大排序。
info/list 增加 orderBy 参数: sortAsc(默认) / sortDesc / newest,
三种排序末尾都追加 _id 作为最后一级,避免同值文档在分页时重复或漏数据。

启动时回填历史数据缺失的 sort 字段: 缺字段的文档在升序里会排在 0 之前,
且按 sort=0 精确查询查不到。用 UpdateMMany 避免刷新全表 updatedAt。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-11-11 17:49:10 +08:00
root 3fd3e82a01 代码提交 2026-11-05 12:11:56 +08:00
root 3d9bdb6f6e 增加退单管理 2026-10-09 19:50:49 +08:00
rootandClaude Opus 5 22def0b5cb 修复代理渠道统计累加子节点时未区分 appId
AccumulateChildNodes 把子代理数据累加到上级代理时,匹配条件只比了 SumDate,
没有比 AppId。上级节点的 Stats 在同一 SumDate 下每个 app 各有一条,子代理
某个 app 的数据会被累加进上级的全部 app 条目,且命中后不 break,会继续累加
进后续所有匹配项。

触发条件: GetAllAgentStatDict 对 appId 是可选过滤,而 AgentChannelStatSearch
的 AppId 为 *int32 且无 binding:required。请求不传 appId 时 statDict 跨
全部 app,此时必然多加。影响 /api/stat/agent/channel/stat,是代理商侧看到的
数据。

同函数下方的 lostStat 分支本就带 AppId: childStat.AppId,说明 appId 本是
预期维度,匹配处属遗漏。

本次只加 appId 比较,未加 break。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-10-02 09:54:33 +08:00
rootandClaude Opus 5 4cdca06289 修复子渠道汇总到父渠道时未区分 appId 导致数据多加
ChannelStat 按 (channel, sumDate, appId) 三维存储,但子渠道累加到父渠道的
匹配条件只比了 ParentChannel 和 SumDate,漏了 AppId。

当父渠道在多个 app 下都有记录时(如 appId=[2,3,4] 查同一渠道码),一个子渠道
的数据会被同时累加进该 (channel, sumDate) 下所有 app 的父渠道行,选几个 app
就多加几倍。settlement 的三处子查询本身也没有 appId 约束,父列表虽锁定单个
appId,子列表却跨 app,同样会把其他 app 的子渠道数据算进结算金额。

5 处匹配条件统一补上 child.AppId == parent.AppId:
- stat.go:162          SearchChannelStat         (列表接口,多值 appId)
- settlement.go:200    ChannelSettlementCalc     (结算计算,影响金额)
- settlement.go:327    SearchChannelSettlementStat2 (原本父子共用同一 filter
                       而侥幸正确,补上以免后续改动破坏该前提)
- settlement.go:857    AddSettlementInfo2        (影响金额)
- settlement.go:1138   DetailSettlementInfo

本次只改匹配条件。settlement 三处 childFilter 缺少 appId 约束的冗余查询,
以及 SearchChannelStat 在无 start/end 时 resp.Total 硬编码为 1000000、
withChild 累加被 canSum 跳过的问题,均未处理。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-10-02 09:38:03 +08:00
rootandClaude Opus 5 836e42b364 修复排名图空数据时生成坏图
innerServers 未配置时 GetRankPhoto/GetRankDetail 的跨服循环零次执行,
statList 为空仍继续渲染。go-charts 对空数据集会把坐标轴范围退化成
math.MinInt64 与 NaN,产出一张 Y 轴刻度为 -9,223,372,036,854,776,000、
X 轴为 NaN、图例全 0 的坏图,并照常推送到群里。

增加 ErrNoRankData 哨兵错误,两个函数在渲染前拦截空数据集。11 个调用点
原本就是 if err != nil { return err },无需改动即可全部覆盖。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-27 09:13:03 +08:00
rootandClaude Opus 5 01d9f7bc86 新增广告V2模块,双端下载落地页调整
- 新增 advitise v2: info/location/bind/click-stat/day-click-stat 模型与
  对应的 service、api、router、proto 定义
- models/index.go 注册 5 个新模型的索引初始化
- 鉴权白名单: /rsdownload/ 改为 /download/,放行 advitise v2 的
  get/click 接口
- statg/config: proxyUrl 增加 fileRes1
- common/genId: lid 生成逻辑补充
- 新增 91fans / huangguo 的 mobileconfig 描述文件
- 新增 deploy/nginx/cpcdownload.mfcg.me.conf 网关配置

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-22 16:53:23 +08:00
root bc605f303d 增加双端下载 2026-06-30 16:16:55 +08:00
root 7444fc5c48 代码调整 2026-06-03 23:13:12 +08:00
root c47f12a740 初始化 2026-05-26 15:57:55 +08:00
root ceffbe382e Initial commit 2026-05-20 16:13:58 +08:00