fix: 完成 Gitea 目录改组收尾(import、构建与 LICENSE)
同步包路径与路由,去掉 SPA 构建步骤,对齐 Gitea 式 LICENSE,并更新规格/规则与占位 SSR。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
package service
|
||||
package services
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"strings"
|
||||
|
||||
"git.iioio.com/freefire/jiang13-forum/model"
|
||||
"git.iioio.com/freefire/jiang13-forum/models"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -32,8 +32,8 @@ type SitePageSummary struct {
|
||||
}
|
||||
|
||||
func (s *SitePageService) ListPublished() ([]SitePageSummary, error) {
|
||||
var rows []model.SitePage
|
||||
err := model.DB.Where("published = ?", true).
|
||||
var rows []models.SitePage
|
||||
err := models.DB.Where("published = ?", true).
|
||||
Order("sort_order ASC, id ASC").
|
||||
Find(&rows).Error
|
||||
if err != nil {
|
||||
@@ -49,22 +49,22 @@ func (s *SitePageService) ListPublished() ([]SitePageSummary, error) {
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (s *SitePageService) ListAll() ([]model.SitePage, error) {
|
||||
var rows []model.SitePage
|
||||
err := model.DB.Order("sort_order ASC, id ASC").Find(&rows).Error
|
||||
func (s *SitePageService) ListAll() ([]models.SitePage, error) {
|
||||
var rows []models.SitePage
|
||||
err := models.DB.Order("sort_order ASC, id ASC").Find(&rows).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return rows, nil
|
||||
}
|
||||
|
||||
func (s *SitePageService) GetBySlug(slug string, allowUnpublished bool) (*model.SitePage, error) {
|
||||
func (s *SitePageService) GetBySlug(slug string, allowUnpublished bool) (*models.SitePage, error) {
|
||||
slug, ok := NormalizePageSlug(slug)
|
||||
if !ok {
|
||||
return nil, ErrSitePageNotFound
|
||||
}
|
||||
var page model.SitePage
|
||||
q := model.DB.Where("slug = ?", slug)
|
||||
var page models.SitePage
|
||||
q := models.DB.Where("slug = ?", slug)
|
||||
if !allowUnpublished {
|
||||
q = q.Where("published = ?", true)
|
||||
}
|
||||
@@ -75,9 +75,9 @@ func (s *SitePageService) GetBySlug(slug string, allowUnpublished bool) (*model.
|
||||
return &page, nil
|
||||
}
|
||||
|
||||
func (s *SitePageService) GetByID(id uint) (*model.SitePage, error) {
|
||||
var page model.SitePage
|
||||
if err := model.DB.First(&page, id).Error; err != nil {
|
||||
func (s *SitePageService) GetByID(id uint) (*models.SitePage, error) {
|
||||
var page models.SitePage
|
||||
if err := models.DB.First(&page, id).Error; err != nil {
|
||||
return nil, ErrSitePageNotFound
|
||||
}
|
||||
page.Content = SanitizePostHTML(UnwrapContentGateTags(page.Content))
|
||||
@@ -94,17 +94,17 @@ type SitePageInput struct {
|
||||
ShowInNav bool `json:"show_in_nav"`
|
||||
}
|
||||
|
||||
func (s *SitePageService) Create(in SitePageInput) (*model.SitePage, error) {
|
||||
func (s *SitePageService) Create(in SitePageInput) (*models.SitePage, error) {
|
||||
page, err := s.normalizeInput(in)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var exists int64
|
||||
model.DB.Model(&model.SitePage{}).Where("slug = ?", page.Slug).Count(&exists)
|
||||
models.DB.Model(&models.SitePage{}).Where("slug = ?", page.Slug).Count(&exists)
|
||||
if exists > 0 {
|
||||
return nil, ErrSitePageSlugUsed
|
||||
}
|
||||
if err := model.DB.Create(page).Error; err != nil {
|
||||
if err := models.DB.Create(page).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return page, nil
|
||||
@@ -120,11 +120,11 @@ func (s *SitePageService) Update(id uint, in SitePageInput) error {
|
||||
return err
|
||||
}
|
||||
var exists int64
|
||||
model.DB.Model(&model.SitePage{}).Where("slug = ? AND id <> ?", next.Slug, id).Count(&exists)
|
||||
models.DB.Model(&models.SitePage{}).Where("slug = ? AND id <> ?", next.Slug, id).Count(&exists)
|
||||
if exists > 0 {
|
||||
return ErrSitePageSlugUsed
|
||||
}
|
||||
return model.DB.Model(page).Updates(map[string]interface{}{
|
||||
return models.DB.Model(page).Updates(map[string]interface{}{
|
||||
"title": next.Title,
|
||||
"slug": next.Slug,
|
||||
"content": next.Content,
|
||||
@@ -136,7 +136,7 @@ func (s *SitePageService) Update(id uint, in SitePageInput) error {
|
||||
}
|
||||
|
||||
func (s *SitePageService) Delete(id uint) error {
|
||||
res := model.DB.Delete(&model.SitePage{}, id)
|
||||
res := models.DB.Delete(&models.SitePage{}, id)
|
||||
if res.Error != nil {
|
||||
return res.Error
|
||||
}
|
||||
@@ -152,20 +152,20 @@ func (s *SitePageService) SetPublished(id uint, published bool) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return model.DB.Model(page).Update("published", published).Error
|
||||
return models.DB.Model(page).Update("published", published).Error
|
||||
}
|
||||
|
||||
func (s *SitePageService) ListSitemap(limit int) ([]model.SitePage, error) {
|
||||
func (s *SitePageService) ListSitemap(limit int) ([]models.SitePage, error) {
|
||||
if limit <= 0 {
|
||||
limit = 500
|
||||
}
|
||||
var rows []model.SitePage
|
||||
err := model.DB.Where("published = ?", true).
|
||||
var rows []models.SitePage
|
||||
err := models.DB.Where("published = ?", true).
|
||||
Order("updated_at DESC").Limit(limit).Find(&rows).Error
|
||||
return rows, err
|
||||
}
|
||||
|
||||
func (s *SitePageService) normalizeInput(in SitePageInput) (*model.SitePage, error) {
|
||||
func (s *SitePageService) normalizeInput(in SitePageInput) (*models.SitePage, error) {
|
||||
title := s.filter.Filter(strings.TrimSpace(in.Title))
|
||||
slug, ok := NormalizePageSlug(in.Slug)
|
||||
if !ok {
|
||||
@@ -179,7 +179,7 @@ func (s *SitePageService) normalizeInput(in SitePageInput) (*model.SitePage, err
|
||||
if content == "" {
|
||||
return nil, errors.New("正文不能为空")
|
||||
}
|
||||
return &model.SitePage{
|
||||
return &models.SitePage{
|
||||
Title: title, Slug: slug, Content: content,
|
||||
Published: in.Published, SortOrder: in.SortOrder,
|
||||
ShowInFooter: in.ShowInFooter, ShowInNav: in.ShowInNav,
|
||||
|
||||
Reference in New Issue
Block a user