package admin import ( "strconv" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" "nl-video-api/internal/service" "nl-video-api/utility/response" ) var Banner = cAdminBanner{} type cAdminBanner struct{} // Create 创建轮播图 func (c *cAdminBanner) Create(r *ghttp.Request) { service.Banner.AdminCreate(r) } // Update 更新轮播图 func (c *cAdminBanner) Update(r *ghttp.Request) { var req *service.AdminBannerUpdateReq if err := r.Parse(&req); err != nil { response.Error(r, 1001, "参数解析失败: "+err.Error()) return } // 从URL路径获取ID if req.Id == 0 { idStr := r.Get("id").String() if id, err := strconv.Atoi(idStr); err == nil { req.Id = uint(id) } } err := service.Banner.AdminUpdate(r.Context(), req) if err != nil { response.Error(r, 1002, err.Error()) return } response.Success(r, g.Map{ "message": "更新成功", }) } // Delete 删除轮播图 func (c *cAdminBanner) Delete(r *ghttp.Request) { idStr := r.Get("id").String() id, err := strconv.Atoi(idStr) if err != nil || id <= 0 { response.Error(r, 1001, "轮播图ID无效") return } req := &service.AdminBannerDeleteReq{Id: uint(id)} err = service.Banner.AdminDelete(r.Context(), req) if err != nil { response.Error(r, 1002, err.Error()) return } response.Success(r, g.Map{ "message": "删除成功", }) } // GetDetail 获取轮播图详情 func (c *cAdminBanner) GetDetail(r *ghttp.Request) { idStr := r.Get("id").String() id, err := strconv.Atoi(idStr) if err != nil || id <= 0 { response.Error(r, 1001, "轮播图ID无效") return } req := &service.AdminBannerDetailReq{Id: uint(id)} result, err := service.Banner.AdminGetDetail(r.Context(), req) if err != nil { response.Error(r, 1002, err.Error()) return } response.Success(r, result) } // GetList 获取轮播图列表 func (c *cAdminBanner) GetList(r *ghttp.Request) { var req *service.AdminBannerListReq if err := r.Parse(&req); err != nil { response.Error(r, 1001, "参数解析失败: "+err.Error()) return } // 设置默认分页参数 if req.Page <= 0 { req.Page = 1 } if req.Size <= 0 { req.Size = 10 } result, err := service.Banner.AdminGetList(r.Context(), req) if err != nil { response.Error(r, 1002, err.Error()) return } response.Success(r, result) } // UpdateStatus 更新轮播图状态 func (c *cAdminBanner) UpdateStatus(r *ghttp.Request) { var req *service.AdminBannerUpdateStatusReq if err := r.Parse(&req); err != nil { response.Error(r, 1001, "参数解析失败: "+err.Error()) return } // 从URL路径获取ID if req.Id == 0 { idStr := r.Get("id").String() if id, err := strconv.Atoi(idStr); err == nil { req.Id = uint(id) } } err := service.Banner.AdminUpdateStatus(r.Context(), req) if err != nil { response.Error(r, 1002, err.Error()) return } response.Success(r, g.Map{ "message": "状态更新成功", }) } // BatchDelete 批量删除轮播图 func (c *cAdminBanner) BatchDelete(r *ghttp.Request) { var req *service.AdminBannerBatchDeleteReq if err := r.Parse(&req); err != nil { response.Error(r, 1001, "参数解析失败: "+err.Error()) return } if len(req.Ids) == 0 { response.Error(r, 1001, "轮播图ID列表不能为空") return } err := service.Banner.AdminBatchDelete(r.Context(), req) if err != nil { response.Error(r, 1002, err.Error()) return } response.Success(r, g.Map{ "message": "批量删除成功", }) }