Commit 025f0284 authored by liudong1993's avatar liudong1993

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

parents cc39a28f c5c1d9ef
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_Static
{
/// <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 NewCount { get; set; }
/// <summary>
/// 初步沟通/二次沟通
/// </summary>
public decimal CommunicationCount { get; set; }
/// <summary>
/// 预约试听(已到店,已试听)
/// </summary>
public decimal TrialLessonCount { get; set; }
/// <summary>
/// 待联系
/// </summary>
public decimal NotContacted { get; set; }
/// <summary>
/// 日本语培订单
/// </summary>
public decimal JPOrder { get; set; }
/// <summary>
/// 韩国语培订单
/// </summary>
public decimal KROrder { get; set; }
/// <summary>
/// 法国语培订单
/// </summary>
public decimal FROrder { get; set; }
/// <summary>
/// 日本留学
/// </summary>
public decimal JPStudyOrder { get; set; }
/// <summary>
/// 韩国留学
/// </summary>
public decimal KRStudyOrder { get; set; }
/// <summary>
/// 英港澳留学
/// </summary>
public decimal YGAStudyOrder { get; set; }
/// <summary>
/// 美国留学
/// </summary>
public decimal USStudyOrder { get; set; }
/// <summary>
/// 新加坡留学
/// </summary>
public decimal SGStudyOrder { get; set; }
/// <summary>
/// 澳新留学
/// </summary>
public decimal AXStudyOrder { get; set; }
/// <summary>
/// 其他留学
/// </summary>
public decimal OtherStudyOrder { 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 CustomerCount { get; set; }
/// <summary>
/// 直客
/// </summary>
public decimal B2CCount { get; set; }
/// <summary>
/// 学员转介绍
/// </summary>
public decimal TransCount { get; set; }
/// <summary>
/// 内部介绍
/// </summary>
public decimal InnerCount { get; set; }
/// <summary>
/// 无效
/// </summary>
public decimal InvalidCount { get; set; }
/// <summary>
/// 疑似
/// </summary>
public decimal SuspectedCount { get; set; }
/// <summary>
/// 意向
/// </summary>
public decimal IntentionCount { get; set; }
/// <summary>
/// 近期课邀约
/// </summary>
public decimal InvitationCount { get; set; }
/// <summary>
/// 谈判
/// </summary>
public decimal NegotiationCount { 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; }
}
}
...@@ -17,6 +17,11 @@ namespace Edu.Model.ViewModel.User ...@@ -17,6 +17,11 @@ namespace Edu.Model.ViewModel.User
/// </summary> /// </summary>
public string QStudentIds { get; set; } public string QStudentIds { get; set; }
/// <summary>
/// 订单编号【查询使用】
/// </summary>
public string QOrderIds { get; set; }
/// <summary> /// <summary>
/// 班级名称 /// 班级名称
/// </summary> /// </summary>
...@@ -133,5 +138,10 @@ namespace Edu.Model.ViewModel.User ...@@ -133,5 +138,10 @@ namespace Edu.Model.ViewModel.User
/// 预约的次数 /// 预约的次数
/// </summary> /// </summary>
public int AppointNum { get; set; } public int AppointNum { get; set; }
/// <summary>
/// 订单创建时间
/// </summary>
public DateTime OrderCreateTime { get; set; }
} }
} }
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_Static_Extend : RB_Student_Static
{
}
}
...@@ -1543,7 +1543,7 @@ namespace Edu.Module.Course ...@@ -1543,7 +1543,7 @@ namespace Edu.Module.Course
{ {
foreach (var subItem in item.PlanTimeList) foreach (var subItem in item.PlanTimeList)
{ {
var tempCheckList = checkList?.Where(qitem => qitem.ClassId == item.ClassId && qitem.ClassDate == item.ClassDate && qitem.ClassTimeId == subItem.ClassTimeId)?.ToList() ?? new List<RB_Class_Check_ViewModel>(); var tempCheckList = checkList?.Where(qitem => qitem.ClassId == item.ClassId && Common.ConvertHelper.FormatDate(qitem.ClassDate) == Common.ConvertHelper.FormatDate(item.ClassDate) && qitem.ClassTimeId == subItem.ClassTimeId)?.ToList() ?? new List<RB_Class_Check_ViewModel>();
classTimeList.Add(new classTimeList.Add(new
{ {
subItem.ClassTimeId, subItem.ClassTimeId,
......
...@@ -624,7 +624,11 @@ namespace Edu.Module.Course ...@@ -624,7 +624,11 @@ namespace Edu.Module.Course
{ {
course_WordsRepository.BatchInsertCourseWordsRepository(wordsList); course_WordsRepository.BatchInsertCourseWordsRepository(wordsList);
} }
chapterRepository.SetBatchUpdateChapterNoRepository(parentList); if (parentList != null && parentList.Count > 0)
{
chapterRepository.SetBatchUpdateChapterNoRepository(parentList);
}
SetBatchAllChapterCurrentHoursModule(query.NewCourseId); SetBatchAllChapterCurrentHoursModule(query.NewCourseId);
return flag; return flag;
} }
......
This diff is collapsed.
...@@ -104,11 +104,9 @@ namespace Edu.Module.Customer ...@@ -104,11 +104,9 @@ namespace Edu.Module.Customer
{ {
var newTime = StartTime.AddDays(-1); var newTime = StartTime.AddDays(-1);
string start = Common.ConvertHelper.FormatDate(newTime); string start = Common.ConvertHelper.FormatDate(newTime);
var empList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel() var empList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel()
{ {
//市场部编号4,课程顾问部编号13 //市场部编号4,课程顾问部编号13
QDeptIds = "4",
Group_Id = 100000, Group_Id = 100000,
IsLeave = 1, IsLeave = 1,
UserRole = UserRoleEnum.MarketPersion, UserRole = UserRoleEnum.MarketPersion,
...@@ -553,6 +551,17 @@ namespace Edu.Module.Customer ...@@ -553,6 +551,17 @@ namespace Edu.Module.Customer
DateTime start = Convert.ToDateTime(StartTime); DateTime start = Convert.ToDateTime(StartTime);
DateTime end = Convert.ToDateTime(EndTime); DateTime end = Convert.ToDateTime(EndTime);
var days = (end - start).Days; var days = (end - start).Days;
if (string.IsNullOrEmpty(EmpIds))
{
var empList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel()
{
//市场部编号4,课程顾问部编号13
Group_Id = 100000,
IsLeave = 1,
UserRole = UserRoleEnum.MarketPersion,
});
EmpIds = string.Join(",", empList.Select(qitem => qitem.Id));
}
var lastList = market_DataRepository.GetMarketListRepository(new RB_Market_Data_Extend() var lastList = market_DataRepository.GetMarketListRepository(new RB_Market_Data_Extend()
{ {
StartTime = StartTime, StartTime = StartTime,
...@@ -622,15 +631,13 @@ namespace Edu.Module.Customer ...@@ -622,15 +631,13 @@ namespace Edu.Module.Customer
} }
dayList.Add(tempObj); dayList.Add(tempObj);
} }
var yesDataList = lastList?.Where(qitem => qitem.Date.Year == end.AddDays(-1).Year && qitem.Date.Month == end.AddDays(-1).Month && qitem.Date.Day == end.AddDays(-1).Day)?.ToList(); //昨天
var yesDataList = lastList?.Where(qitem => Common.ConvertHelper.FormatDate(qitem.Date) == Common.ConvertHelper.FormatDate(end.AddDays(-1)))?.ToList();
//当前周 //当前周
var curWeekList = lastList?.Where(qitem => Common.ConvertHelper.WeekOfYear(qitem.Date) == Common.ConvertHelper.WeekOfYear(end.AddDays(-1)))?.ToList(); var curWeekList = lastList?.Where(qitem => Common.ConvertHelper.WeekOfYear(qitem.Date) == Common.ConvertHelper.WeekOfYear(end.AddDays(-1)))?.ToList();
//上一周 //上一周
var lastWeekList = lastList?.Where(qitem => Common.ConvertHelper.WeekOfYear(qitem.Date) == Common.ConvertHelper.WeekOfYear(end.AddDays(-1)) - 1)?.ToList(); var lastWeekList = lastList?.Where(qitem => Common.ConvertHelper.WeekOfYear(qitem.Date) == Common.ConvertHelper.WeekOfYear(end.AddDays(-1)) - 1)?.ToList();
var tempDataList = lastList?.Where(qitem => Common.ConvertHelper.FormatDate(qitem.Date) == Common.ConvertHelper.FormatDate(end.AddDays(-1)))?.ToList();
//渠道数据统计 //渠道数据统计
var dataList = studentRepository.GetStudentChannelStaticRepository(new RB_Student_ViewModel() var dataList = studentRepository.GetStudentChannelStaticRepository(new RB_Student_ViewModel()
{ {
...@@ -727,38 +734,38 @@ namespace Edu.Module.Customer ...@@ -727,38 +734,38 @@ namespace Edu.Module.Customer
ClueCount = yesDataList?.Sum(qitem => qitem.ClueCount) ?? 0, ClueCount = yesDataList?.Sum(qitem => qitem.ClueCount) ?? 0,
YestodayClue = yesDataList?.Sum(qitem => qitem.YestodayClue) ?? 0, YestodayClue = yesDataList?.Sum(qitem => qitem.YestodayClue) ?? 0,
CurWeekClue = curWeekList?.Sum(qitem => qitem.CurWeekClue) ?? 0, CurWeekClue = curWeekList?.Sum(qitem => qitem.ClueCount) ?? 0,
LastWeekClue = lastWeekList?.Sum(qitem => qitem.LastWeekClue) ?? 0, LastWeekClue = lastWeekList?.Sum(qitem => qitem.YestodayClue) ?? 0,
CurMonthClue = tempDataList?.Sum(qitem => qitem.CurMonthClue) ?? 0, CurMonthClue = yesDataList?.Sum(qitem => qitem.CurMonthClue) ?? 0,
LastMonthClue = tempDataList?.Sum(qitem => qitem.LastMonthClue) ?? 0, LastMonthClue = yesDataList?.Sum(qitem => qitem.LastMonthClue) ?? 0,
FollowCount = yesDataList?.Sum(qitem => qitem.FollowCount) ?? 0, FollowCount = yesDataList?.Sum(qitem => qitem.FollowCount) ?? 0,
YestodayFollow = yesDataList?.Sum(qitem => qitem.YestodayFollow) ?? 0, YestodayFollow = yesDataList?.Sum(qitem => qitem.YestodayFollow) ?? 0,
CurWeekFollow = curWeekList?.Sum(qitem => qitem.CurWeekFollow) ?? 0, CurWeekFollow = curWeekList?.Sum(qitem => qitem.FollowCount) ?? 0,
LastWeekFollow = lastWeekList?.Sum(qitem => qitem.LastWeekFollow) ?? 0, LastWeekFollow = lastWeekList?.Sum(qitem => qitem.YestodayFollow) ?? 0,
CurMonthFollow = tempDataList?.Sum(qitem => qitem.CurMonthFollow) ?? 0, CurMonthFollow = yesDataList?.Sum(qitem => qitem.CurMonthFollow) ?? 0,
LastMonthFollow = tempDataList?.Sum(qitem => qitem.LastMonthFollow) ?? 0, LastMonthFollow = yesDataList?.Sum(qitem => qitem.LastMonthFollow) ?? 0,
VisitCount = yesDataList?.Sum(qitem => qitem.VisitCount) ?? 0, VisitCount = yesDataList?.Sum(qitem => qitem.VisitCount) ?? 0,
YestodayVisit = yesDataList?.Sum(qitem => qitem.YestodayVisit) ?? 0, YestodayVisit = yesDataList?.Sum(qitem => qitem.YestodayVisit) ?? 0,
CurWeekVisit = curWeekList?.Sum(qitem => qitem.CurWeekVisit) ?? 0, CurWeekVisit = curWeekList?.Sum(qitem => qitem.VisitCount) ?? 0,
LastWeekVisit = lastWeekList?.Sum(qitem => qitem.LastWeekVisit) ?? 0, LastWeekVisit = lastWeekList?.Sum(qitem => qitem.YestodayVisit) ?? 0,
CurMonthVisit = tempDataList?.Sum(qitem => qitem.CurMonthVisit) ?? 0, CurMonthVisit = yesDataList?.Sum(qitem => qitem.CurMonthVisit) ?? 0,
LastMonthVisit = tempDataList?.Sum(qitem => qitem.LastMonthVisit) ?? 0, LastMonthVisit = yesDataList?.Sum(qitem => qitem.LastMonthVisit) ?? 0,
TrialLessonCount = yesDataList?.Sum(qitem => qitem.TrialLessonCount) ?? 0, TrialLessonCount = yesDataList?.Sum(qitem => qitem.TrialLessonCount) ?? 0,
YestodayTrialLesson = yesDataList?.Sum(qitem => qitem.YestodayTrialLesson) ?? 0, YestodayTrialLesson = yesDataList?.Sum(qitem => qitem.YestodayTrialLesson) ?? 0,
CurWeekTrialLesson = curWeekList?.Sum(qitem => qitem.CurWeekTrialLesson) ?? 0, CurWeekTrialLesson = curWeekList?.Sum(qitem => qitem.TrialLessonCount) ?? 0,
LastWeekTrialLesson = lastWeekList?.Sum(qitem => qitem.LastWeekTrialLesson) ?? 0, LastWeekTrialLesson = lastWeekList?.Sum(qitem => qitem.YestodayTrialLesson) ?? 0,
CurMonthTrialLesson = tempDataList?.Sum(qitem => qitem.CurMonthTrialLesson) ?? 0, CurMonthTrialLesson = yesDataList?.Sum(qitem => qitem.CurMonthTrialLesson) ?? 0,
LastMonthTrialLesson = tempDataList?.Sum(qitem => qitem.LastMonthTrialLesson) ?? 0, LastMonthTrialLesson = yesDataList?.Sum(qitem => qitem.LastMonthTrialLesson) ?? 0,
SaleMoney = yesDataList?.Sum(qitem => qitem.SaleMoney) ?? 0, SaleMoney = yesDataList?.Sum(qitem => qitem.SaleMoney) ?? 0,
YestodaySale = yesDataList?.Sum(qitem => qitem.YestodaySale) ?? 0, YestodaySale = yesDataList?.Sum(qitem => qitem.YestodaySale) ?? 0,
CurWeekSale = curWeekList?.Sum(qitem => qitem.CurWeekSale) ?? 0, CurWeekSale = curWeekList?.Sum(qitem => qitem.SaleMoney) ?? 0,
LastWeekSale = lastWeekList?.Sum(qitem => qitem.LastWeekSale) ?? 0, LastWeekSale = lastWeekList?.Sum(qitem => qitem.YestodaySale) ?? 0,
CurMonrhSale = tempDataList?.Sum(qitem => qitem.CurMonrhSale) ?? 0, CurMonrhSale = yesDataList?.Sum(qitem => qitem.CurMonrhSale) ?? 0,
LastMonthSale = tempDataList?.Sum(qitem => qitem.LastMonthSale) ?? 0, LastMonthSale = yesDataList?.Sum(qitem => qitem.LastMonthSale) ?? 0,
}, },
BarData = new BarData = new
{ {
...@@ -786,7 +793,7 @@ namespace Edu.Module.Customer ...@@ -786,7 +793,7 @@ namespace Edu.Module.Customer
{ {
object obj = new object(); object obj = new object();
DateTime end = Convert.ToDateTime(EndTime); DateTime end = Convert.ToDateTime(EndTime);
string newStart = Common.ConvertHelper.FormatDate(end.AddMonths(-1)); string newStart = Common.ConvertHelper.FormatDate(new DateTime(end.Year,end.Month,1));
if (string.IsNullOrEmpty(EmpIds)) if (string.IsNullOrEmpty(EmpIds))
{ {
var empList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel() var empList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel()
...@@ -969,8 +976,8 @@ namespace Edu.Module.Customer ...@@ -969,8 +976,8 @@ namespace Edu.Module.Customer
CurMonthOrderNum, CurMonthOrderNum,
LastMonthOrderNum, LastMonthOrderNum,
CurWeekStu = curWeekStuList?.Select(qitem => new { qitem.StuId, qitem.StuName }), CurWeekStu = curWeekStuList?.Count??0,
CurMonthStu = curWeekStuList?.Select(qitem => new { qitem.StuId, qitem.StuName }), CurMonthStu = curMonthStuList?.Count??0,
}; };
return obj; return obj;
} }
...@@ -986,7 +993,7 @@ namespace Edu.Module.Customer ...@@ -986,7 +993,7 @@ namespace Edu.Module.Customer
{ {
List<RB_Consultant_Data_Extend> list = new List<RB_Consultant_Data_Extend>(); List<RB_Consultant_Data_Extend> list = new List<RB_Consultant_Data_Extend>();
DateTime end = Convert.ToDateTime(EndTime); DateTime end = Convert.ToDateTime(EndTime);
string newStart = Common.ConvertHelper.FormatDate(end.AddMonths(-1)); string newStart = Common.ConvertHelper.FormatDate(new DateTime(end.Year, end.Month, 1));
if (string.IsNullOrEmpty(EmpIds)) if (string.IsNullOrEmpty(EmpIds))
{ {
var empList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel() var empList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel()
......
...@@ -67,6 +67,11 @@ namespace Edu.Module.User ...@@ -67,6 +67,11 @@ namespace Edu.Module.User
/// </summary> /// </summary>
private readonly RB_Student_AdvisorRepository student_AdvisorRepository = new RB_Student_AdvisorRepository(); private readonly RB_Student_AdvisorRepository student_AdvisorRepository = new RB_Student_AdvisorRepository();
/// <summary>
/// 客户信息统计仓储层对象
/// </summary>
private readonly RB_Student_StaticRepository student_StaticRepository = new RB_Student_StaticRepository();
#region 学员跟进 #region 学员跟进
...@@ -372,5 +377,20 @@ namespace Edu.Module.User ...@@ -372,5 +377,20 @@ namespace Edu.Module.User
} }
#endregion #endregion
#region 客户信息统计
/// <summary>
/// 客户数据统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Static_Extend> GetStudentStaticListModule(RB_Student_Static_Extend query)
{
var list = student_StaticRepository.GetStudentStaticListRepository(query);
return list;
}
#endregion
} }
} }
...@@ -169,8 +169,7 @@ INNER JOIN rb_student_follow f1 on f.Id = f1.Id ...@@ -169,8 +169,7 @@ INNER JOIN rb_student_follow f1 on f.Id = f1.Id
SELECT A.CreateBy,COUNT(1) AS FollowCount 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 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 INNER JOIN RB_student AS C ON A.StuId=C.StuId
WHERE A.Status=0 AND C.Status=0 AND C.StuStage<>7 {0} WHERE A.Status=0 AND C.Status=0 AND C.StuStage<>7 AND C.AdvisorStatus<>7 {0}
"; ";
if (query.CreateBy > 0) if (query.CreateBy > 0)
{ {
......
...@@ -99,6 +99,14 @@ namespace Edu.Repository.Sell ...@@ -99,6 +99,14 @@ namespace Edu.Repository.Sell
{ {
where += $@" and o.{nameof(RB_Order_ViewModel.LXConfirmDate)} >='{demodel.ConfirmSTime}'"; where += $@" and o.{nameof(RB_Order_ViewModel.LXConfirmDate)} >='{demodel.ConfirmSTime}'";
} }
if (!string.IsNullOrEmpty(demodel.StartTime))
{
where += $@" and o.{nameof(RB_Order_ViewModel.CreateTime)} >='{demodel.StartTime}'";
}
if (!string.IsNullOrEmpty(demodel.EndTime))
{
where += $@" and o.{nameof(RB_Order_ViewModel.CreateTime)} <='{demodel.EndTime} 23:59:59'";
}
if (!string.IsNullOrEmpty(demodel.ConfirmETime)) if (!string.IsNullOrEmpty(demodel.ConfirmETime))
{ {
where += $@" and o.{nameof(RB_Order_ViewModel.LXConfirmDate)} <='{demodel.ConfirmETime} 23:59:59'"; where += $@" and o.{nameof(RB_Order_ViewModel.LXConfirmDate)} <='{demodel.ConfirmETime} 23:59:59'";
......
...@@ -41,6 +41,10 @@ WHERE 1=1 AND C.OrderState<>3 AND D.Status=0 ...@@ -41,6 +41,10 @@ WHERE 1=1 AND C.OrderState<>3 AND D.Status=0
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_OrderGuest_ViewModel.OrderId), query.OrderId); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_OrderGuest_ViewModel.OrderId), query.OrderId);
} }
if (!string.IsNullOrEmpty(query.QOrderIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Student_OrderGuest_ViewModel.OrderId), query.QOrderIds);
}
if (query.GuestId > 0) if (query.GuestId > 0)
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_OrderGuest_ViewModel.GuestId), query.GuestId); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_OrderGuest_ViewModel.GuestId), query.GuestId);
...@@ -72,7 +76,8 @@ WHERE 1=1 AND C.OrderState<>3 AND D.Status=0 ...@@ -72,7 +76,8 @@ WHERE 1=1 AND C.OrderState<>3 AND D.Status=0
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT A.*,IFNULL(B.ClassName,'') AS ClassName,IFNULL(B.ClassNo,'') AS ClassNo,IFNULL(C.JoinType,0) AS StuJoinType,IFNULL(D.GuestState,0) AS StuGuestState SELECT A.*,IFNULL(B.ClassName,'') AS ClassName,IFNULL(B.ClassNo,'') AS ClassNo,IFNULL(C.JoinType,0) AS StuJoinType,IFNULL(D.GuestState,0) AS StuGuestState
,C.OrderState,IFNULL(D.TotalHours,0) AS TotalHours,IFNULL(D.CompleteHours,0) AS CompleteHours,IFNULL(B.ClassStatus,0) AS ClassStatus,IFNULL(D.RenewState,0) AS RenewState ,C.OrderState,IFNULL(D.TotalHours,0) AS TotalHours,IFNULL(D.CompleteHours,0) AS CompleteHours,IFNULL(B.ClassStatus,0) AS ClassStatus
,IFNULL(D.RenewState,0) AS RenewState,C.CreateTime AS OrderCreateTime
FROM RB_Student_OrderGuest AS A INNER JOIN rb_order AS C ON A.OrderId=C.OrderId FROM RB_Student_OrderGuest AS A INNER JOIN rb_order AS C ON A.OrderId=C.OrderId
INNER JOIN rb_order_guest AS D ON A.GuestId=D.Id INNER JOIN rb_order_guest AS D ON A.GuestId=D.Id
LEFT JOIN rb_class AS B ON A.ClassId=B.ClassId LEFT JOIN rb_class AS B ON A.ClassId=B.ClassId
...@@ -109,12 +114,13 @@ WHERE 1=1 AND C.OrderState<>3 AND D.Status=0 ...@@ -109,12 +114,13 @@ WHERE 1=1 AND C.OrderState<>3 AND D.Status=0
} }
} }
string sql = string.Format(@" string sql = string.Format(@"
SELECT A.Student_Id,A.OrderId,A.OrderState,A.RenewState FROM SELECT A.Student_Id,A.OrderId,A.OrderState,A.RenewState,A.OrderCreateTime
FROM
( (
{0} {0}
) AS A ) AS A
GROUP BY A.Student_Id,A.OrderId GROUP BY A.Student_Id,A.OrderId
",builder.ToString()); ", builder.ToString());
return Get<RB_Student_OrderGuest_ViewModel>(sql).ToList(); return Get<RB_Student_OrderGuest_ViewModel>(sql).ToList();
} }
......
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_StaticRepository : BaseRepository<RB_Student_Static>
{
/// <summary>
/// 客户数据统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Static_Extend> GetStudentStaticListRepository(RB_Student_Static_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM RB_Student_Static AS A
WHERE 1=1
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Static_Extend.Group_Id), query.Group_Id);
}
if (query.YearStr > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Static_Extend.YearStr), query.YearStr);
}
if (query.MonthStr > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Static_Extend.MonthStr), query.MonthStr);
}
}
return Get<RB_Student_Static_Extend>(builder.ToString()).ToList();
}
}
}
...@@ -1326,7 +1326,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -1326,7 +1326,7 @@ namespace Edu.WebApi.Controllers.Course
int priceDiscountType = param.GetInt("PriceDiscountType"); int priceDiscountType = param.GetInt("PriceDiscountType");
if (priceDiscountType <= 0) if (priceDiscountType <= 0)
{ {
return ApiResult.ParamIsNull(message: "请选择【优惠类型】"); //return ApiResult.ParamIsNull(message: "请选择【优惠类型】");
} }
RB_Course_Preferential_Extend model = new RB_Course_Preferential_Extend() RB_Course_Preferential_Extend model = new RB_Course_Preferential_Extend()
{ {
......
...@@ -89,7 +89,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -89,7 +89,7 @@ namespace Edu.WebApi.Controllers.Course
x.ClassStyle, x.ClassStyle,
ClassStyleName = x.ClassStyle.ToName(), ClassStyleName = x.ClassStyle.ToName(),
OpenTime = x.OpenTime.ToString("yyyy年MM月dd日"), OpenTime = x.OpenTime.ToString("yyyy年MM月dd日"),
EndOrderTime =Common.ConvertHelper.FormatDate2(x.EndOrderTime), EndOrderTime = Common.ConvertHelper.FormatDate2(x.EndOrderTime),
IsCanApply = x.EndOrderTime >= Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")) && x.ClassPersion > x.OrderStudentCount ? 1 : 0, IsCanApply = x.EndOrderTime >= Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")) && x.ClassPersion > x.OrderStudentCount ? 1 : 0,
OriginalPrice = x.CourseOriginalPrice, OriginalPrice = x.CourseOriginalPrice,
SellPrice = x.CourseSellPrice, SellPrice = x.CourseSellPrice,
...@@ -466,11 +466,11 @@ namespace Edu.WebApi.Controllers.Course ...@@ -466,11 +466,11 @@ namespace Edu.WebApi.Controllers.Course
{ {
ClassId = parms.GetInt("ClassId", 0), ClassId = parms.GetInt("ClassId", 0),
OrderId = parms.GetInt("OrderId"), OrderId = parms.GetInt("OrderId"),
SourceId=parms.GetInt("SourceId"), SourceId = parms.GetInt("SourceId"),
Group_Id = base.UserInfo.Group_Id, Group_Id = base.UserInfo.Group_Id,
OrderState = OrderStateEnum.Normal OrderState = OrderStateEnum.Normal
}; };
if (query.ClassId <= 0&&query.SourceId<=0) if (query.ClassId <= 0 && query.SourceId <= 0)
{ {
return ApiResult.ParamIsNull(); return ApiResult.ParamIsNull();
} }
...@@ -493,7 +493,8 @@ namespace Edu.WebApi.Controllers.Course ...@@ -493,7 +493,8 @@ namespace Edu.WebApi.Controllers.Course
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public ApiResult GetOrderGuestRenewState() { public ApiResult GetOrderGuestRenewState()
{
var userInfo = base.UserInfo; var userInfo = base.UserInfo;
string StuIds = base.ParmJObj.GetStringValue("StuIds"); string StuIds = base.ParmJObj.GetStringValue("StuIds");
if (string.IsNullOrEmpty(StuIds)) if (string.IsNullOrEmpty(StuIds))
...@@ -534,7 +535,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -534,7 +535,7 @@ namespace Edu.WebApi.Controllers.Course
HelpEnterId = base.ParmJObj.GetInt("HelpEnterId"), HelpEnterId = base.ParmJObj.GetInt("HelpEnterId"),
GeneralOccupation = base.ParmJObj.GetStringValue("GeneralOccupation"), GeneralOccupation = base.ParmJObj.GetStringValue("GeneralOccupation"),
EduOccupation = base.ParmJObj.GetStringValue("EduOccupation"), EduOccupation = base.ParmJObj.GetStringValue("EduOccupation"),
OrderNature = (OrderNatureEnum)base.ParmJObj.GetInt("OrderNature"), OrderNature = (OrderNatureEnum)base.ParmJObj.GetInt("OrderNature"),
OldPreferPrice = base.ParmJObj.GetDecimal("OldPreferPrice"), OldPreferPrice = base.ParmJObj.GetDecimal("OldPreferPrice"),
CourseId = base.ParmJObj.GetInt("CourseId"), CourseId = base.ParmJObj.GetInt("CourseId"),
...@@ -581,17 +582,21 @@ namespace Edu.WebApi.Controllers.Course ...@@ -581,17 +582,21 @@ namespace Edu.WebApi.Controllers.Course
{ {
return ApiResult.ParamIsNull("请传递选择客户"); return ApiResult.ParamIsNull("请传递选择客户");
} }
if (demodel.OrderIdentify == 2 && !string.IsNullOrEmpty(demodel.StuIds)) { if (demodel.OrderIdentify == 2 && !string.IsNullOrEmpty(demodel.StuIds))
{
//验证学生是否已有其他订单 //验证学生是否已有其他订单
var vlist = orderModule.ValidataStuOrder(demodel.StuIds, userInfo.Group_Id); var vlist = orderModule.ValidataStuOrder(demodel.StuIds, userInfo.Group_Id);
if (vlist.Any()) { if (vlist.Any())
{
var vmodel = vlist.FirstOrDefault(); var vmodel = vlist.FirstOrDefault();
return ApiResult.Tip("学员" + vmodel.GuestName + "存在有效未付款订单" + vmodel.OrderId + ",请取消该订单后再试", vmodel.OrderId); return ApiResult.Tip("学员" + vmodel.GuestName + "存在有效未付款订单" + vmodel.OrderId + ",请取消该订单后再试", vmodel.OrderId);
} }
} }
if (!string.IsNullOrEmpty(demodel.StuIds)) { if (!string.IsNullOrEmpty(demodel.StuIds))
{
int gNum = JsonHelper.DeserializeObject<List<int>>("[" + demodel.StuIds + "]").Count(); int gNum = JsonHelper.DeserializeObject<List<int>>("[" + demodel.StuIds + "]").Count();
if (demodel.GuestNum != gNum) { if (demodel.GuestNum != gNum)
{
return ApiResult.ParamIsNull("客人数量不正确"); return ApiResult.ParamIsNull("客人数量不正确");
} }
} }
...@@ -600,7 +605,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -600,7 +605,7 @@ namespace Edu.WebApi.Controllers.Course
demodel.School_Id = userInfo.School_Id; demodel.School_Id = userInfo.School_Id;
demodel.Dept_Id = userInfo.DeptId; demodel.Dept_Id = userInfo.DeptId;
demodel.OrderForm = OrderFormEnum.Computer; demodel.OrderForm = OrderFormEnum.Computer;
if (demodel.OrderType== OrderTypeEnum.CourseOrder && demodel.OrderIdentify != 2) if (demodel.OrderType == OrderTypeEnum.CourseOrder && demodel.OrderIdentify != 2)
{ {
demodel.EnterID = userInfo.Id; //由前端传递了, 可能会不存在 (此字段为市场人员) demodel.EnterID = userInfo.Id; //由前端传递了, 可能会不存在 (此字段为市场人员)
} }
...@@ -992,7 +997,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -992,7 +997,7 @@ namespace Edu.WebApi.Controllers.Course
public ApiResult GetGuestEducationEnumList() public ApiResult GetGuestEducationEnumList()
{ {
var list = EnumHelper.EnumToList(typeof(GuestEducationEnum)); var list = EnumHelper.EnumToList(typeof(GuestEducationEnum));
return ApiResult.Success(data:list); return ApiResult.Success(data: list);
} }
/// <summary> /// <summary>
...@@ -1128,7 +1133,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -1128,7 +1133,7 @@ namespace Edu.WebApi.Controllers.Course
{ {
OrderId = base.ParmJObj.GetInt("OrderId"), OrderId = base.ParmJObj.GetInt("OrderId"),
ClassId = base.ParmJObj.GetInt("ClassId"), ClassId = base.ParmJObj.GetInt("ClassId"),
GuestState =(GuestStateEnum)base.ParmJObj.GetInt("GuestState"), GuestState = (GuestStateEnum)base.ParmJObj.GetInt("GuestState"),
GuestName = base.ParmJObj.GetStringValue("GuestName"), GuestName = base.ParmJObj.GetStringValue("GuestName"),
SourceId = base.ParmJObj.GetInt("SourceId"), SourceId = base.ParmJObj.GetInt("SourceId"),
}; };
...@@ -1145,7 +1150,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -1145,7 +1150,7 @@ namespace Edu.WebApi.Controllers.Course
SexStr = x.Sex == 1 ? "男" : "女", SexStr = x.Sex == 1 ? "男" : "女",
x.Age, x.Age,
BirthDate = Common.ConvertHelper.FormatDate(x.BirthDate), BirthDate = Common.ConvertHelper.FormatDate(x.BirthDate),
Mobile=x.StuTel, Mobile = x.StuTel,
x.Basics, x.Basics,
x.Education, x.Education,
EducationName = x.Education.ToName(), EducationName = x.Education.ToName(),
...@@ -1189,7 +1194,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -1189,7 +1194,7 @@ namespace Edu.WebApi.Controllers.Course
x.ValidClassHours, x.ValidClassHours,
x.CompleteHours, x.CompleteHours,
x.MakeUpHours, x.MakeUpHours,
SurplusHours=x.TotalHours-x.CompleteHours, SurplusHours = x.TotalHours - x.CompleteHours,
x.GuestState, x.GuestState,
x.GuestStateStr, x.GuestStateStr,
GraduationTime = Common.ConvertHelper.FormatDate(x.GraduationTime), GraduationTime = Common.ConvertHelper.FormatDate(x.GraduationTime),
...@@ -1302,15 +1307,18 @@ namespace Edu.WebApi.Controllers.Course ...@@ -1302,15 +1307,18 @@ namespace Edu.WebApi.Controllers.Course
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public ApiResult SetMyStudentToGuest() { public ApiResult SetMyStudentToGuest()
{
var userInfo = base.UserInfo; var userInfo = base.UserInfo;
JObject parms = JObject.Parse(base.RequestParm.Msg.ToString()); JObject parms = JObject.Parse(base.RequestParm.Msg.ToString());
int OrderId = parms.GetInt("OrderId", 0);//订单 int OrderId = parms.GetInt("OrderId", 0);//订单
string StuIds = parms.GetStringValue("StuIds");//学生Ids string StuIds = parms.GetStringValue("StuIds");//学生Ids
if (OrderId <= 0) { if (OrderId <= 0)
{
return ApiResult.ParamIsNull("订单不存在"); return ApiResult.ParamIsNull("订单不存在");
} }
if (string.IsNullOrEmpty(StuIds)) { if (string.IsNullOrEmpty(StuIds))
{
return ApiResult.ParamIsNull("请选择学生"); return ApiResult.ParamIsNull("请选择学生");
} }
...@@ -1319,7 +1327,8 @@ namespace Edu.WebApi.Controllers.Course ...@@ -1319,7 +1327,8 @@ namespace Edu.WebApi.Controllers.Course
{ {
return ApiResult.Success(); return ApiResult.Success();
} }
else { else
{
return ApiResult.Failed(msg); return ApiResult.Failed(msg);
} }
} }
...@@ -1352,7 +1361,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -1352,7 +1361,7 @@ namespace Edu.WebApi.Controllers.Course
Q_OrderState = base.ParmJObj.GetInt("Q_OrderState"), Q_OrderState = base.ParmJObj.GetInt("Q_OrderState"),
Q_OrderBy = base.ParmJObj.GetInt("Q_OrderBy"), Q_OrderBy = base.ParmJObj.GetInt("Q_OrderBy"),
PlatformTax = base.ParmJObj.GetDecimal("PlatformTax"), PlatformTax = base.ParmJObj.GetDecimal("PlatformTax"),
CourseSubject=base.ParmJObj.GetInt("CourseSubject"), CourseSubject = base.ParmJObj.GetInt("CourseSubject"),
}; };
demodel.Group_Id = userInfo.Group_Id; demodel.Group_Id = userInfo.Group_Id;
demodel.CreateBy = userInfo.Id; demodel.CreateBy = userInfo.Id;
...@@ -1551,7 +1560,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -1551,7 +1560,7 @@ namespace Edu.WebApi.Controllers.Course
ClassNo = base.ParmJObj.GetStringValue("ClassNo"), ClassNo = base.ParmJObj.GetStringValue("ClassNo"),
CourseSubject = base.ParmJObj.GetInt("CourseSubject"), CourseSubject = base.ParmJObj.GetInt("CourseSubject"),
CustomerId = base.ParmJObj.GetInt("CustomerId", 0), CustomerId = base.ParmJObj.GetInt("CustomerId", 0),
CategoryId=base.ParmJObj.GetInt("CategoryId"), CategoryId = base.ParmJObj.GetInt("CategoryId"),
}; };
demodel.Group_Id = userInfo.Group_Id; demodel.Group_Id = userInfo.Group_Id;
...@@ -2433,7 +2442,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -2433,7 +2442,7 @@ namespace Edu.WebApi.Controllers.Course
#endregion #endregion
#region 获取学员状态列表 #region 获取学员状态列表
/// <summary> /// <summary>
/// 获取学员状态列表 /// 获取学员状态列表
/// </summary> /// </summary>
......
...@@ -68,8 +68,7 @@ namespace Edu.WebApi.Controllers.User ...@@ -68,8 +68,7 @@ namespace Edu.WebApi.Controllers.User
[AllowAnonymous] [AllowAnonymous]
public ApiResult Test() public ApiResult Test()
{ {
//courseModule.RunWordsUrlModule(); new OrderModule().RunStudentadvisorModule();
return ApiResult.Success(); return ApiResult.Success();
} }
......
...@@ -2672,8 +2672,9 @@ namespace Edu.WebApi.Controllers.User ...@@ -2672,8 +2672,9 @@ namespace Edu.WebApi.Controllers.User
ExcelDataSource subHeader = new ExcelDataSource() { ExcelRows = new List<ExcelColumn>() }; ExcelDataSource subHeader = new ExcelDataSource() { ExcelRows = new List<ExcelColumn>() };
header.ExcelRows.Add(new ExcelColumn("员工") { Rowspan = 2, CellWidth = 15 }); header.ExcelRows.Add(new ExcelColumn("员工") { Rowspan = 2, CellWidth = 15 });
subHeader.ExcelRows.Add(new ExcelColumn()); subHeader.ExcelRows.Add(new ExcelColumn());
header.ExcelRows.Add(new ExcelColumn("本月名单") { CellWidth = 25, Rowspan = 2 }); header.ExcelRows.Add(new ExcelColumn("名单") { CellWidth = 25,Colspan=2 });
subHeader.ExcelRows.Add(new ExcelColumn("")); subHeader.ExcelRows.Add(new ExcelColumn("本周"));
subHeader.ExcelRows.Add(new ExcelColumn("本月"));
header.ExcelRows.Add(new ExcelColumn("试听") { CellWidth = 15, Colspan = 2 }); header.ExcelRows.Add(new ExcelColumn("试听") { CellWidth = 15, Colspan = 2 });
subHeader.ExcelRows.Add(new ExcelColumn("本周")); subHeader.ExcelRows.Add(new ExcelColumn("本周"));
...@@ -2713,10 +2714,10 @@ namespace Edu.WebApi.Controllers.User ...@@ -2713,10 +2714,10 @@ namespace Edu.WebApi.Controllers.User
{ {
var excelRows = new List<ExcelColumn>(); var excelRows = new List<ExcelColumn>();
excelRows.Add(new ExcelColumn(UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName)); excelRows.Add(new ExcelColumn(UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName));
string curWeekStu = string.Join(",", item?.CurWeekStuList?.Select(qitem => qitem.StuName)); string curWeekStu = (item?.CurWeekStuList?.Count ?? 0).ToString();
string curMonthStu = string.Join(",", item?.CurMonthStuList?.Select(qitem => qitem.StuName)); string curMonthStu = (item?.CurMonthStuList?.Count ?? 0).ToString();
excelRows.Add(new ExcelColumn(curWeekStu));
excelRows.Add(new ExcelColumn(curMonthStu)); excelRows.Add(new ExcelColumn(curMonthStu));
//excelRows.Add(new ExcelColumn(curWeekStu));
excelRows.Add(new ExcelColumn(item.CurWeekTrialLesson.ToString())); excelRows.Add(new ExcelColumn(item.CurWeekTrialLesson.ToString()));
excelRows.Add(new ExcelColumn(item.CurMonthTrialLesson.ToString())); excelRows.Add(new ExcelColumn(item.CurMonthTrialLesson.ToString()));
......
...@@ -813,7 +813,7 @@ namespace Edu.WebApi.Controllers.User ...@@ -813,7 +813,7 @@ namespace Edu.WebApi.Controllers.User
public FileContentResult DownLoadStudent() public FileContentResult DownLoadStudent()
{ {
List<ExcelDataSource> slist = new List<ExcelDataSource>(); List<ExcelDataSource> slist = new List<ExcelDataSource>();
var query = new RB_Student_ViewModel() var query = new RB_Student_ViewModel()
{ {
StuName = base.ParmJObj.GetStringValue("StuName"), StuName = base.ParmJObj.GetStringValue("StuName"),
...@@ -831,17 +831,39 @@ namespace Edu.WebApi.Controllers.User ...@@ -831,17 +831,39 @@ namespace Edu.WebApi.Controllers.User
StuType = base.ParmJObj.GetInt("StuType"), StuType = base.ParmJObj.GetInt("StuType"),
ExistCourseConsultant = base.ParmJObj.GetInt("ExistCourseConsultant"), ExistCourseConsultant = base.ParmJObj.GetInt("ExistCourseConsultant"),
CategoryId = base.ParmJObj.GetInt("CategoryId"), CategoryId = base.ParmJObj.GetInt("CategoryId"),
QStudentStatus = base.ParmJObj.GetInt("QStudentStatus"),
AdvisorStatus = base.ParmJObj.GetInt("AdvisorStatus"),
StuChannel = base.ParmJObj.GetInt("StuChannel"),
CreateType = (StuCreateTypeEnum)base.ParmJObj.GetInt("CreateType"),
StuSourceId = base.ParmJObj.GetInt("StuSourceId"),
}; };
if (query.IsQueryMyStu == 1) if (query.IsQueryMyStu == 1)
{ {
query.CreateBy = base.UserInfo.Id; query.CreateBy = base.UserInfo.Id;
} }
string CreateIds = base.ParmJObj.GetStringValue("CreateIds"); string CreateIds = base.ParmJObj.GetStringValue("CreateIds");
if (!string.IsNullOrEmpty(CreateIds)) if (!string.IsNullOrEmpty(CreateIds))
{ {
query.CreateIds = Common.Plugin.JsonHelper.DeserializeObject<List<int>>(CreateIds); query.CreateIds = Common.Plugin.JsonHelper.DeserializeObject<List<int>>(CreateIds);
} }
if (query.BelongType == 1)
{
var tempList = okrPeriodModule.GetOKRPersonalDimensionListModule(base.UserInfo.Group_Id, base.UserInfo.Id, base.UserInfo.DeptId);
string QCreateBys = "";
if (tempList != null && tempList.Count > 0)
{
foreach (var jItem in tempList)
{
JObject jObj = JObject.Parse(JsonHelper.Serialize(jItem));
QCreateBys += jObj.GetStringValue("Id") + ",";
}
}
if (!string.IsNullOrEmpty(QCreateBys))
{
query.QCreateBys = QCreateBys.TrimStart(',').TrimEnd(',');
}
}
int PlanId = base.ParmJObj.GetInt("PlanId"); int PlanId = base.ParmJObj.GetInt("PlanId");
if (PlanId > 0) if (PlanId > 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