This commit is contained in:
wucongxing8150 2024-09-04 16:08:39 +08:00
parent 554e2a7b92
commit 8838b12415
5 changed files with 92 additions and 1 deletions

View File

@ -5,7 +5,10 @@ import (
"strconv"
"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 System struct{}
@ -38,3 +41,72 @@ func (r *System) GetSystemTime(c *gin.Context) {
responses.OkWithData(g, c)
}
// PutSystemTime 修改投票时间
func (b *System) PutSystemTime(c *gin.Context) {
systemRequest := requests.SystemRequest{}
req := systemRequest.PutSystemTime
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
}
id := c.Param("system_time_id")
if id == "" {
responses.FailWithMessage("缺少参数", c)
return
}
// 将 id 转换为 int64 类型
systemTimeId, err := strconv.ParseInt(id, 10, 64)
if err != nil {
responses.Fail(c)
return
}
// 获取数据
systemTimeDao := dao.SystemTimeDao{}
systemTime, err := systemTimeDao.GetSystemTimeById(systemTimeId)
if err != nil {
responses.FailWithMessage("数据异常", c)
return
}
// 修改值
systemTimeData := make(map[string]interface{})
if req.StartTime != systemTime.StartTime {
systemTimeData["start_time"] = req.StartTime
}
if req.EndTime != systemTime.EndTime {
systemTimeData["end_time"] = req.EndTime
}
if len(systemTimeData) > 0 {
// 开始事务
tx := global.Db.Begin()
defer func() {
if r := recover(); r != nil {
tx.Rollback()
}
}()
err = systemTimeDao.EditSystemTimeById(tx, systemTimeId, systemTimeData)
if err != nil {
tx.Rollback()
responses.FailWithMessage("操作失败", c)
return
}
tx.Commit()
}
responses.Ok(c)
}

View File

@ -183,6 +183,7 @@ func (r *UserVoteDay) GetArticleVotePage(c *gin.Context) {
response := &dto.UserVoteDto{
Id: fmt.Sprintf("%d", v.ArticleId),
AppIden: v.User.AppIden,
OpenId: v.User.OpenId,
VotedAt: createdAt,
}
@ -244,6 +245,7 @@ func (r *UserVoteDay) GetVideoVotePage(c *gin.Context) {
response := &dto.UserVoteDto{
Id: fmt.Sprintf("%d", v.VideoId),
AppIden: v.User.AppIden,
OpenId: v.User.OpenId,
VotedAt: createdAt,
}

View File

@ -21,6 +21,7 @@ type UserDto struct {
type UserVoteDto struct {
Id string `json:"id"` // 图文/视频标识
AppIden string `json:"app_iden"` // app唯一标识
OpenId string `json:"open_id"` // open_id
Title string `json:"title"` // 标题
VotedAt string `json:"voted_at"` // 投票时间
}

13
api/requests/System.go Normal file
View File

@ -0,0 +1,13 @@
package requests
import "vote-admin-api/api/model"
type SystemRequest struct {
PutSystemTime // 修改投票时间
}
// PutSystemTime 修改投票时间
type PutSystemTime struct {
StartTime *model.LocalTime `json:"start_time" form:"start_time" label:"开始投票时间" validate:"required"`
EndTime *model.LocalTime `json:"end_time" form:"end_time" label:"结束投票时间" validate:"required"`
}

View File

@ -150,7 +150,7 @@ func privateRouter(r *gin.Engine, api controller.Api) {
agreementGroup := basicGroup.Group("/agreement")
{
// 获取协议列表-分页
agreementGroup.POST("/page", api.BaseAgreement.GetBaseAgreementPage)
agreementGroup.GET("/page", api.BaseAgreement.GetBaseAgreementPage)
// 获取协议详情
agreementGroup.GET("/:agreement_id", api.BaseAgreement.GetBaseAgreement)
@ -201,6 +201,9 @@ func privateRouter(r *gin.Engine, api controller.Api) {
{
// 获取投票时间详情
timeGroup.GET("/:system_time_id", api.System.GetSystemTime)
// 修改投票时间
timeGroup.PUT("/:system_time_id", api.System.PutSystemTime)
}
}
}