Commit 3c514f01 authored by 吴春's avatar 吴春

学员跟进修改

parent 26824cdf
......@@ -22,7 +22,7 @@ namespace Edu.Model.ViewModel.DataStatistics
/// 学员名称
/// </summary>
public string StuName { get; set; }
/// <summary>
/// 学员电话
/// </summary>
......@@ -38,11 +38,36 @@ namespace Edu.Model.ViewModel.DataStatistics
/// </summary>
public string ContractSTime { get; set; }
/// <summary>
/// 报名日期
/// </summary>
public string CreateTime { get; set; }
/// <summary>
/// 职业
/// </summary>
public string StuProfession { get; set; }
/// <summary>
/// 课程名称
/// </summary>
public string CourseName { get; set; }
/// <summary>
/// 初报级别
/// </summary>
public string CourseRateName { get; set; }
/// <summary>
/// 金额
/// </summary>
public decimal PreferPrice { get; set; }
/// <summary>
/// 日语基础
/// </summary>
......@@ -82,6 +107,13 @@ namespace Edu.Model.ViewModel.DataStatistics
/// </summary>
public List<RB_Student_Assist_Extend> AssistList { get; set; }
public object FollowList { get; set; }
/// <summary>
/// 续费订单
/// </summary>
public object RenewOrderList { get; set; }
/// <summary>
/// 收客渠道
/// </summary>
......@@ -145,7 +177,7 @@ namespace Edu.Model.ViewModel.DataStatistics
/// <summary>
/// 课程顾问跟进状态名称
/// </summary>
public string AdvisorStatusName{ get; set; }
public string AdvisorStatusName { get; set; }
/// <summary>
/// 课程顾问跟进信息列表
......
......@@ -126,6 +126,14 @@ namespace Edu.Model.ViewModel.User
public int EnterID { get; set; }
/// <summary>
/// 初报级别
/// </summary>
public int CourseRate { get; set; }
/// <summary>
/// 订单金额
/// </summary>
public decimal PreferPrice { get; set; }
/// <summary>
/// 剩余课时
/// </summary>
......@@ -431,6 +439,11 @@ namespace Edu.Model.ViewModel.User
/// </summary>
public List<RB_Student_Advisor_Extend> AdvisorList { get; set; }
/// <summary>
/// 跟进信息列表
/// </summary>
public List<RB_Student_Follow_Extend> FollowList { get; set; }
/// <summary>
/// 客户状态(1-有效,2-无效)
/// </summary>
......
This diff is collapsed.
......@@ -167,7 +167,7 @@ GROUP BY s.StuSourceId,DATE_FORMAT(o.CreateTime,'%Y-%m')
public List<RB_Student_Follow_Extend> GetStudentFollowUpLatelyList(string stuIds, int group_Id)
{
string sql = $@"SELECT f.*,f1.Remark,f1.CreateTime FROM
(SELECT StuId,AssistType,MAX(Id) AS Id FROM rb_student_follow WHERE Group_Id ={group_Id} and `Status` =0 and StuId in ({stuIds}) and AssistType =2
(SELECT StuId,AssistType,MAX(Id) AS Id FROM rb_student_follow WHERE Group_Id ={group_Id} and `Status` =0 and StuId in ({stuIds})
GROUP BY StuId,AssistType
) f
INNER JOIN rb_student_follow f1 on f.Id = f1.Id
......
using Edu.Common.Enum;
using Edu.Model.Entity.User;
using Edu.Model.ViewModel.Customer;
using Edu.Model.ViewModel.Sell;
using Edu.Model.ViewModel.User;
using System.Collections.Generic;
......@@ -502,10 +503,83 @@ FROM rb_student s
return GetPage<RB_Student_ViewModel>(pageIndex, pageSize, out count, sql, parameters).ToList();
}
public string GetStudentFollowUpSql(RB_Student_ViewModel demodel, out DynamicParameters parameters)
/// <summary>
/// 获取学员跟进分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Student_ViewModel> GetStudentFollowUpPageRepository_V2(int pageIndex, int pageSize, out long count, RB_Student_ViewModel demodel)
{
string where = GetStudentFollowUpSql(demodel, out DynamicParameters parameters);
string joinType = "INNER JOIN";
if (demodel.QueryTpye == 3)
{
joinType = "LEFT JOIN";
}
string sql = $@"
SELECT o.CreateTime,s.StuId,s.StuName,s.StuTel,s.StuProfession,s.StuPurpose,c.CourseName,c.CourseRate,o.PreferPrice,s.JapanBaseInfo,s.CreateBy
FROM rb_student s
{joinType} rb_student_orderguest og on og.Student_Id = s.StuId
{joinType} (SELECT og.Student_Id,min(og.Id) as Id FROM rb_student_orderguest og INNER JOIN rb_order o on og.OrderId = o.OrderId WHERE o.OrderState <>3 GROUP BY og.Student_Id) stu on og.Id = stu.Id and og.Student_Id = s.StuId
{joinType} rb_order_guest org on org.Id = og.GuestId
{joinType} rb_order o on og.OrderId = o.OrderId
{joinType} rb_class cl on cl.ClassId = o.ClassId
{joinType} rb_course c on o.CourseId = c.CourseId
LEFT JOIN rb_education_contract ec on ec.GuestId = og.GuestId
LEFT JOIN rb_student_advisorconfig AS b ON s.AdvisorStatus=B.Id
LEFT JOIN (
SELECT B.Student_Id,MIN(A.ClassDate) AS ClassDate
FROM rb_class_check AS A INNER JOIN rb_student_orderguest AS B ON A.OrderGuestId=B.GuestId
WHERE A.Status=0 AND A.CheckStatus=0 GROUP BY B.Student_Id
) AS clcheck ON s.StuId=clcheck.Student_Id
";
if (!string.IsNullOrEmpty(demodel.SFTime) && !string.IsNullOrEmpty(demodel.EFTime))
{
//增加跟进链表
sql += $@" LEFT JOIN rb_student_follow f on s.StuId = f.StuId and f.`Status` =0 and f.AssistType in(2,4) and f.CreateTime >='{demodel.SFTime}' and f.CreateTime <='{demodel.EFTime} 23:59:59'";
}
sql += $" where {where} and o.JoinType=1 ";
if ((!string.IsNullOrEmpty(demodel.SFTime) && !string.IsNullOrEmpty(demodel.EFTime)))
{
sql += $" GROUP BY s.StuId";
}
sql += $" order by s.StuId desc";
return GetPage<RB_Student_ViewModel>(pageIndex, pageSize, out count, sql, parameters).ToList();
}
/// <summary>
/// 获取学员跟进分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Student_ViewModel> GetStudentRenewRepository( int group_Id,string stuIds)
{
string sql = $@"
SELECT s.StuId,c.CourseName,c.CourseRate,o.PreferPrice
FROM rb_student s
INNER JOIN rb_student_orderguest sog on s.StuId = sog.Student_Id
INNER JOIN rb_order o on sog.OrderId = o.OrderId
INNER JOIN rb_class cl on cl.ClassId = o.ClassId
INNER JOIN rb_course c on o.CourseId = c.CourseId
INNER JOIN rb_order_guest og on og.Id = sog.GuestId
WHERE s.Group_Id ={group_Id} and o.JoinType=3 and s.`Status` =0 and sog.`Status` =0 and o.OrderState <>3 and (o.RenewOrderId >0 or og.RenewState =2) and s.StuId in({stuIds})";
return Get<RB_Student_ViewModel>(sql).ToList();
}
public string GetStudentFollowUpSql(RB_Student_ViewModel demodel, out DynamicParameters parameters)
{
parameters = new DynamicParameters();
string where = " 1=1 and s.Status =0 and c.CourseId <>1";//排除内部班课程
string where = " 1=1 and s.Status =0 and c.CourseId <>1 ";//排除内部班课程
if (demodel.Group_Id > 0)
{
where += $" and s.{nameof(RB_Student_ViewModel.Group_Id)} ={demodel.Group_Id}";
......@@ -694,6 +768,52 @@ FROM rb_student s
return Get<RB_Student_ViewModel>(sql, parameters).FirstOrDefault();
}
/// <summary>
/// 获取人数统计
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public RB_Student_ViewModel GetStudentFollowUpStat_V2(RB_Student_ViewModel demodel)
{
string where = GetStudentFollowUpSql(demodel, out DynamicParameters parameters);
string joinType = "INNER JOIN";
if (demodel.QueryTpye == 3)
{
joinType = "LEFT JOIN";
}
string sql = $@"
SELECT count(0) as OrderCount,sum(case when t.RenewState = 1 then 1 else 0 end) AS RenewOrderCount,
SUM(CASE WHEN t.StuGuestState in(1,3,4,6,8,9) THEN 1 ELSE 0 END) AS StudyNum,
SUM(CASE WHEN t.StuGuestState =2 THEN 1 ELSE 0 END) AS DropOutNum,
SUM(CASE WHEN t.StuGuestState =5 THEN 1 ELSE 0 END) AS SuspendNum,
SUM(CASE WHEN t.StuGuestState =7 THEN 1 ELSE 0 END) AS GraduateNum
FROM(
SELECT s.StuId,s.StuName,s.StuTel,s.StuRealMobile,s.QQ,ec.CreateTime,c.CourseId,c.CourseName,s.JapanBaseInfo,s.StuBirth
,org.GuestState as StuGuestState,case when o.RenewOrderId >0 or org.RenewState =2 then 1 else 0 end AS RenewState
FROM rb_student s
{joinType} rb_student_orderguest og on og.Student_Id = s.StuId
{joinType} (SELECT og.Student_Id,min(og.Id) as Id FROM rb_student_orderguest og INNER JOIN rb_order o on og.OrderId = o.OrderId WHERE o.OrderState <>3 GROUP BY og.Student_Id) stu on og.Id = stu.Id and og.Student_Id = s.StuId
{joinType} rb_order_guest org on org.Id = og.GuestId
{joinType} rb_order o on og.OrderId = o.OrderId
{joinType} rb_class cl on cl.ClassId = o.ClassId
{joinType} rb_course c on o.CourseId = c.CourseId
LEFT JOIN rb_education_contract ec on ec.GuestId = og.GuestId ";
if (!string.IsNullOrEmpty(demodel.SFTime) && !string.IsNullOrEmpty(demodel.EFTime))
{
//增加跟进链表
sql += $@" LEFT JOIN rb_student_follow f on s.StuId = f.StuId and f.`Status` =0 and f.AssistType in(2,4) and f.CreateTime >='{demodel.SFTime}' and f.CreateTime <='{demodel.EFTime} 23:59:59'";
}
sql += $" where {where} ";
if ((!string.IsNullOrEmpty(demodel.SFTime) && !string.IsNullOrEmpty(demodel.EFTime)))
{
sql += $" GROUP BY s.StuId";
}
sql += $" order by s.StuId desc)t";
return Get<RB_Student_ViewModel>(sql, parameters).FirstOrDefault();
}
/// <summary>
/// 获取学员咨询分页列表
/// </summary>
......
94541b82de535cf18d27a637712047e12553e692
06d7e9a762b0ad4dcb0df09e38f6942167f188dbf481acb8b4898ac74af6bacd
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