Commit bf4bf393 authored by liudong1993's avatar liudong1993

日语培训 产品列表

parent 70711ef0
...@@ -17,5 +17,10 @@ namespace Edu.Model.ViewModel.Course ...@@ -17,5 +17,10 @@ namespace Edu.Model.ViewModel.Course
///班级计划上课日期的上课时间表 ///班级计划上课日期的上课时间表
/// </summary> /// </summary>
public List<RB_Class_Time_ViewModel> PlanTimeList { get; set; } public List<RB_Class_Time_ViewModel> PlanTimeList { get; set; }
/// <summary>
/// 周几 /第几天
/// </summary>
public int WeekDay { get; set; }
} }
} }
...@@ -54,6 +54,11 @@ namespace Edu.Model.ViewModel.Course ...@@ -54,6 +54,11 @@ namespace Edu.Model.ViewModel.Course
/// </summary> /// </summary>
public string TeacherHead { get; set; } public string TeacherHead { get; set; }
/// <summary>
/// 教室名称
/// </summary>
public string RoomName { get; set; }
/// <summary> /// <summary>
/// 报名学员数量 /// 报名学员数量
/// </summary> /// </summary>
...@@ -73,5 +78,24 @@ namespace Edu.Model.ViewModel.Course ...@@ -73,5 +78,24 @@ namespace Edu.Model.ViewModel.Course
/// 班级上课计划列表 /// 班级上课计划列表
/// </summary> /// </summary>
public List<RB_Class_Plan_ViewModel> ClassPlanList { get; set; } public List<RB_Class_Plan_ViewModel> ClassPlanList { get; set; }
/// <summary>
/// 班级上课计划时间
/// </summary>
public List<RB_Class_Time_ViewModel> ClassTimeList { get; set; }
/// <summary>
/// 开班开始时间
/// </summary>
public string StartTime { get; set; }
/// <summary>
/// 开班结束时间
/// </summary>
public string EndTime { get; set; }
/// <summary>
/// 查询可报名 1是
/// </summary>
public int Q_CanApply { get; set; }
} }
} }
\ No newline at end of file
...@@ -40,11 +40,79 @@ namespace Edu.Module.Course ...@@ -40,11 +40,79 @@ namespace Edu.Module.Course
/// </summary> /// </summary>
private readonly RB_ClassRepository classRepository = new RB_ClassRepository(); private readonly RB_ClassRepository classRepository = new RB_ClassRepository();
/// <summary> /// <summary>
/// 阶梯价格
/// </summary>
private readonly RB_Class_StepPriceRepository class_StepPriceRepository = new RB_Class_StepPriceRepository();
/// <summary>
/// 课程计划
/// </summary>
private readonly RB_Class_PlanRepository class_PlanRepository = new RB_Class_PlanRepository();
/// <summary>
/// 上课时间
/// </summary>
private readonly RB_Class_TimeRepository class_TimeRepository = new RB_Class_TimeRepository();
/// <summary>
/// 教师 /// 教师
/// </summary> /// </summary>
private readonly RB_TeacherRepository teacherRepository = new RB_TeacherRepository(); private readonly RB_TeacherRepository teacherRepository = new RB_TeacherRepository();
#region 日语培训
/// <summary>
/// 获取日语培训
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Class_ViewModel> GetClassPruductList(int pageIndex, int pageSize, out long count, RB_Class_ViewModel dmodel)
{
var list = classRepository.GetClassProductPageList(pageIndex, pageSize, out count, dmodel);
if (list.Any()) {
string classIds = string.Join(",", list.Select(x => x.ClassId));
//查询阶梯价格
var stepList = class_StepPriceRepository.GetClassStepPriceListRepository(new RB_Class_StepPrice_ViewModel() { QClassIds = classIds });
//查询课程安排
List<RB_Class_Plan_ViewModel> PlanWeek = new List<RB_Class_Plan_ViewModel>();
List<RB_Class_Plan_ViewModel> PlanFixed = new List<RB_Class_Plan_ViewModel>();
string k1classIds = string.Join(",", list.Where(x => x.ClassStyle == Common.Enum.Course.ClassStyleEnum.Week || x.ClassStyle == Common.Enum.Course.ClassStyleEnum.Month));
if (!string.IsNullOrEmpty(k1classIds))
{
PlanWeek = class_PlanRepository.GetClassPlanForProduct(k1classIds);
}
string k2classIds = string.Join(",", list.Where(x => x.ClassStyle == Common.Enum.Course.ClassStyleEnum.FixedDate));
if (!string.IsNullOrEmpty(k2classIds))
{
PlanFixed = class_PlanRepository.GetClassPlanListRepository(new RB_Class_Plan_ViewModel() { QClassIds = k2classIds });
}
//查询课程时间
var TimeList = class_TimeRepository.GetClassTimeForProduct(classIds);
foreach (var item in list)
{
item.ClassStepPriceList = stepList.Where(x => x.ClassId == item.ClassId).OrderBy(x => x.PersionNum).ToList();
item.ClassTimeList = new List<RB_Class_Time_ViewModel>();
if (item.ClassStyle != Common.Enum.Course.ClassStyleEnum.OnLine)
{
item.ClassTimeList = TimeList.Where(x => x.ClassId == item.ClassId).OrderBy(x => x.StartTime).ToList();
}
item.ClassPlanList = new List<RB_Class_Plan_ViewModel>();
if (item.ClassStyle == Common.Enum.Course.ClassStyleEnum.Week || item.ClassStyle == Common.Enum.Course.ClassStyleEnum.Month)
{
item.ClassPlanList = PlanWeek.Where(x => x.ClassId == item.ClassId).ToList();
}
else if (item.ClassStyle == Common.Enum.Course.ClassStyleEnum.FixedDate)
{
item.ClassPlanList = PlanWeek.Where(x => x.ClassId == item.ClassId).ToList();
}
}
}
return list;
}
#endregion
/// <summary> /// <summary>
/// 获取班级订单列表 /// 获取班级订单列表
/// </summary> /// </summary>
......
...@@ -99,5 +99,80 @@ WHERE 1=1 ...@@ -99,5 +99,80 @@ WHERE 1=1
} }
return GetPage<RB_Class_ViewModel>(pageIndex,pageSize,out rowsCount,builder.ToString(),parameters).ToList(); return GetPage<RB_Class_ViewModel>(pageIndex,pageSize,out rowsCount,builder.ToString(),parameters).ToList();
} }
/// <summary>
/// 获取日语培训分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Class_ViewModel> GetClassProductPageList(int pageIndex, int pageSize, out long rowsCount, RB_Class_ViewModel query)
{
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,B.CourseName,D.TeacherName,IFNULL(D.TeacherHead,'') AS TeacherHead,E.SName AS SchoolName,R.RoomName,IFNULL(t.GuestNum,0) as OrderStudentCount
FROM rb_class AS A
LEFT JOIN rb_course AS B ON A.CouseId=B.CourseId
LEFT JOIN rb_teacher AS D ON A.Teacher_Id=D.TId
LEFT JOIN rb_class_room AS R ON A.ClassRoomId=R.RoomId
LEFT JOIN rb_school AS E ON A.School_Id=E.SId
left join (SELECT ClassId, SUM(GuestNum) AS GuestNum FROM rb_order WHERE OrderState in (1,2) GROUP BY ClassId)t on A.ClassId = t.ClassId
WHERE 1=1
");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.Status), 0);
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.ClassStatus), (int)Common.Enum.Course.ClassStatusEnum.NonOpenClass);
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.Group_Id), query.Group_Id);
}
if (query.School_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.School_Id), query.School_Id);
}
if (query.CouseId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.CouseId), query.CouseId);
}
if (query.Teacher_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.Teacher_Id), query.Teacher_Id);
}
if (!string.IsNullOrWhiteSpace(query.ClassName))
{
builder.AppendFormat(" AND A.{0} LIKE @ClassName ", nameof(RB_Class_ViewModel.ClassName));
parameters.Add("ClassName", "%" + query.ClassName.Trim() + "%");
}
if (!string.IsNullOrWhiteSpace(query.CourseName))
{
builder.AppendFormat(" AND B.{0} LIKE @CourseName ", nameof(RB_Class_ViewModel.CourseName));
parameters.Add("CourseName", "%" + query.CourseName.Trim() + "%");
}
if (!string.IsNullOrWhiteSpace(query.TeacherName))
{
builder.AppendFormat(" AND D.{0} LIKE @TeacherName ", nameof(RB_Class_ViewModel.TeacherName));
parameters.Add("TeacherName", "%" + query.TeacherName.Trim() + "%");
}
if (!string.IsNullOrEmpty(query.StartTime))
{
builder.AppendFormat(" AND A.{0} >='{1}' ", nameof(RB_Class_ViewModel.OpenTime), query.StartTime);
}
if (!string.IsNullOrEmpty(query.EndTime))
{
builder.AppendFormat(" AND A.{0} <='{1} 23:59:59' ", nameof(RB_Class_ViewModel.OpenTime), query.EndTime);
}
if (query.Q_CanApply == 1)
{
builder.AppendFormat(" AND (IFNULL(A.ClassPersion,0)-IFNULL(t.GuestNum,0))>0 ");
}
}
return GetPage<RB_Class_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
}
} }
} }
...@@ -47,5 +47,22 @@ WHERE 1=1 ...@@ -47,5 +47,22 @@ WHERE 1=1
{ {
return base.DeleteOne(new VT.FW.DB.WhereHelper(nameof(RB_Class_Plan_ViewModel.ClassId), ClassId)); return base.DeleteOne(new VT.FW.DB.WhereHelper(nameof(RB_Class_Plan_ViewModel.ClassId), ClassId));
} }
/// <summary>
/// 获取班级计划
/// </summary>
/// <param name="classIds"></param>
/// <returns></returns>
public List<RB_Class_Plan_ViewModel> GetClassPlanForProduct(string classIds) {
string sql = $@"SELECT p.ClassId,DAYOFWEEK(p.ClassDate) as WeekDay FROM rb_class_plan p
INNER JOIN rb_class c on p.ClassId = c.ClassId
WHERE c.ClassStyle =1 AND p.`Status`=0 and p.ClassId in({classIds}) GROUP BY p.ClassId,DAYOFWEEK(p.ClassDate);
UNION ALL
SELECT p.ClassId,DAYOFMONTH(p.ClassDate) as WeekDay FROM rb_class_plan p
INNER JOIN rb_class c on p.ClassId = c.ClassId
WHERE c.ClassStyle =2 AND p.`Status`=0 and p.ClassId in({classIds}) GROUP BY p.ClassId,DAYOFMONTH(p.ClassDate);";
return Get<RB_Class_Plan_ViewModel>(sql).ToList();
}
} }
} }
...@@ -56,5 +56,17 @@ WHERE 1=1 ...@@ -56,5 +56,17 @@ WHERE 1=1
{ {
return base.DeleteOne(new VT.FW.DB.WhereHelper(nameof(RB_Class_Time_ViewModel.ClassId), ClassId)); return base.DeleteOne(new VT.FW.DB.WhereHelper(nameof(RB_Class_Time_ViewModel.ClassId), ClassId));
} }
/// <summary>
/// 获取班级上课时间
/// </summary>
/// <param name="classIds"></param>
/// <returns></returns>
public List<RB_Class_Time_ViewModel> GetClassTimeForProduct(string classIds) {
string sql = $@"SELECT t.ClassId,t.StartTime,t.EndTime FROM rb_class_time t
WHERE t.ClassId =1 GROUP BY t.ClassId,t.StartTime,t.EndTime";
return Get<RB_Class_Time_ViewModel>(sql).ToList();
}
} }
} }
using Edu.Common.Enum; using Edu.Common.Enum;
using Edu.Model.Entity.Course; using Edu.Model.Entity.Course;
using Edu.Model.ViewModel.Course; using Edu.Model.ViewModel.Course;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
...@@ -165,5 +166,15 @@ where {where} order by {orderBy} ...@@ -165,5 +166,15 @@ where {where} order by {orderBy}
return GetPage<RB_Order_ViewModel>(pageIndex, pageSize, out rowsCount, sql).ToList(); return GetPage<RB_Order_ViewModel>(pageIndex, pageSize, out rowsCount, sql).ToList();
} }
/// <summary>
/// 获取班级报名人数
/// </summary>
/// <param name="classIds"></param>
/// <returns></returns>
public List<RB_Order_ViewModel> GetClassOrderPeopleNum(string classIds)
{
string sql = $@"SELECT ClassId, SUM(GuestNum) AS GuestNum FROM rb_order WHERE OrderState in (1,2) AND ClassId in ({classIds}) GROUP BY ClassId;";
return Get<RB_Order_ViewModel>(sql).ToList();
}
} }
} }
...@@ -23,6 +23,61 @@ namespace Edu.WebApi.Controllers.Course ...@@ -23,6 +23,61 @@ namespace Edu.WebApi.Controllers.Course
/// </summary> /// </summary>
private readonly OrderModule orderModule = new OrderModule(); private readonly OrderModule orderModule = new OrderModule();
#region 产品管理
/// <summary>
/// 获取日语培训列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetClassPruductList() {
var userInfo = base.UserInfo;
var pageModel = JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var dmodel = JsonHelper.DeserializeObject<RB_Class_ViewModel>(RequestParm.Msg.ToString());
dmodel.Group_Id = userInfo.Group_Id;
var list = orderModule.GetClassPruductList(pageModel.PageIndex, pageModel.PageSize, out long count, dmodel);
pageModel.Count = Convert.ToInt32(count);
pageModel.PageData = list.Select(x => new
{
x.ClassId,
x.ClassName,
x.CourseName,
x.ClassHours,
x.TeacherName,
x.TeacherHead,
x.RoomName,
x.OpenTime,
x.EndOrderTime,
x.OriginalPrice,
x.SellPrice,
x.IsStepPrice,
x.ClassPersion,
x.OutRemark,
x.OrderStudentCount,
ClassStepPriceList = x.ClassStepPriceList.Select(z => new
{
z.ClassStepPriceId,
z.PersionNum,
z.PersionPrice
}),
ClassTimeList = x.ClassTimeList.Select(z => new
{
z.StartTime,
z.EndTime
}),
ClassPlanList = x.ClassPlanList.Select(z => new
{
z.WeekDay,
ClassDate = x.ClassStyle == Common.Enum.Course.ClassStyleEnum.FixedDate ? z.ClassDate.ToString("yyyy-MM-dd") : ""
}),
UpdateTime = x.UpdateTime.ToString("yyyy-MM-dd HH:mm:ss")
});
return ApiResult.Success("", pageModel);
}
#endregion
#region 订单管理 #region 订单管理
/// <summary> /// <summary>
......
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