Commit 9df8ad49 authored by liudong1993's avatar liudong1993

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

parents a7b7d332 79a8e1b4
...@@ -34,5 +34,10 @@ namespace Edu.Model.ViewModel.Customer ...@@ -34,5 +34,10 @@ namespace Edu.Model.ViewModel.Customer
/// 学员姓名 /// 学员姓名
/// </summary> /// </summary>
public string StuName { get; set; } public string StuName { get; set; }
/// <summary>
/// 名称、微信、手机号搜索
/// </summary>
public string KeyWords { get; set; }
} }
} }
...@@ -36,6 +36,11 @@ namespace Edu.Model.ViewModel.User ...@@ -36,6 +36,11 @@ namespace Edu.Model.ViewModel.User
/// 当月上课人数【當月份尚未結束銷課的總人數(包含當月新報名)】 /// 当月上课人数【當月份尚未結束銷課的總人數(包含當月新報名)】
/// </summary> /// </summary>
public decimal ClassStudentCount { get; set; } public decimal ClassStudentCount { get; set; }
/// <summary>
/// 查询编号
/// </summary>
public string QIds { get; set; }
} }
/// <summary> /// <summary>
......
...@@ -153,5 +153,10 @@ namespace Edu.Model.ViewModel.User ...@@ -153,5 +153,10 @@ namespace Edu.Model.ViewModel.User
/// 查询未领取合同学员 /// 查询未领取合同学员
/// </summary> /// </summary>
public int IsNotContract { get; set; } public int IsNotContract { get; set; }
/// <summary>
/// 订单号,学员名称、微信、电话
/// </summary>
public string KeyWords { get; set; }
} }
} }
...@@ -31,6 +31,11 @@ namespace Edu.Model.ViewModel.User ...@@ -31,6 +31,11 @@ namespace Edu.Model.ViewModel.User
/// 查询待收金额不为0的数据 /// 查询待收金额不为0的数据
/// </summary> /// </summary>
public int IsQueryNotMoney { get; set; } public int IsQueryNotMoney { get; set; }
/// <summary>
/// 查询编号
/// </summary>
public string QIds { get; set; }
} }
/// <summary> /// <summary>
......
...@@ -175,6 +175,16 @@ namespace Edu.Model.ViewModel.User ...@@ -175,6 +175,16 @@ namespace Edu.Model.ViewModel.User
/// </summary> /// </summary>
public int QStudentType { get; set; } public int QStudentType { get; set; }
/// <summary>
/// 跟进开始时间
/// </summary>
public string FollowStartTime { get; set; }
/// <summary>
/// 跟进结束时间
/// </summary>
public string FollowEndTime { get; set; }
/// <summary> /// <summary>
/// 开始时间 /// 开始时间
/// </summary> /// </summary>
...@@ -449,11 +459,21 @@ namespace Edu.Model.ViewModel.User ...@@ -449,11 +459,21 @@ namespace Edu.Model.ViewModel.User
/// <summary> /// <summary>
/// 查询未跟进学员 /// 查询未跟进学员
/// </summary> /// </summary>
public int IsQueryNotFollow { get; set; } public int IsSelectMyStu { get; set; }
/// <summary> /// <summary>
/// 查询未跟进的线索 /// 查询未跟进的线索
/// </summary> /// </summary>
public int IsQueryNotAppointment { get; set; } public int IsQueryNotAppointment { get; set; }
/// <summary>
/// 是否查询今日跟进
/// </summary>
public int IsQueryTodayFollow { get; set; }
/// <summary>
/// 分配给我的线索
/// </summary>
public int IsQueryMyClue { get; set; }
} }
} }
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
...@@ -6,6 +6,7 @@ using System; ...@@ -6,6 +6,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using VT.FW.DB.Dapper;
namespace Edu.Repository.Customer namespace Edu.Repository.Customer
{ {
...@@ -22,15 +23,26 @@ namespace Edu.Repository.Customer ...@@ -22,15 +23,26 @@ namespace Edu.Repository.Customer
/// <param name="rowsCount"></param> /// <param name="rowsCount"></param>
/// <param name="query"></param> /// <param name="query"></param>
/// <returns></returns> /// <returns></returns>
public List<RB_Student_Appointment_Extend> GetStudentAppointmentPageRepository(int pageIndex, int pageSize, out long rowsCount, RB_Student_Appointment_Extend query) public List<RB_Student_Appointment_Extend> GetStudentAppointmentPageRepository(int pageIndex, int pageSize, out long rowsCount, RB_Student_Appointment_Extend query,bool IsQueryClue=false)
{ {
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT A.*,B.StuName SELECT A.*,B.StuName
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));
parameters.Add("KeyWords", "%" + query.KeyWords.Trim() + "%");
}
} }
builder.AppendFormat(" ORDER BY A.{0} DESC ", nameof(RB_Student_Appointment_Extend.Id)); builder.AppendFormat(" ORDER BY A.{0} DESC ", nameof(RB_Student_Appointment_Extend.Id));
return GetPage<RB_Student_Appointment_Extend>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList(); return GetPage<RB_Student_Appointment_Extend>(pageIndex, pageSize, out rowsCount, builder.ToString(),parameters).ToList();
} }
...@@ -118,55 +135,56 @@ WHERE 1=1 ...@@ -118,55 +135,56 @@ WHERE 1=1
/// <param name="CreateBy">创建人</param> /// <param name="CreateBy">创建人</param>
/// <param name="UserType">1-课程顾问,2-老师</param> /// <param name="UserType">1-课程顾问,2-老师</param>
/// <returns></returns> /// <returns></returns>
public List<RB_Student_ViewModel> GetTodayConnectPageRepository(int pageIndex,int pageSize,out long rowsCount,string date,int CreateBy,int UserType=0) public List<RB_Student_ViewModel> GetTodayConnectPageRepository(int pageIndex,int pageSize,out long rowsCount,string date,int CreateBy,int UserType=0,string KeyWords="")
{ {
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
string where1="", where2="",tempWhere=""; string where1="", tempWhere="";
if (!string.IsNullOrEmpty(date))
{
//指定日期的约访统计
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')) "
, nameof(RB_Student_Appointment_Extend.CreateTime)
, nameof(RB_Student_Appointment_Extend.AppointmentTime),
date);
}
if (CreateBy > 0) if (CreateBy > 0)
{ {
where1 += string.Format(" AND B.{0}={1} ", nameof(RB_Student_Appointment_Extend.CreateBy), CreateBy); where1 += string.Format(@"
where2 += string.Format(@"
AND ( A.CreateBy IN({0}) AND ( A.CreateBy IN({0})
OR A.StuId IN (SELECT StuId FROM rb_student_assist WHERE AssistId IN({0}) AND `Status`=0) OR A.StuId IN (SELECT StuId FROM rb_student_assist WHERE AssistId IN({0}) AND `Status`=0)
) )
", CreateBy); ", CreateBy);
tempWhere += string.Format(" AND CreateBy={0} ", CreateBy);
} }
//课程顾问 //老师每周跟进一次
if (UserType == 1) if (UserType == 2)
{ {
tempWhere += string.Format(@" AND DATE_FORMAT(CreateTime, '%Y%m' )=DATE_FORMAT(NOW() , '%Y%m' ) "); tempWhere += string.Format(@" AND WEEK(CreateTime,1)=WEEK(NOW(),1) ");
} }
else if (UserType == 2) else
{ {
tempWhere += string.Format(@" AND WEEK(CreateTime,1)=WEEK(NOW(),1) "); tempWhere += string.Format(@" AND DATE_FORMAT(CreateTime, '%Y%m' )=DATE_FORMAT(NOW() , '%Y%m' ) ");
} }
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT * SELECT *
FROM FROM
( (
SELECT A.*
FROM rb_student AS A INNER JOIN RB_Student_Appointment AS B ON A.StuId=B.StuId
WHERE 1=1 {0}
UNION ALL
SELECT A.* SELECT A.*
FROM rb_student AS A FROM rb_student AS A
LEFT JOIN (SELECT StuId,COUNT(1) AS FollowCount FROM rb_student_follow WHERE 1=1 {2} GROUP BY StuId ) AS B ON A.StuId=B.StuId LEFT JOIN (SELECT StuId,COUNT(1) AS FollowCount FROM rb_student_follow WHERE 1=1 {0} GROUP BY StuId ) AS B ON A.StuId=B.StuId
WHERE 1=1 AND IFNULL(B.FollowCount,0)=0 {1} WHERE 1=1 AND IFNULL(B.FollowCount,0)=0 {1}
) AS A WHERE A.School_Id NOT IN(1,6,9) AND A.`Status`=0 AND A.StuStage<>7 AND A.AdvisorStatus<>7 ) AS A LEFT JOIN (
", where1,where2,tempWhere); SELECT A.Student_Id,Count(1) AS OrderCount
return GetPage<RB_Student_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList(); 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));
parameters.Add("KeyWords", "%" + KeyWords.Trim() + "%");
}
return GetPage<RB_Student_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
} }
} }
} }
using Edu.Common.Enum; using Edu.Common.Enum;
using Edu.Model.Entity.Customer; using Edu.Model.Entity.Customer;
using Edu.Model.ViewModel.Customer; using Edu.Model.ViewModel.Customer;
using Edu.Model.ViewModel.User;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
...@@ -26,9 +27,10 @@ namespace Edu.Repository.Customer ...@@ -26,9 +27,10 @@ namespace Edu.Repository.Customer
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT A.*,stu.StuName SELECT A.*,stu.StuName
FROM RB_Student_Follow AS A LEFT JOIN rb_student AS stu ON A.StuId=stu.StuId FROM RB_Student_Follow AS A INNER JOIN rb_student AS stu ON A.StuId=stu.StuId
WHERE 1=1
"); ");
builder.Append(" WHERE 1=1 ");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Follow_Extend.Status), (int)DateStateEnum.Normal); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Follow_Extend.Status), (int)DateStateEnum.Normal);
if (query != null) if (query != null)
{ {
...@@ -51,17 +53,16 @@ WHERE 1=1 ...@@ -51,17 +53,16 @@ WHERE 1=1
if (!string.IsNullOrEmpty(query.QueryDate)) if (!string.IsNullOrEmpty(query.QueryDate))
{ {
builder.AppendFormat(" AND date_format(A.CreateTime,'%Y-%m-%d')=date_format('{0}','%Y-%m-%d') ", query.QueryDate); builder.AppendFormat(" AND date_format(A.CreateTime,'%Y-%m-%d')=date_format('{0}','%Y-%m-%d') ", query.QueryDate);
if (query.CreateBy > 0) }
{ if (query.CreateBy > 0)
builder.AppendFormat(" AND (stu.CreateBy={0} OR EXISTS(SELECT 1 FROM rb_student_assist WHERE StuId=A.StuId AND AssistId={0}) ) ", query.CreateBy); {
} builder.AppendFormat(" AND (stu.CreateBy={0} OR EXISTS(SELECT 1 FROM rb_student_assist WHERE StuId=A.StuId AND AssistId={0}) ) ", query.CreateBy);
} }
} }
builder.AppendFormat(" ORDER BY A.{0} DESC ", nameof(RB_Student_Follow_Extend.Id)); builder.AppendFormat(" ORDER BY A.{0} DESC ", nameof(RB_Student_Follow_Extend.Id));
return GetPage<RB_Student_Follow_Extend>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList(); return GetPage<RB_Student_Follow_Extend>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList();
} }
/// <summary> /// <summary>
/// 获取学员跟进列表 /// 获取学员跟进列表
/// </summary> /// </summary>
......
...@@ -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));
parameters.Add("KeyWords", "%" + query.KeyWords.Trim() + "%"); parameters.Add("KeyWords", "%" + query.KeyWords.Trim() + "%");
} }
if (query.StuType > 0) if (query.StuType > 0)
...@@ -458,15 +468,25 @@ WHERE 1=1 ...@@ -458,15 +468,25 @@ WHERE 1=1
nameof(RB_Student_ViewModel.StuSourceId), nameof(RB_Student_ViewModel.StuSourceId),
query.StuSourceId); query.StuSourceId);
} }
//查询未未跟进的线索
if (query.IsQueryNotAppointment == 1) //分配给我的线索(无订单&&从未跟进学员)
if (query.IsQueryMyClue == 1)
{
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));
......
...@@ -49,6 +49,10 @@ WHERE 1=1 ...@@ -49,6 +49,10 @@ WHERE 1=1
{ {
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));
return Get<RB_Student_Company_Extend>(builder.ToString()).ToList(); return Get<RB_Student_Company_Extend>(builder.ToString()).ToList();
...@@ -63,8 +67,8 @@ WHERE 1=1 ...@@ -63,8 +67,8 @@ WHERE 1=1
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
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'
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
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
......
...@@ -129,6 +129,7 @@ GROUP BY A.Student_Id,A.OrderId ...@@ -129,6 +129,7 @@ GROUP BY A.Student_Id,A.OrderId
/// <returns></returns> /// <returns></returns>
public List<RB_Student_OrderGuest_ViewModel> GetStuOrderGuestPageRepository(int pageIndex,int pageSize,out long rowsCount, RB_Student_OrderGuest_ViewModel query) public List<RB_Student_OrderGuest_ViewModel> GetStuOrderGuestPageRepository(int pageIndex,int pageSize,out long rowsCount, RB_Student_OrderGuest_ViewModel query)
{ {
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
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) ");
parameters.Add("KeyWords", "%" + query.KeyWords.Trim() + "%");
}
} }
return GetPage<RB_Student_OrderGuest_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList(); return GetPage<RB_Student_OrderGuest_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
} }
......
...@@ -50,6 +50,10 @@ WHERE 1=1 ...@@ -50,6 +50,10 @@ WHERE 1=1
{ {
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));
return Get<RB_Student_Static_Extend>(builder.ToString()).ToList(); return Get<RB_Student_Static_Extend>(builder.ToString()).ToList();
...@@ -64,7 +68,7 @@ WHERE 1=1 ...@@ -64,7 +68,7 @@ WHERE 1=1
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
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'
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
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
......
...@@ -147,7 +147,7 @@ namespace Edu.WebApi.Timers ...@@ -147,7 +147,7 @@ namespace Edu.WebApi.Timers
marketTimer = new System.Timers.Timer() marketTimer = new System.Timers.Timer()
{ {
Interval = (1000 * 60) * (10) //10分钟执行一次 Interval = (1000 * 60) * (25) //25分钟执行一次
}; };
marketTimer.Elapsed += new System.Timers.ElapsedEventHandler(DealMarketConsultantData); marketTimer.Elapsed += new System.Timers.ElapsedEventHandler(DealMarketConsultantData);
marketTimer.Enabled = true; marketTimer.Enabled = true;
...@@ -233,6 +233,7 @@ namespace Edu.WebApi.Timers ...@@ -233,6 +233,7 @@ namespace Edu.WebApi.Timers
{ {
if (Interlocked.Exchange(ref marketconsultant_Timer, 1) == 0) if (Interlocked.Exchange(ref marketconsultant_Timer, 1) == 0)
{ {
Common.Plugin.LogHelper.Write("DealMarketConsultantData========Start");
var today = DateTime.Now; var today = DateTime.Now;
var currentDate = Common.ConvertHelper.FormatDate(today); var currentDate = Common.ConvertHelper.FormatDate(today);
var startDate = Common.ConvertHelper.FormatDate(today.AddDays(-1)); var startDate = Common.ConvertHelper.FormatDate(today.AddDays(-1));
...@@ -268,6 +269,7 @@ namespace Edu.WebApi.Timers ...@@ -268,6 +269,7 @@ namespace Edu.WebApi.Timers
teacherStaticModule.CreateTeacherStaticModule(user, startDate, currentDate, isInit: false); teacherStaticModule.CreateTeacherStaticModule(user, startDate, currentDate, isInit: false);
Common.Plugin.LogHelper.Write("CreateTeacherStaticModule:" + startDate); Common.Plugin.LogHelper.Write("CreateTeacherStaticModule:" + startDate);
} }
Common.Plugin.LogHelper.Write("DealMarketConsultantData========End");
Interlocked.Exchange(ref marketconsultant_Timer, 0); Interlocked.Exchange(ref marketconsultant_Timer, 0);
} }
} }
......
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