init: 第一次提交
- 以实现登录获取个人信息和课程 - 实现了获取视频记录 - 实现了学习接口
This commit is contained in:
77
internal/ckwk/types.go
Normal file
77
internal/ckwk/types.go
Normal file
@@ -0,0 +1,77 @@
|
||||
package ckwk
|
||||
|
||||
import (
|
||||
"ckwk/pkg/log"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type CourseKind string
|
||||
type RecordType string
|
||||
type StudyStatus int
|
||||
|
||||
const (
|
||||
Run CourseKind = "run" // 我的课程
|
||||
Finish CourseKind = "finish" // 已结束
|
||||
Sign CourseKind = "sign" // 报名中
|
||||
|
||||
RecordStudy RecordType = "" // 学习记录
|
||||
RecordWork RecordType = "/work" // 作业记录
|
||||
RecordExam RecordType = "/exam" // 考试记录
|
||||
RecordDiscuss RecordType = "/discuss" // 讨论记录
|
||||
|
||||
StudyStart StudyStatus = 1 // 开始学习
|
||||
Study StudyStatus = 2 // 学习中
|
||||
StudyOver StudyStatus = 3 // 学习介绍
|
||||
)
|
||||
|
||||
// User: 用户
|
||||
type User struct {
|
||||
Name string `json:"name"`
|
||||
ID string `json:"id"`
|
||||
Dept string `json:"dept"`
|
||||
Class string `json:"class"`
|
||||
Gender string `json:"gender"`
|
||||
}
|
||||
|
||||
// Course: 课程
|
||||
type Course struct {
|
||||
Name string `json:"name"`
|
||||
ID int `json:"id"`
|
||||
Teacher string `json:"teacher"`
|
||||
Progress string `json:"progress"`
|
||||
StartTime string `json:"start_time"`
|
||||
StopTime string `json:"stop_time"`
|
||||
Credit float32 `json:"credit"`
|
||||
Type string `json:"type"`
|
||||
}
|
||||
|
||||
func GetRecords[T any](wk *WK, rType RecordType, courseID, page string) (*AllRecordResp[T], error) {
|
||||
log.Debug("获取记录信息", zap.String("host", wk.Host), zap.String("type", string(rType)))
|
||||
resp, err := wk.Req.
|
||||
R().
|
||||
SetQueryParams(map[string]string{
|
||||
"courseId": courseID,
|
||||
"page": page,
|
||||
"_": fmt.Sprint(time.Now().UnixMilli()),
|
||||
}).
|
||||
Get(fmt.Sprintf("https://%s/user/study_record%s.json", wk.Host, rType))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var result AllRecordResp[T]
|
||||
if err := json.Unmarshal(resp.Bytes(), &result); err != nil {
|
||||
log.Error("JSON解析失败", zap.Error(err))
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if !result.Status {
|
||||
return &result, fmt.Errorf("接口报错: %s", result.Msg)
|
||||
}
|
||||
|
||||
return &result, nil
|
||||
}
|
||||
Reference in New Issue
Block a user