增加基础数据-协议
This commit is contained in:
parent
70bac9077e
commit
9f85db53ab
@ -6,4 +6,5 @@ type Api struct {
|
|||||||
Article // 图文
|
Article // 图文
|
||||||
Video // 视频
|
Video // 视频
|
||||||
Public // 公共方法
|
Public // 公共方法
|
||||||
|
Basic // 基础数据
|
||||||
}
|
}
|
||||||
|
|||||||
45
api/controller/Basic.go
Normal file
45
api/controller/Basic.go
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
package controller
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
"vote-api/api/dao"
|
||||||
|
"vote-api/api/dto"
|
||||||
|
"vote-api/api/requests"
|
||||||
|
"vote-api/api/responses"
|
||||||
|
"vote-api/global"
|
||||||
|
"vote-api/utils"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Basic struct{}
|
||||||
|
|
||||||
|
// GetBasicAgreement 获取协议详情
|
||||||
|
func (r *Basic) GetBasicAgreement(c *gin.Context) {
|
||||||
|
basicRequest := requests.BasicRequest{}
|
||||||
|
req := basicRequest.GetBasicAgreement
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取数据
|
||||||
|
maps := make(map[string]interface{})
|
||||||
|
maps["agreement_type"] = req.AgreementType
|
||||||
|
|
||||||
|
baseAgreementDao := dao.BaseAgreementDao{}
|
||||||
|
baseAgreement, err := baseAgreementDao.GetBaseAgreement(maps)
|
||||||
|
if err != nil {
|
||||||
|
responses.FailWithMessage("协议不存在", c)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理返回值
|
||||||
|
g := dto.GetBaseAgreementDto(baseAgreement)
|
||||||
|
|
||||||
|
responses.OkWithData(g, c)
|
||||||
|
}
|
||||||
126
api/dao/BaseAgreement.go
Normal file
126
api/dao/BaseAgreement.go
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
package dao
|
||||||
|
|
||||||
|
import (
|
||||||
|
"gorm.io/gorm"
|
||||||
|
"gorm.io/gorm/clause"
|
||||||
|
"vote-api/api/model"
|
||||||
|
"vote-api/global"
|
||||||
|
)
|
||||||
|
|
||||||
|
type BaseAgreementDao struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetBaseAgreementById 获取数据-id
|
||||||
|
func (r *BaseAgreementDao) GetBaseAgreementById(AgreementId int64) (m *model.BaseAgreement, err error) {
|
||||||
|
err = global.Db.First(&m, AgreementId).Error
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return m, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetBaseAgreementPreloadById 获取数据-加载全部关联-id
|
||||||
|
func (r *BaseAgreementDao) GetBaseAgreementPreloadById(AgreementId int64) (m *model.BaseAgreement, err error) {
|
||||||
|
err = global.Db.Preload(clause.Associations).First(&m, AgreementId).Error
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return m, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteBaseAgreement 删除
|
||||||
|
func (r *BaseAgreementDao) DeleteBaseAgreement(tx *gorm.DB, maps interface{}) error {
|
||||||
|
err := tx.Where(maps).Delete(&model.BaseAgreement{}).Error
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteBaseAgreementById 删除-id
|
||||||
|
func (r *BaseAgreementDao) DeleteBaseAgreementById(tx *gorm.DB, voteDayId int64) error {
|
||||||
|
if err := tx.Delete(&model.BaseAgreement{}, voteDayId).Error; err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// EditBaseAgreement 修改
|
||||||
|
func (r *BaseAgreementDao) EditBaseAgreement(tx *gorm.DB, maps interface{}, data interface{}) error {
|
||||||
|
err := tx.Model(&model.BaseAgreement{}).Where(maps).Updates(data).Error
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// EditBaseAgreementById 修改-id
|
||||||
|
func (r *BaseAgreementDao) EditBaseAgreementById(tx *gorm.DB, AgreementId int64, data interface{}) error {
|
||||||
|
err := tx.Model(&model.BaseAgreement{}).Where("agreement_id = ?", AgreementId).Updates(data).Error
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetBaseAgreementList 获取列表
|
||||||
|
func (r *BaseAgreementDao) GetBaseAgreementList(maps interface{}) (m []*model.BaseAgreement, err error) {
|
||||||
|
err = global.Db.Where(maps).Find(&m).Error
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return m, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetBaseAgreementCount 获取数量
|
||||||
|
func (r *BaseAgreementDao) GetBaseAgreementCount(maps interface{}) (total int64, err error) {
|
||||||
|
err = global.Db.Model(&model.BaseAgreement{}).Where(maps).Count(&total).Error
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
return total, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetBaseAgreementListRand 获取列表-随机
|
||||||
|
func (r *BaseAgreementDao) GetBaseAgreementListRand(maps interface{}, limit int) (m []*model.BaseAgreement, err error) {
|
||||||
|
err = global.Db.Where(maps).Order("rand()").Limit(limit).Find(&m).Error
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return m, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// AddBaseAgreement 新增
|
||||||
|
func (r *BaseAgreementDao) AddBaseAgreement(tx *gorm.DB, model *model.BaseAgreement) (*model.BaseAgreement, error) {
|
||||||
|
if err := tx.Create(model).Error; err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return model, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetBaseAgreement 获取
|
||||||
|
func (r *BaseAgreementDao) GetBaseAgreement(maps interface{}) (m *model.BaseAgreement, err error) {
|
||||||
|
err = global.Db.Where(maps).First(&m).Error
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return m, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Inc 自增
|
||||||
|
func (r *BaseAgreementDao) Inc(tx *gorm.DB, AgreementId int64, field string, numeral int) error {
|
||||||
|
err := tx.Model(&model.BaseAgreement{}).Where("agreement_id = ?", AgreementId).UpdateColumn(field, gorm.Expr(field+" + ?", numeral)).Error
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dec 自减
|
||||||
|
func (r *BaseAgreementDao) Dec(tx *gorm.DB, AgreementId int64, field string, numeral int) error {
|
||||||
|
err := tx.Model(&model.BaseAgreement{}).Where("agreement_id = ?", AgreementId).UpdateColumn(field, gorm.Expr(field+" - ?", numeral)).Error
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
26
api/dto/BaseAgreement.go
Normal file
26
api/dto/BaseAgreement.go
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package dto
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"vote-api/api/model"
|
||||||
|
)
|
||||||
|
|
||||||
|
// BaseAgreementDto 基础-协议
|
||||||
|
type BaseAgreementDto struct {
|
||||||
|
AgreementId string `json:"agreement_id"` // 主键id
|
||||||
|
AgreementType int `json:"agreement_type"` // 协议类型(1:大赛介绍 2:投票规则)
|
||||||
|
AgreementContent string `json:"agreement_content"` // 协议内容
|
||||||
|
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
|
||||||
|
UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetBaseAgreementDto 详情
|
||||||
|
func GetBaseAgreementDto(m *model.BaseAgreement) *BaseAgreementDto {
|
||||||
|
return &BaseAgreementDto{
|
||||||
|
AgreementId: fmt.Sprintf("%d", m.AgreementId),
|
||||||
|
AgreementType: m.AgreementType,
|
||||||
|
AgreementContent: m.AgreementContent,
|
||||||
|
CreatedAt: m.CreatedAt,
|
||||||
|
UpdatedAt: m.UpdatedAt,
|
||||||
|
}
|
||||||
|
}
|
||||||
33
api/model/BaseAgreement.go
Normal file
33
api/model/BaseAgreement.go
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package model
|
||||||
|
|
||||||
|
import (
|
||||||
|
"gorm.io/gorm"
|
||||||
|
"time"
|
||||||
|
"vote-api/global"
|
||||||
|
)
|
||||||
|
|
||||||
|
// BaseAgreement 基础-协议
|
||||||
|
type BaseAgreement struct {
|
||||||
|
AgreementId int64 `gorm:"column:agreement_id;type:bigint(19);primary_key;comment:主键id" json:"agreement_id"`
|
||||||
|
AgreementType int `gorm:"column:agreement_type;type:tinyint(1);comment:协议类型(1:大赛介绍 2:投票规则);NOT NULL" json:"agreement_type"`
|
||||||
|
AgreementContent string `gorm:"column:agreement_content;type:text;comment:协议内容" json:"agreement_content"`
|
||||||
|
Model
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *BaseAgreement) TableName() string {
|
||||||
|
return "base_agreement"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *BaseAgreement) BeforeCreate(tx *gorm.DB) error {
|
||||||
|
if m.AgreementId == 0 {
|
||||||
|
m.AgreementId = global.Snowflake.Generate().Int64()
|
||||||
|
}
|
||||||
|
|
||||||
|
m.CreatedAt = LocalTime(time.Now())
|
||||||
|
tx.Statement.SetColumn("CreatedAt", m.CreatedAt)
|
||||||
|
|
||||||
|
m.UpdatedAt = LocalTime(time.Now())
|
||||||
|
tx.Statement.SetColumn("UpdatedAt", m.UpdatedAt)
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
10
api/requests/BasicRequest.go
Normal file
10
api/requests/BasicRequest.go
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
package requests
|
||||||
|
|
||||||
|
type BasicRequest struct {
|
||||||
|
GetBasicAgreement // 获取协议详情
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetBasicAgreement 获取协议详情
|
||||||
|
type GetBasicAgreement struct {
|
||||||
|
AgreementType int `json:"agreement_type" form:"agreement_type" label:"协议类型" validate:"required,oneof=1 2"` // 协议类型(1:大赛介绍 2:投票规则)
|
||||||
|
}
|
||||||
@ -77,6 +77,13 @@ func publicRouter(r *gin.Engine, api controller.Api) {
|
|||||||
|
|
||||||
// 增加浏览数量
|
// 增加浏览数量
|
||||||
r.POST("/browse", api.Public.AddBrowse)
|
r.POST("/browse", api.Public.AddBrowse)
|
||||||
|
|
||||||
|
// 协议
|
||||||
|
articleGroup := r.Group("/agreement")
|
||||||
|
{
|
||||||
|
// 获取协议详情
|
||||||
|
articleGroup.GET("", api.Basic.GetBasicAgreement)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// adminRouter 公共路由-验证权限
|
// adminRouter 公共路由-验证权限
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user