Commit 42560796 authored by 黄奎's avatar 黄奎

新增统计

parent 331ff97d
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Edu.Model.Entity.DataStatistics
{
/// <summary>
/// 市场部数据统计实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_MarketConsultant
{
/// <summary>
/// 主键编号
/// </summary>
public int Id { get; set; }
/// <summary>
/// 日期
/// </summary>
public DateTime Date { get; set; }
/// <summary>
/// 资源条数
/// </summary>
public int ClueCount { get; set; }
/// <summary>
/// 昨日资源条数
/// </summary>
public int YestodayClue { get; set; }
/// <summary>
/// 本周资源条数
/// </summary>
public int CurWeekClue { get; set; }
/// <summary>
/// 上周资源条数
/// </summary>
public int LastWeekClue { get; set; }
/// <summary>
/// 本月资源条数
/// </summary>
public int CurMonthClue { get; set; }
/// <summary>
/// 上月资源条数
/// </summary>
public int LastMonthClue { get; set; }
/// <summary>
/// 到访人数
/// </summary>
public int VisitCount { get; set; }
/// <summary>
/// 昨日到访人数
/// </summary>
public int YestodayVisit { get; set; }
/// <summary>
/// 本周到访人数
/// </summary>
public int CurWeekVisit { get; set; }
/// <summary>
/// 上周到访人数
/// </summary>
public int LastWeekVisit { get; set; }
/// <summary>
/// 本月到访人数
/// </summary>
public int CurMonthVisit { get; set; }
/// <summary>
/// 上月到访人数
/// </summary>
public int LastMonthVisit { get; set; }
/// <summary>
/// 试听人数
/// </summary>
public int TrialLessonCount { get; set; }
/// <summary>
/// 昨日试听人数
/// </summary>
public int YestodayTrialLesson { get; set; }
/// <summary>
/// 本周试听人数
/// </summary>
public int CurWeekTrialLesson { get; set; }
/// <summary>
/// 上周试听人数
/// </summary>
public int LastWeekTrialLesson { get; set; }
/// <summary>
/// 本月试听人数
/// </summary>
public int CurMonthTrialLesson { get; set; }
/// <summary>
/// 上月试听人数
/// </summary>
public int LastMonthTrialLesson { get; set; }
/// <summary>
/// 有效数据量 (第一次跟进且不等于流失)
/// </summary>
public int FollowCount { get; set; }
/// <summary>
/// 昨日有效数据量 (第一次跟进且不等于流失)
/// </summary>
public int YestodayFollow { get; set; }
/// <summary>
/// 本周有效数据量 (第一次跟进且不等于流失)
/// </summary>
public int CurWeekFollow { get; set; }
/// <summary>
/// 上周有效数据量 (第一次跟进且不等于流失)
/// </summary>
public int LastWeekFollow { get; set; }
/// <summary>
/// 本月有效数据量 (第一次跟进且不等于流失)
/// </summary>
public int CurMonthFollow { get; set; }
/// <summary>
/// 上月有效数据量 (第一次跟进且不等于流失)
/// </summary>
public int LastMonthFollow { get; set; }
/// <summary>
/// 销售额
/// </summary>
public decimal SaleMoney { get; set; }
/// <summary>
/// 昨日销售额
/// </summary>
public decimal YestodaySale { get; set; }
/// <summary>
/// 本周销售额
/// </summary>
public decimal CurWeekSale { get; set; }
/// <summary>
/// 上周销售额
/// </summary>
public decimal LastWeekSale { get; set; }
/// <summary>
/// 本月销售额
/// </summary>
public decimal CurMonrhSale { get; set; }
/// <summary>
/// 上月销售额
/// </summary>
public decimal LastMonthSale { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 所属部门编号
/// </summary>
public int DeptId { get; set; }
}
}
...@@ -34,5 +34,10 @@ namespace Edu.Model.ViewModel.Customer ...@@ -34,5 +34,10 @@ namespace Edu.Model.ViewModel.Customer
/// 结束时间 /// 结束时间
/// </summary> /// </summary>
public string ETime { get; set; } public string ETime { get; set; }
/// <summary>
/// 有效数据量 (第一次跟进且不等于流失)
/// </summary>
public int FollowCount { get; set; }
} }
} }
using Edu.Model.Entity.DataStatistics;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Model.ViewModel.DataStatistics
{
/// <summary>
/// 市场部数据统计统计实体类
/// </summary>
public class RB_MarketConsultant_Extend : RB_MarketConsultant
{
/// <summary>
/// 开始时间
/// </summary>
public string StartTime { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public string EndTime { get; set; }
/// <summary>
/// 创建人
/// </summary>
public string QCreateByIds { get; set; }
}
}
\ No newline at end of file
...@@ -175,7 +175,7 @@ namespace Edu.Model.ViewModel.User ...@@ -175,7 +175,7 @@ namespace Edu.Model.ViewModel.User
public string EndTime { get; set; } public string EndTime { get; set; }
/// <summary> /// <summary>
/// 最一次跟进时间 /// 最一次跟进时间
/// </summary> /// </summary>
public string followUpTime { get; set; } public string followUpTime { get; set; }
...@@ -336,5 +336,10 @@ namespace Edu.Model.ViewModel.User ...@@ -336,5 +336,10 @@ namespace Edu.Model.ViewModel.User
/// 是否存在课程顾问(1-存在,2-不存在) /// 是否存在课程顾问(1-存在,2-不存在)
/// </summary> /// </summary>
public int ExistCourseConsultant { get; set; } public int ExistCourseConsultant { get; set; }
/// <summary>
/// 查询时间类型(1-本周,2-上周,3-本月,4-上月)
/// </summary>
public int QTimeType { get; set; }
} }
} }
\ No newline at end of file
...@@ -156,5 +156,102 @@ INNER JOIN rb_student_follow f1 on f.Id = f1.Id ...@@ -156,5 +156,102 @@ INNER JOIN rb_student_follow f1 on f.Id = f1.Id
"; ";
return Get<RB_Student_Follow_Extend>(sql).ToList(); return Get<RB_Student_Follow_Extend>(sql).ToList();
} }
/// <summary>
/// 有效数据量统计 (第一次跟进且不等于流失)
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public Dictionary<string, List<RB_Student_Follow_Extend>> GetStudentFollowStaticRepository(RB_Student_Follow_Extend query)
{
Dictionary<string, List<RB_Student_Follow_Extend>> dicList = new Dictionary<string, List<RB_Student_Follow_Extend>>();
string sql = @"
SELECT A.CreateBy,COUNT(1) AS FollowCount
FROM rb_student_follow AS A INNER JOIN(SELECT StuId,CreateBy,MIN(Id) AS Id FROM rb_student_follow WHERE `Status`=0 GROUP BY StuId,CreateBy) AS B ON A.Id=B.Id
INNER JOIN RB_student AS C ON A.StuId=C.StuId
WHERE A.Status=0 AND C.Status=0 AND C.StuStage<>7 {0}
GROUP BY A.CreateBy
";
string todayWhere = "";
if (!string.IsNullOrEmpty(query.STime))
{
todayWhere += string.Format(" AND to_days(A.CreateTime)=to_days('{0}') ", query.STime);
}
else
{
todayWhere += string.Format(" AND to_days(A.CreateTime)=to_days(now()) ");
}
//今日
var todayList = Get<RB_Student_Follow_Extend>(string.Format(sql.ToString(), todayWhere)).ToList();
dicList.Add("today", todayList);
//昨日
string yesWhere = "";
if (!string.IsNullOrEmpty(query.STime))
{
yesWhere += string.Format(" AND TO_DAYS('{0}')-TO_DAYS(A.CreateTime)=1 ", query.STime);
}
else
{
yesWhere += string.Format(" AND TO_DAYS(now())-TO_DAYS(A.CreateTime)=1 ");
}
var yesList = Get<RB_Student_Follow_Extend>(string.Format(sql, yesWhere)).ToList();
dicList.Add("yestoday", yesList);
//本周
string curWeek = "";
if (!string.IsNullOrEmpty(query.STime))
{
curWeek += string.Format(" AND YEARWEEK(date_format(A.CreateTime,'%Y-%m-%d' )) = YEARWEEK('{0}') ", query.STime);
}
else
{
curWeek += string.Format(" AND YEARWEEK(date_format(A.CreateTime,'%Y-%m-%d')) = YEARWEEK(now()) ");
}
var curWeekList = Get<RB_Student_Follow_Extend>(string.Format(sql, curWeek)).ToList();
dicList.Add("currentWeek", curWeekList);
//上周
string lastWeek = "";
if (!string.IsNullOrEmpty(query.STime))
{
lastWeek += string.Format(" AND YEARWEEK(date_format(A.CreateTime,'%Y-%m-%d')) = YEARWEEK('{0}')-1 ", query.STime);
}
else
{
lastWeek += string.Format(" AND YEARWEEK(date_format(A.CreateTime,'%Y-%m-%d')) = YEARWEEK(now())-1 ");
}
var lastWeekList = Get<RB_Student_Follow_Extend>(string.Format(sql, lastWeek)).ToList();
dicList.Add("lastWeek", lastWeekList);
//本月
string curMonth = "";
if (!string.IsNullOrEmpty(query.STime))
{
curMonth += string.Format(" AND DATE_FORMAT(A.CreateTime,'%Y%m')=DATE_FORMAT('{0}','%Y%m') ", query.STime);
}
else
{
curMonth += string.Format(" AND DATE_FORMAT(A.CreateTime,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m') ");
}
var curMonthList = Get<RB_Student_Follow_Extend>(string.Format(sql, curMonth)).ToList();
dicList.Add("curMonth", curMonthList);
//上月
string lastMonth = "";
if (!string.IsNullOrEmpty(query.STime))
{
lastMonth += string.Format(" AND PERIOD_DIFF(date_format('{0}','%Y%m'),date_format(A.CreateTime,'%Y%m')) =1 ", query.STime);
}
else
{
lastMonth += string.Format(" AND PERIOD_DIFF(date_format(now(),'%Y%m'),date_format(A.CreateTime,'%Y%m')) =1 ");
}
var lastMonthList = Get<RB_Student_Follow_Extend>(string.Format(sql, lastMonth)).ToList();
dicList.Add("lastMonth", lastMonthList);
return dicList;
}
} }
} }
...@@ -133,5 +133,100 @@ WHERE 1=1 ...@@ -133,5 +133,100 @@ WHERE 1=1
builder.AppendFormat(" ORDER BY A.CreateBy, DATE_FORMAT(A.CreateTime, '%Y/%m/%d') "); builder.AppendFormat(" ORDER BY A.CreateBy, DATE_FORMAT(A.CreateTime, '%Y/%m/%d') ");
return Get<RB_Student_Visit_Extend>(builder.ToString()).ToList(); return Get<RB_Student_Visit_Extend>(builder.ToString()).ToList();
} }
/// <summary>
/// 市场、课程顾问学员到访统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public Dictionary<string, List<RB_Student_Visit_Extend>> GetVisitStaticRepository(RB_Student_Visit_Extend query)
{
Dictionary<string, List<RB_Student_Visit_Extend>> dicList = new Dictionary<string, List<RB_Student_Visit_Extend>>();
string sql = @"
SELECT A.CreateBy,Count(1) AS VisitCount
FROM RB_Student_Visit AS A INNER JOIN rb_student AS B ON A.StuId=B.StuId
WHERE 1=1 AND B.Status=0 {0}
GROUP BY A.CreateBy
";
string todayWhere = "";
if (!string.IsNullOrEmpty(query.StartDate))
{
todayWhere += string.Format(" AND to_days(A.CreateTime)=to_days('{0}') ", query.StartDate);
}
else
{
todayWhere += string.Format(" AND to_days(A.CreateTime)=to_days(now()) ");
}
//今日
var todayList = Get<RB_Student_Visit_Extend>(string.Format(sql.ToString(), todayWhere)).ToList();
dicList.Add("today", todayList);
//昨日
string yesWhere = "";
if (!string.IsNullOrEmpty(query.StartDate))
{
yesWhere += string.Format(" AND TO_DAYS('{0}')-TO_DAYS(A.CreateTime)=1 ", query.StartDate);
}
else
{
yesWhere += string.Format(" AND TO_DAYS(now())-TO_DAYS(A.CreateTime)=1 ");
}
var yesList = Get<RB_Student_Visit_Extend>(string.Format(sql, yesWhere)).ToList();
dicList.Add("yestoday", yesList);
//本周
string curWeek = "";
if (!string.IsNullOrEmpty(query.StartDate))
{
curWeek += string.Format(" AND YEARWEEK(date_format(A.CreateTime,'%Y-%m-%d' )) = YEARWEEK('{0}') ", query.StartDate);
}
else
{
curWeek += string.Format(" AND YEARWEEK(date_format(A.CreateTime,'%Y-%m-%d')) = YEARWEEK(now()) ");
}
var curWeekList = Get<RB_Student_Visit_Extend>(string.Format(sql, curWeek)).ToList();
dicList.Add("currentWeek", curWeekList);
//上周
string lastWeek = "";
if (!string.IsNullOrEmpty(query.StartDate))
{
lastWeek += string.Format(" AND YEARWEEK(date_format(A.CreateTime,'%Y-%m-%d')) = YEARWEEK('{0}')-1 ", query.StartDate);
}
else
{
lastWeek += string.Format(" AND YEARWEEK(date_format(A.CreateTime,'%Y-%m-%d')) = YEARWEEK(now())-1 ");
}
var lastWeekList = Get<RB_Student_Visit_Extend>(string.Format(sql, lastWeek)).ToList();
dicList.Add("lastWeek", lastWeekList);
//本月
string curMonth = "";
if (!string.IsNullOrEmpty(query.StartDate))
{
curMonth += string.Format(" AND DATE_FORMAT(A.CreateTime,'%Y%m')=DATE_FORMAT('{0}','%Y%m') ", query.StartDate);
}
else
{
curMonth += string.Format(" AND DATE_FORMAT(A.CreateTime,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m') ");
}
var curMonthList = Get<RB_Student_Visit_Extend>(string.Format(sql, curMonth)).ToList();
dicList.Add("curMonth", curMonthList);
//上月
string lastMonth = "";
if (!string.IsNullOrEmpty(query.StartDate))
{
lastMonth += string.Format(" AND PERIOD_DIFF(date_format('{0}','%Y%m'),date_format(A.CreateTime,'%Y%m')) =1 ", query.StartDate);
}
else
{
lastMonth += string.Format(" AND PERIOD_DIFF(date_format(now(),'%Y%m'),date_format(A.CreateTime,'%Y%m')) =1 ");
}
var lastMonthList = Get<RB_Student_Visit_Extend>(string.Format(sql, lastMonth)).ToList();
dicList.Add("lastMonth", lastMonthList);
return dicList;
}
} }
} }
using Edu.Model.Entity.DataStatistics;
using Edu.Model.ViewModel.DataStatistics;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Edu.Repository.DataStatistics
{
/// <summary>
/// 市场部数据统计仓储层
/// </summary>
public class RB_MarketConsultantRepository : BaseRepository<RB_MarketConsultant>
{
/// <summary>
/// 获取市场部数据统计列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_MarketConsultant_Extend> GetMarketConsultantListRepository(RB_MarketConsultant_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM RB_MarketConsultant AS A
WHERE 1=1
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_MarketConsultant_Extend.Group_Id), query.Group_Id);
}
if (query.CreateBy > 0)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_MarketConsultant_Extend.CreateBy), query.CreateBy);
}
if (!string.IsNullOrEmpty(query.QCreateByIds))
{
builder.AppendFormat(@" AND A.{0} IN({1}) ", nameof(RB_MarketConsultant_Extend.CreateBy), query.QCreateByIds);
}
if (query.DeptId > 0)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_MarketConsultant_Extend.DeptId), query.DeptId);
}
if (!string.IsNullOrEmpty(query.StartTime))
{
builder.AppendFormat(" AND A.{0}>='{1}' ", nameof(RB_MarketConsultant_Extend.Date), query.StartTime);
}
if (!string.IsNullOrEmpty(query.EndTime))
{
builder.AppendFormat(" AND A.{0}<='{1} 23:59:59' ", nameof(RB_MarketConsultant_Extend.Date), query.EndTime);
}
}
return Get<RB_MarketConsultant_Extend>(builder.ToString()).ToList();
}
/// <summary>
/// 新增市场部数据
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool InsertMarketConsultantRepository(RB_MarketConsultant_Extend model)
{
var newModel = new RB_MarketConsultant_Extend()
{
Date = model.Date,
ClueCount = model.ClueCount,
YestodayClue = model.YestodayClue,
LastWeekClue = model.LastWeekClue,
LastMonthClue = model.LastMonthClue,
VisitCount = model.VisitCount,
YestodayVisit = model.YestodayVisit,
LastWeekVisit = model.LastWeekVisit,
LastMonthVisit = model.LastMonthVisit,
TrialLessonCount = model.TrialLessonCount,
YestodayTrialLesson = model.YestodayTrialLesson,
LastWeekTrialLesson = model.LastWeekTrialLesson,
LastMonthTrialLesson = model.LastMonthTrialLesson,
FollowCount = model.FollowCount,
YestodayFollow = model.YestodayFollow,
LastWeekFollow = model.LastWeekFollow,
LastMonthFollow = model.LastMonthFollow,
SaleMoney = model.SaleMoney,
YestodaySale = model.YestodaySale,
LastWeekSale = model.LastWeekSale,
LastMonthSale = model.LastMonthSale,
CreateBy = model.CreateBy,
CreateTime = DateTime.Now,
DeptId = model.DeptId,
Group_Id = model.Group_Id
};
var newId = base.Insert(newModel);
newModel.Id = newId;
return newId > 0;
}
/// <summary>
/// 清楚历史数据
/// </summary>
/// <returns></returns>
public void ClearMarketConsultantRepository()
{
string sql = "TRUNCATE TABLE RB_MarketConsultant ";
base.Execute(sql);
}
}
}
...@@ -305,5 +305,100 @@ WHERE 1=1 ...@@ -305,5 +305,100 @@ WHERE 1=1
builder.AppendFormat(@" ORDER BY A.CreateBy,DATE_FORMAT(A.CreateTime,'%Y/%m/%d') "); builder.AppendFormat(@" ORDER BY A.CreateBy,DATE_FORMAT(A.CreateTime,'%Y/%m/%d') ");
return Get<RB_Visitor_Reserve_Extend>(builder.ToString()).ToList(); return Get<RB_Visitor_Reserve_Extend>(builder.ToString()).ToList();
} }
/// <summary>
/// 市场课程顾问部统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public Dictionary<string, List<RB_Visitor_Reserve_Extend>> GetVisitorStaticRepository(RB_Visitor_Reserve_Extend query)
{
Dictionary<string, List<RB_Visitor_Reserve_Extend>> dicList = new Dictionary<string, List<RB_Visitor_Reserve_Extend>>();
string sql = @"
SELECT A.CreateBy,COUNT(1) AS TrialLessonCount
FROM RB_Visitor_Reserve AS A
WHERE 1=1 AND A.Status=0 {0}
GROUP BY A.CreateBy
";
string todayWhere = "";
if (!string.IsNullOrEmpty(query.StartClassDate))
{
todayWhere += string.Format(" AND to_days(A.CreateTime)=to_days('{0}') ", query.StartClassDate);
}
else
{
todayWhere += string.Format(" AND to_days(A.CreateTime)=to_days(now()) ");
}
//今日
var todayList = Get<RB_Visitor_Reserve_Extend>(string.Format(sql.ToString(), todayWhere)).ToList();
dicList.Add("today", todayList);
//昨日
string yesWhere = "";
if (!string.IsNullOrEmpty(query.StartClassDate))
{
yesWhere += string.Format(" AND TO_DAYS('{0}')-TO_DAYS(A.CreateTime)=1 ", query.StartClassDate);
}
else
{
yesWhere += string.Format(" AND TO_DAYS(now())-TO_DAYS(A.CreateTime)=1 ");
}
var yesList = Get<RB_Visitor_Reserve_Extend>(string.Format(sql, yesWhere)).ToList();
dicList.Add("yestoday", yesList);
//本周
string curWeek = "";
if (!string.IsNullOrEmpty(query.StartClassDate))
{
curWeek += string.Format(" AND YEARWEEK(date_format(A.CreateTime,'%Y-%m-%d' )) = YEARWEEK('{0}') ", query.StartClassDate);
}
else
{
curWeek += string.Format(" AND YEARWEEK(date_format(A.CreateTime,'%Y-%m-%d')) = YEARWEEK(now()) ");
}
var curWeekList = Get<RB_Visitor_Reserve_Extend>(string.Format(sql, curWeek)).ToList();
dicList.Add("currentWeek", curWeekList);
//上周
string lastWeek = "";
if (!string.IsNullOrEmpty(query.StartClassDate))
{
lastWeek += string.Format(" AND YEARWEEK(date_format(A.CreateTime,'%Y-%m-%d')) = YEARWEEK('{0}')-1 ", query.StartClassDate);
}
else
{
lastWeek += string.Format(" AND YEARWEEK(date_format(A.CreateTime,'%Y-%m-%d')) = YEARWEEK(now())-1 ");
}
var lastWeekList = Get<RB_Visitor_Reserve_Extend>(string.Format(sql, lastWeek)).ToList();
dicList.Add("lastWeek", lastWeekList);
//本月
string curMonth = "";
if (!string.IsNullOrEmpty(query.StartClassDate))
{
curMonth += string.Format(" AND DATE_FORMAT(A.CreateTime,'%Y%m')=DATE_FORMAT('{0}','%Y%m') ", query.StartClassDate);
}
else
{
curMonth += string.Format(" AND DATE_FORMAT(A.CreateTime,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m') ");
}
var curMonthList = Get<RB_Visitor_Reserve_Extend>(string.Format(sql, curMonth)).ToList();
dicList.Add("curMonth", curMonthList);
//上月
string lastMonth = "";
if (!string.IsNullOrEmpty(query.StartClassDate))
{
lastMonth += string.Format(" AND PERIOD_DIFF(date_format('{0}','%Y%m'),date_format(A.CreateTime,'%Y%m')) =1 ", query.StartClassDate);
}
else
{
lastMonth += string.Format(" AND PERIOD_DIFF(date_format(now(),'%Y%m'),date_format(A.CreateTime,'%Y%m')) =1 ");
}
var lastMonthList = Get<RB_Visitor_Reserve_Extend>(string.Format(sql, lastMonth)).ToList();
dicList.Add("lastMonth", lastMonthList);
return dicList;
}
} }
} }
...@@ -1213,5 +1213,100 @@ WHERE 1=1 ...@@ -1213,5 +1213,100 @@ WHERE 1=1
builder.AppendFormat(" ORDER BY o.CreateTime ASC "); builder.AppendFormat(" ORDER BY o.CreateTime ASC ");
return Get<RB_Order_ViewModel>(builder.ToString()).ToList(); return Get<RB_Order_ViewModel>(builder.ToString()).ToList();
} }
/// <summary>
/// 市场部和课程顾问部销售额统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public Dictionary<string, List<RB_Order_ViewModel>> GetMarketMarketConsultantStaticRepository(RB_Order_ViewModel query)
{
Dictionary<string, List<RB_Order_ViewModel>> dicList = new Dictionary<string, List<RB_Order_ViewModel>>();
string sql = @"
SELECT A.EnterID,A.CourseConsultantId,SUM(A.Income) AS Income
FROM RB_Order AS A
WHERE 1=1 AND A.OrderState IN(1,2) {0}
GROUP BY A.EnterID,A.CourseConsultantId
";
string todayWhere = "";
if (!string.IsNullOrEmpty(query.StartTime))
{
todayWhere += string.Format(" AND to_days(A.CreateTime)=to_days('{0}') ", query.StartTime);
}
else
{
todayWhere += string.Format(" AND to_days(A.CreateTime)=to_days(now()) ");
}
//今日
var todayList = Get<RB_Order_ViewModel>(string.Format(sql.ToString(), todayWhere)).ToList();
dicList.Add("today", todayList);
//昨日
string yesWhere = "";
if (!string.IsNullOrEmpty(query.StartTime))
{
yesWhere += string.Format(" AND TO_DAYS('{0}')-TO_DAYS(A.CreateTime)=1 ", query.StartTime);
}
else
{
yesWhere += string.Format(" AND TO_DAYS(now())-TO_DAYS(A.CreateTime)=1 ");
}
var yesList = Get<RB_Order_ViewModel>(string.Format(sql, yesWhere)).ToList();
dicList.Add("yestoday", yesList);
//本周
string curWeek = "";
if (!string.IsNullOrEmpty(query.StartTime))
{
curWeek += string.Format(" AND YEARWEEK(date_format(A.CreateTime,'%Y-%m-%d' )) = YEARWEEK('{0}') ", query.StartTime);
}
else
{
curWeek += string.Format(" AND YEARWEEK(date_format(A.CreateTime,'%Y-%m-%d')) = YEARWEEK(now()) ");
}
var curWeekList = Get<RB_Order_ViewModel>(string.Format(sql, curWeek)).ToList();
dicList.Add("currentWeek", curWeekList);
//上周
string lastWeek = "";
if (!string.IsNullOrEmpty(query.StartTime))
{
lastWeek += string.Format(" AND YEARWEEK(date_format(A.CreateTime,'%Y-%m-%d')) = YEARWEEK('{0}')-1 ", query.StartTime);
}
else
{
lastWeek += string.Format(" AND YEARWEEK(date_format(A.CreateTime,'%Y-%m-%d')) = YEARWEEK(now())-1 ");
}
var lastWeekList = Get<RB_Order_ViewModel>(string.Format(sql, lastWeek)).ToList();
dicList.Add("lastWeek", lastWeekList);
//本月
string curMonth = "";
if (!string.IsNullOrEmpty(query.StartTime))
{
curMonth += string.Format(" AND DATE_FORMAT(A.CreateTime,'%Y%m')=DATE_FORMAT('{0}','%Y%m') ", query.StartTime);
}
else
{
curMonth += string.Format(" AND DATE_FORMAT(A.CreateTime,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m') ");
}
var curMonthList = Get<RB_Order_ViewModel>(string.Format(sql, curMonth)).ToList();
dicList.Add("curMonth", curMonthList);
//上月
string lastMonth = "";
if (!string.IsNullOrEmpty(query.StartTime))
{
lastMonth += string.Format(" AND PERIOD_DIFF(date_format('{0}','%Y%m'),date_format(A.CreateTime,'%Y%m')) =1 ", query.StartTime);
}
else
{
lastMonth += string.Format(" AND PERIOD_DIFF(date_format(now(),'%Y%m'),date_format(A.CreateTime,'%Y%m')) =1 ");
}
var lastMonthList = Get<RB_Order_ViewModel>(string.Format(sql, lastMonth)).ToList();
dicList.Add("lastMonth", lastMonthList);
return dicList;
}
} }
} }
...@@ -829,34 +829,97 @@ WHERE 1=1 ...@@ -829,34 +829,97 @@ WHERE 1=1
/// <param name="endDate">结束时间</param> /// <param name="endDate">结束时间</param>
/// <param name="StuStage">客户阶段</param> /// <param name="StuStage">客户阶段</param>
/// <returns></returns> /// <returns></returns>
public List<RB_Student_ViewModel> GetStudentClueRepository(string createByIds, string startDate, string endDate,int StuStage=0) public Dictionary<string,List<RB_Student_ViewModel>> GetStudentClueRepository(RB_Student_ViewModel query)
{ {
Dictionary<string, List<RB_Student_ViewModel>> dicList = new Dictionary<string, List<RB_Student_ViewModel>>();
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.Append(@"
SELECT DATE_FORMAT(CreateTime,'%Y-%m-%d') AS CreateTime,Count(1) AS ClueCount SELECT Count(1) AS ClueCount,CreateBy
FROM RB_Student FROM RB_Student
WHERE Status=0 WHERE Status=0 {0}
GROUP BY CreateBy
"); ");
if (!string.IsNullOrEmpty(createByIds)) string todayWhere = "";
if (!string.IsNullOrEmpty(query.StartTime))
{ {
builder.AppendFormat(" AND CreateBy IN({0}) ", createByIds); todayWhere += string.Format(" AND to_days(CreateTime)=to_days('{0}') ", query.StartTime);
} }
if (!string.IsNullOrEmpty(startDate)) else
{ {
builder.AppendFormat(" AND CreateTime>='{0}' ", startDate); todayWhere += string.Format(" AND to_days(CreateTime)=to_days(now()) ");
} }
if (!string.IsNullOrEmpty(endDate))
//今日
var todayList = Get<RB_Student_ViewModel>(string.Format(builder.ToString(),todayWhere)).ToList();
dicList.Add("today", todayList);
//昨日
string yesWhere = "";
if (!string.IsNullOrEmpty(query.StartTime))
{ {
builder.AppendFormat(" AND CreateTime<='{0} 23:59:59' ", endDate); yesWhere += string.Format(" AND TO_DAYS('{0}')-TO_DAYS(CreateTime)=1 ", query.StartTime);
} }
if (StuStage > 0) else
{ {
builder.AppendFormat(" AND StuStage={0} ", StuStage); yesWhere += string.Format(" AND TO_DAYS(now())-TO_DAYS(CreateTime)=1 ");
} }
builder.AppendFormat(" GROUP BY DATE_FORMAT(CreateTime,'%Y-%m-%d') "); var yesList = Get<RB_Student_ViewModel>(string.Format(builder.ToString(), yesWhere)).ToList();
builder.AppendFormat(" ORDER BY DATE_FORMAT(CreateTime,'%Y/%m/%d') "); dicList.Add("yestoday", yesList);
var list = Get<RB_Student_ViewModel>(builder.ToString()).ToList();
return list; //本周
string curWeek = "";
if (!string.IsNullOrEmpty(query.StartTime))
{
curWeek += string.Format(" AND YEARWEEK(date_format(CreateTime,'%Y-%m-%d' )) = YEARWEEK('{0}') ", query.StartTime);
}
else
{
curWeek += string.Format(" AND YEARWEEK(date_format(CreateTime,'%Y-%m-%d')) = YEARWEEK(now()) ");
}
var curWeekList=Get<RB_Student_ViewModel>(string.Format(builder.ToString(), curWeek)).ToList();
dicList.Add("currentWeek", curWeekList);
//上周
string lastWeek = "";
if (!string.IsNullOrEmpty(query.StartTime))
{
lastWeek += string.Format(" AND YEARWEEK(date_format(CreateTime,'%Y-%m-%d')) = YEARWEEK('{0}')-1 ", query.StartTime);
}
else
{
lastWeek += string.Format(" AND YEARWEEK(date_format(CreateTime,'%Y-%m-%d')) = YEARWEEK(now())-1 ");
}
var lastWeekList = Get<RB_Student_ViewModel>(string.Format(builder.ToString(), lastWeek)).ToList();
dicList.Add("lastWeek", lastWeekList);
//本月
string curMonth = "";
if (!string.IsNullOrEmpty(query.StartTime))
{
curMonth += string.Format(" AND DATE_FORMAT(CreateTime,'%Y%m')=DATE_FORMAT('{0}','%Y%m') ", query.StartTime);
}
else
{
curMonth += string.Format(" AND DATE_FORMAT(CreateTime,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m') ");
}
var curMonthList = Get<RB_Student_ViewModel>(string.Format(builder.ToString(), curMonth)).ToList();
dicList.Add("curMonth", curMonthList);
//上月
string lastMonth = "";
if (!string.IsNullOrEmpty(query.StartTime))
{
lastMonth += string.Format(" AND PERIOD_DIFF(date_format('{0}','%Y%m'),date_format(CreateTime,'%Y%m')) =1 ", query.StartTime);
}
else
{
lastMonth += string.Format(" AND PERIOD_DIFF(date_format(now(),'%Y%m'),date_format(CreateTime,'%Y%m')) =1 ");
}
var lastMonthList = Get<RB_Student_ViewModel>(string.Format(builder.ToString(), lastMonth)).ToList();
dicList.Add("lastMonth", lastMonthList);
return dicList;
} }
} }
} }
\ No newline at end of file
...@@ -146,12 +146,12 @@ namespace Edu.WebApi.Controllers.User ...@@ -146,12 +146,12 @@ namespace Edu.WebApi.Controllers.User
model.RB_Group_id = userInfo.Group_Id; model.RB_Group_id = userInfo.Group_Id;
model.RB_Branch_id = userInfo.School_Id; model.RB_Branch_id = userInfo.School_Id;
model.UpdateBy = userInfo.Id; model.UpdateBy = userInfo.Id;
if (string.IsNullOrEmpty(model.Mask)) if (string.IsNullOrEmpty(model.Mask))
{ {
model.Mask = model.Content; model.Mask = model.Content;
} }
var saveInfo = attendancemodule.SaveDictModule(model); var saveInfo = attendancemodule.SaveDictModule(model);
return saveInfo.result ? ApiResult.Success("请求成功!",saveInfo.id) : ApiResult.Failed("请求失败!"); return saveInfo.result ? ApiResult.Success("请求成功!", saveInfo.id) : ApiResult.Failed("请求失败!");
} }
/// <summary> /// <summary>
...@@ -359,7 +359,7 @@ namespace Edu.WebApi.Controllers.User ...@@ -359,7 +359,7 @@ namespace Edu.WebApi.Controllers.User
if (flag) if (flag)
{ {
var modelShenhe = attendancemodule.GetDictValueList(userInfo.Group_Id, Config.Notice_BaseKey).FirstOrDefault(); var modelShenhe = attendancemodule.GetDictValueList(userInfo.Group_Id, Config.Notice_BaseKey).FirstOrDefault();
if (modelShenhe != null && !string.IsNullOrEmpty(modelShenhe.Content)) if (modelShenhe != null && !string.IsNullOrEmpty(modelShenhe.Content))
{ {
var queryTargetWorkId = accountModule.GetWorkUserIdModule(int.Parse(modelShenhe.Content)); var queryTargetWorkId = accountModule.GetWorkUserIdModule(int.Parse(modelShenhe.Content));
...@@ -376,7 +376,7 @@ namespace Edu.WebApi.Controllers.User ...@@ -376,7 +376,7 @@ namespace Edu.WebApi.Controllers.User
CoverImg = "", CoverImg = "",
CreateByName = base.UserInfo.AccountName, CreateByName = base.UserInfo.AccountName,
JumpUrl = "", JumpUrl = "",
WorkMsgType= "markdown", WorkMsgType = "markdown",
SendTime = DateTime.Now, SendTime = DateTime.Now,
SendType = 0, SendType = 0,
Title = "公告审批提醒", Title = "公告审批提醒",
...@@ -386,7 +386,7 @@ namespace Edu.WebApi.Controllers.User ...@@ -386,7 +386,7 @@ namespace Edu.WebApi.Controllers.User
Common.Message.MessageHelper.SendMessage(modelWork); Common.Message.MessageHelper.SendMessage(modelWork);
} }
} }
return ApiResult.Success(); return ApiResult.Success();
} }
else else
...@@ -489,7 +489,7 @@ namespace Edu.WebApi.Controllers.User ...@@ -489,7 +489,7 @@ namespace Edu.WebApi.Controllers.User
if (flag) if (flag)
{ {
var noticeModel = noticeModule.GetNoticeEntity(NoticeId); var noticeModel = noticeModule.GetNoticeEntity(NoticeId);
if (noticeModel!=null) if (noticeModel != null)
{ {
var queryTargetWorkId = accountModule.GetWorkUserIdModule(noticeModel.CreateBy); var queryTargetWorkId = accountModule.GetWorkUserIdModule(noticeModel.CreateBy);
...@@ -497,12 +497,12 @@ namespace Edu.WebApi.Controllers.User ...@@ -497,12 +497,12 @@ namespace Edu.WebApi.Controllers.User
if (!string.IsNullOrEmpty(queryTargetWorkId)) if (!string.IsNullOrEmpty(queryTargetWorkId))
{ {
var path = $"/noticeView?NoticeId={NoticeId}"; var path = $"/noticeView?NoticeId={NoticeId}";
if (ReviewStatus == 2) if (ReviewStatus == 2)
{ {
path = $"/administration/document"; path = $"/administration/document";
} }
path = HttpUtility.UrlEncode(path); path = HttpUtility.UrlEncode(path);
string markdownContent = $"<font color='{(ReviewStatus == 2 ? "warning" : "info")}'>`审批{(ReviewStatus == 1?"通过":"驳回")}`</font> 公告审批结果\n\n>**概要信息** \n>公告标题:{noticeModel.Title}\n>审 核 人:{userInfo.AccountName}\n>审核时间:<font color='comment'>{DateTime.Now.ToString("MM-dd HH:mm")}</font>\n>\n>请 点 击:[查看详情]({Config.ErpUrl}/autologin?loginId={noticeModel.CreateBy}&target={path}#target=out)"; string markdownContent = $"<font color='{(ReviewStatus == 2 ? "warning" : "info")}'>`审批{(ReviewStatus == 1 ? "通过" : "驳回")}`</font> 公告审批结果\n\n>**概要信息** \n>公告标题:{noticeModel.Title}\n>审 核 人:{userInfo.AccountName}\n>审核时间:<font color='comment'>{DateTime.Now.ToString("MM-dd HH:mm")}</font>\n>\n>请 点 击:[查看详情]({Config.ErpUrl}/autologin?loginId={noticeModel.CreateBy}&target={path}#target=out)";
Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel() Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel()
{ {
CategoryId = PushMessageCategoryEnum.NoticeAuditResult, CategoryId = PushMessageCategoryEnum.NoticeAuditResult,
...@@ -524,7 +524,7 @@ namespace Edu.WebApi.Controllers.User ...@@ -524,7 +524,7 @@ namespace Edu.WebApi.Controllers.User
#region 批量推送公告用户 #region 批量推送公告用户
if (ReviewStatus == 1) if (ReviewStatus == 1)
{ {
var to = "@all"; var to = "@all";
if (noticeModel.To != "-1") if (noticeModel.To != "-1")
...@@ -2515,7 +2515,7 @@ namespace Edu.WebApi.Controllers.User ...@@ -2515,7 +2515,7 @@ namespace Edu.WebApi.Controllers.User
int Type = base.ParmJObj.GetInt("Type"); int Type = base.ParmJObj.GetInt("Type");
int Year = base.ParmJObj.GetInt("Year"); int Year = base.ParmJObj.GetInt("Year");
int Month = base.ParmJObj.GetInt("Month"); int Month = base.ParmJObj.GetInt("Month");
var obj = employeeBonusModule.GetEmpBonusStaticModule(base.UserInfo, Type,Year, Month); var obj = employeeBonusModule.GetEmpBonusStaticModule(base.UserInfo, Type, Year, Month);
return ApiResult.Success(data: obj); return ApiResult.Success(data: obj);
} }
...@@ -2523,6 +2523,29 @@ namespace Edu.WebApi.Controllers.User ...@@ -2523,6 +2523,29 @@ namespace Edu.WebApi.Controllers.User
#region 市场部数据统计 #region 市场部数据统计
/// <summary>
/// 生成市场部和课程顾问部统计数据
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult CreateMarketData()
{
string startTime = "2022-01-01";
string endTime = "2022-01-17";
var start = Convert.ToDateTime(startTime);
var end = Convert.ToDateTime(endTime);
var days = (end - start).Days;
marketConsultantModule.ClearData();
Task.Run(() =>
{
for (var i = 0; i < days; i++)
{
marketConsultantModule.CreateDataModule(start.AddDays(i));
}
});
return ApiResult.Success();
}
/// <summary> /// <summary>
/// 市场部数据统计 /// 市场部数据统计
/// </summary> /// </summary>
...@@ -2530,10 +2553,9 @@ namespace Edu.WebApi.Controllers.User ...@@ -2530,10 +2553,9 @@ namespace Edu.WebApi.Controllers.User
[HttpPost] [HttpPost]
public ApiResult MarketStatic() public ApiResult MarketStatic()
{ {
string employeeIds = "";
string startTime = "2022-01-01"; string startTime = "2022-01-01";
string endTime = "2022-01-30"; string endTime = "2022-01-17";
var obj = marketConsultantModule.MarketStaticModule(employeeIds, startTime, endTime); var obj = marketConsultantModule.MarketStaticModule("", startTime, endTime);
return ApiResult.Success(data: obj); return ApiResult.Success(data: obj);
} }
......
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