Commit 4dc936a3 authored by 罗超's avatar 罗超

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

parents d0344af1 8bc44c87
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Edu.Model.Entity.User
{
/// <summary>
/// 市场部客户数据统计实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Student_Market
{
/// <summary>
/// 主键编号
/// </summary>
public int Id { get; set; }
/// <summary>
/// 日期
/// </summary>
public DateTime Date { get; set; }
/// <summary>
/// 进单人数
/// </summary>
public decimal PushCount { get; set; }
/// <summary>
/// 语培需求
/// </summary>
public decimal TrainCount { get; set; }
/// <summary>
/// 留学需求
/// </summary>
public decimal StudyCount { get; set; }
/// <summary>
/// 美团点评
/// </summary>
public decimal MeiTuanCount { get; set; }
/// <summary>
/// 教育同行(签约)
/// </summary>
public decimal EduCustomerSign { get; set; }
/// <summary>
/// 教育同行(未签约)
/// </summary>
public decimal EduCustomerNotSign { get; set; }
/// <summary>
/// 过路客(直客)
/// </summary>
public decimal PassBy { get; set; }
/// <summary>
/// 朋友圈
/// </summary>
public decimal WeChatFriend { get; set; }
/// <summary>
/// 学员转介绍
/// </summary>
public decimal TransCount { get; set; }
/// <summary>
/// 校园推广
/// </summary>
public decimal SchoolPromote { get; set; }
/// <summary>
/// 校园代理
/// </summary>
public decimal SchoolAgent { get; set; }
/// <summary>
/// 线下活动
/// </summary>
public decimal OfflineActivity { get; set; }
/// <summary>
/// 公众号
/// </summary>
public decimal OfficialAccount { get; set; }
/// <summary>
/// 教师推荐
/// </summary>
public decimal TeacherRecommend { get; set; }
/// <summary>
/// 字节跳动
/// </summary>
public decimal ByteDance { get; set; }
/// <summary>
/// 第三方平台
/// </summary>
public decimal ThirdPartyPlatform { get; set; }
/// <summary>
/// 其他
/// </summary>
public decimal Other { get; set; }
/// <summary>
/// A类客户
/// </summary>
public decimal ClassACount { get; set; }
/// <summary>
/// B类客户
/// </summary>
public decimal ClassBCount { get; set; }
/// <summary>
/// C类客户
/// </summary>
public decimal ClassCCount { get; set; }
/// <summary>
/// D类客户
/// </summary>
public decimal ClassDCount { get; set; }
/// <summary>
/// 无效
/// </summary>
public decimal InvalidCount { get; set; }
/// <summary>
/// 签约(成交、续费)
/// </summary>
public decimal ContractCount { get; set; }
/// <summary>
/// 语培签约金额
/// </summary>
public decimal OrderMoney { get; set; }
/// <summary>
/// 留学签约金额
/// </summary>
public decimal StudyOrderMoney { get; set; }
/// <summary>
/// 年
/// </summary>
public int YearStr { get; set; }
/// <summary>
/// 月
/// </summary>
public int MonthStr { get; set; }
/// <summary>
/// 次
/// </summary>
public int Times { 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; }
}
}
...@@ -6,7 +6,7 @@ using VT.FW.DB; ...@@ -6,7 +6,7 @@ using VT.FW.DB;
namespace Edu.Model.Entity.User namespace Edu.Model.Entity.User
{ {
/// <summary> /// <summary>
/// 客户数据统计实体类 /// 课程顾问部客户数据统计实体类
/// </summary> /// </summary>
[Serializable] [Serializable]
[DB(ConnectionName = "DefaultConnection")] [DB(ConnectionName = "DefaultConnection")]
......
...@@ -33,6 +33,16 @@ namespace Edu.Model.ViewModel.Sell ...@@ -33,6 +33,16 @@ namespace Edu.Model.ViewModel.Sell
/// </summary> /// </summary>
public int EnterID { get; set; } public int EnterID { get; set; }
/// <summary>
/// 订单创建人
/// </summary>
public int OrderCreateBy { get; set; }
/// <summary>
/// 协助老师
/// </summary>
public int HelpEnterId { get; set; }
/// <summary> /// <summary>
/// 业务员 /// 业务员
/// </summary> /// </summary>
......
using Edu.Model.Entity.User;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Model.ViewModel.User
{
/// <summary>
/// 市场部客户数据统计扩展实体类
/// </summary>
public class RB_Student_Market_Extend: RB_Student_Market
{
/// <summary>
/// 月份
/// </summary>
public string ShowMonthStr { get; set; }
/// <summary>
/// 日期字符串
/// </summary>
public string DateStr
{
get
{
return Common.ConvertHelper.FormatDate2(this.Date);
}
}
}
}
...@@ -622,7 +622,7 @@ namespace Edu.Module.Customer ...@@ -622,7 +622,7 @@ namespace Edu.Module.Customer
{ {
List<WhereHelper> list = new List<WhereHelper> List<WhereHelper> list = new List<WhereHelper>
{ {
new WhereHelper(nameof(RB_Customer_Category_Extend.CategoryName), model.CategoryName), new WhereHelper(nameof(RB_Customer_Category_Extend.CategoryName), model.CategoryName.Trim()),
new WhereHelper(nameof(RB_Customer_Category_Extend.Status), 0), new WhereHelper(nameof(RB_Customer_Category_Extend.Status), 0),
new WhereHelper(nameof(RB_Customer_Category_Extend.Group_Id), model.Group_Id) new WhereHelper(nameof(RB_Customer_Category_Extend.Group_Id), model.Group_Id)
}; };
...@@ -666,6 +666,37 @@ namespace Edu.Module.Customer ...@@ -666,6 +666,37 @@ namespace Edu.Module.Customer
return flag; return flag;
} }
/// <summary>
/// 同行合并
/// </summary>
/// <param name="CategoryId"></param>
/// <param name="NewCategoryId"></param>
/// <returns></returns>
public bool ReplaceCustomerCategoryModule(int CategoryId, int NewCategoryId)
{
bool flag = false;
var list = customerRepository.GetCustomerListRepository(new RB_Customer_Extend() { CategoryId = CategoryId });
var cateModel = GetCustomerCategoryModule(NewCategoryId);
if (list != null && list.Count > 0)
{
foreach (var item in list)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Customer_Extend.CategoryId),NewCategoryId},
{nameof(RB_Customer_Extend.CustomerType),(int)cateModel.CatetoryType},
};
customerRepository.Update(fileds, new WhereHelper(nameof(RB_Customer_Extend.CustomerId), item.CustomerId));
}
}
Dictionary<string, object> cateFileds = new Dictionary<string, object>()
{
{nameof(RB_Customer_Category_Extend.Status),(int)DateStateEnum.Delete}
};
flag = customer_CategoryRepository.Update(cateFileds, new WhereHelper(nameof(RB_Customer_Category_Extend.CategoryId), CategoryId));
return flag;
}
/// <summary> /// <summary>
/// 根据编号获取同行信息 /// 根据编号获取同行信息
/// </summary> /// </summary>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -342,7 +342,7 @@ WHERE {where}"; ...@@ -342,7 +342,7 @@ WHERE {where}";
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT A.*,IFNULL(B.JoinType,0) AS JoinType,IFNULL(B.TargetJoinType,0) AS TargetJoinType,IFNULL(B.StartClassHours,0) AS StartClassHours,IFNULL(C.CourseName,'') AS CourseName SELECT A.*,IFNULL(B.JoinType,0) AS JoinType,IFNULL(B.TargetJoinType,0) AS TargetJoinType,IFNULL(B.StartClassHours,0) AS StartClassHours,IFNULL(C.CourseName,'') AS CourseName
,class.ClassName,b.EnterID,plan.TotalPlanNum,planr.Ranks ,B.EffectStatus,B.EffectTime,B.UpOrderId,B.OrderType,B.CourseId,B.IsRenewOrder,B.RenewOrderId ,class.ClassName,b.EnterID,plan.TotalPlanNum,planr.Ranks ,B.EffectStatus,B.EffectTime,B.UpOrderId,B.OrderType,B.CourseId,B.IsRenewOrder,B.RenewOrderId
,sc.StopClassEffectTime,B.SourceOrderId,B.TargetOrderId,stu.StuTel,stu.StuRealMobile ,sc.StopClassEffectTime,B.SourceOrderId,B.TargetOrderId,stu.StuTel,stu.StuRealMobile,IFNULL(B.CreateBy,0) AS OrderCreateBy,IFNULL(stu.StuId,0) AS StudentId
FROM RB_Order_Guest AS A LEFT JOIN rb_order AS B ON A.OrderId=B.OrderId FROM RB_Order_Guest AS A LEFT JOIN rb_order AS B ON A.OrderId=B.OrderId
LEFT JOIN rb_class as class on class.ClassId=a.ClassId LEFT JOIN rb_class as class on class.ClassId=a.ClassId
LEFT JOIN rb_student_orderguest as sog on sog.GuestId=a.Id LEFT JOIN rb_student_orderguest as sog on sog.GuestId=a.Id
...@@ -365,9 +365,10 @@ WHERE 1=1 and A.Status=0 and class.Status=0 and b.OrderState<>3 ...@@ -365,9 +365,10 @@ WHERE 1=1 and A.Status=0 and class.Status=0 and b.OrderState<>3
{ {
builder.AppendFormat($@" AND A.{nameof(RB_Order_Guest_ViewModel.OrderId)} ={demodel.OrderId}"); builder.AppendFormat($@" AND A.{nameof(RB_Order_Guest_ViewModel.OrderId)} ={demodel.OrderId}");
} }
if (demodel.Teacher_Id > 0) if (demodel.Teacher_Id > 0 || demodel.HelpEnterId>0)
{ {
builder.AppendFormat($@" and class.Teacher_Id ={demodel.Teacher_Id}"); //builder.AppendFormat($@" and (class.Teacher_Id ={demodel.Teacher_Id} OR o.HelpEnterId ={demodel.HelpEnterId} )");
builder.AppendFormat($@" and (class.Teacher_Id ={demodel.Teacher_Id} OR stu.StuId IN(SELECT StuId FROM rb_student_assist WHERE `Status`=0 AND AssistId={demodel.HelpEnterId}) ) ");
} }
if (!string.IsNullOrEmpty(demodel.GuestName)) if (!string.IsNullOrEmpty(demodel.GuestName))
{ {
......
using Edu.Model.Entity.User;
using Edu.Model.ViewModel.User;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Edu.Repository.User
{
/// <summary>
/// 市场部客户数据统计仓储层
/// </summary>
public class RB_Student_MarketRepository : BaseRepository<RB_Student_Market>
{
/// <summary>
/// 市场部客户数据统计列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Market_Extend> GetStudentMarketListRepository(RB_Student_Market_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM RB_Student_Market AS A
WHERE 1=1
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Market_Extend.Group_Id), query.Group_Id);
}
if (query.YearStr > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Market_Extend.YearStr), query.YearStr);
}
if (query.MonthStr > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Market_Extend.MonthStr), query.MonthStr);
}
if (query.Times > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Market_Extend.Times), query.Times);
}
}
builder.AppendFormat(" ORDER BY A.{0} ASC ", nameof(RB_Student_Static_Extend.Id));
return Get<RB_Student_Market_Extend>(builder.ToString()).ToList();
}
/// <summary>
/// 市场部客户数据月份统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Market_Extend> GetStudentMarketMonthListRepository(RB_Student_Market_Extend query, bool isYear = false)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT CONCAT(DATE_FORMAT(A.Date, '%Y-%m'),'-01') AS Date,A.YearStr,A.MonthStr,SUM(A.PushCount) AS PushCount,SUM(A.TrainCount) AS TrainCount,SUM(A.StudyCount) AS StudyCount
,SUM(A.MeiTuanCount) AS MeiTuanCount,SUM(A.EduCustomerSign) AS EduCustomerSign,SUM(A.EduCustomerNotSign) AS EduCustomerNotSign,SUM(A.PassBy) AS PassBy
,SUM(A.WeChatFriend) AS WeChatFriend,SUM(A.TransCount) AS TransCount,SUM(A.SchoolPromote) AS SchoolPromote,SUM(A.SchoolAgent) AS SchoolAgent,SUM(A.OfflineActivity) AS OfflineActivity
,SUM(A.OfficialAccount) AS OfficialAccount,SUM(A.TeacherRecommend) AS TeacherRecommend,SUM(A.ByteDance) AS ByteDance,SUM(A.ThirdPartyPlatform) AS ThirdPartyPlatform
,SUM(A.Other) AS Other,SUM(A.ClassACount) AS ClassACount,SUM(A.ClassBCount) AS ClassBCount,SUM(A.ClassCCount) AS ClassCCount,SUM(A.ClassDCount) AS ClassDCount
,SUM(A.InvalidCount) AS InvalidCount,SUM(A.ContractCount) AS ContractCount,SUM(A.OrderMoney) AS OrderMoney,SUM(A.StudyOrderMoney) AS StudyOrderMoney
FROM RB_Student_Market AS A
WHERE 1=1 AND A.Date<>'0001-01-01 00:00:00'
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Market_Extend.Group_Id), query.Group_Id);
}
if (query.YearStr > 0)
{
if (isYear)
{
builder.AppendFormat(" AND A.{0}<={1} ", nameof(RB_Student_Market_Extend.YearStr), query.YearStr);
}
else
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Market_Extend.YearStr), query.YearStr);
}
}
}
builder.AppendFormat(" GROUP BY DATE_FORMAT(A.Date, '%Y-%m') ");
builder.AppendFormat(" ORDER BY DATE_FORMAT(A.Date, '%Y-%m') ASC ");
return Get<RB_Student_Market_Extend>(builder.ToString()).ToList();
}
/// <summary>
/// 市场部客户数据年份统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Market_Extend> GetStudentMarketYearListRepository(RB_Student_Market_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT CONCAT(DATE_FORMAT(A.Date, '%Y-%m'),'-01') AS Date,A.YearStr,A.MonthStr,SUM(A.PushCount) AS PushCount,SUM(A.TrainCount) AS TrainCount,SUM(A.StudyCount) AS StudyCount
,SUM(A.MeiTuanCount) AS MeiTuanCount,SUM(A.EduCustomerSign) AS EduCustomerSign,SUM(A.EduCustomerNotSign) AS EduCustomerNotSign,SUM(A.PassBy) AS PassBy
,SUM(A.WeChatFriend) AS WeChatFriend,SUM(A.TransCount) AS TransCount,SUM(A.SchoolPromote) AS SchoolPromote,SUM(A.SchoolAgent) AS SchoolAgent,SUM(A.OfflineActivity) AS OfflineActivity
,SUM(A.OfficialAccount) AS OfficialAccount,SUM(A.TeacherRecommend) AS TeacherRecommend,SUM(A.ByteDance) AS ByteDance,SUM(A.ThirdPartyPlatform) AS ThirdPartyPlatform
,SUM(A.Other) AS Other,SUM(A.ClassACount) AS ClassACount,SUM(A.ClassBCount) AS ClassBCount,SUM(A.ClassCCount) AS ClassCCount,SUM(A.ClassDCount) AS ClassDCount
,SUM(A.InvalidCount) AS InvalidCount,SUM(A.ContractCount) AS ContractCount,SUM(A.OrderMoney) AS OrderMoney,SUM(A.StudyOrderMoney) AS StudyOrderMoney
FROM RB_Student_Market AS A
WHERE 1=1 AND A.Date<>'0001-01-01 00:00:00'
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Market_Extend.Group_Id), query.Group_Id);
}
if (query.YearStr > 0)
{
builder.AppendFormat(" AND A.{0}<={1} ", nameof(RB_Student_Market_Extend.YearStr), query.YearStr);
}
}
builder.AppendFormat(" GROUP BY A.YearStr ");
builder.AppendFormat(" ORDER BY A.YearStr ASC ");
return Get<RB_Student_Market_Extend>(builder.ToString()).ToList();
}
/// <summary>
/// 根据存储过程统计市场部客户信息
/// </summary>
/// <param name="DateStr"></param>
/// <returns></returns>
public RB_Student_Market_Extend GetStudentMarketByProcRepository(string DateStr)
{
string sql = string.Format("call proc_student_market('{0}') ", DateStr);
var list = Get<RB_Student_Market_Extend>(sql);
return list?.FirstOrDefault();
}
/// <summary>
/// 清除市场部客户数据统计信息
/// </summary>
public void DeleteStudentMarketByProcRepository()
{
string sql = "TRUNCATE TABLE RB_Student_Market ";
base.Execute(sql);
}
}
}
...@@ -56,11 +56,11 @@ WHERE 1=1 ...@@ -56,11 +56,11 @@ WHERE 1=1
/// </summary> /// </summary>
/// <param name="query"></param> /// <param name="query"></param>
/// <returns></returns> /// <returns></returns>
public List<RB_Student_Static_Extend> GetStudentStaticMonthListRepository(RB_Student_Static_Extend query) public List<RB_Student_Static_Extend> GetStudentStaticMonthListRepository(RB_Student_Static_Extend query,bool isYear=false)
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT CONCAT(DATE_FORMAT(A.Date, '%Y-%m'),'-01') AS Date,SUM(A.PushCount) AS PushCount,SUM(A.NewCount) AS NewCount,SUM(A.CommunicationCount) AS CommunicationCount 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
,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
...@@ -79,11 +79,18 @@ WHERE 1=1 AND A.Date<>'0001-01-01 00:00:00' ...@@ -79,11 +79,18 @@ WHERE 1=1 AND A.Date<>'0001-01-01 00:00:00'
} }
if (query.YearStr > 0) if (query.YearStr > 0)
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Static_Extend.YearStr), query.YearStr); if (isYear)
{
builder.AppendFormat(" AND A.{0}<={1} ", nameof(RB_Student_Static_Extend.YearStr), query.YearStr);
}
else
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Static_Extend.YearStr), query.YearStr);
}
} }
} }
builder.AppendFormat(" GROUP BY DATE_FORMAT(A.Date, '%Y-%m') "); builder.AppendFormat(" GROUP BY DATE_FORMAT(A.Date, '%Y-%m') ");
builder.AppendFormat(" ORDER BY DATE_FORMAT(A.Date, '%Y-%m') ASC ", nameof(RB_Student_Static_Extend.Id)); builder.AppendFormat(" ORDER BY DATE_FORMAT(A.Date, '%Y-%m') ASC ");
return Get<RB_Student_Static_Extend>(builder.ToString()).ToList(); return Get<RB_Student_Static_Extend>(builder.ToString()).ToList();
} }
......
...@@ -234,6 +234,10 @@ namespace Edu.WebApi.Controllers.Course ...@@ -234,6 +234,10 @@ namespace Edu.WebApi.Controllers.Course
CourseId = base.ParmJObj.GetInt("CourseId", 0), CourseId = base.ParmJObj.GetInt("CourseId", 0),
EnterID = base.ParmJObj.GetInt("EnterID", 0), EnterID = base.ParmJObj.GetInt("EnterID", 0),
}; };
if (model.Teacher_Id > 0)
{
model.HelpEnterId = base.UserInfo.Id;
}
model.Group_Id = base.UserInfo.Group_Id; model.Group_Id = base.UserInfo.Group_Id;
var list = classModule.GetTeacherStudentPage(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, model); var list = classModule.GetTeacherStudentPage(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, model);
List<object> result = new List<object>(); List<object> result = new List<object>();
...@@ -244,6 +248,10 @@ namespace Edu.WebApi.Controllers.Course ...@@ -244,6 +248,10 @@ namespace Edu.WebApi.Controllers.Course
{ {
item.EnterName = UserReidsCache.GetUserLoginInfo(item.EnterID)?.AccountName ?? ""; item.EnterName = UserReidsCache.GetUserLoginInfo(item.EnterID)?.AccountName ?? "";
} }
else if (item.OrderCreateBy > 0)
{
item.EnterName = UserReidsCache.GetUserLoginInfo(item.OrderCreateBy)?.AccountName ?? "";
}
result.Add(new result.Add(new
{ {
item.Id, item.Id,
...@@ -259,6 +267,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -259,6 +267,7 @@ namespace Edu.WebApi.Controllers.Course
item.Teacher_Id, item.Teacher_Id,
item.TotalPlanNum, item.TotalPlanNum,
item.Ranks, item.Ranks,
item.OrderId,
item.EnterName, item.EnterName,
item.EnterID, item.EnterID,
item.IsRenewOrder, item.IsRenewOrder,
......
...@@ -170,15 +170,37 @@ namespace Edu.WebApi.Controllers.Customer ...@@ -170,15 +170,37 @@ namespace Edu.WebApi.Controllers.Customer
}; };
if (!string.IsNullOrEmpty(categoryModel.CategoryName)) if (!string.IsNullOrEmpty(categoryModel.CategoryName))
{ {
bool cflag = customerModule.SetCustomerCategoryModule(categoryModel); if (customerModule.CheckCustomerCategoryModule(categoryModel))
model.CategoryId = categoryModel.CategoryId; {
return ApiResult.Failed("已存在此同行,请重新选择!");
}
else
{
bool cflag = customerModule.SetCustomerCategoryModule(categoryModel);
model.CategoryId = categoryModel.CategoryId;
}
} }
var flag = customerModule.SetCustomerModule(model); var flag = customerModule.SetCustomerModule(model);
return flag ? ApiResult.Success() : ApiResult.Failed(); return flag ? ApiResult.Success() : ApiResult.Failed();
} }
/// <summary>
/// 替换同行
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult ReplaceCategory()
{
var CategoryId = base.ParmJObj.GetInt("CategoryId");
var NewCategoryId= base.ParmJObj.GetInt("NewCategoryId");
if (NewCategoryId <= 0)
{
return ApiResult.Failed("请选择目标企业或校代!");
}
bool flag = customerModule.ReplaceCustomerCategoryModule(CategoryId, NewCategoryId);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary> /// <summary>
/// 根据编号删除客户 /// 根据编号删除客户
/// </summary> /// </summary>
...@@ -1037,20 +1059,16 @@ namespace Edu.WebApi.Controllers.Customer ...@@ -1037,20 +1059,16 @@ namespace Edu.WebApi.Controllers.Customer
CategoryName = base.ParmJObj.GetStringValue("CategoryName"), CategoryName = base.ParmJObj.GetStringValue("CategoryName"),
CatetoryType = (CatetoryTypeEnum)base.ParmJObj.GetInt("CatetoryType"), CatetoryType = (CatetoryTypeEnum)base.ParmJObj.GetInt("CatetoryType"),
}; };
query.CreateBy = userInfo.Id;
var list = customerModule.GetCustomerCategoryListModule(query); var list = customerModule.GetCustomerCategoryListModule(query);
List<object> result = new List<object>(); List<object> result = new List<object>();
foreach (var item in list) foreach (var item in list)
{ {
string CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? "";
result.Add(new result.Add(new
{ {
item.CategoryId, item.CategoryId,
item.CategoryName, item.CategoryName,
CreateByName,
item.CatetoryType, item.CatetoryType,
CatetoryTypeName = item.CatetoryType.ToName(), CatetoryTypeName = item.CatetoryType.ToName(),
CreateTime = Common.ConvertHelper.FormatTime(item.CreateTime),
}); });
} }
return ApiResult.Success(data: result); return ApiResult.Success(data: result);
......
using Edu.CacheManager.Base; using Edu.Cache.User;
using Edu.CacheManager.Base;
using Edu.Common.Plugin; using Edu.Common.Plugin;
using Edu.Model.CacheModel;
using Edu.Module.Course; using Edu.Module.Course;
using Edu.Module.Customer; using Edu.Module.Customer;
using Edu.Module.Duty; using Edu.Module.Duty;
using Edu.Module.EduTask; using Edu.Module.EduTask;
using Edu.Module.Exam; using Edu.Module.Exam;
using Edu.Module.User;
using System; using System;
using System.IO; using System.IO;
using System.Threading; using System.Threading;
...@@ -46,6 +49,11 @@ namespace Edu.WebApi.Timers ...@@ -46,6 +49,11 @@ namespace Edu.WebApi.Timers
/// </summary> /// </summary>
private static readonly ClassModule classModule = new ClassModule(); private static readonly ClassModule classModule = new ClassModule();
/// <summary>
/// 学员数据统计处理类
/// </summary>
private static readonly StudentStatModule studentStatModule = new StudentStatModule();
/// <summary> /// <summary>
/// 使用redis第几号库 /// 使用redis第几号库
/// </summary> /// </summary>
...@@ -221,6 +229,10 @@ namespace Edu.WebApi.Timers ...@@ -221,6 +229,10 @@ namespace Edu.WebApi.Timers
redis.Set(createMarkDataKey, Common.ConvertHelper.FormatDate(currentDate)); redis.Set(createMarkDataKey, Common.ConvertHelper.FormatDate(currentDate));
marketConsultantModule.CreateConsultantDataModule(currentDate); marketConsultantModule.CreateConsultantDataModule(currentDate);
marketConsultantModule.CreateMarketDataModule(currentDate); marketConsultantModule.CreateMarketDataModule(currentDate);
UserInfo user = UserReidsCache.GetUserLoginInfo("1");
studentStatModule.CreateStudentStaticModule(user, Common.ConvertHelper.FormatDate(currentDate.AddDays(-1)), Common.ConvertHelper.FormatDate(currentDate), isInit: false);
studentStatModule.CreateStudentMarketModule(user, Common.ConvertHelper.FormatDate(currentDate.AddDays(-1)), Common.ConvertHelper.FormatDate(currentDate), isInit: false);
} }
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