Commit 8f5238bb authored by 黄奎's avatar 黄奎

页面修改

parent f7f676b8
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Edu.Model.Entity.Customer
{
/// <summary>
/// 课程顾问跟进实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Student_Advisor
{
/// <summary>
/// 主键编号
/// </summary>
public int Id { get; set; }
/// <summary>
/// 学员编号
/// </summary>
public int StuId { get; set; }
/// <summary>
/// 期望达成日期
/// </summary>
public string ExpectDate { get; set; }
/// <summary>
/// 胜率
/// </summary>
public decimal? WinRate { get; set; }
/// <summary>
/// 跟进状态
/// </summary>
public int? AdvisorStatus { get; set; }
/// <summary>
/// 疑似日期
/// </summary>
public string SuspectedDate { get; set; }
/// <summary>
/// 疑似备注
/// </summary>
public string SuspectedRemark { get; set; }
/// <summary>
/// 潜在日期
/// </summary>
public string PotentialDate { get; set; }
/// <summary>
/// 潜在备注
/// </summary>
public string PotentialRemark { get; set; }
/// <summary>
/// 接近日期
/// </summary>
public string NearDate { get; set; }
/// <summary>
/// 接近备注
/// </summary>
public string NearRemark { get; set; }
/// <summary>
/// 谈判时间
/// </summary>
public string NegotiationDate { get; set; }
/// <summary>
/// 谈判备注
/// </summary>
public string NegotiationRemark { get; set; }
/// <summary>
/// 达成协议时间
/// </summary>
public string ReachDate { get; set; }
/// <summary>
/// 达成协议备注
/// </summary>
public string ReachRemark { get; set; }
}
}
using Edu.Common.Enum;
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Edu.Model.Entity.Customer
{
/// <summary>
/// 课程顾问跟进配置实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Student_AdvisorConfig
{
/// <summary>
/// 达成配置编号
/// </summary>
public int Id { get; set; }
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 百分百
/// </summary>
public decimal Rate { get; set; }
/// <summary>
/// 排序
/// </summary>
public int Num { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 学校编号
/// </summary>
public int School_Id { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 修改人
/// </summary>
public int UpdateBy { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime UpdateTime { get; set; }
/// <summary>
/// 删除状态(0-正常,1-禁用)
/// </summary>
public DateStateEnum Status { get; set; }
}
}
using Edu.Model.Entity.Customer;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Model.ViewModel.Customer
{
/// <summary>
/// 课程顾问跟进配置扩展实体类
/// </summary>
public class RB_Student_AdvisorConfig_Extend : RB_Student_AdvisorConfig
{
}
}
using Edu.Model.Entity.Customer;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Model.ViewModel.Customer
{
/// <summary>
/// 课程顾问跟进扩展实体类
/// </summary>
public class RB_Student_Advisor_Extend : RB_Student_Advisor
{
/// <summary>
/// 学员编号
/// </summary>
public string QStuIds { get; set; }
}
}
......@@ -20,6 +20,11 @@ namespace Edu.Model.ViewModel.DataStatistics
/// </summary>
public int ChannelId { get; set; }
/// <summary>
/// 渠道类型
/// </summary>
public int ChannelType { get; set; }
/// <summary>
/// 回单(新增学员数量)
/// </summary>
......
......@@ -109,7 +109,8 @@ namespace Edu.Module.Customer
//市场部编号4,课程顾问部编号13
QDeptIds = "4",
Group_Id = 100000,
IsLeave = 1
IsLeave = 1,
UserRole= UserRoleEnum.MarketPersion,
});
if (empList != null && empList.Count > 0)
{
......@@ -321,7 +322,8 @@ namespace Edu.Module.Customer
//市场部编号4,课程顾问部编号13
QDeptIds = "13",
Group_Id = 100000,
IsLeave = 1
IsLeave = 1,
UserRole= UserRoleEnum.CourseConsultant,
});
if (empList != null && empList.Count > 0)
{
......@@ -1352,6 +1354,7 @@ namespace Edu.Module.Customer
{
ChannelName = item.Name,
ChannelId = item.Id,
ChannelType =1,
ClueCount = channelTempList?.Count()??0,
VisitCount = channelTempList?.Sum(qitem => qitem.VisitCount)??0,
OrderCount = channelTempList?.Sum(qitem => qitem.OrderCount)??0,
......@@ -1387,6 +1390,7 @@ namespace Edu.Module.Customer
ChannelName = "(企业)" + (customerList?.FirstOrDefault(qitem => qitem.CustomerId == subItem.StuSourceId)?.CustomerName ?? ""),
ChannelId= subItem.StuSourceId,
CustomerType= sItem.CustomerType,
ChannelType = 2,
ClueCount = tempCusList?.Count()??0,
VisitCount = tempCusList?.Sum(qitem => qitem.VisitCount)??0,
OrderCount = tempCusList?.Sum(qitem => qitem.OrderCount)??0,
......@@ -1401,6 +1405,7 @@ namespace Edu.Module.Customer
ChannelName = "(校代)" + (customerList?.FirstOrDefault(qitem => qitem.CustomerId == subItem.StuSourceId)?.CustomerName ?? ""),
ChannelId=subItem.StuSourceId,
CustomerType=sItem.CustomerType,
ChannelType = 2,
ClueCount = tempCusList?.Count()??0,
VisitCount = tempCusList?.Sum(qitem => qitem.VisitCount)??0,
OrderCount = tempCusList?.Sum(qitem => qitem.OrderCount)??0,
......@@ -1427,6 +1432,7 @@ namespace Edu.Module.Customer
{
ChannelName = "(内部介绍)" + (empList?.FirstOrDefault(qitem => qitem.Id == sItem.StuSourceId)?.EmployeeName ?? ""),
ChannelId=sItem.StuSourceId,
ChannelType = 3,
ClueCount = tempInnerList?.Count()??0,
VisitCount = tempInnerList?.Sum(qitem => qitem.VisitCount)??0,
OrderCount = tempInnerList?.Sum(qitem => qitem.OrderCount)??0,
......@@ -1450,6 +1456,7 @@ namespace Edu.Module.Customer
{
ChannelName = "(学员转介绍)" + stuList?.FirstOrDefault(qitem => qitem.StuId == sItem.StuSourceId)?.StuName ?? "",
ChannelId = sItem.StuSourceId,
ChannelType = 4,
ClueCount = tempTransList?.Count()??0,
VisitCount = tempTransList?.Sum(qitem => qitem.VisitCount)??0,
OrderCount = tempTransList?.Sum(qitem => qitem.OrderCount)??0,
......
......@@ -107,6 +107,15 @@ namespace Edu.Module.User
/// </summary>
private readonly RB_Student_AppointmentRepository student_AppointmentRepository = new RB_Student_AppointmentRepository();
/// <summary>
/// 课程顾问跟进配置仓储层对象
/// </summary>
private readonly RB_Student_AdvisorConfigRepository student_AdvisorConfigRepository = new RB_Student_AdvisorConfigRepository();
/// <summary>
/// 课程顾问跟进仓储层对象
/// </summary>
private readonly RB_Student_AdvisorRepository student_AdvisorRepository = new RB_Student_AdvisorRepository();
/// <summary>
/// 获取学生列表
......@@ -900,5 +909,164 @@ namespace Edu.Module.User
}
return flag ? "" : "出错了,请联系管理员";
}
#region
/// <summary>
/// 获取课程顾问跟进配置分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_AdvisorConfig_Extend> GetStudentAdvisorConfigPageModule(int pageIndex, int pageSize, out long rowsCount, RB_Student_AdvisorConfig_Extend query)
{
var list = student_AdvisorConfigRepository.GetStudentAdvisorConfigPageRepository(pageIndex, pageSize, out rowsCount, query);
return list;
}
/// <summary>
/// 获取课程顾问跟进配置列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_AdvisorConfig_Extend> GetStudentAdvisorConfigListRepository(RB_Student_AdvisorConfig_Extend query)
{
var list = student_AdvisorConfigRepository.GetStudentAdvisorConfigListRepository(query);
return list;
}
/// <summary>
/// 新增修改课程顾问配置
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool SetStudentAdvisorConfigModule(RB_Student_AdvisorConfig_Extend model)
{
bool flag = false;
if (model.Id > 0)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Student_AdvisorConfig_Extend.Name),model.Name },
{nameof(RB_Student_AdvisorConfig_Extend.Num),model.Num },
{nameof(RB_Student_AdvisorConfig_Extend.UpdateBy),model.UpdateBy },
{nameof(RB_Student_AdvisorConfig_Extend.UpdateTime),model.UpdateTime },
};
flag = student_AdvisorConfigRepository.Update(fileds, new WhereHelper(nameof(RB_Student_AdvisorConfig_Extend.Id), model.Id));
}
else
{
var newId = student_AdvisorConfigRepository.Insert(model);
model.Id = newId;
flag = newId > 0;
}
return flag;
}
/// <summary>
/// 根据编号获取课程顾问配置信息
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public RB_Student_AdvisorConfig_Extend GetStudentAdvisorConfigModule(object Id)
{
var model = student_AdvisorConfigRepository.GetEntity<RB_Student_AdvisorConfig_Extend>(Id);
return model;
}
/// <summary>
/// 根据编号删除课程顾问配置信息
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public bool RemoveStudentAdvisorConfigModule(object Id)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Student_AdvisorConfig_Extend.Status), (int)DateStateEnum.Delete },
};
bool flag = student_AdvisorConfigRepository.Update(fileds, new WhereHelper(nameof(RB_Student_AdvisorConfig_Extend.Id), Id));
return flag;
}
/// <summary>
/// 获取课程顾问跟进分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Advisor_Extend> GetStudentAdvisorPageRepository(int pageIndex, int pageSize, out long rowsCount, RB_Student_Advisor_Extend query)
{
var list = student_AdvisorRepository.GetStudentAdvisorPageRepository(pageIndex, pageSize, out rowsCount, query);
return list;
}
/// <summary>
/// 获取课程顾问跟进列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Advisor_Extend> GetStudentAdvisorListRepository(RB_Student_Advisor_Extend query)
{
var list = student_AdvisorRepository.GetStudentAdvisorListRepository(query);
return list;
}
/// <summary>
/// 新增修改课程顾问跟进记录
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool SetStudentAdvisorModule(RB_Student_Advisor_Extend model)
{
bool flag = false;
if (model.Id > 0)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Student_Advisor_Extend.StuId),model.StuId },
{nameof(RB_Student_Advisor_Extend.ExpectDate),model.ExpectDate },
{nameof(RB_Student_Advisor_Extend.WinRate),model.WinRate },
{nameof(RB_Student_Advisor_Extend.AdvisorStatus),model.AdvisorStatus },
{nameof(RB_Student_Advisor_Extend.SuspectedDate),model.SuspectedDate },
{nameof(RB_Student_Advisor_Extend.SuspectedRemark),model.SuspectedRemark },
{nameof(RB_Student_Advisor_Extend.PotentialDate),model.PotentialDate },
{nameof(RB_Student_Advisor_Extend.PotentialRemark),model.PotentialRemark },
{nameof(RB_Student_Advisor_Extend.NearDate),model.NearDate },
{nameof(RB_Student_Advisor_Extend.NearRemark),model.NearRemark },
{nameof(RB_Student_Advisor_Extend.NegotiationDate),model.NegotiationDate },
{nameof(RB_Student_Advisor_Extend.NegotiationRemark),model.NegotiationRemark },
{nameof(RB_Student_Advisor_Extend.ReachDate),model.ReachDate },
{nameof(RB_Student_Advisor_Extend.ReachRemark),model.ReachRemark },
};
flag = student_AdvisorRepository.Update(fileds, new WhereHelper(nameof(RB_Student_Advisor_Extend.Id), model.Id));
}
else
{
var newId = student_AdvisorRepository.Insert(model);
model.Id = newId;
flag = newId > 0;
}
return flag;
}
/// <summary>
/// 根据编号获取课程顾问跟进记录
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public RB_Student_Advisor_Extend GetStudentAdvisorModule(object Id)
{
var extModel = student_AdvisorRepository.GetEntity<RB_Student_Advisor_Extend>(Id);
return extModel;
}
#endregion
}
}
using Edu.Common.Enum;
using Edu.Model.Entity.Customer;
using Edu.Model.ViewModel.Customer;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB.Dapper;
namespace Edu.Repository.Customer
{
/// <summary>
/// 课程顾问跟进配置仓储层
/// </summary>
public class RB_Student_AdvisorConfigRepository : BaseRepository<RB_Student_AdvisorConfig>
{
/// <summary>
/// 获取课程顾问跟进配置分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_AdvisorConfig_Extend> GetStudentAdvisorConfigPageRepository(int pageIndex, int pageSize, out long rowsCount, RB_Student_AdvisorConfig_Extend query)
{
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM RB_Student_AdvisorConfig AS A
WHERE 1=1
");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_AdvisorConfig_Extend.Status), (int)DateStateEnum.Normal);
if (query != null)
{
if (!string.IsNullOrEmpty(query.Name))
{
builder.AppendFormat(" AND A.{0} LIKE @Name ", nameof(RB_Student_AdvisorConfig_Extend.Name));
parameters.Add("Name", "%" + query.Name.Trim() + "%");
}
}
builder.AppendFormat(" ORDER BY A.{0} ASC ", nameof(RB_Student_AdvisorConfig_Extend.Num));
return GetPage<RB_Student_AdvisorConfig_Extend>(pageIndex,pageSize,out rowsCount,builder.ToString(),parameters).ToList();
}
/// <summary>
/// 获取课程顾问跟进配置列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_AdvisorConfig_Extend> GetStudentAdvisorConfigListRepository(RB_Student_AdvisorConfig_Extend query)
{
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM RB_Student_AdvisorConfig AS A
WHERE 1=1
");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_AdvisorConfig_Extend.Status), (int)DateStateEnum.Normal);
if (query != null)
{
if (!string.IsNullOrEmpty(query.Name))
{
builder.AppendFormat(" AND A.{0} LIKE @Name ", nameof(RB_Student_AdvisorConfig_Extend.Name));
parameters.Add("Name", "%" + query.Name.Trim() + "%");
}
}
builder.AppendFormat(" ORDER BY A.{0} ASC ", nameof(RB_Student_AdvisorConfig_Extend.Num));
return Get<RB_Student_AdvisorConfig_Extend>(builder.ToString(),parameters).ToList();
}
}
}
using Edu.Model.Entity.Customer;
using Edu.Model.ViewModel.Customer;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Edu.Repository.Customer
{
/// <summary>
/// 课程顾问跟进仓储层
/// </summary>
public class RB_Student_AdvisorRepository : BaseRepository<RB_Student_Advisor>
{
/// <summary>
/// 获取课程顾问跟进分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Advisor_Extend> GetStudentAdvisorPageRepository(int pageIndex, int pageSize, out long rowsCount, RB_Student_Advisor_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM RB_Student_Advisor AS A
WHERE 1=1
");
if (query != null)
{
if (query.StuId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Advisor_Extend.StuId), query.StuId);
}
if (!string.IsNullOrEmpty(query.QStuIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Student_Advisor_Extend.StuId), query.QStuIds);
}
}
builder.AppendFormat(" ORDER BY A.{0} DESC ", nameof(RB_Student_Advisor_Extend.Id));
return GetPage<RB_Student_Advisor_Extend>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList();
}
/// <summary>
/// 获取课程顾问跟进列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Advisor_Extend> GetStudentAdvisorListRepository(RB_Student_Advisor_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM RB_Student_Advisor AS A
WHERE 1=1
");
if (query != null)
{
if (query.StuId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Advisor_Extend.StuId), query.StuId);
}
if (!string.IsNullOrEmpty(query.QStuIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Student_Advisor_Extend.StuId), query.QStuIds);
}
}
builder.AppendFormat(" ORDER BY A.{0} DESC ", nameof(RB_Student_Advisor_Extend.Id));
return Get<RB_Student_Advisor_Extend>(builder.ToString()).ToList();
}
}
}
......@@ -2988,14 +2988,15 @@ namespace Edu.WebApi.Controllers.User
int index = 1;
foreach (var item in list)
{
var excelRows = new List<ExcelColumn>();
excelRows.Add(new ExcelColumn(index.ToString()));
excelRows.Add(new ExcelColumn(item.ChannelName));
excelRows.Add(new ExcelColumn(item.ClueCount.ToString()));
excelRows.Add(new ExcelColumn(item.VisitCount.ToString()));
excelRows.Add(new ExcelColumn(item.OrderCount.ToString()));
excelRows.Add(new ExcelColumn(item.OrderIncome.ToString()));
var excelRows = new List<ExcelColumn>
{
new ExcelColumn(index.ToString()),
new ExcelColumn(item.ChannelName),
new ExcelColumn(item.ClueCount.ToString()),
new ExcelColumn(item.VisitCount.ToString()),
new ExcelColumn(item.OrderCount.ToString()),
new ExcelColumn(item.OrderIncome.ToString())
};
decimal rate = 0;
if (item.ClueCount > 0)
......@@ -3113,13 +3114,15 @@ namespace Edu.WebApi.Controllers.User
int index = 1;
foreach (var item in list)
{
var excelRows = new List<ExcelColumn>();
excelRows.Add(new ExcelColumn(index.ToString()));
excelRows.Add(new ExcelColumn(item.ChannelName));
excelRows.Add(new ExcelColumn(item.ClueCount.ToString()));
excelRows.Add(new ExcelColumn(item.VisitCount.ToString()));
excelRows.Add(new ExcelColumn(item.OrderCount.ToString()));
excelRows.Add(new ExcelColumn(item.OrderIncome.ToString()));
var excelRows = new List<ExcelColumn>
{
new ExcelColumn(index.ToString()),
new ExcelColumn(item.ChannelName),
new ExcelColumn(item.ClueCount.ToString()),
new ExcelColumn(item.VisitCount.ToString()),
new ExcelColumn(item.OrderCount.ToString()),
new ExcelColumn(item.OrderIncome.ToString())
};
decimal rate = 0;
if (item.ClueCount > 0)
......
......@@ -824,8 +824,9 @@ namespace Edu.WebApi.Controllers.User
var list = studentModule.GetStudentPageListModule(1, 1000000, out long rowsCount, query);
try
{
ExcelDataSource header = new ExcelDataSource();
header.ExcelRows = new List<ExcelColumn>()
ExcelDataSource header = new ExcelDataSource
{
ExcelRows = new List<ExcelColumn>()
{
new ExcelColumn("昵称"){ CellWidth=20},
new ExcelColumn("课程顾问"){ CellWidth=10},
......@@ -849,6 +850,7 @@ namespace Edu.WebApi.Controllers.User
new ExcelColumn("试听次数"){ CellWidth=10},
new ExcelColumn("创建时间"){ CellWidth=25},
new ExcelColumn("负责人"){ CellWidth=15},
}
};
slist.Add(header);
foreach (var item in list)
......@@ -997,7 +999,7 @@ namespace Edu.WebApi.Controllers.User
extModel.IsDisable = 1;
extModel.OperateType = 1;
if (!string.IsNullOrEmpty(extModel.StuTel) && studentModule.CheckStudentModule(extModel, 1))
if (!string.IsNullOrEmpty(extModel.StuRealMobile) && studentModule.CheckStudentModule(extModel, 1))
{
return ApiResult.Failed("此学员手机号已绑定同行!请重新录入!");
}
......
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