using System; using System.Collections.Generic; using System.Text; using System.Data; using Song.Entities; namespace Song.ServiceInterfaces { /// /// 课程管理 /// public interface ICourse : WeiSha.Common.IBusinessInterface { #region 课程管理 /// /// 添加课程 /// /// 业务实体 void CourseAdd(Course entity); /// /// 批量添加课程,可用于导入时 /// /// 机构id /// 专业id /// 名称,可以是用逗号分隔的多个名称 /// Course CourseBatchAdd(int orgid, int sbjid, string names); /// /// 是否已经存在课程 /// /// 机构id /// 专业id /// 上级id /// /// Course CourseIsExist(int orgid, int sbjid, int pid, string name); /// /// 修改课程 /// /// 业务实体 void CourseSave(Course entity); /// /// 是否为直播课 /// /// /// bool IsLiveCourse(int couid); /// /// 是否为直播课 /// /// /// 校验,如果为true,则检索课程下所有章节,有直播章节,则课程为直播课程 /// bool IsLiveCourse(int couid, bool check); /// /// 增加课程浏览数 /// /// /// int CourseViewNum(Course entity, int num); /// /// 增加课程浏览数 /// /// /// /// int CourseViewNum(int couid, int num); /// /// 删除课程 /// /// 业务实体 void CourseDelete(Course entity); /// /// 删除,按主键ID; /// /// 实体的主键 void CourseDelete(int identify); /// /// 获取单一实体对象,按主键ID; /// /// 实体的主键 /// Course CourseSingle(int identify); /// /// 获取课程名称,如果为多级,则带上父级名称 /// /// /// string CourseName(int identify); /// /// 获取所有课程 /// /// 所在机构id /// 教师id /// /// List CourseAll(int orgid, int sbjid, int thid, bool? isUse); /// /// 某个课程的学习人数 /// /// 课程id /// 是否取全部值,如果为false,则仅取当前正在学习的 /// int CourseStudentSum(int couid, bool? isAll); /// /// 清除课程的内容 /// /// void CourseClear(int identify); /// /// 获取指定个数的课程列表 /// /// 所在机构id /// 专业id,等于0取所有 /// 教师id /// 上级课程ID /// /// 取多少条记录,如果小于等于0,则取所有 /// List CourseCount(int orgid, int sbjid, int thid, int pid, string sear, bool? isUse, int count); List CourseCount(int orgid, int sbjid, string sear, bool? isUse, int count); /// /// 获取指定个数的课程列表 /// /// 机构id /// 专业id /// 教师id /// 是否有直播课 /// /// /// /// List CourseCount(int orgid, int sbjid, int thid, bool? islive, string sear, bool? isUse, int count); /// /// 获取指定个数的课程列表 /// /// 所在机构id /// 专业id,等于0取所有 /// /// /// 排序方式,def:默认,先推荐,然后按访问量倒序;flux:按访问量倒序;tax:按自定义排序要求;new:按创建时间,最新发布在前面;rec:按推荐,先推荐,然后按tax排序 /// /// List CourseCount(int orgid, int sbjid, string sear, bool? isUse, string order, int count); /// /// 课程数量 /// /// 机构id /// 专业id /// 教师id /// int CourseOfCount(int orgid, int sbjid, int thid); /// /// 当前课程下是否有子级 /// /// /// /// /// bool CourseIsChildren(int orgid, int couid, bool? isUse); /// /// 分页获取 /// /// /// /// /// /// /// /// /// List CoursePager(int orgid, int thid, bool? isUse, string searTxt, int size, int index, out int countSum); /// /// 查询我相关的课程 /// /// /// /// /// /// /// /// /// List CoursePager(int orgid, int sbjid, string searTxt, string order, int size, int index, out int countSum); /// /// 分页获取 /// /// /// /// /// /// /// 排序方式,默认null按排序顺序,flux流量最大优先 /// /// /// /// List CoursePager(int orgid, int sbjid, int thid, bool? isUse, string searTxt, string order, int size, int index, out int countSum); /// /// 分页获取 /// /// /// 专业id,多个id用逗号分隔 /// /// /// 排序方式,def:默认,先推荐,然后按访问量倒序;flux:按访问量倒序;tax:按自定义排序要求;new:按创建时间,最新发布在前面;rec:按推荐,先推荐,然后按tax排序 /// /// /// /// List CoursePager(int orgid, string sbjid, bool? isUse, string searTxt, string order, int size, int index, out int countSum); /// /// 分页获取 /// /// /// /// /// 是否是直播课 /// /// /// /// /// /// List CoursePager(int orgid, string sbjid, bool? isUse, bool? isLive, string searTxt, string order, int size, int index, out int countSum); /// /// 将当前项目向上移动;仅在当前对象的同层移动,即同一父节点下的对象这前移动; /// /// /// 如果已经处于顶端,则返回false;移动成功,返回true bool CourseUp(int id); /// /// 将当前项目向下移动;仅在当前对象的同层移动,即同一父节点下的对象这前移动; /// /// /// 如果已经处于顶端,则返回false;移动成功,返回true bool CourseDown(int id); #endregion #region 课程购买 /// /// 购买课程 /// /// 学生与课程的关联对象 Student_Course Buy(Student_Course stc); /// /// 购买课程 /// /// 学员id /// 课程id /// 价格项 /// Student_Course Buy(int stid, int couid, Song.Entities.CoursePrice price); /// /// 免费学习 /// /// 学习ID /// 课程ID /// Student_Course FreeStudy(int stid, int couid); /// /// 免费学习 /// /// 学习ID /// 课程ID /// 免费时效的开始时间,如果为空,则不记录开始时间 /// 免费时效的结束时间 /// Student_Course FreeStudy(int stid, int couid, DateTime? start, DateTime end); /// /// 学员是否购买了该课程 /// /// 课程id /// 学员Id /// 0不管是否过期,1必须是购买时效内的,2必须是购买时效外的 /// 返回课程 Course IsBuyCourse(int couid, int stid, int state); /// /// 学员是否购买了该课程 /// /// 课程id /// 学员id /// bool IsBuy(int couid, int stid); /// /// 课程试用,默认试用一百年 /// /// 学员id /// 课程id Student_Course Tryout(int stid, int couid); /// /// 是否试用该课程 /// /// /// /// bool IsTryout(int couid, int stid); /// /// 直接学习该课程 /// /// 课程id /// 学员id /// 如果是免费或限时免费、或试学的课程,可以学习并返回true,不可学习返回false bool Study(int couid, int stid); /// /// 学生购买课程的记录项 /// /// 学员Id /// 课程id /// Student_Course StudentCourse(int stid, int couid); /// /// 取消课程学习,直接删除购买记录 /// /// /// void DelteCourseBuy(int stid, int couid); /// /// 学员购买的该课程 /// /// 学员Id /// 用于检索的字符 /// 0不管是否过期,1必须是购买时效内的,2必须是购买时效外的 /// 是否试用,为null时取所有 /// 取多少条 /// List CourseForStudent(int stid, string sear, int state, bool? istry, int count); #endregion #region 课程关联管理(与学生或教师) /// /// 获取选学人数最多的课程列表,从多到少 /// /// 机构Id /// 专业id /// 取多少条 /// DataSet CourseHot(int orgid, int sbjid, int count); /// /// 某个学生是否正在学习某个课程 /// /// /// /// bool StudyIsCourse(int stid, int couid); /// /// 购买 /// /// 学生Id /// 课程id /// void CourseBuy(int stid, int couid, float money, DateTime startTime, DateTime endTime); /// /// 获取某个教师关联的课程 /// /// /// /// List Course4Teacher(int thid, int count); /// /// 学习某个课程的学员 /// /// /// /// /// /// /// /// Accounts[] Student4Course(int couid, string stname, string stmobi, int size, int index, out int countSum); #endregion #region 价格管理 /// /// 添加价格记录 /// /// 业务实体 void PriceAdd(CoursePrice entity); /// /// 修改价格记录 /// /// 业务实体 void PriceSave(CoursePrice entity); /// /// 删除价格记录 /// /// 业务实体 void PriceDelete(CoursePrice entity); /// /// 删除,按主键ID; /// /// 实体的主键 void PriceDelete(int identify); /// /// 删除,按全局唯一标识 /// /// void PriceDelete(string uid); /// /// 将产品价格写入到课程所在的表,取第一条价格 /// /// 课程UID void PriceSetCourse(string uid); /// /// 获取单一实体对象,按主键ID; /// /// 实体的主键 /// CoursePrice PriceSingle(int identify); /// /// 获取价格记录 /// /// /// /// /// /// CoursePrice[] PriceCount(int couid, string uid, bool? isUse, int count); /// /// 将当前项目向上移动;仅在当前对象的同层移动,即同一父节点下的对象这前移动; /// /// /// 如果已经处于顶端,则返回false;移动成功,返回true bool PriceUp(int id); /// /// 将当前项目向下移动;仅在当前对象的同层移动,即同一父节点下的对象这前移动; /// /// /// 如果已经处于顶端,则返回false;移动成功,返回true bool PriceDown(int id); #endregion } }