feat:完善网站活动报名信息

This commit is contained in:
henry
2021-12-16 15:07:53 +08:00
parent d594725972
commit 8d82caac20
6 changed files with 77 additions and 0 deletions

View File

@ -4,7 +4,9 @@ import (
"SciencesServer/app/api/website/model"
"SciencesServer/app/basic/controller"
model2 "SciencesServer/app/common/model"
"SciencesServer/app/service"
"SciencesServer/app/session"
"SciencesServer/config"
"errors"
)
@ -101,10 +103,23 @@ func (c *Activity) Join(id uint64) error {
} else if !isExist {
return errors.New("操作错误,活动信息不存在或已被删除")
}
if !mActivityInstance.IsCanJoin() {
return errors.New("操作错误,当前活动信息不可报名")
}
// 查看当前活动是否报名
var count int64
if err = model2.Count(model.NewActivityJoin().ActivityJoin, &count, model2.NewWhere("identity_id", c.IdentityUID),
model2.NewWhere("activity_id", id), model2.NewWhere("status", model2.ActivityJoinStatusForSuccess)); err != nil {
return err
}
if count > 0 {
return errors.New("操作错误,不可重复报名")
}
if mActivityInstance.Mode == model2.ActivityInstanceModeForOrdinary {
service.Publish(config.EventForActivityJoinProduce, c.IdentityUID, c.UID)
}
return nil
}

View File

@ -0,0 +1,11 @@
package model
import "SciencesServer/app/common/model"
type ActivityJoin struct {
*model.ActivityJoin
}
func NewActivityJoin() *ActivityJoin {
return &ActivityJoin{model.NewActivityJoin()}
}

View File

@ -0,0 +1,31 @@
package model
// SysNavigation 自定义导航栏数据模型
type SysNavigation struct {
Model
ParentID uint64 `gorm:"column:parent_id;type:int;default:0;comment:父级ID" json:"parent_id"`
Title string `gorm:"column:title;type:varchar(20);default:'';comment:区域名称" json:"title"`
Link string `gorm:"column:link;type:varchar(255);default:'';comment:访问地址" json:"link"`
Sort int `gorm:"column:sort;type:tinyint(3);default:0;comment:排序,从大到小" json:"-"`
Status SysNavigationStatus `gorm:"column:status;type:tinyint(1);default:1;comment:状态" json:"-"`
ModelDeleted
ModelAt
}
// SysNavigationStatus 显示状态
type SysNavigationStatus int
const (
// SysNavigationStatusForShow 显示
SysNavigationStatusForShow SysNavigationStatus = iota + 1
// SysNavigationStatusForHidden 隐藏
SysNavigationStatusForHidden
)
func (m *SysNavigation) TableName() string {
return "sys_navigation"
}
func NewSysNavigation() *SysNavigation {
return &SysNavigation{}
}

17
app/event/activity.go Normal file
View File

@ -0,0 +1,17 @@
package event
import "SciencesServer/app/common/model"
type ActivityJoin struct{}
func (*ActivityJoin) Handle(arg ...interface{}) {
_ = model.Create(&model.ActivityJoin{
IdentityUID: arg[0].(uint64),
ActivityID: arg[1].(uint64),
Status: model.ActivityJoinStatusForSuccess,
})
}
func NewActivityJoin() *ActivityJoin {
return &ActivityJoin{}
}

View File

@ -21,6 +21,8 @@ func Init() {
service.Subscribe(config.EventForSysLogProduce, event.NewSysLogProduce())
// 消耗录入监听
service.Subscribe(config.EventForConsumeProduce, event.NewConsume())
// 活动加入监听
service.Subscribe(config.EventForActivityJoinProduce, event.NewActivityJoin())
// 开启权限
service.NewAuth().Register()(config.SettingInfo.Engine.DBMode, orm.GetDB(), model.NewSysAuthRule().TableName())
}