mirror of
https://github.com/ProudMuBai/GoFilm.git
synced 2026-02-12 21:14:41 +08:00
170 lines
4.7 KiB
Go
170 lines
4.7 KiB
Go
package controller
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"github.com/gin-gonic/gin"
|
|
"server/logic"
|
|
"server/model/system"
|
|
"server/plugin/SystemInit"
|
|
"server/plugin/common/util"
|
|
)
|
|
|
|
func ManageIndex(c *gin.Context) {
|
|
system.SuccessOnlyMsg("后台管理中心", c)
|
|
return
|
|
}
|
|
|
|
// ------------------------------------------------------ 站点基本配置 ------------------------------------------------------
|
|
|
|
// SiteBasicConfig 网站基本配置
|
|
func SiteBasicConfig(c *gin.Context) {
|
|
system.Success(logic.ML.GetSiteBasicConfig(), "网站基本信息获取成功", c)
|
|
}
|
|
|
|
// UpdateSiteBasic 更新网站配置信息
|
|
func UpdateSiteBasic(c *gin.Context) {
|
|
// 获取请求参数 && 校验关键配置项
|
|
bc := system.BasicConfig{}
|
|
if err := c.ShouldBindJSON(&bc); err == nil {
|
|
// 对参数进行校验
|
|
if !util.ValidDomain(bc.Domain) && !util.ValidIPHost(bc.Domain) {
|
|
system.Failed("域名格式校验失败", c)
|
|
return
|
|
}
|
|
if len(bc.SiteName) <= 0 {
|
|
system.Failed("网站名称不能为空", c)
|
|
return
|
|
}
|
|
} else {
|
|
system.Failed(fmt.Sprint("请求参数异常: ", err), c)
|
|
return
|
|
}
|
|
|
|
// 保存更新后的配置信息
|
|
if err := logic.ML.UpdateSiteBasic(bc); err != nil {
|
|
system.Failed(fmt.Sprint("网站配置更新失败: ", err), c)
|
|
return
|
|
}
|
|
system.SuccessOnlyMsg("更新成功", c)
|
|
}
|
|
|
|
// ResetSiteBasic 重置网站配置信息为初始化状态
|
|
func ResetSiteBasic(c *gin.Context) {
|
|
// 执行配置初始化方法直接覆盖当前基本配置信息
|
|
SystemInit.BasicConfigInit()
|
|
system.SuccessOnlyMsg("配置信息重置成功", c)
|
|
}
|
|
|
|
// ------------------------------------------------------ 轮播数据配置 ------------------------------------------------------
|
|
|
|
// BannerList 获取轮播图数据
|
|
func BannerList(c *gin.Context) {
|
|
bl := logic.ML.GetBanners()
|
|
system.Success(bl, "配置信息重置成功", c)
|
|
}
|
|
|
|
// BannerFind 返回ID对应的横幅信息
|
|
func BannerFind(c *gin.Context) {
|
|
id := c.Query("id")
|
|
if id == "" {
|
|
system.Failed("Banner信息获取失败, ID信息异常", c)
|
|
return
|
|
}
|
|
bl := logic.ML.GetBanners()
|
|
for _, b := range bl {
|
|
if b.Id == id {
|
|
system.Success(b, "Banner信息获取成功", c)
|
|
return
|
|
}
|
|
}
|
|
system.Failed("Banner信息获取失败", c)
|
|
}
|
|
|
|
// BannerAdd 添加海报数据
|
|
func BannerAdd(c *gin.Context) {
|
|
var b system.Banner
|
|
if err := c.ShouldBindJSON(&b); err != nil {
|
|
system.Failed("Banner参数提交异常", c)
|
|
return
|
|
}
|
|
// 为新增的banner生成Id
|
|
b.Id = util.GenerateSalt()
|
|
bl := logic.ML.GetBanners()
|
|
if len(bl) > 6 {
|
|
system.Failed("Banners最大阈值为6, 无法添加新的banner信息", c)
|
|
return
|
|
}
|
|
bl = append(bl, b)
|
|
if err := logic.ML.SaveBanners(bl); err != nil {
|
|
system.Failed(fmt.Sprintln("Banners信息添加失败,", err), c)
|
|
return
|
|
}
|
|
system.SuccessOnlyMsg("海报信息添加成功", c)
|
|
}
|
|
|
|
// BannerUpdate 更新海报数据
|
|
func BannerUpdate(c *gin.Context) {
|
|
var banner system.Banner
|
|
if err := c.ShouldBindJSON(&banner); err != nil {
|
|
system.Failed("Banner参数提交异常", c)
|
|
return
|
|
}
|
|
bl := logic.ML.GetBanners()
|
|
for i, b := range bl {
|
|
if b.Id == banner.Id {
|
|
bl[i] = banner
|
|
if err := logic.ML.SaveBanners(bl); err != nil {
|
|
system.Failed("海报信息更新失败", c)
|
|
} else {
|
|
system.SuccessOnlyMsg("海报信息更新成功", c)
|
|
return
|
|
}
|
|
|
|
}
|
|
}
|
|
system.Failed("海报信息更新失败, 未匹配对应Banner信息", c)
|
|
}
|
|
|
|
// BannerDel 删除海报数据
|
|
func BannerDel(c *gin.Context) {
|
|
id := c.Query("id")
|
|
if id == "" {
|
|
system.Failed("Banner信息获取失败, ID信息异常", c)
|
|
return
|
|
}
|
|
bl := logic.ML.GetBanners()
|
|
for i, b := range bl {
|
|
if b.Id == id {
|
|
bl = append(bl[:i], bl[i+1:]...)
|
|
_ = logic.ML.SaveBanners(bl)
|
|
system.SuccessOnlyMsg("海报信息删除成功", c)
|
|
return
|
|
}
|
|
}
|
|
system.Failed("海报信息删除失败", c)
|
|
}
|
|
|
|
// ------------------------------------------------------ 参数校验 ------------------------------------------------------
|
|
func validFilmSource(fs system.FilmSource) error {
|
|
// 资源名称不能为空 且长度不能超过20
|
|
if len(fs.Name) <= 0 || len(fs.Name) > 20 {
|
|
return errors.New("资源名称不能为空且长度不能超过20")
|
|
}
|
|
// Uri 采集链接测试格式
|
|
if !util.ValidURL(fs.Uri) {
|
|
return errors.New("资源链接格式异常, 请输入规范的URL链接")
|
|
}
|
|
// 校验接口类型是否是 JSON || XML
|
|
if fs.ResultModel != system.JsonResult && fs.ResultModel != system.XmlResult {
|
|
return errors.New("接口类型异常, 请提交正确的接口类型")
|
|
}
|
|
// 校验采集类型是否符合规范
|
|
switch fs.CollectType {
|
|
case system.CollectVideo, system.CollectArticle, system.CollectActor, system.CollectRole, system.CollectWebSite:
|
|
return nil
|
|
default:
|
|
return errors.New("资源类型异常, 未知的资源类型")
|
|
}
|
|
}
|