package controller import ( "fmt" "github.com/gin-gonic/gin" "strconv" "time" "vote-admin-api/api/dao" "vote-admin-api/api/dto" "vote-admin-api/api/requests" "vote-admin-api/api/responses" "vote-admin-api/global" "vote-admin-api/utils" ) type UserVoteDay struct{} // GetUserArticleVotePage 用户投票记录列表-图文-分页 func (r *UserVoteDay) GetUserArticleVotePage(c *gin.Context) { userVoteDayRequest := requests.UserVoteDayRequest{} req := userVoteDayRequest.GetArticleUserVoteDayPage if err := c.ShouldBind(&req); err != nil { responses.FailWithMessage(err.Error(), c) return } // 参数验证 if err := global.Validate.Struct(req); err != nil { responses.FailWithMessage(utils.Translate(err), c) return } if req.Page == 0 { req.Page = 1 } if req.PageSize == 0 { req.PageSize = 20 } userId, err := strconv.ParseInt(req.UserId, 10, 64) if err != nil { responses.Fail(c) return } var total int64 articleVoteDayDao := dao.ArticleVoteDayDao{} articleVoteDay, total, err := articleVoteDayDao.GetArticleVoteDayByUserIdPageSearch(userId, req.Page, req.PageSize) if err != nil { responses.FailWithMessage(err.Error(), c) return } // 处理返回值 g := make([]*dto.UserVoteDto, len(articleVoteDay)) for i, v := range articleVoteDay { createdAt := time.Time(v.CreatedAt).Format("2006-01-02 15:04:05") response := &dto.UserVoteDto{ Id: fmt.Sprintf("%d", v.ArticleId), Title: v.Article.ArticleTitle, VotedAt: createdAt, } // 将转换后的结构体添加到新切片中 g[i] = response } result := make(map[string]interface{}) result["page"] = req.Page result["page_size"] = req.PageSize result["total"] = total result["data"] = g responses.OkWithData(result, c) } // GetUserVideoVotePage 用户投票记录列表-视频-分页 func (r *UserVoteDay) GetUserVideoVotePage(c *gin.Context) { userVoteDayRequest := requests.UserVoteDayRequest{} req := userVoteDayRequest.GetVideoUserVoteDayPage if err := c.ShouldBind(&req); err != nil { responses.FailWithMessage(err.Error(), c) return } // 参数验证 if err := global.Validate.Struct(req); err != nil { responses.FailWithMessage(utils.Translate(err), c) return } if req.Page == 0 { req.Page = 1 } if req.PageSize == 0 { req.PageSize = 20 } userId, err := strconv.ParseInt(req.UserId, 10, 64) if err != nil { responses.Fail(c) return } var total int64 videoVoteDayDao := dao.VideoVoteDayDao{} videoVoteDay, total, err := videoVoteDayDao.GetVideoVoteDayByUserIdPageSearch(userId, req.Page, req.PageSize) if err != nil { responses.FailWithMessage(err.Error(), c) return } // 处理返回值 g := make([]*dto.UserVoteDto, len(videoVoteDay)) for i, v := range videoVoteDay { createdAt := time.Time(v.CreatedAt).Format("2006-01-02 15:04:05") response := &dto.UserVoteDto{ Id: fmt.Sprintf("%d", v.VideoId), Title: v.Video.VideoTitle, VotedAt: createdAt, } // 将转换后的结构体添加到新切片中 g[i] = response } result := make(map[string]interface{}) result["page"] = req.Page result["page_size"] = req.PageSize result["total"] = total result["data"] = g responses.OkWithData(result, c) } // GetArticleVotePage 投票记录列表-图文-分页 func (r *UserVoteDay) GetArticleVotePage(c *gin.Context) { userVoteDayRequest := requests.UserVoteDayRequest{} req := userVoteDayRequest.GetArticleVoteDayPage if err := c.ShouldBind(&req); err != nil { responses.FailWithMessage(err.Error(), c) return } // 参数验证 if err := global.Validate.Struct(req); err != nil { responses.FailWithMessage(utils.Translate(err), c) return } if req.Page == 0 { req.Page = 1 } if req.PageSize == 0 { req.PageSize = 20 } articleId, err := strconv.ParseInt(req.ArticleId, 10, 64) if err != nil { responses.Fail(c) return } var total int64 articleVoteDayDao := dao.ArticleVoteDayDao{} articleVoteDay, total, err := articleVoteDayDao.GetArticleVoteDayByArticleIdPageSearch(articleId, req.Page, req.PageSize) if err != nil { responses.FailWithMessage(err.Error(), c) return } // 处理返回值 g := make([]*dto.UserVoteDto, len(articleVoteDay)) for i, v := range articleVoteDay { createdAt := time.Time(v.CreatedAt).Format("2006-01-02 15:04:05") response := &dto.UserVoteDto{ Id: fmt.Sprintf("%d", v.ArticleId), AppIden: v.User.AppIden, VotedAt: createdAt, } // 将转换后的结构体添加到新切片中 g[i] = response } result := make(map[string]interface{}) result["page"] = req.Page result["page_size"] = req.PageSize result["total"] = total result["data"] = g responses.OkWithData(result, c) } // GetVideoVotePage 投票记录列表-视频-分页 func (r *UserVoteDay) GetVideoVotePage(c *gin.Context) { userVoteDayRequest := requests.UserVoteDayRequest{} req := userVoteDayRequest.GetVideoVoteDayPage if err := c.ShouldBind(&req); err != nil { responses.FailWithMessage(err.Error(), c) return } // 参数验证 if err := global.Validate.Struct(req); err != nil { responses.FailWithMessage(utils.Translate(err), c) return } if req.Page == 0 { req.Page = 1 } if req.PageSize == 0 { req.PageSize = 20 } videoId, err := strconv.ParseInt(req.VideoId, 10, 64) if err != nil { responses.Fail(c) return } var total int64 videoVoteDayDao := dao.VideoVoteDayDao{} videoVoteDay, total, err := videoVoteDayDao.GetVideoVoteDayByVideoIdPageSearch(videoId, req.Page, req.PageSize) if err != nil { responses.FailWithMessage(err.Error(), c) return } // 处理返回值 g := make([]*dto.UserVoteDto, len(videoVoteDay)) for i, v := range videoVoteDay { createdAt := time.Time(v.CreatedAt).Format("2006-01-02 15:04:05") response := &dto.UserVoteDto{ Id: fmt.Sprintf("%d", v.VideoId), AppIden: v.User.AppIden, VotedAt: createdAt, } // 将转换后的结构体添加到新切片中 g[i] = response } result := make(map[string]interface{}) result["page"] = req.Page result["page_size"] = req.PageSize result["total"] = total result["data"] = g responses.OkWithData(result, c) }