Commit 33be192d authored by 吴春's avatar 吴春

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

parents 9b6f4392 789faa79
...@@ -390,5 +390,10 @@ namespace Edu.Model.ViewModel.User ...@@ -390,5 +390,10 @@ namespace Edu.Model.ViewModel.User
/// 课程顾问跟进信息列表 /// 课程顾问跟进信息列表
/// </summary> /// </summary>
public List<RB_Student_Advisor_Extend> AdvisorList { get; set; } public List<RB_Student_Advisor_Extend> AdvisorList { get; set; }
/// <summary>
/// 客户状态(1-有效,2-无效)
/// </summary>
public int QStudentStatus { get; set; }
} }
} }
\ No newline at end of file
...@@ -323,7 +323,7 @@ WHERE 1=1 ...@@ -323,7 +323,7 @@ WHERE 1=1
} }
if (query.StuStage > 0) if (query.StuStage > 0)
{ {
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_ViewModel.StuStage), (int)query.StuStage); builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_ViewModel.StuStage), query.StuStage);
} }
if (!string.IsNullOrEmpty(query.StartTime)) if (!string.IsNullOrEmpty(query.StartTime))
{ {
...@@ -398,6 +398,25 @@ WHERE 1=1 ...@@ -398,6 +398,25 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND C.{0}={1} ", nameof(RB_Student_ViewModel.CategoryId), query.CategoryId); builder.AppendFormat(" AND C.{0}={1} ", nameof(RB_Student_ViewModel.CategoryId), query.CategoryId);
} }
if (query.AdvisorStatus > 0)
{
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_ViewModel.AdvisorStatus), query.AdvisorStatus);
}
//有效客户
if (query.QStudentStatus == 1)
{
builder.AppendFormat(" AND t.StuStage<>{0} AND t.AdvisorStatus<>{1} ", 7, 7);
}
//无效客户
if (query.QStudentStatus == 2)
{
builder.AppendFormat(" AND (t.StuStage={0} OR t.AdvisorStatus={1}) ", 7, 7);
}
//渠道
if (query.StuChannel > 0)
{
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_ViewModel.StuChannel), query.StuChannel);
}
} }
builder.AppendFormat(" ORDER BY t.{0} DESC ", nameof(RB_Student_ViewModel.StuId)); builder.AppendFormat(" ORDER BY t.{0} DESC ", nameof(RB_Student_ViewModel.StuId));
return GetPage<RB_Student_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList(); return GetPage<RB_Student_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
......
...@@ -28,7 +28,7 @@ SELECT A.*,IFNULL(B.ClassName,'') AS ClassName,IFNULL(B.ClassNo,'') AS ClassNo,I ...@@ -28,7 +28,7 @@ SELECT A.*,IFNULL(B.ClassName,'') AS ClassName,IFNULL(B.ClassNo,'') AS ClassNo,I
FROM RB_Student_OrderGuest AS A INNER JOIN rb_class AS B ON A.ClassId=B.ClassId FROM RB_Student_OrderGuest AS A INNER JOIN rb_class AS B ON A.ClassId=B.ClassId
INNER JOIN rb_order AS C ON A.OrderId=C.OrderId INNER JOIN rb_order AS C ON A.OrderId=C.OrderId
INNER JOIN rb_order_guest AS D ON A.GuestId=D.Id INNER JOIN rb_order_guest AS D ON A.GuestId=D.Id
WHERE 1=1 AND C.OrderState<>3 WHERE 1=1 AND C.OrderState<>3 AND D.Status=0
"); ");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_OrderGuest_ViewModel.Status), (int)DateStateEnum.Normal); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_OrderGuest_ViewModel.Status), (int)DateStateEnum.Normal);
if (query != null) if (query != null)
...@@ -76,7 +76,7 @@ SELECT A.*,IFNULL(B.ClassName,'') AS ClassName,IFNULL(B.ClassNo,'') AS ClassNo,I ...@@ -76,7 +76,7 @@ SELECT A.*,IFNULL(B.ClassName,'') AS ClassName,IFNULL(B.ClassNo,'') AS ClassNo,I
FROM RB_Student_OrderGuest AS A INNER JOIN rb_class AS B ON A.ClassId=B.ClassId FROM RB_Student_OrderGuest AS A INNER JOIN rb_class AS B ON A.ClassId=B.ClassId
INNER JOIN rb_order AS C ON A.OrderId=C.OrderId INNER JOIN rb_order AS C ON A.OrderId=C.OrderId
INNER JOIN rb_order_guest AS D ON A.GuestId=D.Id INNER JOIN rb_order_guest AS D ON A.GuestId=D.Id
WHERE 1=1 AND C.OrderState<>3 WHERE 1=1 AND C.OrderState<>3 AND D.Status=0
"); ");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_OrderGuest_ViewModel.Status), (int)DateStateEnum.Normal); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_OrderGuest_ViewModel.Status), (int)DateStateEnum.Normal);
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_OrderGuest_ViewModel.Status), (int)DateStateEnum.Normal); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_OrderGuest_ViewModel.Status), (int)DateStateEnum.Normal);
...@@ -134,7 +134,7 @@ FROM RB_Student_OrderGuest AS A INNER JOIN rb_order AS C ON A.OrderId=C.OrderId ...@@ -134,7 +134,7 @@ FROM RB_Student_OrderGuest AS A INNER JOIN rb_order AS C ON A.OrderId=C.OrderId
INNER JOIN rb_order_guest AS D ON A.GuestId=D.Id INNER JOIN rb_order_guest AS D ON A.GuestId=D.Id
LEFT JOIN rb_course AS E ON c.CourseId=E.CourseId LEFT JOIN rb_course AS E ON c.CourseId=E.CourseId
LEFT JOIN rb_class AS B ON A.ClassId=B.ClassId LEFT JOIN rb_class AS B ON A.ClassId=B.ClassId
WHERE 1=1 AND C.OrderState<>3 WHERE 1=1 AND C.OrderState<>3 AND D.Status=0
"); ");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_OrderGuest_ViewModel.Status), (int)DateStateEnum.Normal); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_OrderGuest_ViewModel.Status), (int)DateStateEnum.Normal);
if (query != null) if (query != null)
...@@ -288,14 +288,14 @@ ORDER BY {(Type == 1 ? "og.Id asc" : "og.Id desc")} LIMIT 1"; ...@@ -288,14 +288,14 @@ ORDER BY {(Type == 1 ? "og.Id asc" : "og.Id desc")} LIMIT 1";
/// <param name="accountId"></param> /// <param name="accountId"></param>
/// <param name="group_Id"></param> /// <param name="group_Id"></param>
/// <returns></returns> /// <returns></returns>
public RB_Student_OrderGuest_ViewModel GetStudentLearningCourse(int accountId, int group_Id) public RB_Student_OrderGuest_ViewModel GetStudentLearningCourse(int accountId, int group_Id, int guestId =0)
{ {
string sql = $@"SELECT og.*,o.CourseId,g.CourseChapterNo,c.ClassScrollType string sql = $@"SELECT og.*,o.CourseId,g.CourseChapterNo,c.ClassScrollType,o.ScrollSchoolId
FROM rb_student_orderguest og FROM rb_student_orderguest og
INNER JOIN rb_order_guest g on og.GuestId = g.Id INNER JOIN rb_order_guest g on og.GuestId = g.Id
INNER JOIN rb_order o on og.OrderId = o.OrderId INNER JOIN rb_order o on og.OrderId = o.OrderId
INNER JOIN rb_class c on o.ClassId = c.ClassId INNER JOIN rb_class c on o.ClassId = c.ClassId
WHERE og.Status =0 and g.`Status` =0 and o.Group_Id ={group_Id} and o.OrderState <>3 and o.OrderType =1 and g.TotalHours > g.CompleteHours and og.Student_Id ={accountId} WHERE og.Status =0 and g.`Status` =0 and o.Group_Id ={group_Id} and o.OrderState <>3 and o.OrderType =1 and g.TotalHours > g.CompleteHours and og.Student_Id ={accountId} {(guestId > 0 ? "and og.GuestId =" + guestId : "")}
ORDER BY og.Id asc LIMIT 1"; ORDER BY og.Id asc LIMIT 1";
return Get<RB_Student_OrderGuest_ViewModel>(sql).FirstOrDefault(); return Get<RB_Student_OrderGuest_ViewModel>(sql).FirstOrDefault();
} }
...@@ -775,6 +775,43 @@ LEFT JOIN rb_channel ch on s.StuChannel = ch.Id"; ...@@ -775,6 +775,43 @@ LEFT JOIN rb_channel ch on s.StuChannel = ch.Id";
GROUP BY s.StuId order by s.StuId desc"; GROUP BY s.StuId order by s.StuId desc";
return GetPage<RB_Student_ViewModel>(pageIndex, pageSize, out count, sql, parameters).ToList(); return GetPage<RB_Student_ViewModel>(pageIndex, pageSize, out count, sql, parameters).ToList();
} }
#endregion
#region 预约管理
/// <summary>
/// 获取可约课的学生列表
/// </summary>
/// <param name="courseId"></param>
/// <param name="group_Id"></param>
/// <returns></returns>
public List<RB_Student_OrderGuest_ViewModel> GetCanAppointmentStuList(int courseId, int NextChapterNo, int SchoolId, int group_Id)
{
string sql = $@"SELECT sog.Student_Id,sog.GuestId,s.StuName as GuestName,og.CourseChapterNo,DATE_FORMAT(sa.Date,'%Y-%m-%d') as AppointDate,sa.AppointNum FROM rb_student_orderguest sog
INNER JOIN rb_order_guest og on sog.GuestId = og.Id
INNER JOIN rb_order o on sog.OrderId = o.OrderId
INNER JOIN rb_student s on sog.Student_Id = s.StuId
INNER JOIN rb_class c on o.ClassId = c.ClassId
LEFT JOIN (
SELECT StuId,MAX(Date) AS Date, COUNT(0) as AppointNum FROM rb_scroll_appointment
WHERE `Status` =0 and State <>5 and CourseEndTime >=NOW() and Group_Id ={group_Id} GROUP BY StuId
) sa on sog.Student_Id = sa.StuId
WHERE o.Group_Id ={group_Id} and sog.`Status` =0 and og.GuestState <>2 and o.OrderState <>3 and c.ClassScrollType =2
and og.TotalChapterNo > og.CourseChapterNo ";
if (courseId > 0) {
sql += $@" and o.CourseId ={courseId}";
}
if (NextChapterNo > 0) {
sql += $@" and (og.CourseChapterNo + 1 + IFNULL(sa.AppointNum,0)) ={NextChapterNo}";
}
if (SchoolId >= 0) {
sql += $@" and o.ScrollSchoolId ={SchoolId}";
}
return Get<RB_Student_OrderGuest_ViewModel>(sql).ToList();
}
#endregion #endregion
} }
} }
...@@ -164,25 +164,54 @@ namespace Edu.WebApi.Controllers.User ...@@ -164,25 +164,54 @@ namespace Edu.WebApi.Controllers.User
{ {
ExcelRows = new List<ExcelColumn>() ExcelRows = new List<ExcelColumn>()
{ {
new ExcelColumn("学生"){ CellWidth=15}, new ExcelColumn("学生"){ CellWidth=15,Rowspan=2},
new ExcelColumn("电话"){ CellWidth=15}, new ExcelColumn("电话"){ CellWidth=15,Rowspan=2},
new ExcelColumn("课程顾问"){ CellWidth=15}, new ExcelColumn("课程顾问"){ CellWidth=15,Rowspan=2},
new ExcelColumn("协助老师"){ CellWidth=10}, new ExcelColumn("协助老师"){ CellWidth=10,Rowspan=2},
new ExcelColumn("合同时间"){ CellWidth=15}, new ExcelColumn("合同时间"){ CellWidth=15,Rowspan=2},
new ExcelColumn("所报课程"){ CellWidth=15}, new ExcelColumn("所报课程"){ CellWidth=20,Rowspan=2},
new ExcelColumn("当前级别"){ CellWidth=20}, new ExcelColumn("当前级别"){ CellWidth=15,Rowspan=2},
new ExcelColumn("生日"){ CellWidth=20}, new ExcelColumn("生日"){ CellWidth=15,Rowspan=2},
new ExcelColumn("客户来源"){ CellWidth=20}, new ExcelColumn("客户来源"){ CellWidth=15,Rowspan=2},
new ExcelColumn("学习目的"){ CellWidth=15}, new ExcelColumn("学习目的"){ CellWidth=15,Rowspan=2},
new ExcelColumn("关联来源人"){ CellWidth=15}, new ExcelColumn("关联来源人"){ CellWidth=15,Rowspan=2},
new ExcelColumn("收客渠道"){ CellWidth=15}, new ExcelColumn("收客渠道"){ CellWidth=15,Rowspan=2},
new ExcelColumn("负责人"){ CellWidth=15}, new ExcelColumn("负责人"){ CellWidth=15,Rowspan=2},
new ExcelColumn("合同状态"){ CellWidth=15}, new ExcelColumn("合同状态"){ CellWidth=15,Rowspan=2},
}
};
ExcelDataSource subHeader = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>()
{
new ExcelColumn(),
new ExcelColumn(),
new ExcelColumn(),
new ExcelColumn(),
new ExcelColumn(),
new ExcelColumn(),
new ExcelColumn(),
new ExcelColumn(),
new ExcelColumn(),
new ExcelColumn(),
new ExcelColumn(),
new ExcelColumn(),
new ExcelColumn(),
new ExcelColumn(),
} }
}; };
slist.Add(header);
var rootObj = JObject.Parse(JsonHelper.Serialize(list)); var rootObj = JObject.Parse(JsonHelper.Serialize(list));
int MaxMonth = rootObj.GetInt("MaxMonth");
for (var i = 0; i < MaxMonth; i++)
{
header.ExcelRows.Add(new ExcelColumn(value: "第" + (i + 1) + "个月") { Colspan = 3 });
subHeader.ExcelRows.Add(new ExcelColumn(value: "月份/续费/转介") { CellWidth=25});
subHeader.ExcelRows.Add(new ExcelColumn(value: "教师跟踪时间及情况说明") { CellWidth = 30 });
subHeader.ExcelRows.Add(new ExcelColumn(value: "顾问跟踪时间及情况说明") { CellWidth = 30 });
}
slist.Add(header);
slist.Add(subHeader);
JArray arrayList = JArray.Parse(rootObj.GetStringValue("RList")); JArray arrayList = JArray.Parse(rootObj.GetStringValue("RList"));
if (arrayList != null && arrayList.Count > 0) if (arrayList != null && arrayList.Count > 0)
...@@ -225,6 +254,35 @@ namespace Edu.WebApi.Controllers.User ...@@ -225,6 +254,35 @@ namespace Edu.WebApi.Controllers.User
columns.Add(new ExcelColumn(dObj.GetStringValue("StuChannelName"))); columns.Add(new ExcelColumn(dObj.GetStringValue("StuChannelName")));
columns.Add(new ExcelColumn(dObj.GetStringValue("CreateByName"))); columns.Add(new ExcelColumn(dObj.GetStringValue("CreateByName")));
columns.Add(new ExcelColumn(dObj.GetStringValue("StuGuestStateName"))); columns.Add(new ExcelColumn(dObj.GetStringValue("StuGuestStateName")));
JArray monthArray = JArray.Parse(dObj.GetStringValue("MonthList"));
if (monthArray != null && monthArray.Count > 0)
{
foreach (var mItem in monthArray)
{
JObject mObj = JObject.Parse(JsonHelper.Serialize(mItem));
int IsRenew = mObj.GetInt("IsRenew");
int IntroductionNum = mObj.GetInt("IntroductionNum");
string columns1 = mObj.GetStringValue("Month") + "/" + (IsRenew == 1 ? "是" : "否") + "/" + IntroductionNum;
columns.Add(new ExcelColumn(columns1));
string TeacherTime = mObj.GetStringValue("TeacherTime");
string Teacher = mObj.GetStringValue("Teacher");
string columns2 = TeacherTime + "-" + Teacher;
columns.Add(new ExcelColumn(columns2));
string ConsultantTime = mObj.GetStringValue("ConsultantTime");
string Consultant = mObj.GetStringValue("Consultant");
string columns3 = ConsultantTime;
if (!string.IsNullOrEmpty(Consultant))
{
columns3 += "\r\n" + Common.Plugin.StringHelper.AppHtmlFilterr(Consultant);
}
columns.Add(new ExcelColumn(columns3));
}
}
var dataRow = new ExcelDataSource() var dataRow = new ExcelDataSource()
{ {
ExcelRows = columns ExcelRows = columns
......
...@@ -680,6 +680,9 @@ namespace Edu.WebApi.Controllers.User ...@@ -680,6 +680,9 @@ namespace Edu.WebApi.Controllers.User
StuType = base.ParmJObj.GetInt("StuType"), StuType = base.ParmJObj.GetInt("StuType"),
ExistCourseConsultant=base.ParmJObj.GetInt("ExistCourseConsultant"), ExistCourseConsultant=base.ParmJObj.GetInt("ExistCourseConsultant"),
CategoryId=base.ParmJObj.GetInt("CategoryId"), CategoryId=base.ParmJObj.GetInt("CategoryId"),
QStudentStatus=base.ParmJObj.GetInt("QStudentStatus"),
AdvisorStatus=base.ParmJObj.GetInt("AdvisorStatus"),
StuChannel=base.ParmJObj.GetInt("StuChannel"),
}; };
if (query.IsQueryMyStu == 1) if (query.IsQueryMyStu == 1)
{ {
......
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