126 lines
2.9 KiB
Go
126 lines
2.9 KiB
Go
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()
|
|
}
|