263 lines
6.1 KiB
Go
263 lines
6.1 KiB
Go
package controller
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/gin-gonic/gin"
|
|
"strconv"
|
|
"time"
|
|
"vote-admin-video-api/api/dao"
|
|
"vote-admin-video-api/api/dto"
|
|
"vote-admin-video-api/api/requests"
|
|
"vote-admin-video-api/api/responses"
|
|
"vote-admin-video-api/global"
|
|
"vote-admin-video-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,
|
|
OpenId: v.User.OpenId,
|
|
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,
|
|
OpenId: v.User.OpenId,
|
|
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)
|
|
}
|