mirror of
https://github.com/ProudMuBai/GoFilm.git
synced 2026-02-04 06:54:41 +08:00
202 lines
5.5 KiB
Go
202 lines
5.5 KiB
Go
package controller
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/gin-gonic/gin"
|
|
"server/logic"
|
|
"server/model/system"
|
|
"server/plugin/spider"
|
|
"strconv"
|
|
"time"
|
|
)
|
|
|
|
// FilmSearchPage 获取影视分页数据
|
|
func FilmSearchPage(c *gin.Context) {
|
|
var s = system.SearchVo{Paging: &system.Page{}}
|
|
var err error
|
|
// 检索参数
|
|
s.Name = c.DefaultQuery("name", "")
|
|
s.Pid, err = strconv.ParseInt(c.DefaultQuery("pid", "0"), 10, 64)
|
|
if err != nil {
|
|
system.Failed("影片分页数据获取失败, 请求参数异常", c)
|
|
return
|
|
}
|
|
s.Cid, err = strconv.ParseInt(c.DefaultQuery("cid", "0"), 10, 64)
|
|
if err != nil {
|
|
system.Failed("影片分页数据获取失败, 请求参数异常", c)
|
|
return
|
|
}
|
|
s.Plot = c.DefaultQuery("plot", "")
|
|
s.Area = c.DefaultQuery("area", "")
|
|
s.Language = c.DefaultQuery("language", "")
|
|
year := c.DefaultQuery("year", "")
|
|
if year == "" {
|
|
s.Year = 0
|
|
} else {
|
|
s.Year, err = strconv.ParseInt(year, 10, 64)
|
|
if err != nil {
|
|
system.Failed("影片分页数据获取失败, 请求参数异常", c)
|
|
return
|
|
}
|
|
}
|
|
|
|
s.Remarks = c.DefaultQuery("remarks", "")
|
|
// 处理时间参数
|
|
begin := c.DefaultQuery("beginTime", "")
|
|
if begin == "" {
|
|
s.BeginTime = 0
|
|
} else {
|
|
beginTime, e := time.ParseInLocation(time.DateTime, begin, time.Local)
|
|
if e != nil {
|
|
system.Failed("影片分页数据获取失败, 请求参数异常", c)
|
|
return
|
|
}
|
|
s.BeginTime = beginTime.Unix()
|
|
}
|
|
end := c.DefaultQuery("endTime", "")
|
|
if end == "" {
|
|
s.EndTime = 0
|
|
} else {
|
|
endTime, e := time.ParseInLocation(time.DateTime, end, time.Local)
|
|
if e != nil {
|
|
system.Failed("影片分页数据获取失败, 请求参数异常", c)
|
|
return
|
|
}
|
|
s.EndTime = endTime.Unix()
|
|
}
|
|
|
|
// 分页参数
|
|
s.Paging.Current, err = strconv.Atoi(c.DefaultQuery("current", "1"))
|
|
s.Paging.PageSize, err = strconv.Atoi(c.DefaultQuery("pageSize", "10"))
|
|
// 如果分页数据超出指定范围则设置为默认值
|
|
if s.Paging.PageSize <= 0 || s.Paging.PageSize > 500 {
|
|
s.Paging.PageSize = 10
|
|
}
|
|
if err != nil {
|
|
system.Failed("影片分页数据获取失败, 请求参数异常", c)
|
|
return
|
|
}
|
|
// 提供检索tag options
|
|
options := logic.FL.GetSearchOptions()
|
|
// 检索条件
|
|
sl := logic.FL.GetFilmPage(s)
|
|
system.Success(gin.H{
|
|
"params": s,
|
|
"list": sl,
|
|
"options": options,
|
|
}, "影片分页信息获取成功", c)
|
|
}
|
|
|
|
// FilmAdd 手动添加影片
|
|
func FilmAdd(c *gin.Context) {
|
|
// 获取请求参数
|
|
var fd = system.FilmDetailVo{}
|
|
if err := c.ShouldBindJSON(&fd); err != nil {
|
|
system.Failed("影片添加失败, 影片参数提交异常", c)
|
|
return
|
|
}
|
|
|
|
// 如果绑定成功则执行影片信息处理保存逻辑
|
|
if err := logic.FL.SaveFilmDetail(fd); err != nil {
|
|
system.Failed(fmt.Sprint("影片添加失败, 影片信息保存错误: ", err.Error()), c)
|
|
return
|
|
}
|
|
system.SuccessOnlyMsg("影片信息添加成功", c)
|
|
}
|
|
|
|
// FilmDelete 删除影片检索信息, 逻辑删除
|
|
func FilmDelete(c *gin.Context) {
|
|
// 获取影片ID
|
|
idStr := c.DefaultQuery("id", "")
|
|
if idStr == "" {
|
|
system.Failed("删除失败,缺少ID参数", c)
|
|
return
|
|
}
|
|
id, err := strconv.ParseInt(idStr, 10, 64)
|
|
if err != nil {
|
|
system.Failed("删除失败,参数类型异常", c)
|
|
return
|
|
}
|
|
// 通过ID删除对应影片检索信息
|
|
if err = logic.FL.DelFilm(id); err != nil {
|
|
system.Failed(fmt.Sprintln("删除失败: ", err.Error()), c)
|
|
return
|
|
}
|
|
system.SuccessOnlyMsg("影片删除成功", c)
|
|
}
|
|
|
|
//----------------------------------------------------影片分类处理----------------------------------------------------
|
|
|
|
// FilmClassTree 影片分类树数据
|
|
func FilmClassTree(c *gin.Context) {
|
|
// 获取影片分类树信息
|
|
tree := logic.FL.GetFilmClassTree()
|
|
system.Success(tree, "影片分类信息获取成功", c)
|
|
return
|
|
}
|
|
|
|
// FindFilmClass 获取指定ID对应的影片分类信息
|
|
func FindFilmClass(c *gin.Context) {
|
|
idStr := c.DefaultQuery("id", "")
|
|
if idStr == "" {
|
|
system.Failed("影片分类信息获取失败, 分类Id不能为空", c)
|
|
return
|
|
}
|
|
// 转化id类型为int
|
|
id, err := strconv.ParseInt(idStr, 10, 64)
|
|
if err != nil {
|
|
system.Failed("影片分类信息获取失败, 参数分类Id格式异常", c)
|
|
return
|
|
}
|
|
// 通过Id返回对应的分类信息
|
|
class := logic.FL.GetFilmClassById(id)
|
|
if class == nil {
|
|
system.Failed("影片分类信息获取失败, 分类信息不存在", c)
|
|
return
|
|
}
|
|
system.Success(class, "分类信息查找成功", c)
|
|
}
|
|
|
|
// UpdateFilmClass 更新指定分类的影片数据
|
|
func UpdateFilmClass(c *gin.Context) {
|
|
// 获取修改后的分类信息
|
|
var class = system.CategoryTree{}
|
|
if err := c.ShouldBindJSON(&class); err != nil {
|
|
system.Failed("更新失败, 请求参数异常", c)
|
|
return
|
|
}
|
|
if class.Id == 0 {
|
|
system.Failed("更新失败, 分类Id缺失", c)
|
|
return
|
|
}
|
|
// 修改分类信息
|
|
if err := logic.FL.UpdateClass(class); err != nil {
|
|
system.Failed(err.Error(), c)
|
|
return
|
|
}
|
|
// 更新成功后删除首页缓存
|
|
spider.ClearCache()
|
|
system.SuccessOnlyMsg("影片分类信息更新成功", c)
|
|
}
|
|
|
|
// DelFilmClass 删除指定ID对应的影片分类
|
|
func DelFilmClass(c *gin.Context) {
|
|
idStr := c.DefaultQuery("id", "")
|
|
if idStr == "" {
|
|
system.Failed("影片分类信息获取失败, 分类Id不能为空", c)
|
|
return
|
|
}
|
|
// 转化id类型为int
|
|
id, err := strconv.ParseInt(idStr, 10, 64)
|
|
if err != nil {
|
|
system.Failed("影片分类信息获取失败, 参数分类Id格式异常", c)
|
|
return
|
|
}
|
|
// 通过ID删除对应分类信息
|
|
if err = logic.FL.DelClass(id); err != nil {
|
|
system.Failed(err.Error(), c)
|
|
return
|
|
}
|
|
system.SuccessOnlyMsg("当前分类已删除成功", c)
|
|
}
|