Commit e563b203 authored by 吴春's avatar 吴春

Merge branch 'master' of http://gitlab.oytour.com/Kui2/education

parents af4695ee a6dc7b1b
......@@ -608,5 +608,14 @@ namespace Edu.Common
return dt;
}
}
/// <summary>
/// 获取字母排序
/// </summary>
public static string ClassNoLetterStr {
get {
return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
}
}
}
}
\ No newline at end of file
using Edu.Common.Plugin;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Common.Enum.Course
{
/// <summary>
/// 日语等级枚举
/// </summary>
public enum CourseRateEnum
{
/// <summary>
/// 基础课程
/// </summary>
[EnumField("基础课程")]
BASE=1,
/// <summary>
/// N5课程
/// </summary>
[EnumField("N5课程")]
N5 = 2,
/// <summary>
/// N4课程
/// </summary>
[EnumField("N4课程")]
N4 = 3,
/// <summary>
/// N3课程
/// </summary>
[EnumField("N3课程")]
N3 = 4,
/// <summary>
/// N2课程
/// </summary>
[EnumField("N2课程")]
N2 = 5,
/// <summary>
/// N1课程
/// </summary>
[EnumField("N1课程")]
N1 = 6,
/// <summary>
/// 专业课程
/// </summary>
[EnumField("专业课程")]
MAJOR = 7,
/// <summary>
/// 其它
/// </summary>
[EnumField("其他")]
OTHER = 8,
}
}
......@@ -198,5 +198,21 @@ namespace Edu.Model.Entity.Course
/// 上课人数
/// </summary>
public StudentNumTypeEnum? StudentNumType { get; set; }
}
/// <summary>
/// 课时分钟数
/// </summary>
public int ClassHourMinute { get; set; }
/// <summary>
/// 班级编号
/// </summary>
public string ClassNo { get; set; }
/// <summary>
/// 班级编号 - 字母排序
/// </summary>
public int ClassLetterNum { get; set; }
}
}
......@@ -62,5 +62,11 @@ namespace Edu.Model.Entity.Course
/// 删除状态
/// </summary>
public DateStateEnum Status { get; set; }
}
/// <summary>
/// 班级编码前缀
/// </summary>
public string ClassNoPrefix { get; set; }
}
}
using Edu.Common.Enum;
using Edu.Common.Enum.Course;
using System;
using VT.FW.DB;
......@@ -99,6 +100,36 @@ namespace Edu.Model.Entity.Course
/// <summary>
/// 排序
/// </summary>
public int SortNum { get; set; }
public double SortNum { get; set; }
/// <summary>
/// 学习课时
/// </summary>
public int StudyHours { get; set; }
/// <summary>
/// 学习分钟
/// </summary>
public int StudyMinutes { get; set; }
/// <summary>
/// 教学重点
/// </summary>
public string Objectives { get; set; }
/// <summary>
/// 学生学习要求
/// </summary>
public string Requirement { get; set; }
/// <summary>
/// 对应专业
/// </summary>
public CourseRateEnum CourseRate { get; set; }
/// <summary>
/// 当前课时(累加计算)
/// </summary>
public int CurrentHours { get; set; }
}
}
using System;
using Edu.Common.Enum.Course;
using System;
using System.Collections.Generic;
using System.Text;
......@@ -51,5 +52,39 @@ namespace Edu.Model.ViewModel.Course
/// </summary>
public int Progress { get; set; }
/// <summary>
/// 学习课时
/// </summary>
public int StudyHours { get; set; }
/// <summary>
/// 学习分钟
/// </summary>
public int StudyMinutes { get; set; }
/// <summary>
/// 教学重点
/// </summary>
public string Objectives { get; set; }
/// <summary>
/// 学生学习要求
/// </summary>
public string Requirement { get; set; }
/// <summary>
/// 对应专业
/// </summary>
public CourseRateEnum CourseRate { get; set; }
/// <summary>
/// 课程等级名称
/// </summary>
public string CourseRateName { get; set; }
/// <summary>
/// 当前课时(累加计算)
/// </summary>
public int CurrentHours { get; set; }
}
}
......@@ -97,6 +97,11 @@ namespace Edu.Model.ViewModel.Course
/// </summary>
public string ClassName { get; set; }
/// <summary>
/// 班级编号
/// </summary>
public string ClassNo { get; set; }
/// <summary>
/// 班级类型
/// </summary>
......@@ -117,6 +122,11 @@ namespace Edu.Model.ViewModel.Course
/// </summary>
public decimal BaseHourFee { get; set; }
/// <summary>
/// 班级课时分钟数
/// </summary>
public int ClassHourMinute { get; set; }
/// <summary>
/// 合同编号
/// </summary>
......
......@@ -53,6 +53,11 @@ namespace Edu.Model.ViewModel.Course
/// </summary>
public int ClassType { get; set; }
/// <summary>
/// 班级课时分钟数
/// </summary>
public int ClassHourMinute { get; set; }
/// <summary>
/// 老师头像
/// </summary>
......
......@@ -60,6 +60,11 @@ namespace Edu.Model.ViewModel.Course
/// </summary>
public string ClassName { get; set; }
/// <summary>
/// 班级编号
/// </summary>
public string ClassNo { get; set; }
/// <summary>
/// 调整金额
/// </summary>
......
......@@ -21,10 +21,21 @@ namespace Edu.Model.ViewModel.Course
/// 教师名称
/// </summary>
public string TeacherName { get; set; }
/// <summary>
/// 时间段
/// </summary>
public string TimeBucket { get; set; }
/// <summary>
/// 班级名称
/// </summary>
public string ClassName { get; set; }
/// <summary>
/// 班级编号
/// </summary>
public string ClassNo { get; set; }
/// <summary>
/// 代课课时
/// </summary>
......@@ -39,5 +50,38 @@ namespace Edu.Model.ViewModel.Course
/// 奖金确认 1是
/// </summary>
public int Q_BonusConfirm { get; set; }
#region 报表统计
/// <summary>
/// 课程id
/// </summary>
public int CouseId { get; set; }
/// <summary>
/// 课程名称
/// </summary>
public string CourseName { get; set; }
/// <summary>
/// 课时数量
/// </summary>
public decimal KSNum { get; set; }
/// <summary>
/// 抵扣课时数量
/// </summary>
public decimal DKNum { get; set; }
/// <summary>
/// 小时
/// </summary>
public decimal Hours { get; set; }
/// <summary>
/// 小时课时费
/// </summary>
public decimal HourMoney { get; set; }
#endregion
}
}
\ No newline at end of file
This diff is collapsed.
using Edu.AOP.CustomerAttribute;
using Edu.Common.Enum;
using Edu.Common.Plugin;
using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.Question;
using Edu.Model.ViewModel.User;
......@@ -97,6 +98,11 @@ namespace Edu.Module.Course
/// </summary>
private readonly RB_ClassRepository classRepository = new RB_ClassRepository();
/// <summary>
/// 班级基础配置仓储层对象
/// </summary>
private readonly RB_Class_ConfigRepository class_ConfigRepository = new RB_Class_ConfigRepository();
#region 课程管理
/// <summary>
......@@ -479,7 +485,7 @@ namespace Edu.Module.Course
{
List<ChapterTree_ViewModel> resultList = new List<ChapterTree_ViewModel>();
//获取下级节点
var subList = sourceList?.Where(qItem => qItem.ParentId == parentId).OrderBy(qitem => qitem.SortNum).ToList();
var subList = sourceList?.Where(qItem => qItem.ParentId == parentId).OrderBy(qitem =>qitem.SortNum).ToList();
//如果存在下级节点
if (subList != null && subList.Count > 0)
{
......@@ -495,7 +501,14 @@ namespace Edu.Module.Course
CourseId = childItem.CourseId,
ChildList = new List<ChapterTree_ViewModel>(),
OpenStatus = childItem.OpenStatus,
Progress = childItem.Progress
Progress = childItem.Progress,
StudyHours = childItem.StudyHours,
Objectives = childItem.Objectives,
Requirement = childItem.Requirement,
CourseRate = childItem.CourseRate,
StudyMinutes = childItem.StudyMinutes,
CurrentHours = childItem.CurrentHours,
CourseRateName = EnumHelper.ToName(childItem.CourseRate)
};
childModel.ChildList.AddRange(GetChapterChild(sourceList, childItem.ChapterId));
resultList.Add(childModel);
......@@ -511,6 +524,10 @@ namespace Edu.Module.Course
public bool SetChapterModule(RB_Course_Chapter_ViewModel model)
{
bool flag;
if (model.StudyMinutes > 0)
{
model.StudyHours = model.StudyMinutes / class_ConfigRepository.GetBasicMinutesRepository(model.Group_Id);
}
if (model.ChapterId > 0)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
......@@ -519,6 +536,11 @@ namespace Edu.Module.Course
{nameof(RB_Course_Chapter_ViewModel.ChapterName) ,model.ChapterName},
{nameof(RB_Course_Chapter_ViewModel.ChapterContent) ,model.ChapterContent},
{nameof(RB_Course_Chapter_ViewModel.ParentId) ,model.ParentId},
{nameof(RB_Course_Chapter_ViewModel.StudyHours) ,model.StudyHours},
{nameof(RB_Course_Chapter_ViewModel.StudyMinutes) ,model.StudyMinutes},
{nameof(RB_Course_Chapter_ViewModel.Objectives) ,model.Objectives},
{nameof(RB_Course_Chapter_ViewModel.Requirement) ,model.Requirement},
{nameof(RB_Course_Chapter_ViewModel.CourseRate) ,model.CourseRate},
};
flag = chapterRepository.Update(fileds, new WhereHelper(nameof(RB_Course_Chapter_ViewModel.ChapterId), model.ChapterId));
}
......@@ -556,6 +578,26 @@ namespace Edu.Module.Course
return flag;
}
/// <summary>
/// 批量删除章节
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public bool BatchRemoveChapterModule(RB_Course_Chapter_ViewModel model)
{
return chapterRepository.DeleteBatchChpterRepository(model);
}
/// <summary>
/// 批量更新等级
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool BatchUpdateChapterRateModule(RB_Course_Chapter_ViewModel model)
{
return chapterRepository.SetBatchUpdateCourseRateRepository(model);
}
/// <summary>
/// 设置章节开发状态
/// </summary>
......@@ -573,6 +615,31 @@ namespace Edu.Module.Course
return flag;
}
/// <summary>
/// 设置章节名称
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool SetChapterNameModule(RB_Course_Chapter_ViewModel model)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Course_Chapter_ViewModel.ChapterName) ,model.ChapterName}
};
bool flag = chapterRepository.Update(fileds, new WhereHelper(nameof(RB_Course_Chapter_ViewModel.ChapterId), model.ChapterId));
return flag;
}
/// <summary>
/// 批量更新编号
/// </summary>
/// <param name="chapters"></param>
/// <returns></returns>
public bool SetBatchChapterNoModule(List<RB_Course_Chapter_ViewModel> chapters)
{
return chapterRepository.SetBatchUpdateChapterNoRepository(chapters);
}
/// <summary>
/// 设置章节进度
/// </summary>
......
......@@ -400,6 +400,7 @@ namespace Edu.Module.Course
int CourseId = classRepository.GetEntity(orderModel.ClassId)?.CouseId ?? 0;
if (CourseId > 0)
{
orderModel.CourseId = CourseId;
//获取课程优惠
var coursePreferentialList = course_PreferentialRepository.GetCoursePreferentialListRepostory(new RB_Course_Preferential_Extend()
{
......
......@@ -238,7 +238,7 @@ namespace Edu.Module.Course
var planList = class_PlanRepository.GetClassPlanListExtRepository(new RB_Class_Plan_ViewModel() { ClassId = classId, EndTime = Common.ConvertHelper.FormatDate(DateTime.Now) });
var totalMinutes = planList?.Sum(qitem => qitem.ClassMinutes) ?? 0;
//查询基础课时时长
var BasicMinutes = class_ConfigRepository.GetBasicMinutesRepository(Group_Id);
var BasicMinutes = class_ConfigRepository.GetClassMinutesRepository(classId);
var finishHours = totalMinutes / BasicMinutes;
fileds.Add("finishHours", finishHours);
var classModel = classRepository.GetEntity(classId);
......@@ -1161,41 +1161,8 @@ namespace Edu.Module.Course
}
}
//获取订单列表
orderList = orderRepository.GetOrderListRepository(new RB_Order_ViewModel() { Group_Id = groupId, ClassId = classId, SourceId = SourceId });
if (orderList.Any())
{
string orderIds = string.Join(",", orderList.Select(x => x.OrderId));
//获取备注列表
var remarkList = order_RemarkRepository.GetOrderRemarkListRepository(new RB_Order_Remark_ViewModel() { QOrderIds = orderIds });
//获取名单列表
var guestList = order_GuestRepository.GetOrderGuestListRepository(new RB_Order_Guest_ViewModel() { OrderIds = orderIds });
//获取合同列表
var clist = education_ContractRepository.GetList(new RB_Education_Contract_ViewModel() { Group_Id = groupId, OrderIds = orderIds, Status = -1 }).Where(x => x.Status != 4).ToList();
foreach (var item in orderList)
{
item.SaleRemarkList = remarkList.Where(x => x.OrderId == item.OrderId && x.Type == 1).ToList();
item.TeacherRemarkList = remarkList.Where(x => x.OrderId == item.OrderId && x.Type == 2).ToList();
item.RectorRemarkList = remarkList.Where(x => x.OrderId == item.OrderId && x.Type == 3).ToList();
item.DirectorRemarkList = remarkList.Where(x => x.OrderId == item.OrderId && x.Type == 4).ToList();
item.GuestList = guestList.Where(x => x.OrderId == item.OrderId).ToList();
item.ContractList = clist.Where(x => x.OrderId == item.OrderId).ToList();
var ZList = item.GuestList.Where(x => !item.ContractList.Select(z => z.GuestId).Contains(x.Id)).ToList();
if (ZList.Any() && item.ContractList.Any())
{
foreach (var qitem in ZList)
{
item.ContractList.Add(new RB_Education_Contract_ViewModel()
{
Id = 0,
StudentName = qitem.GuestName,
ContractNo = "",
GuestId = qitem.Id,
Status = 0
});
}
}
}
}
var query = new RB_Order_ViewModel() { Group_Id = groupId, ClassId = classId, SourceId = SourceId };
orderList = OrderPageModule(1, 100000, out _, query);
return orderList;
}
......@@ -2003,6 +1970,7 @@ namespace Edu.Module.Course
#endregion
#region 销售中心
/// <summary>
/// 获取我的订单列表
/// </summary>
......@@ -2012,6 +1980,19 @@ namespace Edu.Module.Course
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Order_ViewModel> GetMyOrderPageList(int pageIndex, int pageSize, out long count, RB_Order_ViewModel demodel)
{
return OrderPageModule(pageIndex, pageSize, out count, demodel);
}
/// <summary>
/// 获取订单分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
private List<RB_Order_ViewModel> OrderPageModule(int pageIndex, int pageSize, out long count, RB_Order_ViewModel demodel)
{
//获取订单列表
var orderList = orderRepository.GetOrderPageRepository(pageIndex, pageSize, out count, demodel);
......
......@@ -106,7 +106,7 @@ namespace Edu.Module.Course
}
var teacherId = teacherModel?.Id ?? 0;
//基础课时分钟数
var BasicMinutes = class_ConfigRepository.GetBasicMinutesRepository(userinfo.Group_Id);
var BasicMinutes = class_ConfigRepository.GetClassMinutesRepository(orderModel.ClassId);
var stuCheckList = class_CheckRepository.GetGuestFinishMinutesRepository(GuestId.ToString());
//总签到上课分钟数
var totalFinishMinutes = stuCheckList?.Sum(qitem => qitem.FinishMinutes) ?? 0;
......
......@@ -488,7 +488,7 @@ namespace Edu.Module.Course
#region 计算课时
var g3list = glist.Where(x => x.OrderId == item.OrderId && x.GuestState != 2).ToList();
//查询这几个学生累计课时
decimal TotalLearn = CheckList.Where(x => x.OrderId == item.OrderId).Sum(x => x.CurrentDeductionHours);//累计消费课时
decimal TotalLearn = CheckList.Where(x => x.OrderId == item.OrderId && x.MonthDate <= Convert.ToDateTime(EDate)).Sum(x => x.CurrentDeductionHours);//累计消费课时 (要查询当前发放提成日期) ld 07-02调整
decimal TotalHours = g3list.Sum(x => x.TotalHours);// 直接根据学生表 总课时计算 (必须签到课时 = 总课时 才发完最后一个月的)
#endregion
......
......@@ -121,7 +121,7 @@ namespace Edu.Module.Course
//班级实体类
var classModel = classRepository.GetEntity(backModel.ClassId);
//基础课时分钟数
var BasicMinutes = class_ConfigRepository.GetBasicMinutesRepository(backModel.Group_Id);
var BasicMinutes = class_ConfigRepository.GetClassMinutesRepository(backModel.ClassId);
var stuCheckList = class_CheckRepository.GetGuestFinishMinutesRepository(backModel.GuestId.ToString());
//总签到上课分钟数
var totalFinishMinutes = stuCheckList?.Sum(qitem => qitem.FinishMinutes) ?? 0;
......
......@@ -536,7 +536,9 @@ namespace Edu.Module.Course
var ts = Convert.ToDateTime(nowTime + " " + qitem.EndTime) - Convert.ToDateTime(nowTime + " " + qitem.StartTime);
minute += (int)ts.TotalMinutes;
}
int ksNum = minute / configModel.BasicMinutes; // 未达到一课时时间 算不算一课时
int ClassHourMinute = configModel.BasicMinutes;//课时分钟数
if (item.ClassHourMinute > 0) { ClassHourMinute = item.ClassHourMinute; }
int ksNum = minute / ClassHourMinute; // 未达到一课时时间 算不算一课时
//查询课单价
var typeModel = typeList.Where(x => x.CTypeId == item.ClassType).FirstOrDefault();
var teacherModel = teacherList.Where(x => x.TId == item.TeacherId).FirstOrDefault();
......@@ -605,7 +607,7 @@ namespace Edu.Module.Course
List<int> TeacherIdList = blist.Select(x => x.TeacherId).Distinct().ToList();
foreach (var item in TeacherIdList)
{
var qblist = blist.Where(x => x.TeacherId == item).OrderBy(x => x.UnitPrice).ThenBy(x => x.Date).ToList();
var qblist = blist.Where(x => x.TeacherId == item).OrderBy(x => x.Date).ThenBy(x => x.UnitPrice).ToList();
int BasicHours = configModel.BasicHours;
foreach (var qitem in qblist)
{
......@@ -1215,7 +1217,9 @@ namespace Edu.Module.Course
//班级课时总分钟数
int TotalClassMin = class_PlanRepository.GetClassTotalMinute(classId, classModel.Group_Id);
//总课时
int ksNum = TotalClassMin / configModel.BasicMinutes; // 未达到一课时时间 不算一课时
int ClassHourMinute = configModel.BasicMinutes;//课时分钟数
if (classModel.ClassHourMinute > 0) { ClassHourMinute = classModel.ClassHourMinute; }
int ksNum = TotalClassMin / ClassHourMinute; // 未达到一课时时间 不算一课时
//满班率
decimal FullClassRate = 0;
......
This diff is collapsed.
......@@ -43,13 +43,14 @@ namespace Edu.Module.Public
public RB_Class_Config_ViewModel GetClassConfigModule(RB_Class_Config_ViewModel query)
{
var model = class_ConfigRepository.GetClassConfigRepository(query);
if (!string.IsNullOrWhiteSpace(model.AdminiIds))//查询管理员
List<int> AdminiIds = Common.ConvertHelper.StringToList(model.AdminiIds);
if (AdminiIds!=null&& AdminiIds.Count>0)//查询管理员
{
var empList = accountRepository.GetEmployeeListRepository(new Edu.Model.ViewModel.User.Employee_ViewModel()
{
Group_Id = query.Group_Id,
QIds = model.AdminiIds
QIds = string.Join(",", AdminiIds)
});
if (empList != null && empList.Any())
......@@ -159,6 +160,7 @@ namespace Edu.Module.Public
{nameof(RB_Class_Type_ViewModel.CTypeName),extModel.CTypeName},
{nameof(RB_Class_Type_ViewModel.AddHourFee),extModel.AddHourFee},
{nameof(RB_Class_Type_ViewModel.DefaultClassNum),extModel.DefaultClassNum},
{nameof(RB_Class_Type_ViewModel.ClassNoPrefix),extModel.ClassNoPrefix},
{nameof(RB_Class_Type_ViewModel.UpdateBy),extModel.UpdateBy},
{nameof(RB_Class_Type_ViewModel.UpdateTime),extModel.UpdateTime},
};
......
......@@ -482,5 +482,17 @@ where a.`Status`=0 and a.IsSubscribe=1 and ClassStatus in(1,2)");
builder.AppendFormat(" GROUP BY a.CourseClassType,a.StudentNumType ");
return Get<RB_Class_ViewModel>(builder.ToString(), parameters).ToList();
}
/// <summary>
/// 获取班级编码
/// </summary>
/// <param name="OpenTime"></param>
/// <returns></returns>
public int GetMaxClassNoPrefix(string OpenTime)
{
string sql = $@"select Max(ClassLetterNum) as ClassLetterNum from RB_Class where Status =0 and OpenTime ='{OpenTime}'";
var obj = ExecuteScalar(sql);
return obj == null ? 0 : Convert.ToInt32(obj);
}
}
}
\ No newline at end of file
......@@ -419,11 +419,12 @@ GROUP BY tt.TeacherId,tt.OrderGuestId
/// <param name="count"></param>
/// <param name="teacherId"></param>
/// <param name="schoolId"></param>
/// <param name="classId"></param>
/// <param name="startMonth"></param>
/// <param name="endMonth"></param>
/// <param name="group_Id"></param>
/// <returns></returns>
public List<RB_Class_Check_ViewModel> GetTeacherConsumptionHoursDetialPageList(int pageIndex, int pageSize, out long count, int teacherId, int schoolId, string startMonth, string endMonth, int group_Id)
public List<RB_Class_Check_ViewModel> GetTeacherConsumptionHoursDetialPageList(int pageIndex, int pageSize, out long count, int teacherId, int schoolId, int classId, string startMonth, string endMonth, int group_Id)
{
string where = $@" ";
if (teacherId > 0) {
......@@ -432,9 +433,12 @@ GROUP BY tt.TeacherId,tt.OrderGuestId
if (schoolId >= 0) {
where += $@" and t2.School_Id ={schoolId}";
}
if (classId > 0) {
where += $@" and p.ClassId ={classId}";
}
string sql = $@"
SELECT p.TeacherId,t2.TeacherName,t2.BaseHourFee,c.ClassName,co.CourseName,p.ClassId,c.ClassType,c.CouseId,p.ClassDate,p.ClassTimeId,t.StartTime as StartDate,t.EndTime as EndDate FROM rb_class_check p
SELECT p.TeacherId,t2.TeacherName,t2.BaseHourFee,c.ClassName,co.CourseName,p.ClassId,c.ClassType,c.ClassNo,c.ClassHourMinute,c.CouseId,p.ClassDate,p.ClassTimeId,t.StartTime as StartDate,t.EndTime as EndDate FROM rb_class_check p
INNER JOIN rb_class_time t on p.ClassTimeId = t.ClassTimeId
LEFT JOIN rb_teacher t2 on p.TeacherId = t2.TId
LEFT JOIN rb_class c on p.ClassId = c.ClassId
......@@ -449,26 +453,30 @@ ORDER BY p.ClassDate ASC
/// <summary>
/// 获取老师课时统计明细
/// </summary>
/// <param name="teacherId"></param>
/// <param name="teacherIds"></param>
/// <param name="schoolId"></param>
/// <param name="classId"></param>
/// <param name="startMonth"></param>
/// <param name="endMonth"></param>
/// <param name="group_Id"></param>
/// <returns></returns>
public List<RB_Class_Check_ViewModel> GetTeacherConsumptionHoursDetialList(int teacherId, int schoolId, string startMonth, string endMonth, int group_Id)
public List<RB_Class_Check_ViewModel> GetTeacherConsumptionHoursDetialList(string teacherIds, int schoolId, int classId, string startMonth, string endMonth, int group_Id)
{
string where = $@" ";
if (teacherId > 0)
if (!string.IsNullOrEmpty(teacherIds) && teacherIds != "-1" && teacherIds != "0")
{
where += $@" and p.TeacherId ={teacherId}";
where += $@" and p.TeacherId in({teacherIds})";
}
if (schoolId >= 0)
{
where += $@" and t2.School_Id ={schoolId}";
}
if (classId > 0) {
where += $@" and p.ClassId ={classId}";
}
string sql = $@"
SELECT p.TeacherId,t2.TeacherName,t2.BaseHourFee,c.ClassName,co.CourseName,p.ClassId,c.ClassType,c.CouseId,p.ClassDate,p.ClassTimeId,t.StartTime as StartDate,t.EndTime as EndDate FROM rb_class_check p
SELECT p.TeacherId,t2.TeacherName,t2.BaseHourFee,c.ClassName,co.CourseName,p.ClassId,c.ClassType,c.ClassNo,c.ClassHourMinute,c.CouseId,p.ClassDate,p.ClassTimeId,t.StartTime as StartDate,t.EndTime as EndDate FROM rb_class_check p
INNER JOIN rb_class_time t on p.ClassTimeId = t.ClassTimeId
LEFT JOIN rb_teacher t2 on p.TeacherId = t2.TId
LEFT JOIN rb_class c on p.ClassId = c.ClassId
......@@ -488,6 +496,7 @@ ORDER BY p.ClassDate ASC
/// <param name="count"></param>
/// <param name="teacherId"></param>
/// <param name="schoolId"></param>
/// <param name="classId"></param>
/// <param name="startMonth"></param>
/// <param name="endMonth"></param>
/// <param name="studentName"></param>
......@@ -495,7 +504,7 @@ ORDER BY p.ClassDate ASC
/// <param name="contractNo"></param>
/// <param name="groupId"></param>
/// <returns></returns>
public List<RB_Class_Check_ViewModel> GetStudentConsumptionHoursDetialPageList(int pageIndex, int pageSize, out long count, int teacherId, int schoolId, string startMonth, string endMonth, string studentName, int orderId, string contractNo, int groupId)
public List<RB_Class_Check_ViewModel> GetStudentConsumptionHoursDetialPageList(int pageIndex, int pageSize, out long count, int teacherId, int schoolId, int classId, string startMonth, string endMonth, string studentName, int orderId, string contractNo, int groupId)
{
string where = $@" ";
if (teacherId > 0)
......@@ -506,6 +515,10 @@ ORDER BY p.ClassDate ASC
{
where += $@" and t2.School_Id ={schoolId}";
}
if (classId > 0)
{
where += $@" and p.ClassId ={classId}";
}
if (!string.IsNullOrEmpty(studentName))
{
where += $@" and t2.GuestName like '%{studentName}%'";
......@@ -525,7 +538,7 @@ case when tt.ClassHours>0 and tt.TotalSub >0 then
(tt.CourseFee - tt.DiscountMoney / tt.TotalSub * tt.CourseFee) /tt.ClassHours
else 0 END AS UnitPrice
FROM (
SELECT p.OrderGuestId,p.CurrentDeductionHours,t2.GuestName,p.TeacherId,t3.TeacherName,t2.OrderId,ec.ContractNo,c.ClassName,co.CourseName,p.ClassId,c.CouseId
SELECT p.OrderGuestId,p.CurrentDeductionHours,t2.GuestName,p.TeacherId,t3.TeacherName,t2.OrderId,ec.ContractNo,c.ClassName,c.ClassNo,co.CourseName,p.ClassId,c.CouseId
,p.ClassDate,p.ClassTimeId,t.StartTime as StartDate,t.EndTime as EndDate,o.EnterID,o.HelpEnterId
,ec.FirstCourseFee + ec.SecondCourseFee + ec.ThirdCourseFee as CourseFee
,ec.FirstDiscountMoney + ec.SecondDiscountMoney + ec.ThirdDiscountMoney as DiscountMoney
......@@ -553,6 +566,7 @@ ORDER BY tt.ClassDate ASC
/// </summary>
/// <param name="teacherId"></param>
/// <param name="schoolId"></param>
/// <param name="classId"></param>
/// <param name="startMonth"></param>
/// <param name="endMonth"></param>
/// <param name="studentName"></param>
......@@ -560,7 +574,7 @@ ORDER BY tt.ClassDate ASC
/// <param name="contractNo"></param>
/// <param name="groupId"></param>
/// <returns></returns>
public List<RB_Class_Check_ViewModel> GetStudentConsumptionHoursDetialList(int teacherId, int schoolId, string startMonth, string endMonth, string studentName, int orderId, string contractNo, int groupId)
public List<RB_Class_Check_ViewModel> GetStudentConsumptionHoursDetialList(int teacherId, int schoolId, int classId, string startMonth, string endMonth, string studentName, int orderId, string contractNo, int groupId)
{
string where = $@" ";
if (teacherId > 0)
......@@ -571,6 +585,10 @@ ORDER BY tt.ClassDate ASC
{
where += $@" and t2.School_Id ={schoolId}";
}
if (classId > 0)
{
where += $@" and p.ClassId ={classId}";
}
if (!string.IsNullOrEmpty(studentName))
{
where += $@" and t2.GuestName like '%{studentName}%'";
......@@ -590,7 +608,7 @@ case when tt.ClassHours>0 and tt.TotalSub >0 then
(tt.CourseFee - tt.DiscountMoney / tt.TotalSub * tt.CourseFee) /tt.ClassHours
else 0 END AS UnitPrice
FROM (
SELECT p.OrderGuestId,p.CurrentDeductionHours,t2.GuestName,p.TeacherId,t3.TeacherName,t2.OrderId,ec.ContractNo,c.ClassName,co.CourseName,p.ClassId,c.CouseId
SELECT p.OrderGuestId,p.CurrentDeductionHours,t2.GuestName,p.TeacherId,t3.TeacherName,t2.OrderId,ec.ContractNo,c.ClassName,c.ClassNo,co.CourseName,p.ClassId,c.CouseId
,p.ClassDate,p.ClassTimeId,t.StartTime as StartDate,t.EndTime as EndDate,o.EnterID,o.HelpEnterId
,ec.FirstCourseFee + ec.SecondCourseFee + ec.ThirdCourseFee as CourseFee
,ec.FirstDiscountMoney + ec.SecondDiscountMoney + ec.ThirdDiscountMoney as DiscountMoney
......
......@@ -10,6 +10,11 @@ namespace Edu.Repository.Course
/// </summary>
public class RB_Class_ConfigRepository : BaseRepository<RB_Class_Config>
{
/// <summary>
/// 班级仓储层对象
/// </summary>
private readonly RB_ClassRepository classRepository = new RB_ClassRepository();
/// <summary>
/// 获取班级基础配置实体
/// </summary>
......@@ -47,5 +52,16 @@ WHERE 1=1
var BasicMinutes = GetClassConfigRepository(new RB_Class_Config_ViewModel() { Group_Id = Group_Id })?.BasicMinutes ?? 45;
return BasicMinutes;
}
/// <summary>
/// 获取班级基础课时分钟数
/// </summary>
/// <param name="classId"></param>
/// <returns></returns>
public int GetClassMinutesRepository(int classId)
{
var BasicMinutes = classRepository.GetEntity(classId)?.ClassHourMinute ?? 45;
return BasicMinutes;
}
}
}
......@@ -240,7 +240,7 @@ WHERE ClassId={1} AND ClassDate>'{2}'
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT a.*,c.Teacher_Id,c.ClassName,c.ClassType,T.TeacherName ,cou.CourseName
SELECT a.*,c.Teacher_Id,c.ClassName,c.ClassType,c.ClassHourMinute,T.TeacherName ,cou.CourseName
FROM rb_class_plan as a
LEFT JOIN rb_class c on a.ClassId = c.ClassId
LEFT JOIN rb_teacher AS T ON a.TeacherId=T.TId
......@@ -313,10 +313,10 @@ WHERE a.`Status`=0 and DATE_FORMAT(a.ClassDate,'%Y-%m-%d')<=DATE_FORMAT(NOW(),'
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Group_Id), query.Group_Id);
}
if (query.School_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.School_Id), query.School_Id);
}
//if (query.School_Id > 0)
//{
// builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.School_Id), query.School_Id);
//}
if (query.ClassId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassId), query.ClassId);
......
using Edu.Model.ViewModel.Course;
using Edu.Common.Enum;
using Edu.Common.Plugin;
using Edu.Model.ViewModel.Course;
using System;
using System.Collections.Generic;
using System.Linq;
......@@ -22,10 +24,11 @@ namespace Edu.Repository.Course
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT *
FROM rb_course_chapter
WHERE 1=1
");
SELECT *
FROM rb_course_chapter
WHERE 1=1
");
builder.AppendFormat(" AND {0}={1}", nameof(RB_Course_Chapter_ViewModel.Status), EnumHelper.ToInt(DateStateEnum.Normal));
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Course_Chapter_ViewModel.Group_Id), query.Group_Id);
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Course_Chapter_ViewModel.School_Id), query.School_Id);
if (query != null)
......@@ -39,7 +42,59 @@ WHERE 1=1
builder.AppendFormat(" AND {0} IN({1}) ", nameof(RB_Course_Chapter_ViewModel.CourseId), query.CourseIds);
}
}
builder.AppendFormat(" ORDER BY {0}",nameof(RB_Course_Chapter_ViewModel.ChapterNo));
return Get<RB_Course_Chapter_ViewModel>(builder.ToString(), parameters).ToList();
}
/// <summary>
/// 批量更新编号
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
public bool SetBatchUpdateChapterNoRepository(List<RB_Course_Chapter_ViewModel> param)
{
StringBuilder builder = new StringBuilder();
builder.Append("INSERT INTO rb_course_chapter (ChapterId, ChapterNo, ParentId,SortNum) VALUES");
param.ForEach(x => {
var newChapterNo = x.ChapterNo.Replace(".", "");
double.TryParse(newChapterNo, out double SortNum);
builder.Append($"({x.ChapterId},'{x.ChapterNo}',{x.ParentId},{SortNum}),");
});
builder = builder.Remove(builder.Length - 1, 1);
builder.Append("ON DUPLICATE KEY UPDATE ChapterNo=VALUES(ChapterNo),ParentId=VALUES(ParentId),SortNum=VALUES(SortNum);");
return Execute(builder.ToString()) > 0;
}
/// <summary>
/// 批量更新课程等级
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool SetBatchUpdateCourseRateRepository(RB_Course_Chapter_ViewModel model)
{
StringBuilder builder = new StringBuilder();
builder.Append("update rb_course_chapter ");
builder.AppendFormat("set {0}={1}",nameof(RB_Course_Chapter_ViewModel.CourseRate),EnumHelper.ToInt(model.CourseRate));
builder.AppendFormat(" where {0}={1}", nameof(RB_Course_Chapter_ViewModel.CourseId), model.CourseId);
builder.AppendFormat(" and {0} like '{1}%'", nameof(RB_Course_Chapter_ViewModel.ChapterNo), model.ChapterNo);
return Execute(builder.ToString()) > 0;
}
/// <summary>
/// 批量删除课程章节
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool DeleteBatchChpterRepository(RB_Course_Chapter_ViewModel model)
{
StringBuilder builder = new StringBuilder();
builder.Append("update rb_course_chapter ");
builder.AppendFormat("set {0}={1}", nameof(RB_Course_Chapter_ViewModel.Status), EnumHelper.ToInt(DateStateEnum.Delete));
builder.AppendFormat(" where {0}={1}", nameof(RB_Course_Chapter_ViewModel.CourseId), model.CourseId);
builder.AppendFormat(" and ({0} like '{1}%' or {2}={3})", nameof(RB_Course_Chapter_ViewModel.ChapterNo), model.ChapterNo, nameof(RB_Course_Chapter_ViewModel.ChapterId), model.ChapterId);
return Execute(builder.ToString()) > 0;
}
}
}
......@@ -237,7 +237,7 @@ namespace Edu.Repository.Course
where += $@" AND o.CreateTime <='{demodel.EndTime} 23:59:59'";
}
string sql = $@" SELECT c.*,c1.ClassName,ca.AdjustPrice FROM RB_Education_Contract c
string sql = $@" SELECT c.*,c1.ClassName,c1.ClassNo,ca.AdjustPrice FROM RB_Education_Contract c
left join RB_Education_ContractAdjust ca on c.Id = ca.ContractId
left join rb_order o on c.OrderId = o.OrderId
left join rb_class c1 on o.ClassId = c1.ClassId
......
......@@ -77,6 +77,7 @@ namespace Edu.WebApi.Controllers.Course
item.ClassStatus,
item.Status,
item.OtherCourseList,
item.ClassNo
});
}
pageModel.Count = rowsCount;
......@@ -190,6 +191,7 @@ namespace Edu.WebApi.Controllers.Course
Point = base.ParmJObj.GetInt("Point"),
CourseClassType = (CourseClassTypeEnum)base.ParmJObj.GetInt("CourseClassType"),
StudentNumType = (StudentNumTypeEnum)base.ParmJObj.GetInt("StudentNumType"),
ClassHourMinute=base.ParmJObj.GetInt("ClassHourMinute"),
};
try
{
......@@ -449,6 +451,7 @@ namespace Edu.WebApi.Controllers.Course
WeekDayList = extModel?.WeekDayList ?? new List<string>(),
CompleteProgress = extModel?.CompleteProgress ?? 0,
ClassStatusStr = extModel?.ClassStatusStr ?? "",
ClassHourMinute = extModel?.ClassHourMinute ?? 45,
};
return ApiResult.Success(data: obj);
}
......@@ -730,7 +733,7 @@ namespace Edu.WebApi.Controllers.Course
var classPlanId = base.ParmJObj.GetInt("ClassPlanId");
var schoolId = base.ParmJObj.GetInt("School_Id");
var ClassTimeId = base.ParmJObj.GetInt("ClassTimeId");
if (classId == 0 || classPlanId == 0 || schoolId == 0)
if (classId == 0 || classPlanId == 0 )
{
return ApiResult.ParamIsNull();
}
......@@ -804,7 +807,7 @@ namespace Edu.WebApi.Controllers.Course
data.TeacherName,
data.RoomName,
TotalHour = Convert.ToDecimal(totalMinutes / 60.0),
ClassNum = Convert.ToInt32(totalMinutes / classModule.GetBasicMinutesModule(base.UserInfo.Group_Id)),
ClassNum = Convert.ToInt32(totalMinutes / classModule.GetClassMinutesModule(classId)),
DefaultMinutes = totalMinutes,
ClassDate = data.ClassDate.ToString("yyyy-MM-dd"),
GuestList = guestList
......@@ -868,7 +871,7 @@ namespace Edu.WebApi.Controllers.Course
var query = new RB_Class_Plan_ViewModel()
{
Group_Id = base.UserInfo.Group_Id,
School_Id = base.ParmJObj.GetInt("School_Id"),
//School_Id = base.ParmJObj.GetInt("School_Id"),
ClassId = base.ParmJObj.GetInt("ClassId"),
TeacherId = base.ParmJObj.GetInt("TeacherId")
};
......
......@@ -420,15 +420,34 @@ namespace Edu.WebApi.Controllers.Course
[HttpPost]
public ApiResult SetChapter()
{
var extModel = Common.Plugin.JsonHelper.DeserializeObject<RB_Course_Chapter_ViewModel>(RequestParm.Msg.ToString());
var extModel = new RB_Course_Chapter_ViewModel()
{
ChapterId = base.ParmJObj.GetInt("ChapterId"),
CourseId = base.ParmJObj.GetInt("CourseId"),
ChapterNo = base.ParmJObj.GetStringValue("ChapterNo"),
ChapterName = base.ParmJObj.GetStringValue("ChapterName"),
ChapterContent = base.ParmJObj.GetStringValue("ChapterContent"),
ParentId=base.ParmJObj.GetInt("ParentId"),
OpenStatus=base.ParmJObj.GetInt("OpenStatus"),
Progress=base.ParmJObj.GetInt("Progress"),
StudyHours=base.ParmJObj.GetInt("StudyHours"),
StudyMinutes=base.ParmJObj.GetInt("StudyMinutes"),
Objectives=base.ParmJObj.GetStringValue("Objectives"),
Requirement=base.ParmJObj.GetStringValue("Requirement"),
CourseRate=(CourseRateEnum)base.ParmJObj.GetInt("CourseRate"),
//CurrentHours=base.ParmJObj.GetInt("CurrentHours"),
};
extModel.Status = DateStateEnum.Normal;
extModel.CreateTime = DateTime.Now;
extModel.CreateBy = base.UserInfo.Id;
extModel.UpdateBy = base.UserInfo.Id;
extModel.UpdateTime = DateTime.Now;
extModel.Group_Id = this.UserInfo.Group_Id;
extModel.School_Id = this.UserInfo.School_Id;
bool flag = courseModule.SetChapterModule(extModel);
return flag ? ApiResult.Success() : ApiResult.Failed();
return flag ? ApiResult.Success(data:extModel) : ApiResult.Failed();
}
/// <summary>
......@@ -459,6 +478,17 @@ namespace Edu.WebApi.Controllers.Course
return ApiResult.Success(data: list);
}
/// <summary>
/// 获取课程等级列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetCourseRateEnumList()
{
var list = Common.Plugin.EnumHelper.EnumToList(typeof(CourseRateEnum));
return ApiResult.Success(data: list);
}
/// <summary>
/// 删除课程章节
/// </summary>
......@@ -471,6 +501,30 @@ namespace Edu.WebApi.Controllers.Course
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 删除课程章节
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult BatchRemoveChapter()
{
var extModel = Common.Plugin.JsonHelper.DeserializeObject<RB_Course_Chapter_ViewModel>(RequestParm.Msg.ToString());
bool flag = courseModule.BatchRemoveChapterModule(extModel);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 批量更新课程等级
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult BatchSetChapterRate()
{
var extModel = Common.Plugin.JsonHelper.DeserializeObject<RB_Course_Chapter_ViewModel>(RequestParm.Msg.ToString());
bool flag = courseModule.BatchUpdateChapterRateModule(extModel);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 获取课程章节详情
/// </summary>
......@@ -494,6 +548,31 @@ namespace Edu.WebApi.Controllers.Course
bool flag = courseModule.SetChapterOpenStatusModule(extModel);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 设置章节名称
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetChapterName()
{
var extModel = Common.Plugin.JsonHelper.DeserializeObject<RB_Course_Chapter_ViewModel>(RequestParm.Msg.ToString());
bool flag = courseModule.SetChapterNameModule(extModel);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 批量设置章节编号
/// </summary>
/// <returns></returns>
[HttpPost]
[AllowRepeatAttribute]
public ApiResult SetBatchChapterNo()
{
var extModel = Common.Plugin.JsonHelper.DeserializeObject<List<RB_Course_Chapter_ViewModel>>(RequestParm.Msg.ToString());
bool flag = courseModule.SetBatchChapterNoModule(extModel);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 设置章节开发状态
......
......@@ -263,6 +263,10 @@ namespace Edu.WebApi.Controllers.Course
z.GuestName,
z.GuestState,
z.GuestStateStr,
z.ContractNo,
z.ContractId,
z.ContractStatus,
z.ContractStatusStr,
}),
ContractList = x.ContractList.Select(z => new
{
......@@ -1419,7 +1423,7 @@ namespace Edu.WebApi.Controllers.Course
z.StudentName,
z.ContractNo,
z.GuestId,
z.Status
z.Status,
})
})
};
......
......@@ -492,8 +492,16 @@ namespace Edu.WebApi.Controllers.Public
BasicClassNum = base.ParmJObj.GetInt("BasicClassNum"),
BasicMinutes = base.ParmJObj.GetInt("BasicMinutes"),
BasicHours = base.ParmJObj.GetInt("BasicHours"),
AdminiIds = base.ParmJObj.GetStringValue("AdminiIds")
};
List<int> AdminiIds = Common.ConvertHelper.StringToList(base.ParmJObj.GetStringValue("AdminiIds"));
if (AdminiIds != null && AdminiIds.Count > 0)
{
extModel.AdminiIds = string.Join(",", AdminiIds);
}
else
{
extModel.AdminiIds = "";
}
extModel.Group_Id = base.UserInfo.Group_Id;
extModel.UpdateBy = base.UserInfo.Id;
extModel.UpdateTime = DateTime.Now;
......
......@@ -2,7 +2,7 @@
"ConnectionStrings": {
"DefaultConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_edu;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"DefaultConnectionPName": "MySql.Data.MySqlClient",
"FinanceConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=test_reborn_finance;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"FinanceConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_finance;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"FinanceConnectionPName": "MySql.Data.MySqlClient",
"DataStatisticsConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_datastatistics;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"DataStatisticsConnectionPName": "MySql.Data.MySqlClient",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment