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