package controllers import ( "strconv" "strings" "server/models" beego "github.com/beego/beego/v2/server/web" ) // ApiPlatformUpgradeController 平台更新内容接口 type ApiPlatformUpgradeController struct { beego.Controller } // List GET /api/platform/upgrade/list 获取平台更新列表(公开接口) func (c *ApiPlatformUpgradeController) List() { // 可选参数:limit - 返回数量限制,默认 10 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() } // Detail GET /api/platform/upgrade/detail?id={id} 获取单条更新详情 func (c *ApiPlatformUpgradeController) Detail() { idStr := strings.TrimSpace(c.GetString("id")) if idStr == "" { c.Data["json"] = map[string]interface{}{ "code": 400, "msg": "缺少参数 id", } _ = c.ServeJSON() return } var id uint64 var parseErr error id, parseErr = strconv.ParseUint(idStr, 10, 64) if parseErr != nil { c.Data["json"] = map[string]interface{}{ "code": 400, "msg": "参数错误", } _ = c.ServeJSON() return } var row models.PlatformUpgradeNotice var queryErr error queryErr = models.Orm.QueryTable(new(models.PlatformUpgradeNotice)). Filter("id", id). Filter("status", 1). Filter("delete_time__isnull", true). One(&row) if queryErr != nil { c.Data["json"] = map[string]interface{}{ "code": 404, "msg": "更新内容不存在", } _ = c.ServeJSON() return } data := map[string]interface{}{ "id": row.ID, "tenant_id": row.TenantID, "update_date": row.UpdateDate, "title": row.Title, "content": row.Content, "sort": row.Sort, "create_time": row.CreateTime.Format("2006-01-02 15:04:05"), } c.Data["json"] = map[string]interface{}{ "code": 200, "msg": "success", "data": data, } _ = c.ServeJSON() }