FROM RB_Student_Appointment AS A INNER JOIN rb_student AS B ON A.StuId=B.StuId
FROM RB_Student_Appointment AS A INNER JOIN rb_student AS B ON A.StuId=B.StuId
WHERE 1=1
");
");
if(IsQueryClue)
{
builder.Append(" LEFT JOIN (SELECT Student_Id,Count(1) AS OrderCount FROM rb_student_orderguest GROUP BY Student_Id) AS C ON A.StuId=C.Student_Id ");
}
builder.Append(" WHERE 1=1 ");
builder.AppendFormat(" AND A.{0}={1} ",nameof(RB_Student_Appointment_Extend.Status),(int)DateStateEnum.Normal);
builder.AppendFormat(" AND A.{0}={1} ",nameof(RB_Student_Appointment_Extend.Status),(int)DateStateEnum.Normal);
if(IsQueryClue)
{
builder.Append(" AND IFNULL(C.OrderCount,0)=0 ");
builder.AppendFormat(" AND IFNULL(A.{0},'')='' ",nameof(RB_Student_Appointment_Extend.Feedback));
}
if(query!=null)
if(query!=null)
{
{
if(query.Group_Id>0)
if(query.Group_Id>0)
...
@@ -54,10 +66,15 @@ WHERE 1=1
...
@@ -54,10 +66,15 @@ WHERE 1=1
{
{
builder.AppendFormat(" AND ( DATE_FORMAT(A.{0},'%y/%m/%d')= DATE_FORMAT('{2}','%y/%m/%d') OR DATE_FORMAT(A.{1},'%y/%m/%d')= DATE_FORMAT('{2}','%y/%m/%d')) ",nameof(RB_Student_Appointment_Extend.CreateTime),nameof(RB_Student_Appointment_Extend.AppointmentTime),Common.ConvertHelper.FormatDate(query.QueryDate));
builder.AppendFormat(" AND ( DATE_FORMAT(A.{0},'%y/%m/%d')= DATE_FORMAT('{2}','%y/%m/%d') OR DATE_FORMAT(A.{1},'%y/%m/%d')= DATE_FORMAT('{2}','%y/%m/%d')) ",nameof(RB_Student_Appointment_Extend.CreateTime),nameof(RB_Student_Appointment_Extend.AppointmentTime),Common.ConvertHelper.FormatDate(query.QueryDate));
}
}
if(!string.IsNullOrEmpty(query.KeyWords))
{
builder.AppendFormat(" AND (B.{0} LIKE @KeyWords OR B.{1} LIKE @KeyWords OR B.{2} LIKE @KeyWords)",nameof(RB_Student_ViewModel.StuName),nameof(RB_Student_ViewModel.WeChatNo),nameof(RB_Student_ViewModel.StuRealMobile));
where1+=string.Format(" AND ( DATE_FORMAT(B.{0},'%y/%m/%d')= DATE_FORMAT('{2}','%y/%m/%d') OR DATE_FORMAT(B.{1},'%y/%m/%d')= DATE_FORMAT('{2}','%y/%m/%d')) "
FROM rb_student_orderguest AS A INNER JOIN RB_Order AS B ON A.OrderId=B.OrderId
WHERE B.OrderState IN(1)
GROUP BY A.Student_Id
) AS C ON A.StuId=C.Student_Id
WHERE A.School_Id NOT IN(1,6,9) AND A.`Status`=0 AND A.StuStage<>7 AND A.AdvisorStatus<>7 AND IFNULL(C.OrderCount,0)>0
",tempWhere,where1);
if(!string.IsNullOrEmpty(KeyWords))
{
builder.AppendFormat(" AND (A.{0} LIKE @KeyWords OR A.{1} LIKE @KeyWords OR A.{2} LIKE @KeyWords)",nameof(RB_Student_ViewModel.StuName),nameof(RB_Student_ViewModel.WeChatNo),nameof(RB_Student_ViewModel.StuRealMobile));
@@ -274,6 +274,12 @@ FROM rb_student AS t LEFT JOIN rb_group AS g ON t.Group_Id=g.GId
...
@@ -274,6 +274,12 @@ FROM rb_student AS t LEFT JOIN rb_group AS g ON t.Group_Id=g.GId
LEFT JOIN rb_customer c on (c.CustomerId = t.StuSourceId AND t.CreateType=2)
LEFT JOIN rb_customer c on (c.CustomerId = t.StuSourceId AND t.CreateType=2)
LEFT JOIN rb_account as a ON (t.StuId=a.AccountId AND a.AccountType=4 )
LEFT JOIN rb_account as a ON (t.StuId=a.AccountId AND a.AccountType=4 )
LEFT JOIN rb_student_advisorconfig AS b ON t.AdvisorStatus=B.Id
LEFT JOIN rb_student_advisorconfig AS b ON t.AdvisorStatus=B.Id
LEFT JOIN (
SELECT A.Student_Id,Count(1) AS OrderCount
FROM rb_student_orderguest AS A INNER JOIN RB_Order AS B ON A.OrderId=B.OrderId
WHERE B.OrderState IN(1)
GROUP BY A.Student_Id
) AS org ON t.StuId=org.Student_Id
WHERE 1=1
WHERE 1=1
");
");
if(query!=null)
if(query!=null)
...
@@ -299,6 +305,10 @@ WHERE 1=1
...
@@ -299,6 +305,10 @@ WHERE 1=1
{
{
builder.AppendFormat(" AND t.{0}={1} ",nameof(RB_Student_ViewModel.StuId),query.StuId);
builder.AppendFormat(" AND t.{0}={1} ",nameof(RB_Student_ViewModel.StuId),query.StuId);
}
}
if(!string.IsNullOrEmpty(query.StuIds))
{
builder.AppendFormat(" AND t.{0} IN({1}) ",nameof(RB_Student_ViewModel.StuId),query.StuIds);
}
if(!string.IsNullOrWhiteSpace(query.StuName))
if(!string.IsNullOrWhiteSpace(query.StuName))
{
{
builder.AppendFormat(" AND t.{0} LIKE @StuName ",nameof(RB_Student_ViewModel.StuName));
builder.AppendFormat(" AND t.{0} LIKE @StuName ",nameof(RB_Student_ViewModel.StuName));
...
@@ -321,7 +331,7 @@ WHERE 1=1
...
@@ -321,7 +331,7 @@ WHERE 1=1
}
}
if(!string.IsNullOrWhiteSpace(query.KeyWords))
if(!string.IsNullOrWhiteSpace(query.KeyWords))
{
{
builder.AppendFormat(" AND (t.{0} LIKE @KeyWords OR t.{1} LIKE @KeyWords) ",nameof(RB_Student_ViewModel.StuName),nameof(RB_Student_ViewModel.StuTel));
builder.AppendFormat(" AND (t.{0} LIKE @KeyWords OR t.{1} LIKE @KeyWords OR t.{2} LIKE @KeyWords) ",nameof(RB_Student_ViewModel.StuName),nameof(RB_Student_ViewModel.WeChatNo),nameof(RB_Student_ViewModel.StuRealMobile));
builder.Append(" AND IFNULL(org.OrderCount,0)=0 ");
builder.AppendFormat(" AND NOT Exists (SELECT StuId FROM rb_student_follow WHERE `Status`=0 AND t.StuId=StuId AND CreateBy={0}) ",query.CreateBy);
}
//分配给我的学员(有订单&&从未跟进该学员)
if(query.IsSelectMyStu==1)
{
{
builder.AppendFormat(" AND Exists(SELECT StuId FROM RB_Student_Appointment WHERE `Status`=0 AND t.StuId=StuId AND IFNULL(Feedback,'')='') ");
builder.Append(" AND IFNULL(org.OrderCount,0)>0 ");
builder.AppendFormat(" AND NOT Exists (SELECT StuId FROM rb_student_follow WHERE `Status`=0 AND t.StuId=StuId AND CreateBy={0}) ",query.CreateBy);
}
}
//查询未跟进学员
//查询今日被跟进学员(有订单&&有跟进记录)
if(query.IsQueryNotFollow==1)
if(query.IsQueryTodayFollow==1)
{
{
builder.AppendFormat(" AND NOT Exists (SELECT StuId FROM rb_student_follow WHERE `Status`=0 AND t.StuId=StuId) ");
builder.Append(" AND IFNULL(org.OrderCount,0)>0 ");
builder.AppendFormat(" AND Exists (SELECT StuId FROM rb_student_follow WHERE `Status`=0 AND t.StuId=StuId AND CreateBy={0} AND CreateTime>='{1}' AND CreateTime<='{2} 23:59:59') ",query.CreateBy,query.FollowStartTime,query.FollowEndTime);
}
}
}
}
builder.AppendFormat(" ORDER BY t.{0} DESC ",nameof(RB_Student_ViewModel.StuId));
builder.AppendFormat(" ORDER BY t.{0} DESC ",nameof(RB_Student_ViewModel.StuId));
builder.AppendFormat(" AND (A.{0}<>0 OR A.{1}<>0) ",nameof(RB_Student_Company_Extend.OrderNotMoney),nameof(RB_Student_Company_Extend.StudyOrderNotMoney));
builder.AppendFormat(" AND (A.{0}<>0 OR A.{1}<>0) ",nameof(RB_Student_Company_Extend.OrderNotMoney),nameof(RB_Student_Company_Extend.StudyOrderNotMoney));
}
}
if(!string.IsNullOrEmpty(query.QIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ",nameof(RB_Student_Company_Extend.Id),query.QIds);
}
}
}
builder.AppendFormat(" ORDER BY A.{0} ASC ",nameof(RB_Student_Company_Extend.Id));
builder.AppendFormat(" ORDER BY A.{0} ASC ",nameof(RB_Student_Company_Extend.Id));
SELECT CONCAT(DATE_FORMAT(A.Date, '%Y-%m'),'-01') AS Date,A.YearStr,A.MonthStr,SUM(A.PushCount) AS PushCount,SUM(A.NewCount) AS NewCount,SUM(A.CommunicationCount) AS CommunicationCount
SELECT MAX(Id) AS Id,CONCAT(DATE_FORMAT(A.Date, '%Y-%m'),'-01') AS Date,A.YearStr,A.MonthStr,SUM(A.PushCount) AS PushCount,SUM(A.NewCount) AS NewCount,MAX(A.CommunicationCount) AS CommunicationCount
,SUM(A.TrialLessonCount) AS TrialLessonCount,SUM(A.NotContacted) AS NotContacted,SUM(A.JPCount) AS JPCount,SUM(A.KRCount) AS KRCount,SUM(A.FRCount) AS FRCount
,SUM(A.TrialLessonCount) AS TrialLessonCount,MAX(A.NotContacted) AS NotContacted,SUM(A.JPCount) AS JPCount,SUM(A.KRCount) AS KRCount,SUM(A.FRCount) AS FRCount
,SUM(A.JPStudyCount) AS JPStudyCount,SUM(A.KRStudyCount) AS KRStudyCount,SUM(A.YGAStudyCount) AS YGAStudyCount,SUM(A.USStudyCount) AS USStudyCount
,SUM(A.JPStudyCount) AS JPStudyCount,SUM(A.KRStudyCount) AS KRStudyCount,SUM(A.YGAStudyCount) AS YGAStudyCount,SUM(A.USStudyCount) AS USStudyCount
,SUM(A.SGStudyCount) AS SGStudyCount,SUM(A.AXStudyCount) AS AXStudyCount,SUM(A.OtherCount) AS OtherCount,SUM(A.ClassACount) AS ClassACount,SUM(A.ClassBCount) AS ClassBCount
,SUM(A.SGStudyCount) AS SGStudyCount,SUM(A.AXStudyCount) AS AXStudyCount,SUM(A.OtherCount) AS OtherCount,SUM(A.ClassACount) AS ClassACount,SUM(A.ClassBCount) AS ClassBCount
,SUM(A.ClassCCount) AS ClassCCount,SUM(A.ClassDCount) AS ClassDCount,SUM(A.CustomerCount) AS CustomerCount,SUM(A.B2CCount) AS B2CCount,SUM(A.TransCount) AS TransCount
,SUM(A.ClassCCount) AS ClassCCount,SUM(A.ClassDCount) AS ClassDCount,SUM(A.CustomerCount) AS CustomerCount,SUM(A.B2CCount) AS B2CCount,SUM(A.TransCount) AS TransCount
...
@@ -106,8 +110,8 @@ WHERE 1=1 AND A.Date<>'0001-01-01 00:00:00'
...
@@ -106,8 +110,8 @@ WHERE 1=1 AND A.Date<>'0001-01-01 00:00:00'
{
{
StringBuilderbuilder=newStringBuilder();
StringBuilderbuilder=newStringBuilder();
builder.AppendFormat(@"
builder.AppendFormat(@"
SELECT CONCAT(A.YearStr,'-01','-01') AS Date,A.YearStr,SUM(A.PushCount) AS PushCount,SUM(A.NewCount) AS NewCount,SUM(A.CommunicationCount) AS CommunicationCount
SELECT MAX(Id) AS Id,CONCAT(A.YearStr,'-01','-01') AS Date,A.YearStr,SUM(A.PushCount) AS PushCount,SUM(A.NewCount) AS NewCount,MAX(A.CommunicationCount) AS CommunicationCount
,SUM(A.TrialLessonCount) AS TrialLessonCount,SUM(A.NotContacted) AS NotContacted,SUM(A.JPCount) AS JPCount,SUM(A.KRCount) AS KRCount,SUM(A.FRCount) AS FRCount
,SUM(A.TrialLessonCount) AS TrialLessonCount,MAX(A.NotContacted) AS NotContacted,SUM(A.JPCount) AS JPCount,SUM(A.KRCount) AS KRCount,SUM(A.FRCount) AS FRCount
,SUM(A.JPStudyCount) AS JPStudyCount,SUM(A.KRStudyCount) AS KRStudyCount,SUM(A.YGAStudyCount) AS YGAStudyCount,SUM(A.USStudyCount) AS USStudyCount
,SUM(A.JPStudyCount) AS JPStudyCount,SUM(A.KRStudyCount) AS KRStudyCount,SUM(A.YGAStudyCount) AS YGAStudyCount,SUM(A.USStudyCount) AS USStudyCount
,SUM(A.SGStudyCount) AS SGStudyCount,SUM(A.AXStudyCount) AS AXStudyCount,SUM(A.OtherCount) AS OtherCount,SUM(A.ClassACount) AS ClassACount,SUM(A.ClassBCount) AS ClassBCount
,SUM(A.SGStudyCount) AS SGStudyCount,SUM(A.AXStudyCount) AS AXStudyCount,SUM(A.OtherCount) AS OtherCount,SUM(A.ClassACount) AS ClassACount,SUM(A.ClassBCount) AS ClassBCount
,SUM(A.ClassCCount) AS ClassCCount,SUM(A.ClassDCount) AS ClassDCount,SUM(A.CustomerCount) AS CustomerCount,SUM(A.B2CCount) AS B2CCount,SUM(A.TransCount) AS TransCount
,SUM(A.ClassCCount) AS ClassCCount,SUM(A.ClassDCount) AS ClassDCount,SUM(A.CustomerCount) AS CustomerCount,SUM(A.B2CCount) AS B2CCount,SUM(A.TransCount) AS TransCount
SELECT A.*,IFNULL(B.ClassName,'') AS ClassName,IFNULL(B.ClassNo,'') AS ClassNo,IFNULL(C.JoinType,0) AS StuJoinType,IFNULL(D.GuestState,0) AS StuGuestState
SELECT A.*,IFNULL(B.ClassName,'') AS ClassName,IFNULL(B.ClassNo,'') AS ClassNo,IFNULL(C.JoinType,0) AS StuJoinType,IFNULL(D.GuestState,0) AS StuGuestState
...
@@ -178,11 +179,16 @@ WHERE 1=1 AND C.OrderState<>3 AND D.Status=0
...
@@ -178,11 +179,16 @@ WHERE 1=1 AND C.OrderState<>3 AND D.Status=0
}
}
if(query.IsNotContract==1)
if(query.IsNotContract==1)
{
{
builder.AppendFormat(" AND C.OrderType=1 and C.CourseId<>1 ");
builder.AppendFormat(" AND C.OrderType=1 and C.CourseId<>1 AND stu.School_Id NOT IN(6,7,9) ");
builder.AppendFormat(@" AND NOT EXISTS(SELECT 1 FROM rb_education_contract WHERE A.OrderId=OrderId AND A.GuestId=GuestId AND `Status` NOT IN(4)) ");
builder.AppendFormat(@" AND NOT EXISTS(SELECT 1 FROM rb_education_contract WHERE A.OrderId=OrderId AND A.GuestId=GuestId AND `Status` NOT IN(4)) ");
}
}
if(!string.IsNullOrEmpty(query.KeyWords))
{
builder.Append(" AND (A.OrderId LIKE @KeyWords OR stu.StuName LIKE @KeyWords OR stu.WeChatNo LIKE @KeyWords OR stu.StuRealMobile LIKE @KeyWords) ");
builder.AppendFormat(" AND (A.{0}<>0 OR A.{1}<>0) ",nameof(RB_Student_Static_Extend.OrderNotMoney),nameof(RB_Student_Static_Extend.StudyOrderNotMoney));
builder.AppendFormat(" AND (A.{0}<>0 OR A.{1}<>0) ",nameof(RB_Student_Static_Extend.OrderNotMoney),nameof(RB_Student_Static_Extend.StudyOrderNotMoney));
}
}
if(!string.IsNullOrWhiteSpace(query.QIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ",nameof(RB_Student_Static_Extend.Id),query.QIds);
}
}
}
builder.AppendFormat(" ORDER BY A.{0} ASC ",nameof(RB_Student_Static_Extend.Id));
builder.AppendFormat(" ORDER BY A.{0} ASC ",nameof(RB_Student_Static_Extend.Id));
SELECT CONCAT(DATE_FORMAT(A.Date, '%Y-%m'),'-01') AS Date,A.YearStr,A.MonthStr,SUM(A.PushCount) AS PushCount,SUM(A.NewCount) AS NewCount,SUM(A.CommunicationCount) AS CommunicationCount
SELECT MAX(Id) AS Id,CONCAT(DATE_FORMAT(A.Date, '%Y-%m'),'-01') AS Date,A.YearStr,A.MonthStr,SUM(A.PushCount) AS PushCount,SUM(A.NewCount) AS NewCount,SUM(A.CommunicationCount) AS CommunicationCount
,SUM(A.TrialLessonCount) AS TrialLessonCount,SUM(A.NotContacted) AS NotContacted,SUM(A.JPCount) AS JPCount,SUM(A.KRCount) AS KRCount,SUM(A.FRCount) AS FRCount
,SUM(A.TrialLessonCount) AS TrialLessonCount,SUM(A.NotContacted) AS NotContacted,SUM(A.JPCount) AS JPCount,SUM(A.KRCount) AS KRCount,SUM(A.FRCount) AS FRCount
,SUM(A.JPStudyCount) AS JPStudyCount,SUM(A.KRStudyCount) AS KRStudyCount,SUM(A.YGAStudyCount) AS YGAStudyCount,SUM(A.USStudyCount) AS USStudyCount
,SUM(A.JPStudyCount) AS JPStudyCount,SUM(A.KRStudyCount) AS KRStudyCount,SUM(A.YGAStudyCount) AS YGAStudyCount,SUM(A.USStudyCount) AS USStudyCount
,SUM(A.SGStudyCount) AS SGStudyCount,SUM(A.AXStudyCount) AS AXStudyCount,SUM(A.OtherCount) AS OtherCount,SUM(A.ClassACount) AS ClassACount,SUM(A.ClassBCount) AS ClassBCount
,SUM(A.SGStudyCount) AS SGStudyCount,SUM(A.AXStudyCount) AS AXStudyCount,SUM(A.OtherCount) AS OtherCount,SUM(A.ClassACount) AS ClassACount,SUM(A.ClassBCount) AS ClassBCount
...
@@ -107,7 +111,7 @@ WHERE 1=1 AND A.Date<>'0001-01-01 00:00:00'
...
@@ -107,7 +111,7 @@ WHERE 1=1 AND A.Date<>'0001-01-01 00:00:00'
{
{
StringBuilderbuilder=newStringBuilder();
StringBuilderbuilder=newStringBuilder();
builder.AppendFormat(@"
builder.AppendFormat(@"
SELECT CONCAT(A.YearStr,'-01','-01') AS Date,A.YearStr,SUM(A.PushCount) AS PushCount,SUM(A.NewCount) AS NewCount,SUM(A.CommunicationCount) AS CommunicationCount
SELECT MAX(Id) AS Id,CONCAT(A.YearStr,'-01','-01') AS Date,A.YearStr,SUM(A.PushCount) AS PushCount,SUM(A.NewCount) AS NewCount,SUM(A.CommunicationCount) AS CommunicationCount
,SUM(A.TrialLessonCount) AS TrialLessonCount,SUM(A.NotContacted) AS NotContacted,SUM(A.JPCount) AS JPCount,SUM(A.KRCount) AS KRCount,SUM(A.FRCount) AS FRCount
,SUM(A.TrialLessonCount) AS TrialLessonCount,SUM(A.NotContacted) AS NotContacted,SUM(A.JPCount) AS JPCount,SUM(A.KRCount) AS KRCount,SUM(A.FRCount) AS FRCount
,SUM(A.JPStudyCount) AS JPStudyCount,SUM(A.KRStudyCount) AS KRStudyCount,SUM(A.YGAStudyCount) AS YGAStudyCount,SUM(A.USStudyCount) AS USStudyCount
,SUM(A.JPStudyCount) AS JPStudyCount,SUM(A.KRStudyCount) AS KRStudyCount,SUM(A.YGAStudyCount) AS YGAStudyCount,SUM(A.USStudyCount) AS USStudyCount
,SUM(A.SGStudyCount) AS SGStudyCount,SUM(A.AXStudyCount) AS AXStudyCount,SUM(A.OtherCount) AS OtherCount,SUM(A.ClassACount) AS ClassACount,SUM(A.ClassBCount) AS ClassBCount
,SUM(A.SGStudyCount) AS SGStudyCount,SUM(A.AXStudyCount) AS AXStudyCount,SUM(A.OtherCount) AS OtherCount,SUM(A.ClassACount) AS ClassACount,SUM(A.ClassBCount) AS ClassBCount