Commit ceabd77e authored by 黄奎's avatar 黄奎

页面修改

parent fcb0320a
......@@ -455,5 +455,10 @@ namespace Edu.Model.ViewModel.User
/// 查询未跟进的线索
/// </summary>
public int IsQueryNotAppointment { get; set; }
/// <summary>
/// 是否查询今日跟进
/// </summary>
public int IsQueryTodayFollow { get; set; }
}
}
\ No newline at end of file
......@@ -1259,7 +1259,7 @@ namespace Edu.Module.User
public List<object> GetStudentAppointmentPageModule(int pageIndex, int pageSize, out long rowsCount, RB_Student_Appointment_Extend query)
{
List<object> result = new List<object>();
var list = student_AppointmentRepository.GetStudentAppointmentPageRepository(pageIndex, pageSize, out rowsCount, query);
var list = student_AppointmentRepository.GetStudentAppointmentPageRepository(pageIndex, pageSize, out rowsCount, query,IsQueryClue:true);
if (list != null && list.Count > 0)
{
string stuIds = string.Join(",", list.Select(qitem => qitem.StuId));
......@@ -1991,110 +1991,71 @@ namespace Edu.Module.User
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <returns></returns>
public List<object> GetTodayFollowStudentModule(int pageIndex, int pageSize, out long rowsCount, int UserId)
public List<object> GetTodayFollowStudentModule(int pageIndex, int pageSize, out long rowsCount, RB_Student_ViewModel query)
{
List<object> result = new List<object>();
var query = new RB_Student_Follow_Extend()
{
QueryDate = Common.ConvertHelper.FormatDate(DateTime.Now),
CreateBy = UserId
};
var list = followRepository.GetStudentFollowPageRepository(pageIndex, pageSize, out rowsCount, query);
if (list != null)
var list = GetStudentPageListModule(pageIndex, pageSize, out rowsCount, query);
if (list != null&&list.Count>0)
{
//客户阶段列表
var stageList = stageRepository.GetStageListRepostory(new Model.Entity.System.RB_Stage()
{
Group_Id = list[0].Group_Id
});
//学员类型列表
var stuTypeList = student_TypeRepository.GetStudentTypeListRepository(new RB_Student_Type_Extend());
//学习目的
var goalList = learningGoalsRepository.GetLearningGoalsListRepository(new Model.ViewModel.System.RB_LearningGoals_Extend());
//渠道列表
var channelList = channelRepository.GetChannelListRepository(new Model.ViewModel.System.RB_Channel_Extend());
//客户需求
var needList = needsRepository.GetNeedsListRepository(new Model.ViewModel.System.RB_Needs_Extend() );
string stuIds = string.Join(",", list.Select(qitem => qitem.StuId));
var stuList= studentRepository.GetStudentListRepository(new RB_Student_ViewModel() { StuIds = stuIds }, isQueryCreateType: true, isQueryAssist: false);
//协助人员列表
var assistList = student_AssistRepository.GetStudentAssistListRepository(new RB_Student_Assist_Extend()
{
QStuIds = stuIds
});
List<int> empIds = new List<int>();
//内部介绍人
List<int> stuSourceIdList = Common.ConvertHelper.StringToList(string.Join(",", stuList.Where(qitem => qitem.CreateType == StuCreateTypeEnum.InternalIntroduction).Select(qitem => qitem.StuSourceId)));
if (stuSourceIdList != null && stuSourceIdList.Count > 0)
{
empIds.AddRange(stuSourceIdList);
}
//协助人员
List<int> assistIdList = Common.ConvertHelper.StringToList(string.Join(",", assistList.Select(qitem => qitem.AssistId)));
if (assistIdList != null && assistIdList.Count > 0)
{
empIds.AddRange(assistIdList);
}
//跟进人员创建人
List<int> createByIdList = Common.ConvertHelper.StringToList(string.Join(",", list.Select(qitem => qitem.CreateBy)));
if (createByIdList != null && createByIdList.Count > 0)
{
empIds.AddRange(createByIdList);
}
//学员负责人
List<int> stuCreateByList = Common.ConvertHelper.StringToList(string.Join(",",stuList.Select(qitem => qitem.CreateBy)));
if (stuCreateByList != null && stuCreateByList.Count > 0)
{
empIds.AddRange(stuCreateByList);
}
string createIds = string.Join(",", empIds);
var empList = new List<RB_Account_ViewModel>();
if (!string.IsNullOrEmpty(createIds))
{
empList = accountModule.GetAccountListExtModule(new RB_Account_ViewModel() { QIds = createIds });
}
foreach (var item in list)
{
var tempEmp = empList?.FirstOrDefault(qitem => qitem.Id == item.CreateBy)?.AccountName ?? "";
var tempStudent = stuList?.FirstOrDefault(qitem => qitem.StuId == item.StuId);
if (tempStudent != null)
{
var tempAssistList = assistList?.Where(qitem => qitem.StuId == item.StuId)?.ToList();
if (tempAssistList != null && tempAssistList.Count > 0)
{
foreach (var subItem in tempAssistList)
{
subItem.AssistName = empList?.FirstOrDefault(qitem => qitem.Id == subItem.AssistId)?.AccountName ?? "";
}
}
tempStudent.AssistList = tempAssistList;
}
result.Add(new
{
item.Id,
item.StuId,
item.StuName,
item.Remark,
CreateByName = tempEmp,
CreateTime = Common.ConvertHelper.FormatTime(item.CreateTime),
CreateTypeName = tempStudent?.CreateType.ToName() ?? "",
StuSourceId = tempStudent?.StuSourceId ?? 0,
StuSourceIdName = tempStudent?.StuSourceIdName ?? "",
AssistList = tempStudent?.AssistList?.Select(qitem => new
item.StuTel,
item.StuIcon,
item.StuSex,
StuSexStr = item.StuSex == 0 ? "男" : "女",
StuBirth = Common.ConvertHelper.FormatDate(item.StuBirth),
item.StuStage,
item.StuStageName,
CreateTimeStr = Common.ConvertHelper.FormatTime(item.CreateTime),
item.CreateBy,
item.CreateByName,
item.CreateType,
CreateTypeStr = item.CreateType.ToName(),
item.StuChannel,
item.StuChannelName,
item.PlatformName,
item.CustomerId,
item.CustomerName,
AssistList = item.AssistList.Select(qitem => new
{
qitem.AssistType,
AssistTypeName = qitem.AssistType.ToName(),
qitem.Id,
qitem.StuId,
qitem.AssistId,
qitem.AssistName,
qitem.AssistType,
AssistTypeName = qitem.AssistType.ToName()
}),
StuStageName = stageList?.FirstOrDefault(qitem => qitem.Id == tempStudent.StuStage)?.StageName ?? "",
StuTypeName = stuTypeList?.FirstOrDefault(qitem => qitem.Id == tempStudent.StuType)?.Name ?? "",
StuCreateByName = empList?.FirstOrDefault(qitem => qitem.Id == tempStudent.CreateBy)?.AccountName ?? "",
StuChannelName = channelList?.FirstOrDefault(qitem => qitem.Id == tempStudent.StuChannel)?.Name ?? "",
StuPurposeName = goalList?.FirstOrDefault(qitem => qitem.Id == tempStudent.StuPurpose)?.Name ?? "",
StuNeedsName = needList?.FirstOrDefault(qitem => qitem.Id == tempStudent.StuNeeds)?.Name ?? "",
item.JapanBaseInfo,
JapanBaseInfoName = item.JapanBaseInfo.ToName(),
item.StuProfession,
item.StuEducation,
StuEducationName = item.StuEducation.ToName(),
item.StuPurpose,
item.StuPurposeName,
item.VisitCount,
item.TrialLessonCount,
item.StuSourceId,
item.StuSourceIdName,
item.QQ,
item.WeChatNo,
item.StuType,
item.StuTypeName,
item.StuNeeds,
item.StuNeedsName,
item.StuRealMobile,
item.OrderCount,
item.RenewOrderCount,
item.EnterpriseName,
item.AdvisorExpectDate,
item.AdvisorStatus,
item.AdvisorStatusName,
item.AdvisorList,
item.AdvisorWinRate,
});
}
}
......
......@@ -23,17 +23,26 @@ namespace Edu.Repository.Customer
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <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();
builder.AppendFormat(@"
SELECT A.*,B.StuName
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 IFNULL(A.{0},'')='' ", nameof(RB_Student_Appointment_Extend.Feedback));
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.Group_Id > 0)
......@@ -173,7 +182,8 @@ FROM
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
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 (SELECT Student_Id,Count(1) AS OrderCount FROM rb_student_orderguest GROUP BY 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
", where1, where2, tempWhere);
if (!string.IsNullOrEmpty(KeyWords))
......
using Edu.Common.Enum;
using Edu.Model.Entity.Customer;
using Edu.Model.ViewModel.Customer;
using Edu.Model.ViewModel.User;
using System;
using System.Collections.Generic;
using System.Linq;
......@@ -26,9 +27,10 @@ namespace Edu.Repository.Customer
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,stu.StuName
FROM RB_Student_Follow AS A LEFT JOIN rb_student AS stu ON A.StuId=stu.StuId
WHERE 1=1
FROM RB_Student_Follow AS A INNER JOIN rb_student AS stu ON A.StuId=stu.StuId
");
builder.Append(" WHERE 1=1 ");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Follow_Extend.Status), (int)DateStateEnum.Normal);
if (query != null)
{
......@@ -51,17 +53,16 @@ WHERE 1=1
if (!string.IsNullOrEmpty(query.QueryDate))
{
builder.AppendFormat(" AND date_format(A.CreateTime,'%Y-%m-%d')=date_format('{0}','%Y-%m-%d') ", query.QueryDate);
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);
}
}
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(" ORDER BY A.{0} DESC ", nameof(RB_Student_Follow_Extend.Id));
return GetPage<RB_Student_Follow_Extend>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList();
}
/// <summary>
/// 获取学员跟进列表
/// </summary>
......
......@@ -274,6 +274,7 @@ 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_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 (SELECT Student_Id,Count(1) AS OrderCount FROM rb_student_orderguest GROUP BY Student_Id) AS org ON t.StuId=org.Student_Id
WHERE 1=1
");
if (query != null)
......@@ -465,12 +466,20 @@ WHERE 1=1
//查询未跟进的线索
if (query.IsQueryNotAppointment == 1)
{
builder.Append(" AND IFNULL(org.OrderCount,0)=0 ");
builder.AppendFormat(" AND Exists(SELECT StuId FROM RB_Student_Appointment WHERE `Status`=0 AND t.StuId=StuId AND IFNULL(Feedback,'')='') ");
}
//查询未跟进学员
if (query.IsQueryNotFollow == 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 NOT Exists (SELECT StuId FROM rb_student_follow WHERE `Status`=0 AND t.StuId=StuId AND CreateBy={0}) ", query.CreateBy);
}
//查询今日跟进
if (query.IsQueryTodayFollow == 1)
{
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.StartTime, query.EndTime);
}
}
builder.AppendFormat(" ORDER BY t.{0} DESC ", nameof(RB_Student_ViewModel.StuId));
......
......@@ -3319,6 +3319,101 @@ namespace Edu.WebApi.Controllers.User
#region 首页待办工作视图统计
/// <summary>
/// 工作视图统计
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetTodayStatic()
{
var pageModel = new ResultPageModel()
{
PageIndex=1,
PageSize=20,
};
var userId = 0;
userId = base.UserInfo.Id;
var todayClueQuery = new RB_Student_Appointment_Extend()
{
QueryDate = Common.ConvertHelper.FormatDate(DateTime.Now),
CreateBy = userId,
KeyWords = base.ParmJObj.GetStringValue("KeyWords"),
};
studentModule.GetStudentAppointmentPageModule(pageModel.PageIndex, pageModel.PageSize, out long TodayClueCount, todayClueQuery);
var todayConnectQuery = new RB_Student_Appointment_Extend()
{
QueryDate = Common.ConvertHelper.FormatDate(DateTime.Now),
CreateBy = userId,
KeyWords = base.ParmJObj.GetStringValue("KeyWords"),
};
studentModule.GetStudentAppointmentPageModule(pageModel.PageIndex, pageModel.PageSize, out long TodayConnectCount, todayConnectQuery);
var myClueQuery = new RB_Student_ViewModel()
{
IsQueryNotAppointment = 1,
BelongType = 1,
CreateBy = userId,
QStudentStatus = 1,
KeyWords = base.ParmJObj.GetStringValue("KeyWords")
};
studentModule.GetMyClueModule(pageModel.PageIndex, pageModel.PageSize, out long MyClueCount, myClueQuery);
var myStudentQuery = new RB_Student_ViewModel()
{
IsQueryNotFollow = 1,
BelongType = 1,
CreateBy = userId,
QStudentStatus = 1,
KeyWords = base.ParmJObj.GetStringValue("KeyWords")
};
studentModule.GetMyStudentModule(pageModel.PageIndex, pageModel.PageSize, out long MyStudentCount, myStudentQuery);
var myOrderNotReceiveContractQuery = new RB_Student_OrderGuest_ViewModel()
{
IsNotContract = 1,
CreateBy = userId,
KeyWords = base.ParmJObj.GetStringValue("KeyWords")
};
studentModule.GetContractNotModule(pageModel.PageIndex, pageModel.PageSize, out long MyOrderNotReceiveContractCount, myOrderNotReceiveContractQuery);
studentModule.GetOrderNotModule(pageModel.PageIndex, pageModel.PageSize, out long MyOrderNotBalanceCount, userId);
var todayFollowQuery = new RB_Student_ViewModel()
{
CreateBy = userId,
StartTime= base.ParmJObj.GetStringValue("StartTime"),
EndTime = Common.ConvertHelper.FormatDate(DateTime.Now),
IsQueryTodayFollow=1,
BelongType=1,
};
studentModule.GetTodayFollowStudentModule(pageModel.PageIndex, pageModel.PageSize, out long TodayFollowCount, todayFollowQuery);
studentModule.GetStraightwayGraduateStudentModule(pageModel.PageIndex, pageModel.PageSize, out long GraduateStudentCount, userId);
var query = new EducationReceiptQuery()
{
Group_Id = base.UserInfo.Group_Id,
Conditon = EduReceiptConditionEnum.WaitAgree,
CreateBy= userId,
};
educationReceiptModule.GetEducationReceiptPageModule(pageModel.PageIndex, pageModel.PageSize, out long NotBusinessBillCount, query);
var obj = new
{
TodayClueCount,
TodayConnectCount,
MyClueCount,
MyStudentCount,
MyOrderNotReceiveContractCount,
MyOrderNotBalanceCount,
TodayFollowCount,
GraduateStudentCount,
NotBusinessBillCount
};
return ApiResult.Success(data: obj);
}
/// <summary>
/// 今日需联系线索(之前预约或者24小时内收到的新线索)
/// </summary>
......@@ -3327,7 +3422,7 @@ namespace Edu.WebApi.Controllers.User
{
var pageModel = Common.Plugin.JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var userId = 0;
//userId = base.UserInfo.Id;
userId = base.UserInfo.Id;
var query = new RB_Student_Appointment_Extend()
{
QueryDate = Common.ConvertHelper.FormatDate(DateTime.Now),
......@@ -3346,7 +3441,7 @@ namespace Edu.WebApi.Controllers.User
public ApiResult GetTodayConnect()
{
var userId = 0;
//userId = base.UserInfo.Id;
userId = base.UserInfo.Id;
int UserType = 0;
if (base.UserInfo.IsCourseConsultant == 1)
{
......@@ -3394,8 +3489,7 @@ namespace Edu.WebApi.Controllers.User
public ApiResult MyStudent()
{
var userId = 0;
userId = 2855;
//userId = base.UserInfo.Id;
userId = base.UserInfo.Id;
var query = new RB_Student_ViewModel()
{
IsQueryNotFollow = 1,
......@@ -3440,12 +3534,11 @@ namespace Edu.WebApi.Controllers.User
{
var pageModel = Common.Plugin.JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var userId = 0;
//userId = base.UserInfo.Id;
userId = base.UserInfo.Id;
var list = studentModule.GetOrderNotModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, userId);
pageModel.PageData = list;
pageModel.Count = rowsCount;
return ApiResult.Success(data: pageModel);
}
/// <summary>
......@@ -3456,8 +3549,16 @@ namespace Edu.WebApi.Controllers.User
{
var pageModel = Common.Plugin.JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var userId = 0;
//userId = base.UserInfo.Id;
var list = studentModule.GetTodayFollowStudentModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, userId);
userId = base.UserInfo.Id;
var todayFollowQuery = new RB_Student_ViewModel()
{
StartTime = Common.ConvertHelper.FormatDate(DateTime.Now),
EndTime= Common.ConvertHelper.FormatDate(DateTime.Now),
CreateBy = userId,
IsQueryTodayFollow=1,
BelongType=1,
};
var list = studentModule.GetTodayFollowStudentModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, todayFollowQuery);
pageModel.PageData = list;
pageModel.Count = rowsCount;
return ApiResult.Success(data: pageModel);
......@@ -3470,7 +3571,7 @@ namespace Edu.WebApi.Controllers.User
public ApiResult GraduateStudent()
{
var userId = 0;
//userId = base.UserInfo.Id;
userId = base.UserInfo.Id;
var pageModel = Common.Plugin.JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var list = studentModule.GetStraightwayGraduateStudentModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, userId);
pageModel.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