Commit c254352b authored by liudong1993's avatar liudong1993

1客人咨询

parent e231d1eb
......@@ -240,6 +240,11 @@ namespace Edu.Model.ViewModel.User
/// </summary>
public int OperateType { get; set; }
/// <summary>
/// 课程顾问
/// </summary>
public int ConsultantId { get; set; }
/// <summary>
/// 渠道名称
/// </summary>
......
......@@ -40,6 +40,14 @@ namespace Edu.Module.User
/// 学员续费介绍
/// </summary>
private readonly RB_Student_RenewOrderRepository student_RenewOrderRepository = new RB_Student_RenewOrderRepository();
/// <summary>
/// 服务人员
/// </summary>
private readonly RB_Student_AssistRepository student_AssistRepository = new RB_Student_AssistRepository();
/// <summary>
/// 账户
/// </summary>
private readonly RB_AccountRepository accountRepository = new RB_AccountRepository();
#region 学员跟进
......@@ -67,6 +75,8 @@ namespace Edu.Module.User
var TotalData = student_OrderGuestRepository.GetStudentFollowUpStat(demodel);
//查询每月续费介绍情况
var ROList = student_RenewOrderRepository.GetStuMonthList(demodel.Group_Id);
//查询课程顾问
var stuAssistList = student_AssistRepository.GetStudentAssistListRepository(new RB_Student_Assist_Extend() { QStuIds = stuIds });
#region 组装数据
int MaxMonth = 2;//最大月份
......@@ -124,12 +134,19 @@ namespace Edu.Module.User
});
}
var AssistId = stuAssistList.Where(x => x.StuId == item.StuId && x.AssistType == AssistTypeEnum.CourseAdviser).FirstOrDefault()?.AssistId ?? 0;
string AssistName = "";
if (AssistId > 0) {
AssistName = accountRepository.GetEmployeeInfo(AssistId)?.EmployeeName ?? "";
}
var StuObj = new
{
item.StuId,
item.StuName,
item.StuTel,
item.StuRealMobile,
AssistId,
AssistName,
ContractSTime = item.followUpTime,
item.CourseName,
JapanBaseInfo = item.JapanBaseInfo.ToName(),
......@@ -194,13 +211,23 @@ namespace Edu.Module.User
string stuIds = string.Join(",", slist.Select(x => x.StuId));
//查询学员最近的一条跟进记录
var flist = followRepository.GetStudentFollowUpLatelyList(stuIds, demodel.Group_Id);
//查询课程顾问
var stuAssistList = student_AssistRepository.GetStudentAssistListRepository(new RB_Student_Assist_Extend() { QStuIds = stuIds });
foreach (var item in slist) {
var fmodel = flist.Where(x => x.StuId == item.StuId).FirstOrDefault();
var AssistId = stuAssistList.Where(x => x.StuId == item.StuId && x.AssistType == AssistTypeEnum.CourseAdviser).FirstOrDefault()?.AssistId ?? 0;
string AssistName = "";
if (AssistId > 0)
{
AssistName = accountRepository.GetEmployeeInfo(AssistId)?.EmployeeName ?? "";
}
RList.Add(new
{
item.StuId,
item.StuName,
AssistId,
AssistName,
item.StuBirthStr,
item.StuTel,
item.StuRealMobile,
......
......@@ -245,7 +245,7 @@ INNER JOIN rb_order o on sog.OrderId = o.OrderId
public List<RB_Student_ViewModel> GetStudentFollowUpPageList(int pageIndex, int pageSize, out long count, RB_Student_ViewModel demodel)
{
DynamicParameters parameters = new DynamicParameters();
string where = " 1=1 and s.Status =0 ";
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}";
}
......@@ -270,11 +270,27 @@ INNER JOIN rb_order o on sog.OrderId = o.OrderId
if (demodel.StuType > 0)
{
where += $" and s.{nameof(RB_Student_ViewModel.StuType)} ={demodel.StuType}";
}
}
if (demodel.StuGuestState > 0)
{
where += $" and org.GuestState ={(int)demodel.StuGuestState}";
}
if (demodel.StuStage > 0)
{
where += $" and s.{nameof(RB_Student_ViewModel.StuStage)} ={demodel.StuStage}";
}
if (demodel.School_Id > -1)
{
where += $" and cl.School_Id ={demodel.School_Id}";
}
if (demodel.ConsultantId > 0)
{
where += $@" AND s.StuId IN (SELECT StuId FROM rb_student_assist WHERE AssistId ={demodel.ConsultantId} AND `Status`=0)";
}
if (demodel.CourseId > 0)
{
where += $" and o.CourseId ={demodel.CourseId}";
}
if (!string.IsNullOrEmpty(demodel.SFTime) && !string.IsNullOrEmpty(demodel.EFTime))
{
if (demodel.Q_FType == 1)
......@@ -336,11 +352,12 @@ 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
INNER JOIN rb_order_guest org on org.Id = og.GuestId
INNER JOIN rb_order o on og.OrderId = o.OrderId
inner join rb_class cl on cl.ClassId = o.ClassId
INNER JOIN 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.CreateTime >='{demodel.SFTime}' and f.CreateTime <='{demodel.EFTime} 23:59:59'";
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)))
......@@ -358,7 +375,7 @@ LEFT JOIN rb_education_contract ec on ec.GuestId = og.GuestId";
/// <returns></returns>
public RB_Student_ViewModel GetStudentFollowUpStat(RB_Student_ViewModel demodel) {
DynamicParameters parameters = new DynamicParameters();
string where = " 1=1 and s.Status =0 ";
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}";
......@@ -391,6 +408,22 @@ LEFT JOIN rb_education_contract ec on ec.GuestId = og.GuestId";
{
where += $" and org.GuestState ={(int)demodel.StuGuestState}";
}
if (demodel.StuStage > 0)
{
where += $" and s.{nameof(RB_Student_ViewModel.StuStage)} ={demodel.StuStage}";
}
if (demodel.School_Id > -1)
{
where += $" and cl.School_Id ={demodel.School_Id}";
}
if (demodel.ConsultantId > 0)
{
where += $@" AND s.StuId IN (SELECT StuId FROM rb_student_assist WHERE AssistId ={demodel.ConsultantId} AND `Status`=0)";
}
if (demodel.CourseId > 0)
{
where += $" and o.CourseId ={demodel.CourseId}";
}
if (!string.IsNullOrEmpty(demodel.SFTime) && !string.IsNullOrEmpty(demodel.EFTime))
{
if (demodel.Q_FType == 1)
......@@ -402,10 +435,51 @@ LEFT JOIN rb_education_contract ec on ec.GuestId = og.GuestId";
where += $" and f.Id is null";
}
}
if (demodel.BelongType > 0)
{
//全部
if (demodel.BelongType == 1)
{
where += $@" AND (s.CreateBy={demodel.CreateBy} OR s.StuId IN (SELECT StuId FROM rb_student_assist WHERE AssistId ={demodel.CreateBy} AND `Status`=0))";
}
//我负责的
else if (demodel.BelongType == 2)
{
where += $" AND s.{nameof(RB_Student_ViewModel.CreateBy)} ={demodel.CreateBy} ";
}
//我协同的
else if (demodel.BelongType == 3)
{
where += $" AND s.StuId IN (SELECT StuId FROM rb_student_assist WHERE AssistId ={demodel.CreateBy} AND `Status`=0) ";
}
//我下属的
else if (demodel.BelongType == 4)
{
if (demodel.CreateIds != null && demodel.CreateIds.Count > 0)
{
string createIds = string.Join(",", demodel.CreateIds);
if (!string.IsNullOrEmpty(createIds))
{
where += $" AND (s.{nameof(RB_Student_ViewModel.CreateBy)} IN({createIds}) OR s.StuId IN (SELECT StuId FROM rb_student_assist WHERE AssistId IN({createIds}) AND `Status`=0)) ";
}
}
else
{
where += $" AND s.{nameof(RB_Student_ViewModel.CreateBy)} ={demodel.CreateBy} ";
}
}
}
else
{
if (demodel.CreateBy > 0)
{
where += $" AND s.{nameof(RB_Student_ViewModel.CreateBy)} ={demodel.CreateBy} ";
}
}
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 =1 THEN 1 ELSE 0 END) AS StudyNum,
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
......@@ -413,22 +487,22 @@ SUM(CASE WHEN t.StuGuestState =7 THEN 1 ELSE 0 END) AS GraduateNum
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
{(demodel.IsQueryMyStu == 1 ? "INNER JOIN rb_student_assist sa on s.StuId = sa.StuId and sa.`Status` =0 and sa.AssistId =" + demodel.CreateBy : "")}
INNER JOIN rb_student_orderguest og on og.Student_Id = s.StuId
INNER JOIN (SELECT og.Student_Id,MAX(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
INNER JOIN rb_order_guest org on org.Id = og.GuestId
INNER JOIN rb_order o on og.OrderId = o.OrderId
inner join rb_class cl on cl.ClassId = o.ClassId
INNER JOIN 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.CreateTime >='{demodel.SFTime}' and f.CreateTime <='{demodel.EFTime} 23:59:59'";
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)) || demodel.IsQueryMyStu == 1)
if ((!string.IsNullOrEmpty(demodel.SFTime) && !string.IsNullOrEmpty(demodel.EFTime)))
{
sql += $" GROUP BY s.StuId";
}
......@@ -478,17 +552,25 @@ LEFT JOIN rb_education_contract ec on ec.GuestId = og.GuestId";
}
if (demodel.StuGuestState > 0)
{
where += $" and org.GuestState ={(int)demodel.StuGuestState}";
where += $" and og.GuestState ={(int)demodel.StuGuestState}";
}
if (demodel.Q_EnrollState > 0) {
if (demodel.Q_EnrollState == 1)
{
where += $" and o.OrderId is not null";
where += $" and o.OrderId is not null and c.CourseId <>1";//排除内部班
}
else {
where += $" and o.OrderId is null";
}
}
if (demodel.StuStage > 0)
{
where += $" and s.{nameof(RB_Student_ViewModel.StuStage)} ={demodel.StuStage}";
}
if (demodel.ConsultantId > 0)
{
where += $@" AND s.StuId IN (SELECT StuId FROM rb_student_assist WHERE AssistId ={demodel.ConsultantId} AND `Status`=0)";
}
if (demodel.BelongType > 0)
{
//全部
......@@ -531,7 +613,7 @@ LEFT JOIN rb_education_contract ec on ec.GuestId = og.GuestId";
}
}
string sql = $@"SELECT s.*,case when o.OrderId is null then 2 else 1 end as Q_EnrollState,og.GuestState,c.CourseId,c.CourseName,ch.Name as StuChannelName
string sql = $@"SELECT s.*,case when o.OrderId is null then 2 else 1 end as Q_EnrollState,og.GuestState as StuGuestState,c.CourseId,c.CourseName,ch.Name as StuChannelName
FROM rb_student s
LEFT JOIN (
SELECT sog.Student_Id,MAX(og.Id) AS GuestId FROM rb_student_orderguest sog
......@@ -543,7 +625,7 @@ LEFT JOIN rb_order_guest og on ot.GuestId = og.Id
LEFT JOIN rb_order o on og.OrderId = o.OrderId
LEFT JOIN rb_course c on o.CourseId = c.CourseId
LEFT JOIN rb_channel ch on s.StuChannel = ch.Id
WHERE 1=1
WHERE {where}
GROUP BY s.StuId order by s.StuId desc";
return GetPage<RB_Student_ViewModel>(pageIndex, pageSize, out count, sql, parameters).ToList();
}
......
......@@ -48,9 +48,14 @@ namespace Edu.WebApi.Controllers.User
demodel.CreateBy = userInfo.Id;
}
else {
if (demodel.BelongType == 1) {
if (demodel.BelongType == 1)
{
demodel.BelongType = 0;//暂先查全部
}
if (demodel.BelongType > 1)
{
demodel.CreateBy = userInfo.Id;
}
}
var list = studentStatModule.GetStudentFollowUpPageList(pmodel.PageIndex, pmodel.PageSize, out long count, demodel);
......@@ -78,6 +83,18 @@ namespace Edu.WebApi.Controllers.User
{
demodel.CreateBy = userInfo.Id;
}
else
{
if (demodel.BelongType == 1)
{
demodel.BelongType = 0;//暂先查全部
}
if (demodel.BelongType > 1)
{
demodel.CreateBy = userInfo.Id;
}
}
var list = studentStatModule.GetStudentConsultPageList(pmodel.PageIndex, pmodel.PageSize, out long count, demodel);
pmodel.Count = count;
pmodel.PageData = list;
......
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