Documentation
¶
Index ¶
- Variables
- func AppendLog(args *ArgsAppendLog) (logID int64, allScore int, errCode string, err error)
- func CreateProduct(args *ArgsCreateProduct) (err error)
- func CreateTopicGroup(args *ArgsCreateTopicGroup) (err error)
- func CreateTopicGroupLog(orgID, userID int64, runTime int)
- func DeleteProduct(args *ArgsDeleteProduct) (err error)
- func DeleteTopic(args *ArgsDeleteTopic) (err error)
- func DeleteTopicGroup(args *ArgsDeleteTopicGroup) (err error)
- func GetLogCountByOrgID(orgID int64) (count int64)
- func GetLogCountByUserID(userID int64) (count int64)
- func GetLogOrgCount() (count int64)
- func GetProductCountByOrgID(orgID int64, afterAt time.Time) (count int64)
- func GetProductName(id int64) string
- func GetTopicGroupLogCount(userID int64) (count int64)
- func GetTopicGroupLogRunTime(userID int64, afterAt time.Time) (runTime int)
- func Init()
- func UpdateTopic(args *ArgsUpdateTopic) (err error)
- func UpdateTopicGroup(args *ArgsUpdateTopicGroup) (err error)
- type ArgsAppendLog
- type ArgsAppendLogAnswer
- type ArgsCreateProduct
- type ArgsCreateTopic
- type ArgsCreateTopicGroup
- type ArgsCreateTopicMore
- type ArgsCreateTopicMoreChild
- type ArgsDeleteProduct
- type ArgsDeleteTopic
- type ArgsDeleteTopicGroup
- type ArgsGetLogList
- type ArgsGetProductList
- type ArgsGetTopicGroupList
- type ArgsGetTopicList
- type ArgsUpdateTopic
- type ArgsUpdateTopicGroup
- type DataGetTopicList
- type FieldsLog
- type FieldsProduct
- type FieldsTopic
- func CreateTopic(args *ArgsCreateTopic) (data FieldsTopic, err error)
- func CreateTopicMore(args *ArgsCreateTopicMore) (dataList []FieldsTopic, errCode string, err error)
- func GetRandTopic(orgID int64, limit int) (dataList []FieldsTopic)
- func GetTopic(id int64) (data FieldsTopic)
- func GetTopicByIDs(ids []int64, haveRemove bool) (dataList []FieldsTopic)
- type FieldsTopicGroup
- type FieldsTopicGroupLog
- type FieldsTopicOption
- type FieldsTopicOptions
Constants ¶
This section is empty.
Variables ¶
var ( //OpenSub 启动订阅 OpenSub = false )
在线考试模块 * 1. 支持题库,可以设置题库、题目 2. 题目支持单选题、判断题、多选题、填空题、问答题 3. 除问答题外,其他题目可以设置标准答案,其中填空题如果不设置标准答案则不做判断处理 4. 可以抽取不同试卷题库的题目组成单独的考试 5. 考试可以设置开始和到期时间,用户开始问答后反馈数据集,问答结束后收集数据并反馈考试结果 6. 考试可以设置答案是否在前端直接判断,如果直接判断则同时会反馈正确答案方便前端处理;否则必须交给后台统一处理 7. 系统会记录考生每次考试的时间、统计次数、考试用时、得分,暂不记录具体答题细节
Functions ¶
func AppendLog ¶
func AppendLog(args *ArgsAppendLog) (logID int64, allScore int, errCode string, err error)
AppendLog 添加新的记录
func CreateTopicGroup ¶
func CreateTopicGroup(args *ArgsCreateTopicGroup) (err error)
CreateTopicGroup 创建题库
func CreateTopicGroupLog ¶
CreateTopicGroupLog 添加学习记录
func DeleteTopicGroup ¶
func DeleteTopicGroup(args *ArgsDeleteTopicGroup) (err error)
DeleteTopicGroup 删除题库
func GetLogCountByOrgID ¶
GetLogCountByOrgID 获取组织考试次数
func GetLogCountByUserID ¶
GetLogCountByUserID 获取用户考试次数
func GetProductCountByOrgID ¶
GetProductCountByOrgID 获取试卷数量
func GetTopicGroupLogCount ¶
GetTopicGroupLogCount 获取用户学习天数
func GetTopicGroupLogRunTime ¶
GetTopicGroupLogRunTime 获取累计学习时间长度
func UpdateTopicGroup ¶
func UpdateTopicGroup(args *ArgsUpdateTopicGroup) (err error)
UpdateTopicGroup 修改题库
Types ¶
type ArgsAppendLog ¶
type ArgsAppendLog struct {
//创建时间
CreateAt string `db:"create_at" json:"createAt" check:"defaultTime"`
//结束时间
EndAt string `db:"end_at" json:"endAt" check:"defaultTime"`
//组织ID
// 留空则表明为平台的用户留下的内容
OrgID int64 `json:"orgID" check:"id" empty:"true"`
//用户ID
UserID int64 `db:"user_id" json:"userID" check:"id"`
//参加考试
ProductID int64 `db:"product_id" json:"productID" check:"id" empty:"true"`
//参加的题目列
TopicIDs pq.Int64Array `db:"topic_ids" json:"topicIDs" check:"ids" empty:"true"`
//答案序列
Answer []ArgsAppendLogAnswer `json:"answer"`
}
ArgsAppendLog 添加新的记录参数
type ArgsAppendLogAnswer ¶
type ArgsAppendLogAnswer struct {
//题目ID
TopicID int64 `json:"topicID" check:"id"`
//答案
Answer []string `json:"answer"`
}
ArgsAppendLogAnswer 添加新的记录答题参数
type ArgsCreateProduct ¶
type ArgsCreateProduct struct {
//组织ID
OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
//开始时间
StartAt string `db:"start_at" json:"startAt" check:"defaultTime"`
//结束时间
EndAt string `db:"end_at" json:"endAt" check:"defaultTime"`
//标题
Title string `db:"title" json:"title" check:"des" min:"1" max:"600"`
//题目列
TopicIDs pq.Int64Array `db:"topic_ids" json:"topicIDs" check:"ids"`
//是否直接反馈正确答案
ReturnAnswerNow bool `db:"return_answer_now" json:"returnAnswerNow" check:"bool"`
//扩展参数
Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
}
ArgsCreateProduct 创建试卷参数
type ArgsCreateTopic ¶
type ArgsCreateTopic struct {
//组织ID
OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
//描述
Des string `db:"des" json:"des" check:"des" min:"1" max:"6000"`
//题目类型
// 0 单选; 1 多选; 2 判断; 3 填空题; 4 问答题
TopicType int `db:"topic_type" json:"topicType"`
//正确得分
Score int `db:"score" json:"score" check:"intThan0"`
//选项
// 单选、多选、判断
Options FieldsTopicOptions `db:"options" json:"options"`
//正确选项
// 可能是多个,用于支持单选、多选、判断、填空
// 注意填空题此处如果设置,则需des配合填写{marK}的字符,方便直到具体是哪个mark
Answer pq.StringArray `db:"answer" json:"answer" check:"marks" empty:"true"`
//解析
AnswerAnalysis string `db:"answer_analysis" json:"answerAnalysis" check:"des" min:"1" max:"10000" empty:"true"`
//扩展参数
Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
}
ArgsCreateTopic 创建新的题目参数
type ArgsCreateTopicGroup ¶
type ArgsCreateTopicGroup struct {
//组织ID
OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
//题库名称
Title string `db:"title" json:"title" check:"des" min:"1" max:"600"`
//题目列
TopicIDs pq.Int64Array `db:"topic_ids" json:"topicIDs" check:"ids"`
//扩展参数
Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
}
ArgsCreateTopicGroup 创建题库参数
type ArgsCreateTopicMore ¶
type ArgsCreateTopicMore struct {
//组织ID
OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
//题目列表
DataList []ArgsCreateTopicMoreChild `json:"dataList"`
}
ArgsCreateTopicMore 批量创建考题参数
type ArgsCreateTopicMoreChild ¶
type ArgsCreateTopicMoreChild struct {
//描述
Des string `db:"des" json:"des" check:"des" min:"1" max:"6000"`
//题目类型
// 0 单选; 1 多选; 2 判断; 3 填空题; 4 问答题
TopicType int `db:"topic_type" json:"topicType"`
//正确得分
Score int `db:"score" json:"score" check:"intThan0"`
//选项
// 单选、多选、判断
Options FieldsTopicOptions `db:"options" json:"options"`
//正确选项
// 可能是多个,用于支持单选、多选、判断、填空
// 注意填空题此处如果设置,则需des配合填写{marK}的字符,方便直到具体是哪个mark
Answer pq.StringArray `db:"answer" json:"answer" check:"marks" empty:"true"`
//解析
AnswerAnalysis string `db:"answer_analysis" json:"answerAnalysis" check:"des" min:"1" max:"10000" empty:"true"`
//扩展参数
Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
}
func UploadExcelAndGetTopicArgs ¶
func UploadExcelAndGetTopicArgs(c *gin.Context, args *BaseFileUpload.ArgsUploadToTemp) (dataList []ArgsCreateTopicMoreChild, errCode string, err error)
UploadExcelAndGetTopicArgs 上传和反馈excel数据结构,用于批量添加考题
type ArgsDeleteProduct ¶
type ArgsDeleteProduct struct {
//ID
ID int64 `db:"id" json:"id" check:"id"`
//组织ID
OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
}
ArgsDeleteProduct 删除试卷参数
type ArgsDeleteTopic ¶
type ArgsDeleteTopic struct {
//ID
ID int64 `db:"id" json:"id" check:"id"`
//组织ID
OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
}
ArgsDeleteTopic 删除题目参数
type ArgsDeleteTopicGroup ¶
type ArgsDeleteTopicGroup struct {
//ID
ID int64 `db:"id" json:"id" check:"id"`
//组织ID
OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
}
ArgsDeleteTopicGroup 删除题库参数
type ArgsGetLogList ¶
type ArgsGetLogList struct {
//分页
Pages CoreSQLPages.ArgsDataList `json:"pages"`
//组织ID
OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
//用户ID
UserID int64 `db:"user_id" json:"userID" check:"id" empty:"true"`
//参加考试
ProductID int64 `db:"product_id" json:"productID" check:"id" empty:"true"`
}
ArgsGetLogList 获取日志列表参数
type ArgsGetProductList ¶
type ArgsGetProductList struct {
//分页
Pages CoreSQLPages.ArgsDataList `json:"pages"`
//组织ID
OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
//是否删除
IsRemove bool `db:"is_remove" json:"isRemove" check:"bool"`
//搜索
Search string `json:"search" check:"search" empty:"true"`
}
ArgsGetProductList 获取试卷列表参数
type ArgsGetTopicGroupList ¶
type ArgsGetTopicGroupList struct {
//分页
Pages CoreSQLPages.ArgsDataList `json:"pages"`
//组织ID
OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
//是否删除
IsRemove bool `db:"is_remove" json:"isRemove" check:"bool"`
//搜索
Search string `json:"search" check:"search" empty:"true"`
}
ArgsGetTopicGroupList 获取题库列表参数
type ArgsGetTopicList ¶
type ArgsGetTopicList struct {
//分页
Pages CoreSQLPages.ArgsDataList `json:"pages"`
//组织ID
OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
//是否删除
IsRemove bool `db:"is_remove" json:"isRemove" check:"bool"`
//搜索
Search string `json:"search" check:"search" empty:"true"`
}
ArgsGetTopicList 获取题目列表参数
type ArgsUpdateTopic ¶
type ArgsUpdateTopic struct {
//ID
ID int64 `db:"id" json:"id" check:"id"`
//组织ID
OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
//描述
Des string `db:"des" json:"des" check:"des" min:"1" max:"6000"`
//正确得分
Score int `db:"score" json:"score" check:"intThan0"`
//选项
// 单选、多选、判断
Options FieldsTopicOptions `db:"options" json:"options"`
//正确选项
// 可能是多个,用于支持单选、多选、判断、填空
// 注意填空题此处如果设置,则需des配合填写{marK}的字符,方便直到具体是哪个mark
Answer pq.StringArray `db:"answer" json:"answer" check:"marks" empty:"true"`
//解析
AnswerAnalysis string `db:"answer_analysis" json:"answerAnalysis" check:"des" min:"1" max:"10000" empty:"true"`
//扩展参数
Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
}
ArgsUpdateTopic 修改题目参数
type ArgsUpdateTopicGroup ¶
type ArgsUpdateTopicGroup struct {
//ID
ID int64 `db:"id" json:"id" check:"id"`
//组织ID
OrgID int64 `db:"org_id" json:"orgID" check:"id" empty:"true"`
//题库名称
Title string `db:"title" json:"title" check:"des" min:"1" max:"600"`
//题目列
TopicIDs pq.Int64Array `db:"topic_ids" json:"topicIDs" check:"ids"`
//扩展参数
Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
}
ArgsUpdateTopicGroup 修改题库参数
type DataGetTopicList ¶
type DataGetTopicList struct {
//ID
ID int64 `db:"id" json:"id"`
//创建时间
CreateAt time.Time `db:"create_at" json:"createAt"`
//更新时间
UpdateAt time.Time `db:"update_at" json:"updateAt"`
//删除时间
DeleteAt time.Time `db:"delete_at" json:"deleteAt"`
//组织ID
OrgID int64 `db:"org_id" json:"orgID"`
//描述
DesCut string `json:"desCut"`
//题目类型
// 0 单选; 1 多选; 2 判断; 3 填空题; 4 问答题
TopicType int `db:"topic_type" json:"topicType"`
//正确得分
Score int `db:"score" json:"score"`
//扩展参数
Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
}
func GetTopicList ¶
func GetTopicList(args *ArgsGetTopicList) (dataList []DataGetTopicList, dataCount int64, err error)
GetTopicList 获取题目列表
type FieldsLog ¶
type FieldsLog struct {
//ID
ID int64 `db:"id" json:"id"`
//创建时间
CreateAt time.Time `db:"create_at" json:"createAt"`
//结束时间
EndAt time.Time `db:"end_at" json:"endAt"`
//耗时
RunTime int `db:"run_time" json:"runTime"`
//组织ID
OrgID int64 `db:"org_id" json:"orgID"`
//用户ID
UserID int64 `db:"user_id" json:"userID"`
//参加考试
ProductID int64 `db:"product_id" json:"productID"`
//抽取的题目
// 考试可以为空,此设计不能为空
TopicIDs pq.Int64Array `db:"topic_ids" json:"topicIDs"`
//最终得分
// 得分根据正确得分分数递增得到
// 全局配置中,如果BlogExamScore100=true,则按照百分比计算:(正确数量 / 试卷总分数) x 10000
Score int `db:"score" json:"score"`
//错误数量
ErrCount int `db:"err_count" json:"errCount"`
//正确数量
CorrectCount int `db:"correct_count" json:"correctCount"`
}
FieldsLog 考试记录
func GetLogList ¶
func GetLogList(args *ArgsGetLogList) (dataList []FieldsLog, dataCount int64, err error)
GetLogList 获取日志列表
type FieldsProduct ¶
type FieldsProduct struct {
//ID
ID int64 `db:"id" json:"id"`
//创建时间
CreateAt time.Time `db:"create_at" json:"createAt"`
//更新时间
UpdateAt time.Time `db:"update_at" json:"updateAt"`
//删除时间
DeleteAt time.Time `db:"delete_at" json:"deleteAt"`
//开始时间
StartAt time.Time `db:"start_at" json:"startAt"`
//结束时间
EndAt time.Time `db:"end_at" json:"endAt"`
//组织ID
OrgID int64 `db:"org_id" json:"orgID"`
//标题
Title string `db:"title" json:"title"`
//题目列
TopicIDs pq.Int64Array `db:"topic_ids" json:"topicIDs"`
//是否直接反馈正确答案
ReturnAnswerNow bool `db:"return_answer_now" json:"returnAnswerNow"`
//扩展参数
Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
}
FieldsProduct 考试项目
func GetProductList ¶
func GetProductList(args *ArgsGetProductList) (dataList []FieldsProduct, dataCount int64, err error)
GetProductList 获取试卷列表
type FieldsTopic ¶
type FieldsTopic struct {
//ID
ID int64 `db:"id" json:"id"`
//创建时间
CreateAt time.Time `db:"create_at" json:"createAt"`
//更新时间
UpdateAt time.Time `db:"update_at" json:"updateAt"`
//删除时间
DeleteAt time.Time `db:"delete_at" json:"deleteAt"`
//组织ID
OrgID int64 `db:"org_id" json:"orgID"`
//描述
Des string `db:"des" json:"des"`
//题目类型
// 0 单选; 1 多选; 2 判断; 3 填空题; 4 问答题
TopicType int `db:"topic_type" json:"topicType"`
//正确得分
Score int `db:"score" json:"score"`
//选项
// 单选、多选、判断
Options FieldsTopicOptions `db:"options" json:"options"`
//正确选项
// 可能是多个,用于支持单选、多选、判断、填空
// 注意填空题此处如果设置,则需des配合填写{marK}的字符,方便直到具体是哪个mark
Answer pq.StringArray `db:"answer" json:"answer"`
//解析
AnswerAnalysis string `db:"answer_analysis" json:"answerAnalysis"`
//扩展参数
Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
}
FieldsTopic 考试题目
func CreateTopic ¶
func CreateTopic(args *ArgsCreateTopic) (data FieldsTopic, err error)
CreateTopic 创建新的题目
func CreateTopicMore ¶
func CreateTopicMore(args *ArgsCreateTopicMore) (dataList []FieldsTopic, errCode string, err error)
CreateTopicMore 批量创建考题
func GetRandTopic ¶
func GetRandTopic(orgID int64, limit int) (dataList []FieldsTopic)
GetRandTopic 随机抽取指定数量的题目
func GetTopicByIDs ¶
func GetTopicByIDs(ids []int64, haveRemove bool) (dataList []FieldsTopic)
GetTopicByIDs 获取一组题目
type FieldsTopicGroup ¶
type FieldsTopicGroup struct {
//ID
ID int64 `db:"id" json:"id"`
//创建时间
CreateAt time.Time `db:"create_at" json:"createAt"`
//更新时间
UpdateAt time.Time `db:"update_at" json:"updateAt"`
//删除时间
DeleteAt time.Time `db:"delete_at" json:"deleteAt"`
//组织ID
OrgID int64 `db:"org_id" json:"orgID"`
//访问量
VisitCount int64 `db:"visit_count" json:"visitCount"`
//题库名称
Title string `db:"title" json:"title"`
//题目列
TopicIDs pq.Int64Array `db:"topic_ids" json:"topicIDs"`
//扩展参数
Params CoreSQLConfig.FieldsConfigsType `db:"params" json:"params"`
}
FieldsTopicGroup 题库设计
func GetTopicGroupHaveAddVisit ¶
func GetTopicGroupHaveAddVisit(id int64) (data FieldsTopicGroup)
GetTopicGroupHaveAddVisit 获取题库详情并增加访问次数
func GetTopicGroupList ¶
func GetTopicGroupList(args *ArgsGetTopicGroupList) (dataList []FieldsTopicGroup, dataCount int64, err error)
GetTopicGroupList 获取题库列表
type FieldsTopicGroupLog ¶
type FieldsTopicGroupLog struct {
//ID
ID int64 `db:"id" json:"id"`
//日期
CreateDay time.Time `db:"create_day" json:"createDay"`
//耗时
// 秒
RunTime int `db:"run_time" json:"runTime"`
//组织ID
OrgID int64 `db:"org_id" json:"orgID"`
//用户ID
UserID int64 `db:"user_id" json:"userID"`
}
FieldsTopicGroupLog 学习日志记录
func GetTopicGroupLogSign ¶
func GetTopicGroupLogSign(userID int64, limit int64) (dataList []FieldsTopicGroupLog)
GetTopicGroupLogSign 获取用户最近签到情况
type FieldsTopicOption ¶
type FieldsTopicOption struct {
//选项
Mark string `db:"mark" json:"mark" check:"mark"`
//考题内容
Des string `db:"des" json:"des" check:"des" min:"1" max:"600"`
}
func (*FieldsTopicOption) Scan ¶
func (t *FieldsTopicOption) Scan(value interface{}) error
type FieldsTopicOptions ¶
type FieldsTopicOptions []FieldsTopicOption
func (*FieldsTopicOptions) Scan ¶
func (t *FieldsTopicOptions) Scan(value interface{}) error