ZhiYeJianKang_PeiXun/Song.ViewData/Methods/Course.cs
2025-02-20 15:41:53 +08:00

93 lines
3.3 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//using System.Web.Mvc;
using Song.Entities;
using Song.ServiceInterfaces;
using Song.ViewData.Attri;
using WeiSha.Common;
namespace Song.ViewData.Methods
{
/// <summary>
/// 课程管理
/// </summary>
[HttpGet]
public class Course : IViewAPI
{
/// <summary>
/// 根据课程ID获取课程信息
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[Cache(Expires = 60)]
public Song.Entities.Course ForID(int id)
{
Song.Entities.Course cur = Business.Do<ICourse>().CourseSingle(id);
return _tran(cur);
}
/// <summary>
/// 分页获取课程
/// </summary>
/// <param name="orgid">机构id</param>
/// <param name="sbjids">章节id可以为多个以逗号分隔</param>
/// <param name="search">检索字符,按课程名称</param>
/// <param name="size">每页几条</param>
/// <param name="index">第几页</param>
/// <returns></returns>
public ListResult Pager(int orgid, string sbjids, string search, int size, int index)
{
int count = 0;
List<Song.Entities.Course> eas = null;
eas = Business.Do<ICourse>().CoursePager(orgid, sbjids, true, search, "", size, index, out count);
for (int i = 0; i < eas.Count; i++)
{
eas[i] = _tran(eas[i]);
}
ListResult result = new ListResult(eas);
result.Index = index;
result.Size = size;
result.Total = count;
return result;
}
/// <summary>
/// 记录当前学员的视频学习进度
/// </summary>
/// <param name="couid">课程ID</param>
/// <param name="olid">章节ID</param>
/// <param name="playTime">观看进度,单位:毫秒</param>
/// <param name="studyTime">学习时间,单位:秒</param>
/// <param name="totalTime">视频总时长,单位:秒</param>
/// <returns></returns>
[Student]
[HttpPost]
public double StudyLog(int couid, int olid, int playTime, int studyTime, int totalTime)
{
//当前学员
Song.Entities.Accounts student = Extend.LoginState.Accounts.CurrentUser;
if (student == null) return -1;
double per = Business.Do<IStudent>().LogForStudyUpdate(couid, olid, student, playTime*1000, studyTime, totalTime*1000);
return per;
}
#region
/// <summary>
/// 处理课程信息图片转为全路径并生成clone对象
/// </summary>
/// <param name="cour">课程对象的clone</param>
/// <returns></returns>
private Song.Entities.Course _tran(Song.Entities.Course cour)
{
if (cour == null) return cour;
Song.Entities.Course curr = cour.Clone<Song.Entities.Course>();
curr.Cou_Logo = WeiSha.Common.Upload.Get["Course"].Virtual + curr.Cou_Logo;
curr.Cou_LogoSmall = WeiSha.Common.Upload.Get["Course"].Virtual + curr.Cou_LogoSmall;
return curr;
}
#endregion
}
}