107 lines
2.9 KiB
Go
107 lines
2.9 KiB
Go
![]() |
// Package service
|
|||
|
// @Link https://github.com/bufanyun/hotgo
|
|||
|
// @Copyright Copyright (c) 2023 HotGo CLI
|
|||
|
// @Author Yl <yl@example.com>
|
|||
|
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
|
|||
|
package service
|
|||
|
|
|||
|
import (
|
|||
|
"context"
|
|||
|
"hotgo/api/admin/mycourse"
|
|||
|
"github.com/gogf/gf/v2/frame/g"
|
|||
|
"github.com/gogf/gf/v2/os/gtime"
|
|||
|
"github.com/gogf/gf/v2/util/gconv"
|
|||
|
)
|
|||
|
|
|||
|
type sMyCourse struct{}
|
|||
|
|
|||
|
func init() {
|
|||
|
service := &sMyCourse{}
|
|||
|
if err := gconv.Struct(service, &MyCourse); err != nil {
|
|||
|
g.Log().Fatal(context.TODO(), err)
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
func MyCourse() *sMyCourse {
|
|||
|
return &sMyCourse{}
|
|||
|
}
|
|||
|
|
|||
|
// List 获取我的课程列表(模拟数据)
|
|||
|
func (s *sMyCourse) List(ctx context.Context, userId uint64, req *mycourse.MyCourseListReq) (list []*mycourse.MyCourseListModel, totalCount int, err error) {
|
|||
|
// 模拟数据 - 根据截图内容
|
|||
|
mockData := []*mycourse.MyCourseListModel{
|
|||
|
{
|
|||
|
Id: 1,
|
|||
|
CourseId: 1,
|
|||
|
Title: "教育心理学的起源",
|
|||
|
Subtitle: "计算机二级考前直播",
|
|||
|
CoverImage: "/uploads/course/cover1.jpg",
|
|||
|
Instructor: "代万权",
|
|||
|
Subject: "史学",
|
|||
|
Description: "本课程紧跟风向,让每一位数据了解数据分析使用DeepSeek,结合办公自动化职业岗位标准,以实际工作任务为导向,强调课程内容的实用性和针对性,课程内容紧贴全国计算机等级考试,技能。",
|
|||
|
TotalEpisodes: 9,
|
|||
|
TotalLessons: 54,
|
|||
|
TotalDuration: "12小时43分钟",
|
|||
|
StudiedDuration: "10小时20分钟",
|
|||
|
StudyStatus: 1,
|
|||
|
StudyStatusText: "学习中",
|
|||
|
EnrollmentTime: gtime.New("2025-01-20 10:30:00"),
|
|||
|
},
|
|||
|
{
|
|||
|
Id: 2,
|
|||
|
CourseId: 2,
|
|||
|
Title: "数据分析基础",
|
|||
|
Subtitle: "Python数据分析入门",
|
|||
|
CoverImage: "/uploads/course/cover2.jpg",
|
|||
|
Instructor: "张老师",
|
|||
|
Subject: "计算机",
|
|||
|
Description: "从零开始学习Python数据分析,掌握pandas、numpy等核心库的使用方法。",
|
|||
|
TotalEpisodes: 8,
|
|||
|
TotalLessons: 32,
|
|||
|
TotalDuration: "16小时",
|
|||
|
StudiedDuration: "16小时",
|
|||
|
StudyStatus: 2,
|
|||
|
StudyStatusText: "已完结",
|
|||
|
EnrollmentTime: gtime.New("2025-01-15 09:00:00"),
|
|||
|
},
|
|||
|
}
|
|||
|
|
|||
|
// 根据学习状态筛选
|
|||
|
if req.StudyStatus > 0 {
|
|||
|
var filteredData []*mycourse.MyCourseListModel
|
|||
|
for _, item := range mockData {
|
|||
|
if item.StudyStatus == req.StudyStatus {
|
|||
|
filteredData = append(filteredData, item)
|
|||
|
}
|
|||
|
}
|
|||
|
mockData = filteredData
|
|||
|
}
|
|||
|
|
|||
|
totalCount = len(mockData)
|
|||
|
|
|||
|
// 分页处理
|
|||
|
pageNum := req.Page
|
|||
|
pageSize := req.Size
|
|||
|
if pageNum <= 0 {
|
|||
|
pageNum = 1
|
|||
|
}
|
|||
|
if pageSize <= 0 {
|
|||
|
pageSize = 10
|
|||
|
}
|
|||
|
|
|||
|
start := (pageNum - 1) * pageSize
|
|||
|
end := start + pageSize
|
|||
|
|
|||
|
if start >= totalCount {
|
|||
|
list = []*mycourse.MyCourseListModel{}
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
if end > totalCount {
|
|||
|
end = totalCount
|
|||
|
}
|
|||
|
|
|||
|
list = mockData[start:end]
|
|||
|
return
|
|||
|
}
|