Files
2026-10-07 13:46:32 +08:00

125 lines
2.8 KiB
Go

package controllers
import (
"strconv"
"strings"
"server/models"
beego "github.com/beego/beego/v2/server/web"
)
// PlatformUpgradeNoticeController 平台端「平台更新公告」接口。
// 数据同源于 models.PlatformUpgradeNotice,但作为平台端独立接口,
// 不与移动端 /api、官网 /index 复用同一 handler。
type PlatformUpgradeNoticeController struct {
beego.Controller
}
// List GET /platform/upgrade/list 获取平台更新列表
func (c *PlatformUpgradeNoticeController) 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()
}
// Detail GET /platform/upgrade/detail?id={id} 获取单条更新详情
func (c *PlatformUpgradeNoticeController) 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()
}