forked from all_user/stat_center
4cdca06289a04754a7dce048ffbecad753f7f825
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>
渠道统计 后台服务
安装swag
go install github.com/swaggo/swag/cmd/swag@latest
Swagger文档生成
swag init --parseDependency
依赖
- kafka 主要用作消息队列
- redis 实时数据统计
发布
使用一下参数,本地生成mv-app-server.zip压缩包。包换app、配置文件和加密key。
$ sudo make deploy
路径
知乎: /server/zhihu/stat-center/conf
逼哩: /server/bili/stat-center/conf
麻豆: /server/stat-center/conf
Languages
Go
99.3%
Python
0.5%
Lua
0.1%