宇恒一号官网
This commit is contained in:
50
server/handlers/official_site.go
Normal file
50
server/handlers/official_site.go
Normal file
@@ -0,0 +1,50 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"go.mongodb.org/mongo-driver/v2/bson"
|
||||
"go.mongodb.org/mongo-driver/v2/mongo/options"
|
||||
|
||||
"yh_web/server/config"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// GetOfficialSite 获取官网站点 ID
|
||||
func GetOfficialSite(c *gin.Context) {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
siteID := getOfficialSiteID(ctx)
|
||||
c.JSON(http.StatusOK, gin.H{"site_id": siteID})
|
||||
}
|
||||
|
||||
// SetOfficialSiteInput 设置官网站点
|
||||
type SetOfficialSiteInput struct {
|
||||
SiteID string `json:"site_id" binding:"required"`
|
||||
}
|
||||
|
||||
// SetOfficialSite 设置官网站点
|
||||
func SetOfficialSite(c *gin.Context) {
|
||||
var input SetOfficialSiteInput
|
||||
if err := c.ShouldBindJSON(&input); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": "请提供 site_id"})
|
||||
return
|
||||
}
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
coll := config.GetDB(config.DBName).Collection("system_config")
|
||||
doc := officialSiteDoc{ID: officialSiteConfigID, SiteID: input.SiteID}
|
||||
opts := options.UpdateOne().SetUpsert(true)
|
||||
_, err := coll.UpdateOne(ctx, bson.M{"_id": officialSiteConfigID}, bson.M{"$set": doc}, opts)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{"message": "已设为官网站点", "site_id": input.SiteID})
|
||||
}
|
||||
Reference in New Issue
Block a user