package controllers import ( "strconv" "server/models" beego "github.com/beego/beego/v2/server/web" ) // IndexUpgradeNoticeController 官网端「平台更新公告」公开接口。 // 数据同源于 models.PlatformUpgradeNotice,但作为官网端独立接口, // 不与平台端 /platform、移动端 /api 复用同一 handler。 type IndexUpgradeNoticeController struct { beego.Controller } // List GET /site/upgrade/list 官网首页公开展示的更新公告(仅启用、未删除) func (c *IndexUpgradeNoticeController) List() { limitStr := c.GetString("limit") limit := 10 if limitStr != "" { val, err := strconv.Atoi(limitStr) if err == nil { limit = val } } if limit <= 0 || limit > 50 { limit = 10 } var upgradeList []models.PlatformUpgradeNotice qs := models.Orm.QueryTable(new(models.PlatformUpgradeNotice)). Filter("status", 1). Filter("delete_time__isnull", true) _, err := qs.OrderBy("-sort", "-create_time").Limit(limit).All(&upgradeList) if err != nil { c.Data["json"] = map[string]interface{}{ "code": 500, "msg": "查询失败", } _ = c.ServeJSON() return } data := make([]map[string]interface{}, 0, len(upgradeList)) for _, item := range upgradeList { record := map[string]interface{}{ "id": item.ID, "update_date": item.UpdateDate, "title": item.Title, "content": item.Content, "create_time": item.CreateTime.Format("2006-01-02 15:04:05"), } data = append(data, record) } c.Data["json"] = map[string]interface{}{ "code": 200, "msg": "success", "data": data, } _ = c.ServeJSON() }