Commit 53650fe3 authored by liudong1993's avatar liudong1993

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

parents a1d1750a 459edb61
...@@ -22,7 +22,7 @@ namespace Edu.Model.Entity.Reserve ...@@ -22,7 +22,7 @@ namespace Edu.Model.Entity.Reserve
public int Visitor_Id { get; set; } public int Visitor_Id { get; set; }
/// <summary> /// <summary>
/// 预约状态(0-跟进中,1-成交,2-流单) /// 预约状态(0-跟进中,1-成交,2-流单,3-取消
/// </summary> /// </summary>
public int ReserveStatus { get; set; } public int ReserveStatus { get; set; }
......
...@@ -35,6 +35,16 @@ namespace Edu.Model.ViewModel.Reserve ...@@ -35,6 +35,16 @@ namespace Edu.Model.ViewModel.Reserve
/// </summary> /// </summary>
public string RoomName { get; set; } public string RoomName { get; set; }
/// <summary>
/// 教室座位数
/// </summary>
public int RoomNum { get; set; }
/// <summary>
/// 报名人数
/// </summary>
public int JoinNum { get; set; }
/// <summary> /// <summary>
/// 预约日期字符串 /// 预约日期字符串
/// </summary> /// </summary>
......
...@@ -46,6 +46,11 @@ namespace Edu.Model.ViewModel.Reserve ...@@ -46,6 +46,11 @@ namespace Edu.Model.ViewModel.Reserve
#region 扩展字段 #region 扩展字段
/// <summary>
/// 约课日期
/// </summary>
public string ClassDateStr { get { return Common.ConvertHelper.FormatDate(this.ClassDate); } }
/// <summary> /// <summary>
/// 访客名称 /// 访客名称
/// </summary> /// </summary>
...@@ -61,5 +66,34 @@ namespace Edu.Model.ViewModel.Reserve ...@@ -61,5 +66,34 @@ namespace Edu.Model.ViewModel.Reserve
/// </summary> /// </summary>
public string RoomName { get; set; } public string RoomName { get; set; }
#endregion #endregion
/// <summary>
/// 预约班级编号
/// </summary>
public string Q_ReserveClassIds { get; set; }
/// <summary>
/// 报名人数
/// </summary>
public int JoinNum { get; set; }
/// <summary>
/// 预约状态字符串
/// </summary>
public string ReserveStatusStr
{
get
{
string str = "";
switch (this.ReserveStatus)
{
case 0: str = "跟进中"; break;
case 1: str = "成交"; break;
case 2: str = "流单"; break;
case 3: str = "取消"; break;
}
return str;
}
}
} }
} }
...@@ -6,6 +6,7 @@ using System.Collections.Generic; ...@@ -6,6 +6,7 @@ using System.Collections.Generic;
using System.Text; using System.Text;
using VT.FW.AOP.CustomerAttribute; using VT.FW.AOP.CustomerAttribute;
using VT.FW.DB; using VT.FW.DB;
using System.Linq;
namespace Edu.Module.Duty namespace Edu.Module.Duty
{ {
...@@ -127,6 +128,25 @@ namespace Edu.Module.Duty ...@@ -127,6 +128,25 @@ namespace Edu.Module.Duty
return flag; return flag;
} }
/// <summary>
/// 删除访客约课
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public bool UpdateVisitorReserveStatusModule(int Id,int ReserveStatus,string Remark)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Visitor_Reserve_Extend.ReserveStatus),ReserveStatus },
};
if (!string.IsNullOrEmpty(Remark))
{
fileds.Add(nameof(RB_Visitor_Reserve_Extend.Remark), Remark);
}
var flag = visitor_ReserveRepository.Update(fileds, new WhereHelper(nameof(RB_Visitor_Reserve_Extend.Id), Id));
return flag;
}
/// <summary> /// <summary>
/// 获取约课班级分页列表 /// 获取约课班级分页列表
...@@ -138,7 +158,20 @@ namespace Edu.Module.Duty ...@@ -138,7 +158,20 @@ namespace Edu.Module.Duty
/// <returns></returns> /// <returns></returns>
public List<RB_Reserve_Class_Extend> GetReserveClassPageModule(int pageIndex, int pageSize, out long rowsCount, RB_Reserve_Class_Extend query) public List<RB_Reserve_Class_Extend> GetReserveClassPageModule(int pageIndex, int pageSize, out long rowsCount, RB_Reserve_Class_Extend query)
{ {
return reserve_ClassRepository.GetReserveClassPageRepository(pageIndex, pageSize, out rowsCount, query); var list = reserve_ClassRepository.GetReserveClassPageRepository(pageIndex, pageSize, out rowsCount, query);
if (list != null && list.Count > 0)
{
string ids = string.Join(",", list.Select(qitem => qitem.ReserveClassId));
var visitorList = visitor_ReserveRepository.GetVisitorReserveStaticsListRepository(new RB_Visitor_Reserve_Extend()
{
Q_ReserveClassIds = ids
});
foreach (var item in list)
{
item.JoinNum = visitorList?.Where(qitem => qitem.ReserveClassId == item.ReserveClassId)?.FirstOrDefault()?.JoinNum ?? 0;
}
}
return list;
} }
/// <summary> /// <summary>
......
...@@ -37,8 +37,23 @@ WHERE 1=1 ...@@ -37,8 +37,23 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Reserve_Class_Extend.Group_Id), query.Group_Id); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Reserve_Class_Extend.Group_Id), query.Group_Id);
} }
if (!string.IsNullOrEmpty(query.StartClassDate))
{
builder.AppendFormat(" AND A.{0}>='{1}' ", nameof(RB_Reserve_Class_Extend.ClassDate), query.StartClassDate);
}
if (!string.IsNullOrEmpty(query.EndClassDate))
{
builder.AppendFormat(" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Reserve_Class_Extend.ClassDate), query.EndClassDate);
}
if (query.TeacherId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Reserve_Class_Extend.TeacherId), query.TeacherId);
}
if (query.ClassRoomId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Reserve_Class_Extend.ClassRoomId), query.ClassRoomId);
}
} }
return GetPage<RB_Reserve_Class_Extend>(pageIndex,pageSize,out rowsCount, builder.ToString(),parameters).ToList(); return GetPage<RB_Reserve_Class_Extend>(pageIndex,pageSize,out rowsCount, builder.ToString(),parameters).ToList();
} }
...@@ -52,11 +67,34 @@ WHERE 1=1 ...@@ -52,11 +67,34 @@ WHERE 1=1
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
var parameters = new DynamicParameters(); var parameters = new DynamicParameters();
builder.Append(@" builder.Append(@"
SELECT A.*,IFNULL(D.TeacherName,'') AS TeacherName,IFNULL(E.RoomName,'') AS RoomName SELECT A.*,IFNULL(D.TeacherName,'') AS TeacherName,IFNULL(E.RoomName,'') AS RoomName,IFNULL(E.SeatNum,0) AS RoomNum
FROM RB_Reserve_Class AS A LEFT JOIN rb_teacher AS D ON A.TeacherId=D.TId FROM RB_Reserve_Class AS A LEFT JOIN rb_teacher AS D ON A.TeacherId=D.TId
LEFT JOIN rb_class_room AS E ON A.ClassRoomId=E.RoomId LEFT JOIN rb_class_room AS E ON A.ClassRoomId=E.RoomId
WHERE 1=1 WHERE 1=1
"); ");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Reserve_Class_Extend.Group_Id), query.Group_Id);
}
if (!string.IsNullOrEmpty(query.StartClassDate))
{
builder.AppendFormat(" AND A.{0}>='{1}' ", nameof(RB_Reserve_Class_Extend.ClassDate), query.StartClassDate);
}
if (!string.IsNullOrEmpty(query.EndClassDate))
{
builder.AppendFormat(" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Reserve_Class_Extend.ClassDate), query.EndClassDate);
}
if (query.TeacherId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Reserve_Class_Extend.TeacherId), query.TeacherId);
}
if (query.ClassRoomId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Reserve_Class_Extend.ClassRoomId), query.ClassRoomId);
}
}
return Get<RB_Reserve_Class_Extend>(builder.ToString(),parameters).ToList(); return Get<RB_Reserve_Class_Extend>(builder.ToString(),parameters).ToList();
} }
} }
......
...@@ -33,7 +33,6 @@ FROM RB_Visitor_Reserve AS A LEFT JOIN rb_visitor AS B ON A.Visitor_Id=B.Id ...@@ -33,7 +33,6 @@ FROM RB_Visitor_Reserve AS A LEFT JOIN rb_visitor AS B ON A.Visitor_Id=B.Id
LEFT JOIN rb_class_room AS E ON C.ClassRoomId=E.RoomId LEFT JOIN rb_class_room AS E ON C.ClassRoomId=E.RoomId
WHERE 1=1 WHERE 1=1
"); ");
return GetPage<RB_Visitor_Reserve_Extend>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList(); return GetPage<RB_Visitor_Reserve_Extend>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
} }
...@@ -53,5 +52,27 @@ WHERE 1=1 ...@@ -53,5 +52,27 @@ WHERE 1=1
"); ");
return Get<RB_Visitor_Reserve_Extend>(builder.ToString(), parameters).ToList(); return Get<RB_Visitor_Reserve_Extend>(builder.ToString(), parameters).ToList();
} }
/// <summary>
/// 统计访客约课列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Visitor_Reserve_Extend> GetVisitorReserveStaticsListRepository(RB_Visitor_Reserve_Extend query)
{
StringBuilder builder = new StringBuilder();
var parameters = new DynamicParameters();
builder.AppendFormat(" AND A.ReserveStatus!=3 AND A.Status=0 ");
if (!string.IsNullOrEmpty(query.Q_ReserveClassIds))
{
builder.AppendFormat(@" AND A.{0} IN ({1}) ", nameof(RB_Visitor_Reserve_Extend.ReserveClassId), query.Q_ReserveClassIds);
}
string sql = string.Format(@"
SELECT A.ReserveClassId,COUNT(1) AS JoinNum
FROM RB_Visitor_Reserve AS A
WHERE 1=1 {0}
GROUP BY A.ReserveClassId ", builder.ToString());
return Get<RB_Visitor_Reserve_Extend>(sql, parameters).ToList();
}
} }
} }
...@@ -129,6 +129,20 @@ namespace Edu.WebApi.Controllers.Duty ...@@ -129,6 +129,20 @@ namespace Edu.WebApi.Controllers.Duty
return flag ? ApiResult.Success() : ApiResult.Failed(); return flag ? ApiResult.Success() : ApiResult.Failed();
} }
/// <summary>
/// 更新访客状态
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult UpdateVisitorReserveStatus()
{
var Id = base.ParmJObj.GetInt("Id", 0);
var ReserveStatus = base.ParmJObj.GetInt("ReserveStatus", 0);
string Remark = base.ParmJObj.GetStringValue("Remark");
var flag = visitorReserveModule.UpdateVisitorReserveStatusModule(Id, ReserveStatus, Remark);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
#endregion #endregion
#region 约课班级 #region 约课班级
...@@ -146,6 +160,8 @@ namespace Edu.WebApi.Controllers.Duty ...@@ -146,6 +160,8 @@ namespace Edu.WebApi.Controllers.Duty
Group_Id = base.UserInfo.Group_Id, Group_Id = base.UserInfo.Group_Id,
StartClassDate=base.ParmJObj.GetStringValue("StartClassDate"), StartClassDate=base.ParmJObj.GetStringValue("StartClassDate"),
EndClassDate=base.ParmJObj.GetStringValue("EndClassDate"), EndClassDate=base.ParmJObj.GetStringValue("EndClassDate"),
TeacherId=base.ParmJObj.GetInt("TeacherId"),
ClassRoomId=base.ParmJObj.GetInt("ClassRoomId"),
}; };
var list = visitorReserveModule.GetReserveClassPageModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); var list = visitorReserveModule.GetReserveClassPageModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
foreach (var item in list) foreach (var item in list)
...@@ -224,7 +240,7 @@ namespace Edu.WebApi.Controllers.Duty ...@@ -224,7 +240,7 @@ namespace Edu.WebApi.Controllers.Duty
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public ApiResult RemoveReserveClassModule() public ApiResult RemoveReserveClass()
{ {
var ReserveClassId = base.ParmJObj.GetInt("ReserveClassId", 0); var ReserveClassId = base.ParmJObj.GetInt("ReserveClassId", 0);
var flag = visitorReserveModule.RemoveReserveClassModule(ReserveClassId); var flag = visitorReserveModule.RemoveReserveClassModule(ReserveClassId);
......
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