From 8838b12415702dd2bfed97778771e2482759afda Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Wed, 4 Sep 2024 16:08:39 +0800 Subject: [PATCH] 1 --- api/controller/System.go | 72 +++++++++++++++++++++++++++++++++++ api/controller/UserVoteDay.go | 2 + api/dto/User.go | 1 + api/requests/System.go | 13 +++++++ api/router/router.go | 5 ++- 5 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 api/requests/System.go diff --git a/api/controller/System.go b/api/controller/System.go index 0c0ab8b..bfa99bd 100644 --- a/api/controller/System.go +++ b/api/controller/System.go @@ -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) +} diff --git a/api/controller/UserVoteDay.go b/api/controller/UserVoteDay.go index a70d7a8..02d78c4 100644 --- a/api/controller/UserVoteDay.go +++ b/api/controller/UserVoteDay.go @@ -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, } diff --git a/api/dto/User.go b/api/dto/User.go index 7c52912..277dc42 100644 --- a/api/dto/User.go +++ b/api/dto/User.go @@ -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"` // 投票时间 } diff --git a/api/requests/System.go b/api/requests/System.go new file mode 100644 index 0000000..45d8059 --- /dev/null +++ b/api/requests/System.go @@ -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"` +} diff --git a/api/router/router.go b/api/router/router.go index 25b3ef2..77d4c7a 100644 --- a/api/router/router.go +++ b/api/router/router.go @@ -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) } } }