Commit 2becfa7e authored by 黄奎's avatar 黄奎

页面修改

parent a27c1b6f
...@@ -380,5 +380,15 @@ namespace Edu.Model.ViewModel.User ...@@ -380,5 +380,15 @@ namespace Edu.Model.ViewModel.User
/// 同业编号 /// 同业编号
/// </summary> /// </summary>
public int CategoryId { get; set; } public int CategoryId { get; set; }
/// <summary>
/// 课程顾问跟进状态名称
/// </summary>
public string AdvisorStatusName { get; set; }
/// <summary>
/// 课程顾问跟进信息列表
/// </summary>
public List<RB_Student_Advisor_Extend> AdvisorList { get; set; }
} }
} }
\ No newline at end of file
...@@ -256,6 +256,11 @@ namespace Edu.Module.User ...@@ -256,6 +256,11 @@ namespace Edu.Module.User
{ {
QNeedsId = needIds QNeedsId = needIds
}); });
//课程顾问跟进信息
List<RB_Student_Advisor_Extend> advisorList = student_AdvisorRepository.GetStudentAdvisorListRepository(new RB_Student_Advisor_Extend() { QStuIds = stuIds });
foreach (var item in list) foreach (var item in list)
{ {
var tempOrderList = stuOrderList?.Where(qitem => qitem.Student_Id == item.StuId)?.ToList(); var tempOrderList = stuOrderList?.Where(qitem => qitem.Student_Id == item.StuId)?.ToList();
...@@ -311,6 +316,7 @@ namespace Edu.Module.User ...@@ -311,6 +316,7 @@ namespace Edu.Module.User
item.StuChannelName = channelList?.FirstOrDefault(qitem => qitem.Id == item.StuChannel)?.Name ?? ""; item.StuChannelName = channelList?.FirstOrDefault(qitem => qitem.Id == item.StuChannel)?.Name ?? "";
item.StuPurposeName = goalList?.FirstOrDefault(qitem => qitem.Id == item.StuPurpose)?.Name ?? ""; item.StuPurposeName = goalList?.FirstOrDefault(qitem => qitem.Id == item.StuPurpose)?.Name ?? "";
item.StuNeedsName = needList?.FirstOrDefault(qitem => qitem.Id == item.StuNeeds)?.Name ?? ""; item.StuNeedsName = needList?.FirstOrDefault(qitem => qitem.Id == item.StuNeeds)?.Name ?? "";
item.AdvisorList = advisorList?.Where(qitem => qitem.StuId == item.StuId)?.ToList() ?? new List<RB_Student_Advisor_Extend>();
} }
} }
return list; return list;
......
...@@ -62,6 +62,11 @@ namespace Edu.Module.User ...@@ -62,6 +62,11 @@ namespace Edu.Module.User
/// </summary> /// </summary>
private readonly RB_LearningGoalsRepository learningGoalsRepository = new RB_LearningGoalsRepository(); private readonly RB_LearningGoalsRepository learningGoalsRepository = new RB_LearningGoalsRepository();
/// <summary>
/// 课程顾问跟进仓储层对象
/// </summary>
private readonly RB_Student_AdvisorRepository student_AdvisorRepository = new RB_Student_AdvisorRepository();
#region 学员跟进 #region 学员跟进
...@@ -73,10 +78,11 @@ namespace Edu.Module.User ...@@ -73,10 +78,11 @@ namespace Edu.Module.User
/// <param name="count"></param> /// <param name="count"></param>
/// <param name="demodel"></param> /// <param name="demodel"></param>
/// <returns></returns> /// <returns></returns>
public object GetStudentFollowUpPageList(int pageIndex, int pageSize, out long count, RB_Student_ViewModel demodel) public object GetStudentFollowUpPageModule(int pageIndex, int pageSize, out long count, RB_Student_ViewModel demodel)
{ {
object Robj = new object(); object Robj = new object();
var slist = student_OrderGuestRepository.GetStudentFollowUpPageList(pageIndex, pageSize, out count, demodel); var slist = student_OrderGuestRepository.GetStudentFollowUpPageRepository(pageIndex, pageSize, out count, demodel);
if (slist.Any()) if (slist.Any())
{ {
string stuIds = string.Join(",", slist.Select(x => x.StuId)); string stuIds = string.Join(",", slist.Select(x => x.StuId));
...@@ -121,7 +127,7 @@ namespace Edu.Module.User ...@@ -121,7 +127,7 @@ namespace Edu.Module.User
} }
//同业录入列表 //同业录入列表
List<Model.ViewModel.Customer.RB_Customer_Extend> customerList = new List<Model.ViewModel.Customer.RB_Customer_Extend>(); List<RB_Customer_Extend> customerList = new List<Model.ViewModel.Customer.RB_Customer_Extend>();
List<int> customerIdList = Common.ConvertHelper.StringToList(string.Join(",", slist.Where(qitem => qitem.CreateType == StuCreateTypeEnum.CustomerInput).Select(qitem => qitem.StuSourceId))); List<int> customerIdList = Common.ConvertHelper.StringToList(string.Join(",", slist.Where(qitem => qitem.CreateType == StuCreateTypeEnum.CustomerInput).Select(qitem => qitem.StuSourceId)));
if (customerIdList != null && customerIdList.Count > 0) if (customerIdList != null && customerIdList.Count > 0)
{ {
...@@ -147,6 +153,8 @@ namespace Edu.Module.User ...@@ -147,6 +153,8 @@ namespace Edu.Module.User
QChannelIds = channelIds QChannelIds = channelIds
}); });
//课程顾问跟进信息
List<RB_Student_Advisor_Extend> advisorList = student_AdvisorRepository.GetStudentAdvisorListRepository(new RB_Student_Advisor_Extend() { QStuIds = stuIds });
#region 组装数据 #region 组装数据
int MaxMonth = 2;//最大月份 int MaxMonth = 2;//最大月份
//数据 //数据
...@@ -220,10 +228,11 @@ namespace Edu.Module.User ...@@ -220,10 +228,11 @@ namespace Edu.Module.User
{ {
item.StuSourceIdName = transStudentList?.FirstOrDefault(qitem => qitem.StuId == item.StuSourceId)?.StuName ?? ""; item.StuSourceIdName = transStudentList?.FirstOrDefault(qitem => qitem.StuId == item.StuSourceId)?.StuName ?? "";
} }
item.CreateByName = accountList?.FirstOrDefault(qitem => qitem.Id == item.CreateBy)?.AccountName ?? ""; item.CreateByName = accountList?.FirstOrDefault(qitem => qitem.Id == item.CreateBy)?.AccountName ?? "";
item.StuChannelName = channelList?.FirstOrDefault(qitem => qitem.Id == item.StuChannel)?.Name ?? ""; item.StuChannelName = channelList?.FirstOrDefault(qitem => qitem.Id == item.StuChannel)?.Name ?? "";
item.StuPurposeName = goalList?.FirstOrDefault(qitem => qitem.Id == item.StuPurpose)?.Name ?? ""; item.StuPurposeName = goalList?.FirstOrDefault(qitem => qitem.Id == item.StuPurpose)?.Name ?? "";
item.AdvisorList = advisorList?.Where(qitem => qitem.StuId == item.StuId)?.ToList();
var StuObj = new var StuObj = new
{ {
item.StuId, item.StuId,
...@@ -257,6 +266,11 @@ namespace Edu.Module.User ...@@ -257,6 +266,11 @@ namespace Edu.Module.User
item.EnterpriseName, item.EnterpriseName,
item.StuPurpose, item.StuPurpose,
item.StuPurposeName, item.StuPurposeName,
item.AdvisorWinRate,
item.AdvisorExpectDate,
item.AdvisorStatus,
item.AdvisorStatusName,
item.AdvisorList,
}; };
RList.Add(StuObj); RList.Add(StuObj);
} }
...@@ -307,7 +321,7 @@ namespace Edu.Module.User ...@@ -307,7 +321,7 @@ namespace Edu.Module.User
/// <param name="count"></param> /// <param name="count"></param>
/// <param name="demodel"></param> /// <param name="demodel"></param>
/// <returns></returns> /// <returns></returns>
public object GetStudentConsultPageList(int pageIndex, int pageSize, out long count, RB_Student_ViewModel demodel) public List<object> GetStudentConsultPageList(int pageIndex, int pageSize, out long count, RB_Student_ViewModel demodel)
{ {
List<object> RList = new List<object>(); List<object> RList = new List<object>();
var slist = student_OrderGuestRepository.GetStudentConsultPageList(pageIndex, pageSize, out count, demodel); var slist = student_OrderGuestRepository.GetStudentConsultPageList(pageIndex, pageSize, out count, demodel);
......
...@@ -240,11 +240,12 @@ WHERE 1=1 ...@@ -240,11 +240,12 @@ WHERE 1=1
var parameters = new DynamicParameters(); var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT t.*,g.GroupName,s.SName,IFNULL(a.Account,'') AS StudentAccount ,c.CustomerName SELECT t.*,g.GroupName,s.SName,IFNULL(a.Account,'') AS StudentAccount ,c.CustomerName,IFNULL(B.Name,'') AS AdvisorStatusName
FROM rb_student AS t LEFT JOIN rb_group AS g ON t.Group_Id=g.GId FROM rb_student AS t LEFT JOIN rb_group AS g ON t.Group_Id=g.GId
LEFT JOIN rb_school AS s ON t.School_Id=s.SId LEFT JOIN rb_school AS s ON t.School_Id=s.SId
left join rb_customer c on c.CustomerId = t.CustomerId LEFT JOIN rb_customer c on c.CustomerId = t.CustomerId
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
WHERE 1=1 WHERE 1=1
"); ");
if (query != null) if (query != null)
......
...@@ -337,7 +337,7 @@ where sog.Status =0 and o.Group_Id ={group_Id} and o.OrderState <>3 and IFNULL(o ...@@ -337,7 +337,7 @@ where sog.Status =0 and o.Group_Id ={group_Id} and o.OrderState <>3 and IFNULL(o
/// <param name="count"></param> /// <param name="count"></param>
/// <param name="demodel"></param> /// <param name="demodel"></param>
/// <returns></returns> /// <returns></returns>
public List<RB_Student_ViewModel> GetStudentFollowUpPageList(int pageIndex, int pageSize, out long count, RB_Student_ViewModel demodel) public List<RB_Student_ViewModel> GetStudentFollowUpPageRepository(int pageIndex, int pageSize, out long count, RB_Student_ViewModel demodel)
{ {
DynamicParameters parameters = new DynamicParameters(); DynamicParameters 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";//排除内部班课程
...@@ -456,18 +456,19 @@ where sog.Status =0 and o.Group_Id ={group_Id} and o.OrderState <>3 and IFNULL(o ...@@ -456,18 +456,19 @@ where sog.Status =0 and o.Group_Id ={group_Id} and o.OrderState <>3 and IFNULL(o
} }
string sql = $@" string sql = $@"
SELECT s.StuId,s.StuName,s.StuTel,s.FirstEnrollDate,s.StuRealMobile,s.StuPurpose,s.QQ,DATE_FORMAT(ec.CreateTime,'%Y-%m-%d') as followUpTime, SELECT s.StuId,s.StuName,s.StuTel,s.FirstEnrollDate,s.StuRealMobile,s.StuPurpose,s.QQ,DATE_FORMAT(ec.CreateTime,'%Y-%m-%d') as followUpTime
c.CourseId,c.CourseName,s.JapanBaseInfo,s.StuBirth,org.GuestState as StuGuestState,s.StuChannel,s.CreateType,s.StuSourceId,s.CreateBy ,c.CourseId,c.CourseName,s.JapanBaseInfo,s.StuBirth,org.GuestState as StuGuestState,s.StuChannel,s.CreateType,s.StuSourceId,s.CreateBy
,s.AdvisorStatus,s.AdvisorWinRate,s.AdvisorExpectDate,IFNULL(B.Name,'') AS AdvisorStatusName
FROM rb_student s FROM rb_student s
INNER JOIN rb_student_orderguest og on og.Student_Id = s.StuId 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 (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 o on og.OrderId = o.OrderId INNER JOIN rb_order_guest org on org.Id = og.GuestId
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 o on og.OrderId = o.OrderId
INNER JOIN rb_order_guest org on org.Id = og.GuestId inner join rb_class cl on cl.ClassId = o.ClassId
INNER JOIN rb_order o on og.OrderId = o.OrderId INNER JOIN rb_course c on o.CourseId = c.CourseId
inner join rb_class cl on cl.ClassId = o.ClassId LEFT JOIN rb_education_contract ec on ec.GuestId = og.GuestId
INNER JOIN rb_course c on o.CourseId = c.CourseId LEFT JOIN rb_student_advisorconfig AS b ON s.AdvisorStatus=B.Id
LEFT JOIN rb_education_contract ec on ec.GuestId = og.GuestId"; ";
if (!string.IsNullOrEmpty(demodel.SFTime) && !string.IsNullOrEmpty(demodel.EFTime)) { 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 += $@" 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'";
......
...@@ -19,6 +19,7 @@ using Edu.WebApi.Filter; ...@@ -19,6 +19,7 @@ using Edu.WebApi.Filter;
using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
namespace Edu.WebApi.Controllers.User namespace Edu.WebApi.Controllers.User
{ {
...@@ -92,7 +93,7 @@ namespace Edu.WebApi.Controllers.User ...@@ -92,7 +93,7 @@ namespace Edu.WebApi.Controllers.User
} }
} }
var list = studentStatModule.GetStudentFollowUpPageList(pmodel.PageIndex, pmodel.PageSize, out long count, demodel); var list = studentStatModule.GetStudentFollowUpPageModule(pmodel.PageIndex, pmodel.PageSize, out long count, demodel);
pmodel.Count = count; pmodel.Count = count;
pmodel.PageData = list; pmodel.PageData = list;
return ApiResult.Success("", pmodel); return ApiResult.Success("", pmodel);
...@@ -111,7 +112,32 @@ namespace Edu.WebApi.Controllers.User ...@@ -111,7 +112,32 @@ namespace Edu.WebApi.Controllers.User
{ {
var userInfo = base.UserInfo; var userInfo = base.UserInfo;
ResultPageModel pmodel = JsonHelper.DeserializeObject<ResultPageModel>(base.RequestParm.Msg.ToString()); ResultPageModel pmodel = JsonHelper.DeserializeObject<ResultPageModel>(base.RequestParm.Msg.ToString());
RB_Student_ViewModel demodel = JsonHelper.DeserializeObject<RB_Student_ViewModel>(base.RequestParm.Msg.ToString()); RB_Student_ViewModel demodel = new RB_Student_ViewModel()
{
BelongType=base.ParmJObj.GetInt("BelongType"),
ConsultantId=base.ParmJObj.GetInt("ConsultantId"),
EFTime=base.ParmJObj.GetStringValue("EFTime"),
IsQueryMyStu=base.ParmJObj.GetInt("IsQueryMyStu"),
QQ=base.ParmJObj.GetStringValue("QQ"),
Q_EnrollState=base.ParmJObj.GetInt("Q_EnrollState"),
Q_FType=base.ParmJObj.GetInt("Q_FType"),
SFTime=base.ParmJObj.GetStringValue("SFTime"),
StuChannel=base.ParmJObj.GetInt("StuChannel"),
StuGuestState=(GuestStateEnum)base.ParmJObj.GetInt("StuGuestState"),
StuName = base.ParmJObj.GetStringValue("StuName"),
StuRealMobile=base.ParmJObj.GetStringValue("StuRealMobile"),
StuStage=base.ParmJObj.GetInt("StuStage"),
StuType=base.ParmJObj.GetInt("StuType"),
WeChatNo=base.ParmJObj.GetStringValue("WeChatNo"),
};
List<int> empIds = new List<int>();
string createIds = base.ParmJObj.GetStringValue("CreateIds");
if (!string.IsNullOrEmpty(createIds))
{
empIds = JsonHelper.DeserializeObject<List<int>>(createIds);
}
demodel.CreateIds = empIds;
demodel.Group_Id = userInfo.Group_Id; demodel.Group_Id = userInfo.Group_Id;
if (demodel.IsQueryMyStu == 1) if (demodel.IsQueryMyStu == 1)
{ {
...@@ -135,6 +161,102 @@ namespace Edu.WebApi.Controllers.User ...@@ -135,6 +161,102 @@ namespace Edu.WebApi.Controllers.User
return ApiResult.Success("", pmodel); return ApiResult.Success("", pmodel);
} }
/// <summary>
/// 下载客人咨询信息
/// </summary>
/// <returns></returns>
[HttpPost]
[Obsolete]
public FileContentResult DownLoadStudentConsult()
{
List<ExcelDataSource> slist = new List<ExcelDataSource>();
RB_Student_ViewModel demodel = new RB_Student_ViewModel()
{
BelongType = base.ParmJObj.GetInt("BelongType"),
ConsultantId = base.ParmJObj.GetInt("ConsultantId"),
EFTime = base.ParmJObj.GetStringValue("EFTime"),
IsQueryMyStu = base.ParmJObj.GetInt("IsQueryMyStu"),
QQ = base.ParmJObj.GetStringValue("QQ"),
Q_EnrollState = base.ParmJObj.GetInt("Q_EnrollState"),
Q_FType = base.ParmJObj.GetInt("Q_FType"),
SFTime = base.ParmJObj.GetStringValue("SFTime"),
StuChannel = base.ParmJObj.GetInt("StuChannel"),
StuGuestState = (GuestStateEnum)base.ParmJObj.GetInt("StuGuestState"),
StuName = base.ParmJObj.GetStringValue("StuName"),
StuRealMobile = base.ParmJObj.GetStringValue("StuRealMobile"),
StuStage = base.ParmJObj.GetInt("StuStage"),
StuType = base.ParmJObj.GetInt("StuType"),
WeChatNo = base.ParmJObj.GetStringValue("WeChatNo"),
};
List<int> empIds = new List<int>();
string createIds = base.ParmJObj.GetStringValue("CreateIds");
if (!string.IsNullOrEmpty(createIds))
{
empIds = JsonHelper.DeserializeObject<List<int>>(createIds);
}
demodel.CreateIds = empIds;
demodel.Group_Id = base.UserInfo.Group_Id;
if (demodel.IsQueryMyStu == 1)
{
demodel.CreateBy = base.UserInfo.Id;
}
else
{
if (demodel.BelongType == 1)
{
demodel.BelongType = 0;//暂先查全部
}
if (demodel.BelongType > 1)
{
demodel.CreateBy = base.UserInfo.Id;
}
}
var list = studentStatModule.GetStudentConsultPageList(1, 1000000, out long count, demodel);
string excelName = "客人咨询.xls";
try
{
ExcelDataSource header = new ExcelDataSource
{
ExcelRows = new List<ExcelColumn>()
{
new ExcelColumn("学生"){ CellWidth=15},
new ExcelColumn("状态"){ CellWidth=15},
new ExcelColumn("课程顾问"){ CellWidth=15},
new ExcelColumn("生日"){ CellWidth=10},
new ExcelColumn("电话"){ CellWidth=15},
new ExcelColumn("地址"){ CellWidth=15},
new ExcelColumn("渠道来源"){ CellWidth=20},
new ExcelColumn("日语基础"){ CellWidth=20},
new ExcelColumn("规划课程及报价"){ CellWidth=20},
new ExcelColumn("客户情况分析"){ CellWidth=50},
new ExcelColumn("顾问跟进备注"){ CellWidth=50},
}
};
slist.Add(header);
foreach (var item in list)
{
JObject dObj = JObject.Parse(JsonHelper.Serialize(item));
var columns = new List<ExcelColumn>();
columns.Add(new ExcelColumn(dObj.GetStringValue("StuName"));
var dataRow = new ExcelDataSource()
{
ExcelRows = columns
};
slist.Add(dataRow);
}
var byteData = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData, "application/octet-stream", excelName);
}
catch (Exception ex)
{
LogHelper.Write(ex, "OutToExcelOrderStudentClassHoursList");
var byteData1 = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData1, "application/octet-stream", excelName);
}
}
#endregion #endregion
} }
} }
...@@ -762,7 +762,12 @@ namespace Edu.WebApi.Controllers.User ...@@ -762,7 +762,12 @@ namespace Edu.WebApi.Controllers.User
item.StuRealMobile, item.StuRealMobile,
item.OrderCount, item.OrderCount,
item.RenewOrderCount, item.RenewOrderCount,
item.EnterpriseName item.EnterpriseName,
item.AdvisorExpectDate,
item.AdvisorStatus,
item.AdvisorStatusName,
item.AdvisorList,
item.AdvisorWinRate,
}); });
} }
pageModel.Count = rowsCount; pageModel.Count = rowsCount;
......
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