更新小程序开发文档,新增2026-03-03的最佳实践记录,优化个人中心类页面的卡片区边距规范,确保一致性与可用性。调整相关页面以反映最新设计稿,提升用户体验与功能一致性。
This commit is contained in:
@@ -84,6 +84,9 @@ func AdminChaptersAction(c *gin.Context) {
|
||||
var body struct {
|
||||
Action string `json:"action"`
|
||||
ID string `json:"id"`
|
||||
ChapterID string `json:"chapterId"` // 前端兼容:section id
|
||||
SectionTitle string `json:"sectionTitle"`
|
||||
Ids []string `json:"ids"` // reorder:新顺序的 section id 列表
|
||||
Price *float64 `json:"price"`
|
||||
IsFree *bool `json:"isFree"`
|
||||
Status *string `json:"status"`
|
||||
@@ -94,26 +97,63 @@ func AdminChaptersAction(c *gin.Context) {
|
||||
c.JSON(http.StatusOK, gin.H{"success": false, "error": "请求体无效"})
|
||||
return
|
||||
}
|
||||
resolveID := func() string {
|
||||
if body.ID != "" {
|
||||
return body.ID
|
||||
}
|
||||
return body.ChapterID
|
||||
}
|
||||
db := database.DB()
|
||||
if body.Action == "updatePrice" && body.ID != "" && body.Price != nil {
|
||||
db.Model(&model.Chapter{}).Where("id = ?", body.ID).Update("price", *body.Price)
|
||||
}
|
||||
if body.Action == "toggleFree" && body.ID != "" && body.IsFree != nil {
|
||||
db.Model(&model.Chapter{}).Where("id = ?", body.ID).Update("is_free", *body.IsFree)
|
||||
}
|
||||
if body.Action == "updateStatus" && body.ID != "" && body.Status != nil {
|
||||
db.Model(&model.Chapter{}).Where("id = ?", body.ID).Update("status", *body.Status)
|
||||
}
|
||||
if body.Action == "updateEdition" && body.ID != "" {
|
||||
updates := make(map[string]interface{})
|
||||
if body.EditionStandard != nil {
|
||||
updates["edition_standard"] = *body.EditionStandard
|
||||
if body.Action == "updatePrice" {
|
||||
id := resolveID()
|
||||
if id != "" && body.Price != nil {
|
||||
db.Model(&model.Chapter{}).Where("id = ?", id).Update("price", *body.Price)
|
||||
}
|
||||
if body.EditionPremium != nil {
|
||||
updates["edition_premium"] = *body.EditionPremium
|
||||
}
|
||||
if body.Action == "toggleFree" {
|
||||
id := resolveID()
|
||||
if id != "" && body.IsFree != nil {
|
||||
db.Model(&model.Chapter{}).Where("id = ?", id).Update("is_free", *body.IsFree)
|
||||
}
|
||||
if len(updates) > 0 {
|
||||
db.Model(&model.Chapter{}).Where("id = ?", body.ID).Updates(updates)
|
||||
}
|
||||
if body.Action == "updateStatus" {
|
||||
id := resolveID()
|
||||
if id != "" && body.Status != nil {
|
||||
db.Model(&model.Chapter{}).Where("id = ?", id).Update("status", *body.Status)
|
||||
}
|
||||
}
|
||||
if body.Action == "rename" {
|
||||
id := resolveID()
|
||||
if id != "" && body.SectionTitle != "" {
|
||||
db.Model(&model.Chapter{}).Where("id = ?", id).Update("section_title", body.SectionTitle)
|
||||
}
|
||||
}
|
||||
if body.Action == "delete" {
|
||||
id := resolveID()
|
||||
if id != "" {
|
||||
db.Where("id = ?", id).Delete(&model.Chapter{})
|
||||
}
|
||||
}
|
||||
if body.Action == "reorder" && len(body.Ids) > 0 {
|
||||
for i, id := range body.Ids {
|
||||
if id != "" {
|
||||
db.Model(&model.Chapter{}).Where("id = ?", id).Update("sort_order", i)
|
||||
}
|
||||
}
|
||||
}
|
||||
if body.Action == "updateEdition" {
|
||||
id := resolveID()
|
||||
if id != "" {
|
||||
updates := make(map[string]interface{})
|
||||
if body.EditionStandard != nil {
|
||||
updates["edition_standard"] = *body.EditionStandard
|
||||
}
|
||||
if body.EditionPremium != nil {
|
||||
updates["edition_premium"] = *body.EditionPremium
|
||||
}
|
||||
if len(updates) > 0 {
|
||||
db.Model(&model.Chapter{}).Where("id = ?", id).Updates(updates)
|
||||
}
|
||||
}
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{"success": true})
|
||||
|
||||
Reference in New Issue
Block a user