package daytask import ( model "go_server/model/biz_modules/daytask" "go_server/model/common/response" "go_server/service/base" "github.com/gin-gonic/gin" ) // DtMusicGroupService 歌单分组服务 type DtMusicGroupService struct { base.BizCommonService } func (s *DtMusicGroupService) Get(c *gin.Context) { s.SetDbAlias("daytask") base.NewBaseHandler(model.NewDtMusicGroup()).Get(c, s.DB()) } func (s *DtMusicGroupService) Find(c *gin.Context) { s.SetDbAlias("daytask") type request[T any] struct { base.ListRequest[T] Id *int64 `form:"id"` Name *string `form:"name"` Status *int8 `form:"status"` } req := new(request[model.DtMusicGroup]) if err := c.BindQuery(req); err != nil { response.Resp(c, err.Error()) return } db := s.DB() if db == nil { response.Resp(c, "数据库连接失败") return } if req.Id != nil && *req.Id != 0 { db = db.Where("id", req.Id) } if req.Name != nil && *req.Name != "" { db = db.Where("name LIKE ?", "%"+*req.Name+"%") } if req.Status != nil { db = db.Where("status", req.Status) } db = db.Order("sort ASC, id ASC") colInfo := s.GetColumnCommentFromStruct(model.DtMusicGroup{}) resp, err := base.NewQueryBaseHandler(model.NewDtMusicGroup()).List(db, req) if err != nil { response.Resp(c, err.Error()) return } response.Resp(c, map[string]interface{}{ "cols": colInfo, "list": resp.List, "paging": resp.Paging, }) } func (s *DtMusicGroupService) Create(c *gin.Context) { s.SetDbAlias("daytask") base.NewBaseHandler(model.NewDtMusicGroup()).Create(c, s.DB()) } func (s *DtMusicGroupService) Update(c *gin.Context) { s.SetDbAlias("daytask") base.NewBaseHandler(model.NewDtMusicGroup()).UpdateOne(c, s.DB()) } func (s *DtMusicGroupService) Delete(c *gin.Context) { s.SetDbAlias("daytask") db := s.DB() if db == nil { response.Resp(c, "数据库连接失败") return } var req base.BaseRequest if err := c.ShouldBindJSON(&req); err != nil { response.Resp(c, err.Error()) return } if req.Id == 0 { response.Resp(c, "id is zero") return } var count int64 db.Model(&model.DtMusic{}).Where("group_id = ?", req.Id).Count(&count) if count > 0 { response.Resp(c, "该歌单下还有歌曲,请先删除歌曲") return } var group model.DtMusicGroup if err := db.First(&group, req.Id).Error; err != nil { response.Resp(c, err.Error()) return } if err := db.Delete(&group).Error; err != nil { response.Resp(c, err.Error()) return } response.Resp(c, "删除成功") } // DtMusicService 歌曲服务 type DtMusicService struct { base.BizCommonService } func (s *DtMusicService) Get(c *gin.Context) { s.SetDbAlias("daytask") base.NewBaseHandler(model.NewDtMusic()).Get(c, s.DB()) } func (s *DtMusicService) Find(c *gin.Context) { s.SetDbAlias("daytask") type request[T any] struct { base.ListRequest[T] Id *int64 `form:"id"` GroupId *int64 `form:"groupId"` Title *string `form:"title"` Artist *string `form:"artist"` Status *int8 `form:"status"` } req := new(request[model.DtMusic]) if err := c.BindQuery(req); err != nil { response.Resp(c, err.Error()) return } db := s.DB() if db == nil { response.Resp(c, "数据库连接失败") return } if req.Id != nil && *req.Id != 0 { db = db.Where("id", req.Id) } if req.GroupId != nil && *req.GroupId != 0 { db = db.Where("group_id", req.GroupId) } if req.Title != nil && *req.Title != "" { db = db.Where("title LIKE ?", "%"+*req.Title+"%") } if req.Artist != nil && *req.Artist != "" { db = db.Where("artist LIKE ?", "%"+*req.Artist+"%") } if req.Status != nil { db = db.Where("status", req.Status) } db = db.Order("sort ASC, id ASC") colInfo := s.GetColumnCommentFromStruct(model.DtMusic{}) resp, err := base.NewQueryBaseHandler(model.NewDtMusic()).List(db, req) if err != nil { response.Resp(c, err.Error()) return } response.Resp(c, map[string]interface{}{ "cols": colInfo, "list": resp.List, "paging": resp.Paging, }) } func (s *DtMusicService) Create(c *gin.Context) { s.SetDbAlias("daytask") base.NewBaseHandler(model.NewDtMusic()).Create(c, s.DB()) } func (s *DtMusicService) Update(c *gin.Context) { s.SetDbAlias("daytask") base.NewBaseHandler(model.NewDtMusic()).UpdateOne(c, s.DB()) } func (s *DtMusicService) Delete(c *gin.Context) { s.SetDbAlias("daytask") base.NewBaseHandler(model.NewDtMusic()).DeleteOne(c, s.DB()) }