win 8d1eef2f7f fix(channel): 修复渠道统计GMV重复计数和商城直购误计入
1. 排除商城直购(source_type=1):GMV和成本过滤条件从IN(1,2,3,4)改为IN(2,3,4)
2. 排除次卡免费使用订单(actual_amount=0):避免购买次卡和使用次卡双重计入GMV
   - source_type=4 一番赏使用次卡:1578单 44032元重复
   - source_type=3 对对碰使用次卡:422单 7042元重复
   - 合计去除51074元虚增GMV(29.1%)
3. 成本过滤条件同步修正:source_type IN(2,3,4),total_amount>0

修正后:GMV从175600降至124527元,毛利率从37.4%回到真实的11.8%
2026-03-16 21:41:39 +08:00

144 lines
4.9 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"tasks": {
"task-1773164482180-yqy5i7": {
"taskId": "task-1773164482180-yqy5i7",
"type": "feature",
"description": "Add PkgID field to OrderRemark struct and parse pkg_id:XX in remark.Parse()",
"priority": "high",
"status": "completed",
"progress": 100,
"assignedTo": [],
"tags": [
"remark",
"parsing",
"ichiban"
],
"createdAt": "2026-03-10T17:41:22.180Z",
"startedAt": null,
"completedAt": "2026-03-10T17:41:55.018Z",
"result": {
"reason": "Added PkgID field to OrderRemark struct and pkg_id: parsing branch in Parse()"
}
},
"task-1773164482201-s9jemx": {
"taskId": "task-1773164482201-s9jemx",
"type": "feature",
"description": "Extend calcPaidByPriceDraw with three-way classification: Case1 ActivityID>0 (lottery), Case2 IssueID>0 (matching game via activity_issues), Case3 PkgID>0 (ichiban via game_pass_packages)",
"priority": "high",
"status": "completed",
"progress": 100,
"assignedTo": [],
"tags": [
"channel-stats",
"matching-game",
"ichiban",
"calcPaidByPriceDraw"
],
"createdAt": "2026-03-10T17:41:22.201Z",
"startedAt": null,
"completedAt": "2026-03-10T17:42:34.567Z",
"result": {
"reason": "Extended calcPaidByPriceDraw with three-way classification: lottery (ActivityID), matching game (IssueID→activity_issues→activities), ichiban (PkgID→game_pass_packages)"
}
},
"task-1773164482206-mhmqsb": {
"taskId": "task-1773164482206-mhmqsb",
"type": "feature",
"description": "Build verification: run make build-mac to ensure compilation passes after changes",
"priority": "normal",
"status": "completed",
"progress": 100,
"assignedTo": [],
"tags": [
"build",
"verification"
],
"createdAt": "2026-03-10T17:41:22.206Z",
"startedAt": null,
"completedAt": "2026-03-10T17:43:27.419Z",
"result": {
"reason": "Build passed successfully on macOS"
}
},
"task-1773166041411-fmshox": {
"taskId": "task-1773166041411-fmshox",
"type": "feature",
"description": "Extend StatsOverview and StatsDailyItem structs with cost_cents, profit_cents, total_cost, total_profit fields",
"priority": "high",
"status": "completed",
"progress": 100,
"assignedTo": [],
"tags": [
"channel-stats",
"profit-loss",
"structs"
],
"createdAt": "2026-03-10T18:07:21.411Z",
"startedAt": null,
"completedAt": "2026-03-10T18:07:47.297Z",
"result": {
"reason": "Extended StatsOverview with TotalCostCents/TotalProfitCents/TotalCost/TotalProfit and StatsDailyItem with CostCents/ProfitCents"
}
},
"task-1773166041417-di6rsd": {
"taskId": "task-1773166041417-di6rsd",
"type": "feature",
"description": "Implement calcCostByInventory helper function: query user_inventory with item card multiplier, grouped by date",
"priority": "high",
"status": "completed",
"progress": 100,
"assignedTo": [],
"tags": [
"channel-stats",
"profit-loss",
"cost-calculation"
],
"createdAt": "2026-03-10T18:07:21.417Z",
"startedAt": null,
"completedAt": "2026-03-10T18:08:23.196Z",
"result": {
"reason": "Implemented calcCostByInventory with 6-table JOIN chain, item card multiplier, COALESCE fallback, and optional date range"
}
},
"task-1773166041422-efwp8w": {
"taskId": "task-1773166041422-efwp8w",
"type": "feature",
"description": "Integrate calcCostByInventory into GetStats: Overview all-time cost + daily trend cost/profit",
"priority": "high",
"status": "completed",
"progress": 100,
"assignedTo": [],
"tags": [
"channel-stats",
"profit-loss",
"integration"
],
"createdAt": "2026-03-10T18:07:21.422Z",
"startedAt": null,
"completedAt": "2026-03-10T18:09:08.231Z",
"result": {
"reason": "Integrated calcCostByInventory into GetStats: Overview all-time cost/profit + daily trend cost/profit"
}
},
"task-1773166041428-fwp50t": {
"taskId": "task-1773166041428-fwp50t",
"type": "feature",
"description": "Build verification and integration test against dev_game database",
"priority": "normal",
"status": "completed",
"progress": 100,
"assignedTo": [],
"tags": [
"build",
"verification"
],
"createdAt": "2026-03-10T18:07:21.428Z",
"startedAt": null,
"completedAt": "2026-03-10T18:10:06.759Z",
"result": {
"reason": "Build passed. Integration test shows: 754 inventory records, 2 with double card (双倍快乐水 ×2.0), cost=5100.50元, revenue(actual_amount)=545.00元"
}
}
},
"version": "3.0.0"
}