using System;
using System.Collections.Generic;
using System.Text;
using Song.Entities;
using System.Data;
using WeiSha.Data;
namespace Song.ServiceInterfaces
{
///
/// 教师的管理
///
public interface ITeacher : WeiSha.Common.IBusinessInterface
{
#region 教师管理
///
/// 添加教师
///
/// 业务实体
/// 如果已经存在该教师,则返回-1
int TeacherAdd(Teacher entity);
///
/// 修改教师
///
/// 业务实体
void TeacherSave(Teacher entity);
///
/// 删除,按主键ID;
///
/// 实体的主键
void TeacherDelete(int identify);
///
/// 删除,按网站教师帐号名
///
/// 网站教师名称
void TeacherDelete(string accname, int orgid);
///
/// 删除教师
///
///
void TeacherDelete(Teacher entity);
void TeacherDelete(Teacher entity, DbTrans tran);
///
/// 获取单一实体对象,按主键ID;
///
/// 实体的主键
///
Teacher TeacherSingle(int identify);
///
/// 获取单一实体对象,按账号;
///
///
///
///
Teacher TeacherSingle(string accname, int orgid);
///
/// 登录
///
/// 账号,或身份证,或手机
/// 密码
///
///
Teacher TeacherLogin(string acc, string pw, int orgid);
///
/// 获取单一实体对象,按网站教师名称
///
/// 帐号名称
///
Teacher TeacherSingle(string accname, string pw, int orgid);
///
/// 当前用帐号是否重名
///
/// 教师帐号
///
bool IsTeacherExist(int orgid, string accname);
bool IsTeacherExist(int orgid, Teacher entity);
///
/// 获取对象;即所有网站教师;
///
///
Teacher[] TeacherAll(int orgid,bool? isUse);
///
/// 获取教师
///
/// 机构id
///
///
///
Teacher[] TeacherCount(int orgid, bool? isUse, int count);
///
/// 获取教师人数
///
///
///
///
int TeacherOfCount(int orgid, bool? isUse);
///
/// 导出Excel格式的教师信息
///
/// 导出文件的路径(服务器端)
/// 机构id
/// 教师分组id,小于0为全部
///
string TeacherExport4Excel(string path, int orgid, int sortid);
///
/// 分页获取所有的网站教师帐号;
///
/// 每页显示几条记录
/// 当前第几页
/// 记录总数
///
Teacher[] TeacherPager(int orgid, int size, int index, out int countSum);
///
/// 分页获取某教师组,所有的网站教师帐号;
///
///
/// 教师分组id
///
/// 是否在前台显示
///
///
///
///
///
Teacher[] TeacherPager(int orgid, int thsid, bool? isUse, bool? isShow, string searName, int size, int index, out int countSum);
#endregion
#region 教师分类管理
///
/// 添加学生分类
///
/// 业务实体
void SortAdd(TeacherSort entity);
///
/// 修改学生分类
///
/// 业务实体
void SortSave(TeacherSort entity);
///
/// 删除,按主键ID;
///
/// 实体的主键
/// 如果删除成功,返回0;如果组包括学生,返回-1;如果是默认组,返回-2
int SortDelete(int identify);
///
/// 获取单一实体对象,按主键ID;
///
/// 实体的主键
///
TeacherSort SortSingle(int identify);
///
/// 获取默认学生组
///
/// 机构id
///
TeacherSort SortDefault(int orgid);
///
/// 设置默认学生分类
///
///
///
///
void SortSetDefault(int orgid, int identify);
///
/// 获取对象;即所有学生组;
///
///
TeacherSort[] SortAll(int orgid, bool? isUse);
///
/// 获取指定个数的对象
///
///
///
///
///
TeacherSort[] SortCount(int orgid, bool? isUse, int count);
///
/// 获取某网站学生所属的组;
///
/// 网站学生id
///
TeacherSort Sort4Teacher(int studentId);
///
/// 获取某个组的所有网站学生
///
/// 分类id
///
Teacher[] Teacher4Sort(int sortid, bool? isUse);
///
/// 当前对象名称是否重名
///
/// 实体
///
bool SortIsExist(TeacherSort entity);
///
/// 将当前项目向上移动;仅在当前对象的同层移动,即同一父节点下的对象这前移动;
///
///
/// 如果已经处于顶端,则返回false;移动成功,返回true
bool SortRemoveUp(int orgid, int id);
///
/// 将当前项目向下移动;仅在当前对象的同层移动,即同一父节点下的对象这前移动;
///
///
/// 如果已经处于顶端,则返回false;移动成功,返回true
bool SortRemoveDown(int orgid, int id);
#endregion
#region 教师履历管理
///
/// 添加教师
///
/// 业务实体
/// 如果已经存在该教师,则返回-1
int HistoryAdd(TeacherHistory entity);
///
/// 修改教师
///
/// 业务实体
void HistorySave(TeacherHistory entity);
///
/// 删除,按主键ID;
///
/// 实体的主键
void HistoryDelete(int identify);
///
/// 获取单一实体对象,按主键ID;
///
/// 实体的主键
///
TeacherHistory HistorySingle(int identify);
///
/// 获取对象;即所有网站教师;
///
///
TeacherHistory[] HistoryAll(int thid);
///
/// 获取教师
///
/// 机构id
///
///
///
TeacherHistory[] HistoryCount(int thid, int count);
#endregion
#region 教师评价管理
///
/// 添加教师评价
///
/// 业务实体
///
int CommentAdd(TeacherComment entity);
///
/// 修改教师评价信息
///
/// 业务实体
void CommentSave(TeacherComment entity);
///
/// 删除,按主键ID;
///
/// 实体的主键
void CommentDelete(int identify);
///
/// 获取单一实体对象,按主键ID;
///
/// 实体的主键
///
TeacherComment CommentSingle(int identify);
///
/// 某天内,最近一次学员给教师的评价
///
/// 教师id
/// 学员id
/// 当前天数
///
TeacherComment CommentSingle(int thid, int accid, int day);
///
/// 计算教师的评分,从当前日期之前的多少天内
///
/// 评分教师的id
/// 从当前日期之前的多少天内,小于或等于0表示取所有
///
double CommentScore(int thid, int day);
///
/// 计算教师的评分,通过起始时间
///
/// 评分教师的id
/// 开始时间
/// 结束时间
///
double CommentScore(int thid, DateTime? start, DateTime? end);
///
/// 获取教师的评价
///
/// 教师id
///
///
///
TeacherComment[] CommentCount(int thid, bool? isUse, bool? isShow, int count);
///
/// 教师评分排行
///
///
///
///
/// 多少天内的排行
/// 获取个数
///
TeacherComment[] CommentOrder(int orgid, bool? isUse, bool? isShow, int day, int count);
///
/// 某天内,学员给教师的评价数
///
/// 教师id
/// 学员id
/// 当前天数
///
int CommentOfCount(int thid, int accid, int day);
///
/// 当前机构下的所有教师评价信息
///
///
///
///
///
///
///
///
TeacherComment[] CommentPager(int orgid, bool? isUse, bool? isShow, int size, int index, out int countSum);
///
/// 当前机构下某个教师的评价信息
///
///
/// 教师id
///
///
///
///
///
///
TeacherComment[] CommentPager(int orgid, int thid, bool? isUse, bool? isShow, int size, int index, out int countSum);
///
/// 当前机构下某个教师的评价信息
///
///
/// 教师姓名
///
///
///
///
///
///
TeacherComment[] CommentPager(int orgid, string thname, bool? isUse, bool? isShow, int size, int index, out int countSum);
#endregion
}
}