ZhiYeJianKang_PeiXun/Song.ServiceInterfaces/ICourse.cs

434 lines
18 KiB
C#
Raw Permalink Normal View History

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