93 lines
3.3 KiB
C#
93 lines
3.3 KiB
C#
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
|
||
}
|
||
}
|