Files
wk-backend/internal/ckwk/resp.go
zhilv 2a6732ffe7 fix: 修复6个bug并接入CodeStable工作流
Bug修复:
- GetWorkList 使用了错误的 RecordType (RecordStudy→RecordWork)
- AllRecord handler 返回错误的分页信息 (page硬编码1, pageSize用RecordsCount)
- CourseParse creditNode nil panic (加nil检查)
- WebSocket CheckOrigin 安全漏洞 (release模式限制为同源)
- math/rand 可预测 (替换为 crypto/rand)
- GetDiscussList 未实现 (补全实现, 移除重复路由)

其他:
- 接入 CodeStable 工作流体系 (codestable/ 骨架 + AGENTS.md)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-25 19:55:57 +08:00

155 lines
5.2 KiB
Go

package ckwk
// 获取验证码响应
type CodeResp struct {
Code int `json:"code"`
Message string `json:"message"`
Data string `json:"data"`
}
type LoginFormError struct {
Code string `json:"code"`
}
// 登录响应
type LoginResp struct {
RefreshCode int `json:"refresh_code"`
Status bool `json:"status"`
Msg string `json:"msg"`
Back string `json:"back"`
FormError LoginFormError `json:"formError"`
}
type StudyResp struct {
State int `json:"state"`
StudyID int `json:"studyId"`
Status bool `json:"status"`
Msg string `json:"msg"`
}
type AllRecordResp[T any] struct {
List []T `json:"list"`
PageInfo PageInfo `json:"pageInfo"`
Status bool `json:"status"`
Msg string `json:"msg"`
}
type PageInfo struct {
KeyName string `json:"keyName"`
Page int `json:"page"`
PageCount int `json:"pageCount"`
RecordsCount int `json:"recordsCount"`
OnlyCount int `json:"onlyCount"`
PageSize int `json:"pageSize"`
}
// 学习记录列表
type StudyList struct {
ID string `json:"id"`
Name string `json:"name"`
Type interface{} `json:"type"`
ChapterID string `json:"chapterId"`
CourseID string `json:"courseId"`
VideoFile string `json:"videoFile"`
VideoDuration string `json:"videoDuration"`
VotingPath interface{} `json:"votingPath"`
TabVideo string `json:"tabVideo"`
TabFile string `json:"tabFile"`
TabVote string `json:"tabVote"`
TabWork string `json:"tabWork"`
TabExam string `json:"tabExam"`
Sort string `json:"sort"`
VideoMode string `json:"videoMode"`
LocalFile string `json:"localFile"`
SchoolID string `json:"schoolId"`
Lock string `json:"lock"`
UnlockTime string `json:"unlockTime"`
Bid string `json:"bid"`
Duration string `json:"duration"`
Progress string `json:"progress"`
State string `json:"state"`
ViewCount string `json:"viewCount"`
FinalTime string `json:"finalTime"`
Error int `json:"error"`
ErrorMessage string `json:"errorMessage"`
BeginTime string `json:"beginTime"`
ViewedDuration string `json:"viewedDuration"`
URL string `json:"url"`
}
// 作业记录列表
type WorkList struct {
ID string `json:"id"`
UserID any `json:"userId"`
Title string `json:"title"`
TopicNumber string `json:"topicNumber"`
Score string `json:"score"`
Type string `json:"type"`
Remarks string `json:"remarks"`
AddTime string `json:"addTime"`
Sequence string `json:"sequence"`
NodeID string `json:"nodeId"`
CourseID string `json:"courseId"`
StartTime string `json:"startTime"`
EndTime string `json:"endTime"`
PaperID string `json:"paperId"`
CreateUserID string `json:"createUserId"`
IsPrivate string `json:"isPrivate"`
ClassList string `json:"classList"`
TeacherType string `json:"teacherType"`
Allow string `json:"allow"`
Frequency string `json:"frequency"`
ScoringRules string `json:"scoringRules"`
HasCollect string `json:"hasCollect"`
Lock any `json:"lock"`
SchoolID string `json:"schoolId"`
Parsing string `json:"parsing"`
AddDate string `json:"addDate"`
Name string `json:"name"`
ChapterID string `json:"chapterId"`
State string `json:"state"`
SubmitTime string `json:"submitTime"`
FinalScore string `json:"finalScore"`
TypeName string `json:"typeName"`
FinishTime string `json:"finishTime"`
URL string `json:"url"`
}
// 考试记录列表
type ExamList struct {
ID string `json:"id"`
UserID interface{} `json:"userId"`
Title string `json:"title"`
TopicNumber string `json:"topicNumber"`
Score string `json:"score"`
AddTime string `json:"addTime"`
NodeID string `json:"nodeId"`
CourseID string `json:"courseId"`
LimitedTime string `json:"limitedTime"`
Sequence string `json:"sequence"`
Remarks string `json:"remarks"`
PaperID string `json:"paperId"`
StartTime string `json:"startTime"`
EndTime string `json:"endTime"`
CreateUserID string `json:"createUserId"`
ClassList string `json:"classList"`
IsPrivate string `json:"isPrivate"`
TeacherType string `json:"teacherType"`
Allow string `json:"allow"`
Frequency string `json:"frequency"`
HasCollect string `json:"hasCollect"`
SchoolID string `json:"schoolId"`
Parsing string `json:"parsing"`
AddDate string `json:"addDate"`
Random string `json:"random"`
RandData interface{} `json:"randData"`
RandNumber string `json:"randNumber"`
Name string `json:"name"`
ChapterID string `json:"chapterId"`
State string `json:"state"`
SubmitTime string `json:"submitTime"`
FinalScore string `json:"finalScore"`
FinishTime string `json:"finishTime"`
URL string `json:"url"`
}