增加基础数据-协议
This commit is contained in:
parent
70bac9077e
commit
9f85db53ab
@ -6,4 +6,5 @@ type Api struct {
|
||||
Article // 图文
|
||||
Video // 视频
|
||||
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)
|
||||
|
||||
// 协议
|
||||
articleGroup := r.Group("/agreement")
|
||||
{
|
||||
// 获取协议详情
|
||||
articleGroup.GET("", api.Basic.GetBasicAgreement)
|
||||
}
|
||||
}
|
||||
|
||||
// adminRouter 公共路由-验证权限
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user