新增了飞花令数量1
This commit is contained in:
parent
472f25fb61
commit
51af306add
107
api/dao/QuestionQaTimer.go
Normal file
107
api/dao/QuestionQaTimer.go
Normal file
@ -0,0 +1,107 @@
|
||||
package dao
|
||||
|
||||
import (
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
"knowledge/api/model"
|
||||
"knowledge/global"
|
||||
)
|
||||
|
||||
type QuestionQaTimerDao struct {
|
||||
}
|
||||
|
||||
// GetQuestionQaTimerById 获取数据-id
|
||||
func (r *QuestionQaTimerDao) GetQuestionQaTimerById(TimerId int64) (m *model.QuestionQaTimer, err error) {
|
||||
err = global.Db.First(&m, TimerId).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// GetQuestionQaTimerListByQaId 获取数据-QaId
|
||||
func (r *QuestionQaTimerDao) GetQuestionQaTimerListByQaId(qaId int64) (m []*model.QuestionQaTimer, err error) {
|
||||
err = global.Db.Where("qa_id = ?", qaId).Find(&m).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// DeleteQuestionQaTimer 删除
|
||||
func (r *QuestionQaTimerDao) DeleteQuestionQaTimer(tx *gorm.DB, maps interface{}) error {
|
||||
err := tx.Where(maps).Delete(&model.QuestionQaTimer{}).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeleteQuestionQaTimerById 删除-Id
|
||||
func (r *QuestionQaTimerDao) DeleteQuestionQaTimerById(tx *gorm.DB, itemId int64) error {
|
||||
if err := tx.Delete(&model.QuestionQaTimer{}, itemId).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeleteQuestionQaTimerByQaId 删除-QaId
|
||||
func (r *QuestionQaTimerDao) DeleteQuestionQaTimerByQaId(tx *gorm.DB, qaId int64) error {
|
||||
if err := tx.Where("qa_id = ?", qaId).Delete(&model.QuestionQaTimer{}).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// EditQuestionQaTimer 修改
|
||||
func (r *QuestionQaTimerDao) EditQuestionQaTimer(tx *gorm.DB, maps interface{}, data interface{}) error {
|
||||
err := tx.Model(&model.QuestionQaTimer{}).Where(maps).Updates(data).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// EditQuestionQaTimerById 修改-id
|
||||
func (r *QuestionQaTimerDao) EditQuestionQaTimerById(tx *gorm.DB, TimerId int64, data interface{}) error {
|
||||
err := tx.Model(&model.QuestionQaTimer{}).Where("timer_id = ?", TimerId).Updates(data).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetQuestionQaTimerList 获取列表
|
||||
func (r *QuestionQaTimerDao) GetQuestionQaTimerList(maps interface{}) (m []*model.QuestionQaTimer, err error) {
|
||||
err = global.Db.Where(maps).Find(&m).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// GetQuestionQaTimerPreloadList 获取列表-加载全部关联
|
||||
func (r *QuestionQaTimerDao) GetQuestionQaTimerPreloadList(maps interface{}) (m []*model.QuestionQaTimer, err error) {
|
||||
err = global.Db.Preload(clause.Associations).Where(maps).Find(&m).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// AddQuestionQaTimer 新增
|
||||
func (r *QuestionQaTimerDao) AddQuestionQaTimer(tx *gorm.DB, model *model.QuestionQaTimer) (*model.QuestionQaTimer, error) {
|
||||
if err := tx.Create(model).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return model, nil
|
||||
}
|
||||
|
||||
// GetQuestionQaTimer 获取
|
||||
func (r *QuestionQaTimerDao) GetQuestionQaTimer(maps interface{}) (m *model.QuestionQaTimer, err error) {
|
||||
err = global.Db.Where(maps).First(&m).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
@ -18,6 +18,7 @@ type QuestionQaDto struct {
|
||||
RoundNum *int `json:"round_num"` // 轮次数量(当题库类型为3时存在)
|
||||
QaRuleContent string `json:"qa_rule_content"` // 规则解释
|
||||
QaDisplayType int `json:"qa_display_type"` // 展示类型(1:常规 2:飞花令)
|
||||
IsTurnTimer int `json:"is_turn_timer"` // 是否开启计时(0:否 1:是)
|
||||
QaExpireTime *model.LocalTime `json:"qa_expire_time"` // 过期时间
|
||||
QaShareId string `json:"qa_share_id"` // 分享标识
|
||||
QaPassword string `json:"qa_password"` // 分享密码
|
||||
@ -28,6 +29,7 @@ type QuestionQaDto struct {
|
||||
TokenQuestionContent []*TokenQuestionContentDto `json:"token_question_content"` // 飞花令题目数量规则(当题库类型为2、3时存在。2表示飞花令后固定题目数量,3表示飞花令后单个类型题目数量)
|
||||
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
|
||||
UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间
|
||||
QuestionQaTimer []*QuestionQaTimerDto `json:"question_qa_timer"` // 计时设置
|
||||
}
|
||||
|
||||
// QuestionQaBaseTokenItem 问答题库-飞花令明细
|
||||
|
||||
54
api/dto/QuestionQaTimer.go
Normal file
54
api/dto/QuestionQaTimer.go
Normal file
@ -0,0 +1,54 @@
|
||||
package dto
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"knowledge/api/model"
|
||||
)
|
||||
|
||||
type QuestionQaTimerDto struct {
|
||||
TimerId string `json:"timer_id"` // 主键id
|
||||
QaId string `json:"qa_id"` // 知识问答id
|
||||
QuestionType int `json:"question_type"` // 题目类型(1:单选 2:多选 3:问答 4:判断)
|
||||
TimerRule int `json:"timer_rule"` // 计时规则(1:正计时 2:倒计时)
|
||||
Duration int `json:"duration"` // 时长(秒)
|
||||
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
|
||||
UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间
|
||||
}
|
||||
|
||||
// GetQuestionQaTimerDto 详情
|
||||
func GetQuestionQaTimerDto(m *model.QuestionQaTimer) *QuestionQaTimerDto {
|
||||
return &QuestionQaTimerDto{
|
||||
TimerId: fmt.Sprintf("%d", m.TimerId),
|
||||
QaId: fmt.Sprintf("%d", m.QaId),
|
||||
QuestionType: m.QuestionType,
|
||||
TimerRule: m.TimerRule,
|
||||
Duration: m.Duration,
|
||||
CreatedAt: m.CreatedAt,
|
||||
UpdatedAt: m.UpdatedAt,
|
||||
}
|
||||
}
|
||||
|
||||
// GetQuestionQaTimerListDto 列表
|
||||
func GetQuestionQaTimerListDto(m []*model.QuestionQaTimer) []*QuestionQaTimerDto {
|
||||
// 处理返回值
|
||||
responses := make([]*QuestionQaTimerDto, len(m))
|
||||
|
||||
if len(m) > 0 {
|
||||
for i, v := range m {
|
||||
response := &QuestionQaTimerDto{
|
||||
TimerId: fmt.Sprintf("%d", v.TimerId),
|
||||
QaId: fmt.Sprintf("%d", v.QaId),
|
||||
QuestionType: v.QuestionType,
|
||||
TimerRule: v.TimerRule,
|
||||
Duration: v.Duration,
|
||||
CreatedAt: v.CreatedAt,
|
||||
UpdatedAt: v.UpdatedAt,
|
||||
}
|
||||
|
||||
// 将转换后的结构体添加到新切片中
|
||||
responses[i] = response
|
||||
}
|
||||
}
|
||||
|
||||
return responses
|
||||
}
|
||||
@ -17,6 +17,7 @@ type QuestionQa struct {
|
||||
RoundNum *int `gorm:"column:round_num;type:int(11);comment:轮次数量(当题库类型为3时存在)" json:"round_num"`
|
||||
QaRuleContent string `gorm:"column:qa_rule_content;type:text;comment:规则解释" json:"qa_rule_content"`
|
||||
QaDisplayType int `gorm:"column:qa_display_type;type:tinyint(1);default:1;comment:展示类型(1:常规 2:飞花令)" json:"qa_display_type"`
|
||||
IsTurnTimer int `gorm:"column:is_turn_timer;type:tinyint(1);default:0;comment:是否开启计时(0:否 1:是)" json:"is_turn_timer"`
|
||||
QaExpireTime LocalTime `gorm:"column:qa_expire_time;type:datetime;comment:过期时间" json:"qa_expire_time"`
|
||||
QaShareId string `gorm:"column:qa_share_id;type:varchar(255);comment:分享标识" json:"qa_share_id"`
|
||||
QaPassword string `gorm:"column:qa_password;type:varchar(255);comment:分享密码" json:"qa_password"`
|
||||
@ -25,6 +26,7 @@ type QuestionQa struct {
|
||||
ItemContent string `gorm:"column:item_content;type:text;comment:明细选题(json)" json:"item_content"`
|
||||
TokenQuestionContent string `gorm:"column:token_question_content;type:text;comment:飞花令题目数量规则(当题库类型为2、3时存在。2表示飞花令后固定题目数量,3表示飞花令后单个类型题目数量)" json:"token_question_content"`
|
||||
Model
|
||||
QuestionQaTimer []*QuestionQaTimer `gorm:"foreignKey:QaId;references:qa_id" json:"question_qa_timer"`
|
||||
}
|
||||
|
||||
func (m *QuestionQa) TableName() string {
|
||||
|
||||
35
api/model/QuestionQaTimer.go
Normal file
35
api/model/QuestionQaTimer.go
Normal file
@ -0,0 +1,35 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"gorm.io/gorm"
|
||||
"knowledge/global"
|
||||
"time"
|
||||
)
|
||||
|
||||
// QuestionQaTimer 知识问答-计时设置
|
||||
type QuestionQaTimer struct {
|
||||
TimerId int64 `gorm:"column:timer_id;type:bigint(19);primary_key;comment:主键id" json:"timer_id"`
|
||||
QaId int64 `gorm:"column:qa_id;type:bigint(19);comment:知识问答id;NOT NULL" json:"qa_id"`
|
||||
QuestionType int `gorm:"column:question_type;type:tinyint(1);default:1;comment:题目类型(1:单选 2:多选 3:问答 4:判断)" json:"question_type"`
|
||||
TimerRule int `gorm:"column:timer_rule;type:tinyint(1);default:1;comment:计时规则(1:正计时 2:倒计时)" json:"timer_rule"`
|
||||
Duration int `gorm:"column:duration;type:int(1);default:1;comment:时长(秒)" json:"duration"`
|
||||
Model
|
||||
}
|
||||
|
||||
func (m *QuestionQaTimer) TableName() string {
|
||||
return "kb_question_qa_timer"
|
||||
}
|
||||
|
||||
func (m *QuestionQaTimer) BeforeCreate(tx *gorm.DB) error {
|
||||
if m.TimerId == 0 {
|
||||
m.TimerId = 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
|
||||
}
|
||||
@ -333,6 +333,7 @@ func (r *QuestionQaService) PutQuestionQa(qaId int64, req requests.PutQuestionQa
|
||||
return false, err
|
||||
}
|
||||
|
||||
fmt.Println(1111)
|
||||
// 题目数量
|
||||
if qaQuantity != questionQa.QaQuantity {
|
||||
if req.Action == 1 {
|
||||
@ -764,7 +765,7 @@ func (r *QuestionQaService) CheckPutQaQuestionQuantity(req requests.PutQuestionQ
|
||||
itemQuantity = 0
|
||||
for _, item := range req.QuestionQaItem {
|
||||
if content.QuestionType == item.QuestionType {
|
||||
itemQuantity = item.Quantity
|
||||
itemQuantity = itemQuantity + item.Quantity
|
||||
}
|
||||
}
|
||||
|
||||
@ -795,12 +796,16 @@ func (r *QuestionQaService) CheckPutQaQuestionQuantity(req requests.PutQuestionQ
|
||||
itemQuantity = 0
|
||||
for _, item := range req.QuestionQaItem {
|
||||
if content.QuestionType == item.QuestionType {
|
||||
itemQuantity = item.Quantity
|
||||
itemQuantity = itemQuantity + item.Quantity
|
||||
}
|
||||
}
|
||||
|
||||
quantity := content.Quantity * *req.TokenNum * *req.RoundNum
|
||||
|
||||
fmt.Println(utils.QuestionType(content.QuestionType))
|
||||
fmt.Println(quantity)
|
||||
fmt.Println(req.QuestionQaItem)
|
||||
fmt.Println(itemQuantity)
|
||||
if quantity > itemQuantity {
|
||||
return qaQuantity, errors.New(utils.QuestionType(content.QuestionType) + "数量不足")
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user