更改统计

This commit is contained in:
扫地僧 2026-05-05 18:31:29 +08:00
parent 824199c87c
commit 2a60d34711
3 changed files with 66 additions and 0 deletions

View File

@ -188,3 +188,68 @@ func int64SliceToInt(in []int64) []int {
} }
return out return out
} }
func countPoolInventory(mi interface{}, soldOnly bool) (int64, error) {
qs := models.Orm.QueryTable(mi).Filter("delete_time__isnull", true)
if soldOnly {
qs = qs.Filter("is_extracted__in", 1, 2)
}
n, err := qs.Count()
return n, err
}
// AccountPoolInventoryTotals GET /platform/home/accountPoolInventoryTotals
// 各号池账号总数未删、已售卖is_extracted 为 1 或 2
func (c *PlatformHomeController) AccountPoolInventoryTotals() {
if _, err := requirePlatformAuth(&c.Controller); err != nil {
poolJSONErr(&c.Controller, 401, 401, err.Error())
return
}
type invModule struct {
Key string `json:"key"`
Label string `json:"label"`
Total int64 `json:"total"`
Sold int64 `json:"sold"`
}
modules := []invModule{
{Key: "cursor", Label: "Cursor"},
{Key: "krio", Label: "Kiro"},
{Key: "windsurf", Label: "Windsurf"},
}
modelsList := []interface{}{
new(models.PlatformAccountPoolCursor),
new(models.PlatformAccountPoolKiro),
new(models.PlatformAccountPoolWindsurf),
}
var grandTotal, grandSold int64
for i := range modules {
tot, err := countPoolInventory(modelsList[i], false)
if err != nil {
poolJSONErr(&c.Controller, 500, 500, "统计失败: "+err.Error())
return
}
sd, err := countPoolInventory(modelsList[i], true)
if err != nil {
poolJSONErr(&c.Controller, 500, 500, "统计失败: "+err.Error())
return
}
modules[i].Total = tot
modules[i].Sold = sd
grandTotal += tot
grandSold += sd
}
c.Data["json"] = map[string]interface{}{
"code": 200,
"msg": "success",
"data": map[string]interface{}{
"modules": modules,
"grandTotal": grandTotal,
"grandSold": grandSold,
},
}
_ = c.ServeJSON()
}

View File

@ -160,6 +160,7 @@ func Register() {
// 首页统计 // 首页统计
beego.Router("/platform/home/accountPoolDailyExtract", &controllers.PlatformHomeController{}, "get:AccountPoolDailyExtract") beego.Router("/platform/home/accountPoolDailyExtract", &controllers.PlatformHomeController{}, "get:AccountPoolDailyExtract")
beego.Router("/platform/home/accountPoolInventoryTotals", &controllers.PlatformHomeController{}, "get:AccountPoolInventoryTotals")
// 账号池管理cursor/windsurf/krio // 账号池管理cursor/windsurf/krio
beego.Router("/platform/accountPool/cursor/list", &controllers.PlatformAccountPoolCursorController{}, "get:List") beego.Router("/platform/accountPool/cursor/list", &controllers.PlatformAccountPoolCursorController{}, "get:List")

Binary file not shown.