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
/// </summary>
public string QStudentIds { get; set; }
/// <summary>
/// 订单编号【查询使用】
/// </summary>
public string QOrderIds { get; set; }
/// <summary>
/// 班级名称
/// </summary>
......@@ -133,5 +138,10 @@ namespace Edu.Model.ViewModel.User
/// 预约的次数
/// </summary>
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
{
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
{
subItem.ClassTimeId,
......
......@@ -624,7 +624,11 @@ namespace Edu.Module.Course
{
course_WordsRepository.BatchInsertCourseWordsRepository(wordsList);
}
chapterRepository.SetBatchUpdateChapterNoRepository(parentList);
if (parentList != null && parentList.Count > 0)
{
chapterRepository.SetBatchUpdateChapterNoRepository(parentList);
}
SetBatchAllChapterCurrentHoursModule(query.NewCourseId);
return flag;
}
......
......@@ -90,7 +90,7 @@ namespace Edu.Module.Course
/// 班级上课时间仓储层对象
/// </summary>
private readonly RB_Class_TimeRepository class_TimeRepository = new RB_Class_TimeRepository();
/// <summary>
/// 课程仓储层对象
/// </summary>
......@@ -229,6 +229,11 @@ namespace Edu.Module.Course
private readonly RB_ReturnMoney_BatchRepository returnMoney_BatchRepository = new RB_ReturnMoney_BatchRepository();
/// <summary>
/// 课程顾问跟进仓储层对象
/// </summary>
private readonly RB_Student_AdvisorRepository student_AdvisorRepository = new RB_Student_AdvisorRepository();
#region 日语培训
/// <summary>
......@@ -425,7 +430,7 @@ namespace Edu.Module.Course
/// <param name="uid"></param>
/// <param name="gid"></param>
/// <returns></returns>
public (bool result,string message) SetUserReturnMoneyModule(int type,int uid,int gid)
public (bool result, string message) SetUserReturnMoneyModule(int type, int uid, int gid)
{
//检查本月是否存在操作记录
string month = DateTime.Now.ToString("yyyy-MM");
......@@ -456,7 +461,7 @@ namespace Edu.Module.Course
CommissionType = type
}));
if (userResult.Any())
if (userResult.Any())
{
//更新用户主表信息
userResult.ToList().ForEach(x =>
......@@ -498,7 +503,7 @@ namespace Edu.Module.Course
};
userReturnComissionRepository.Update(userKeyValues, userWheres);
}
else
else
{
userModel = new RB_User_ReturnComission_ViewModel()
{
......@@ -513,7 +518,7 @@ namespace Edu.Module.Course
};
userReturnComissionRepository.Insert(userModel);
}
});
}
......@@ -532,7 +537,7 @@ namespace Edu.Module.Course
return (false, $"执行失败,本期无返佣金额");
}
}
else
else
{
return (false, "当月份已执行返佣操作,请下月再试");
}
......@@ -549,12 +554,13 @@ namespace Edu.Module.Course
/// <param name="month"></param>
/// <param name="groupId"></param>
/// <returns></returns>
public List<RB_ReturnMoney_Batch_ViewModel> GetBatchListModule(int pageIndex, int pageSize, out long count, int type, string month,int groupId)
public List<RB_ReturnMoney_Batch_ViewModel> GetBatchListModule(int pageIndex, int pageSize, out long count, int type, string month, int groupId)
{
var list = returnMoney_BatchRepository.GetPageList(pageIndex, pageSize, out count, type, month, groupId);
if (list.Any())
if (list.Any())
{
list.ForEach(x => {
list.ForEach(x =>
{
x.CreateByName = UserReidsCache.GetUserLoginInfo(x.CreateBy)?.AccountName ?? "";
});
}
......@@ -566,14 +572,15 @@ namespace Edu.Module.Course
var courseModel = courseRepository.GetEntity(courseId);
if (courseModel != null)
{
var sellPrice = courseModel.SellPrice * ((100-(m.CommissionType == 1 ? courseModel.B2CRatio : courseModel.B2CReNewRatio)) / 100);
if ((int)m.OrderSourceType == 1)
var sellPrice = courseModel.SellPrice * ((100 - (m.CommissionType == 1 ? courseModel.B2CRatio : courseModel.B2CReNewRatio)) / 100);
if ((int)m.OrderSourceType == 1)
{
if (courseModel.CommissionReType == 1)
{
m.CommissionMoeny = Math.Round(sellPrice * ((m.CommissionType == 1 ? courseModel.B2CRbRatio : courseModel.B2CRNRatio) / 100), 2, MidpointRounding.AwayFromZero);
}
else {
else
{
m.CommissionMoeny = m.CommissionType == 1 ? courseModel.B2CRbRatio : courseModel.B2CRNRatio;
}
m.CommissionReType = m.CommissionType == 1 ? courseModel.B2CRbRatioType.ToInt() : courseModel.B2CRNRatioType.ToInt();
......@@ -583,26 +590,28 @@ namespace Edu.Module.Course
else if ((int)m.OrderSourceType == 2)
{
var customerModel = customerRepository.GetEntity(m.OrderSourceId);
if (customerModel.CustomerType == Common.Enum.Customer.CatetoryTypeEnum.Company)
if (customerModel.CustomerType == Common.Enum.Customer.CatetoryTypeEnum.Company)
{
if (courseModel.CommissionReType == 1)
{
m.CommissionMoeny = Math.Round(sellPrice * ((m.CommissionType == 1 ? courseModel.B2BRebateRatio : courseModel.B2BReNewRatio) / 100), 2, MidpointRounding.AwayFromZero);
}
else {
else
{
m.CommissionMoeny = m.CommissionType == 1 ? courseModel.B2BRebateRatio : courseModel.B2BReNewRatio;
}
m.CommissionReType = m.CommissionType == 1 ? courseModel.B2BRebateRatioType.ToInt() : courseModel.B2BReNewRatioType.ToInt();
m.CommissionReValue = m.CommissionType == 1 ? courseModel.B2BRebateRatioValue : courseModel.B2BReNewRatioValue;
m.Remark = $"学员来源为:同业,学员为{(m.CommissionType == 1 ? "首次报名" : "续费报名")},本次报名金额为:{sellPrice},本次返佣金额为:{m.CommissionMoeny:0.00}";
}
else
else
{
if (courseModel.CommissionReType == 1)
{
m.CommissionMoeny = Math.Round(sellPrice * ((m.CommissionType == 1 ? courseModel.SchoolRebateRatio : courseModel.SchoolReNewRatio) / 100), 2, MidpointRounding.AwayFromZero);
}
else {
else
{
m.CommissionMoeny = m.CommissionType == 1 ? courseModel.SchoolRebateRatio : courseModel.SchoolReNewRatio;
}
m.CommissionReType = m.CommissionType == 1 ? courseModel.SchoolRebateRatioType.ToInt() : courseModel.SchoolReNewRatioType.ToInt();
......@@ -616,7 +625,8 @@ namespace Edu.Module.Course
{
m.CommissionMoeny = Math.Round(sellPrice * ((m.CommissionType == 1 ? courseModel.InnerRecommendRatio : courseModel.InnerRecommendReNewRatio) / 100), 2, MidpointRounding.AwayFromZero);
}
else {
else
{
m.CommissionMoeny = m.CommissionType == 1 ? courseModel.InnerRecommendRatio : courseModel.InnerRecommendReNewRatio;
}
m.CommissionReType = m.CommissionType == 1 ? courseModel.InnerRecommendRatioType.ToInt() : courseModel.InnerRecommendReNewRatioType.ToInt();
......@@ -629,7 +639,8 @@ namespace Edu.Module.Course
{
m.CommissionMoeny = Math.Round(sellPrice * ((m.CommissionType == 1 ? (courseModel.TransIntroductceRatio) : courseModel.TransIntroductceReNewRatio) / 100), 2, MidpointRounding.AwayFromZero);
}
else {
else
{
m.CommissionMoeny = m.CommissionType == 1 ? (courseModel.TransIntroductceRatio) : courseModel.TransIntroductceReNewRatio;
}
m.CommissionReType = m.CommissionType == 1 ? courseModel.TransIntroductceRatioType.ToInt() : courseModel.TransIntroductceReNewRatioType.ToInt();
......@@ -637,7 +648,7 @@ namespace Edu.Module.Course
m.Remark = $"学员来源为:学员转介绍,学员为{(m.CommissionType == 1 ? "首次报名" : "续费报名")},本次报名金额为:{sellPrice},本次返佣金额为:{m.CommissionMoeny:0.00}";
}
}
else
else
{
//未匹配到课程,以防万一
m.CommissionMoeny = 0;
......@@ -714,7 +725,8 @@ namespace Edu.Module.Course
demodel.InnerRecommendReNewRatio = courseModel.InnerRecommendReNewRatio;
demodel.CommissionReType = courseModel.CommissionReType;
}
else {
else
{
//使用订单的比例
courseModel.B2CRatio = orderModel.B2CRatio;
courseModel.B2CReNewRatio = orderModel.B2CReNewRatio;
......@@ -729,6 +741,7 @@ namespace Edu.Module.Course
courseModel.CommissionReType = orderModel.CommissionReType;
}
#endregion
#region 计算订单优惠信息
List<RB_Student_ViewModel> StuList = new List<RB_Student_ViewModel>();
//计算续费订单优惠
......@@ -788,7 +801,8 @@ namespace Edu.Module.Course
return false;
}
}
else if (demodel.OrderIdentify == 2 && demodel.OrderId > 0) {
else if (demodel.OrderIdentify == 2 && demodel.OrderId > 0)
{
//直接验证优惠金额
decimal DiscountMoney = coursePrice * (courseModel.B2CRatio / 100);
//HK 2022-02-08修改
......@@ -819,6 +833,7 @@ namespace Edu.Module.Course
#endregion
}
#endregion
if (demodel.OrderSource == OrderSourceEnum.EduClient || demodel.OrderSource == OrderSourceEnum.Client)
{
if (demodel.OrderSource == OrderSourceEnum.EduClient)
......@@ -933,7 +948,8 @@ namespace Edu.Module.Course
#region 验证学生名单数量
var glist = order_GuestRepository.GetOrderGuestListRepository(new RB_Order_Guest_ViewModel() { Group_Id = demodel.Group_Id, OrderId = demodel.OrderId, GuestState = GuestStateEnum.Normal });
if (glist.Any() && orderModel.CustomerId != demodel.CustomerId) {
if (glist.Any() && orderModel.CustomerId != demodel.CustomerId)
{
message = "订单已创建学生名单,无法修改其同行";
return false;
}
......@@ -969,6 +985,7 @@ namespace Edu.Module.Course
{ nameof(RB_Order_ViewModel.CourseConsultantId),demodel.CourseConsultantId},
};
flag = orderRepository.Update(keyValues, new WhereHelper(nameof(RB_Order_ViewModel.OrderId), demodel.OrderId));
#region 记录日志信息
LogContent = $"修改日语培训订单【{demodel.OrderId}】";
if (orderModel.GuestNum != demodel.GuestNum)
......@@ -1087,6 +1104,40 @@ namespace Edu.Module.Course
SaleRemark = demodel.SaleRemark;
}
#region 添加学员初次成交/多次成交时间
if (StuList != null && StuList.Count > 0)
{
string stuIds = string.Join(",", StuList.Select(qitem => qitem.StuId));
List<RB_Student_Advisor_Extend> advisorList = new List<RB_Student_Advisor_Extend>();
if (!string.IsNullOrEmpty(stuIds))
{
advisorList = student_AdvisorRepository.GetStudentAdvisorListRepository(new RB_Student_Advisor_Extend()
{
QStuIds = stuIds
});
}
foreach (var sItem in StuList)
{
var tempAdv = advisorList.Where(qitem => qitem.AdvisorStatus == 5)?.FirstOrDefault();
if (tempAdv == null)
{
student_AdvisorRepository.Insert(new Model.Entity.Customer.RB_Student_Advisor()
{
Id=0,
StuId=sItem.StuId,
AdvisorStatus=5,
AdvisorDate=Common.ConvertHelper.FormatDate(DateTime.Now),
AdvisorRemark="新增订单,系统自动添加!",
CreateBy=demodel.CreateBy,
CreateTime=DateTime.Now,
Group_Id=demodel.Group_Id,
});
}
}
}
#endregion
#region 预约单转订单
//预约单转订单
if (flag && demodel.VisitorReserveId > 0)
......@@ -1114,7 +1165,7 @@ namespace Edu.Module.Course
Basics = visitorModel?.LevelType,
Education = GuestEducationEnum.N2,
GuestSource = demodel.OrderSource,
LearningGoals =0,
LearningGoals = 0,
Contact = "",
ContactMobile = "",
Status = 0,
......@@ -1207,11 +1258,13 @@ namespace Edu.Module.Course
#region 续费 学员介绍
RB_Student_ViewModel stuModel = null;
var sogModel = student_OrderGuestRepository.GetStrOrderGuestListRepository(new RB_Student_OrderGuest_ViewModel() { GuestId = demodel.OldGuestId }).FirstOrDefault();
if (sogModel != null) {
if (sogModel != null)
{
stuModel = studentRepository.GetEntity<RB_Student_ViewModel>(sogModel.Student_Id);
}
if (stuModel != null && (demodel.RenewOrderId > 0 || (stuModel.CreateType == StuCreateTypeEnum.TransIntroduction && stuModel.StuSourceId > 0))) {
if (stuModel != null && (demodel.RenewOrderId > 0 || (stuModel.CreateType == StuCreateTypeEnum.TransIntroduction && stuModel.StuSourceId > 0)))
{
int month = 1;
if (stuModel.FirstEnrollDate.HasValue)
{
......@@ -1255,9 +1308,11 @@ namespace Edu.Module.Course
#endregion
#region 插入学生名单(客户选择转订单)
if (flag && demodel.OrderIdentify == 2) {
if (flag && demodel.OrderIdentify == 2)
{
int MaxChapterNo = courseRepository.GetMaxChapterNum(demodel.CourseId, demodel.Group_Id);
foreach (var item in StuList) {
foreach (var item in StuList)
{
var guestModel = new RB_Order_Guest_ViewModel()
{
Id = 0,
......@@ -1297,8 +1352,8 @@ namespace Edu.Module.Course
StuIcon = item.StuIcon,
TotalHours = Convert.ToInt32(courseModel.ClassHours),
RenewState = item.IsRenewGuest == 1 ? 2 : 1,
QQ=item.QQ,
WeChatNo=item.WeChatNo,
QQ = item.QQ,
WeChatNo = item.WeChatNo,
TotalChapterNo = MaxChapterNo
};
SetOrderGuestInfo(guestModel, out string Nmessage);
......@@ -1360,7 +1415,8 @@ namespace Edu.Module.Course
#endregion
#region 更新首次报名时间
if (item.IsRenewGuest != 1) {
if (item.IsRenewGuest != 1)
{
//非续费 更新首次报名
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Student_ViewModel.FirstEnrollDate), DateTime.Now}
......@@ -1430,7 +1486,8 @@ namespace Edu.Module.Course
#endregion
#region 更新客人协助人员
if (demodel.OrderIdentify == 2 && (demodel.HelpEnterId > 0 || demodel.CourseConsultantId > 0)) {
if (demodel.OrderIdentify == 2 && (demodel.HelpEnterId > 0 || demodel.CourseConsultantId > 0))
{
//客户转订单这种适配
int StuId = StuList.FirstOrDefault().StuId;
//更新协助人员
......@@ -1438,9 +1495,11 @@ namespace Edu.Module.Course
{
StuId = StuId
});
if (demodel.HelpEnterId > 0) {
if (demodel.HelpEnterId > 0)
{
var assModel = list.Where(x => x.AssistType == Common.Enum.User.AssistTypeEnum.Teacher).FirstOrDefault();
if (assModel == null) {
if (assModel == null)
{
student_AssistRepository.Insert(new Model.Entity.Customer.RB_Student_Assist()
{
Id = 0,
......@@ -1454,7 +1513,8 @@ namespace Edu.Module.Course
}
}
//更新课程顾问
if (demodel.CourseConsultantId > 0) {
if (demodel.CourseConsultantId > 0)
{
var assModel = list.Where(x => x.AssistType == Common.Enum.User.AssistTypeEnum.CourseAdviser).FirstOrDefault();
if (assModel == null)
{
......@@ -1544,9 +1604,12 @@ namespace Edu.Module.Course
School_Id = userInfo.School_Id,
SourceId = demodel.OrderId
});
}
}
}
#endregion
return flag;
}
......@@ -1722,7 +1785,7 @@ namespace Edu.Module.Course
else
{
LogContent = "新增留学就业订单";
SaleRemark= demodel.SaleRemark;
SaleRemark = demodel.SaleRemark;
if (studyModel.SaleState != Common.Enum.Sale.SaleStateEnum.Sell)
{
flag = false;
......@@ -1732,7 +1795,7 @@ namespace Edu.Module.Course
int OrderId = orderRepository.Insert(demodel);
demodel.OrderId = OrderId;
flag = OrderId > 0;
}
//添加学员
if (!string.IsNullOrEmpty(demodel.StuIds))
......@@ -1782,7 +1845,7 @@ namespace Edu.Module.Course
RenewState = 1,
QQ = item.QQ,
WeChatNo = item.WeChatNo,
StudentId=item.StuId
StudentId = item.StuId
};
SetOrderGuestInfo(guestModel, out string Nmessage);
}
......@@ -1889,11 +1952,11 @@ namespace Edu.Module.Course
{
return false;
}
Dictionary<string, object> keyValues = new Dictionary<string, object>()
Dictionary<string, object> keyValues = new Dictionary<string, object>()
{
{ nameof(RB_Order_ViewModel.EnterID),careOfPeople}
};
List<WhereHelper> wheres = new List<WhereHelper>()
List<WhereHelper> wheres = new List<WhereHelper>()
{
new WhereHelper()
{
......@@ -2104,7 +2167,7 @@ namespace Edu.Module.Course
{
return "不能转交给同一人";
}
Dictionary<string, object> keyValues = new Dictionary<string, object>()
Dictionary<string, object> keyValues = new Dictionary<string, object>()
{
{ nameof(RB_Order_ViewModel.EnterID),enterID}
};
......@@ -2283,11 +2346,11 @@ namespace Edu.Module.Course
return false;
}
if (orderModel.CommissionMoney == commissionMoney) { return true; }
Dictionary<string, object> keyValues = new Dictionary<string, object>()
Dictionary<string, object> keyValues = new Dictionary<string, object>()
{
{ nameof(RB_Order_ViewModel.CommissionMoney),commissionMoney}
};
List<WhereHelper> wheres = new List<WhereHelper>()
List<WhereHelper> wheres = new List<WhereHelper>()
{
new WhereHelper()
{
......@@ -2317,7 +2380,7 @@ namespace Edu.Module.Course
{
if (orderModel.ExtraRewardMoney != extraRewardMoney || orderModel.ExtraDeductMoney != extraDeductMoney)
{
Dictionary<string, object> keyValues = new Dictionary<string, object>()
Dictionary<string, object> keyValues = new Dictionary<string, object>()
{
{ nameof(RB_Order_ViewModel.ExtraRewardMoney),extraRewardMoney},
{ nameof(RB_Order_ViewModel.ExtraDeductMoney),extraDeductMoney}
......@@ -2452,7 +2515,7 @@ namespace Edu.Module.Course
{
var orderModel = orderRepository.GetEntity(orderId);
if (orderModel == null) { return false; }
Dictionary<string, object> keyValues = new Dictionary<string, object>()
Dictionary<string, object> keyValues = new Dictionary<string, object>()
{
{ nameof(RB_Order_ViewModel.PreferPrice),preferPrice}
};
......@@ -2460,7 +2523,7 @@ namespace Edu.Module.Course
{
keyValues.Add(nameof(RB_Order_ViewModel.IsCommissionGiveOK), 0);
}
List<WhereHelper> wheres = new List<WhereHelper>()
List<WhereHelper> wheres = new List<WhereHelper>()
{
new WhereHelper()
{
......@@ -2519,9 +2582,9 @@ namespace Edu.Module.Course
string guestIds = string.Join(",", list.Select(qitem => qitem.Id));
string goalIds = string.Join(",", list.Select(qitem => qitem.LearningGoals));
var goalList= learningGoalsRepository.GetLearningGoalsListRepository(new Model.ViewModel.System.RB_LearningGoals_Extend()
var goalList = learningGoalsRepository.GetLearningGoalsListRepository(new Model.ViewModel.System.RB_LearningGoals_Extend()
{
QGoalIds=goalIds
QGoalIds = goalIds
});
//查询学员[停课,退课,转班,分拆,临课]业务单据
var guestEduReceiptList = education_ReceiptRepository.GetEducationReceiptListExtRepository(new EducationReceiptQuery()
......@@ -2573,7 +2636,7 @@ namespace Edu.Module.Course
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public bool SetOrderGuestInfo(RB_Order_Guest_ViewModel dmodel, out string message)
public bool SetOrderGuestInfo(RB_Order_Guest_ViewModel dmodel, out string message)
{
bool flag = false;
if (dmodel.BirthDate != null)
......@@ -2641,7 +2704,7 @@ namespace Edu.Module.Course
if (gModel.LearningGoals != dmodel.LearningGoals)
{
string oldName = learningGoalsRepository.GetLearningGoalsExtEntityRepository(gModel.LearningGoals)?.Name ?? "";
string newName= learningGoalsRepository.GetLearningGoalsExtEntityRepository(dmodel.LearningGoals)?.Name ?? "";
string newName = learningGoalsRepository.GetLearningGoalsExtEntityRepository(dmodel.LearningGoals)?.Name ?? "";
LogContent += ",学习目的由【" + oldName + "】修改为【" + newName + "】";
}
gModel.LearningGoals = dmodel.LearningGoals;
......@@ -2739,9 +2802,11 @@ namespace Edu.Module.Course
else
{
#region 验证电话是否已是他人客户
if (!string.IsNullOrEmpty(dmodel.Mobile)) {
if (!string.IsNullOrEmpty(dmodel.Mobile))
{
var slist = studentRepository.GetStudentListRepository(new RB_Student_ViewModel() { Group_Id = dmodel.Group_Id, StuTel = dmodel.Mobile, School_Id = -1 });
if (slist.Where(x => x.CustomerId != ordermodel.CustomerId).Any()) {
if (slist.Where(x => x.CustomerId != ordermodel.CustomerId).Any())
{
message = "学员'" + dmodel.GuestName + "'已被他人注册";
return false;
}
......@@ -2761,7 +2826,7 @@ namespace Edu.Module.Course
}
#region 新增修改学员账号
if (flag )
if (flag)
{
RB_Student_ViewModel stuModel = null;
if ((dmodel?.StudentId ?? 0) > 0)
......@@ -2769,7 +2834,7 @@ namespace Edu.Module.Course
//学员表
stuModel = studentRepository.GetStuByTelRepository(new RB_Student_ViewModel()
{
StuId= dmodel?.StudentId??0
StuId = dmodel?.StudentId ?? 0
});
}
else
......@@ -2802,7 +2867,7 @@ namespace Edu.Module.Course
});
}
}
//不存在存在学员基本信息
if (stuModel == null)
{
......@@ -2817,7 +2882,7 @@ namespace Edu.Module.Course
Group_Id = dmodel.Group_Id,
IsDisable = 1,
ProviceId = 0,
School_Id = (classmodel?.School_Id??0),
School_Id = (classmodel?.School_Id ?? 0),
Status = DateStateEnum.Normal,
StuBirth = dmodel.BirthDate,
StuIcon = dmodel.StuIcon,
......@@ -3083,7 +3148,7 @@ namespace Edu.Module.Course
}
#region 新增修改学员账号
if (flag&& isAdd)
if (flag && isAdd)
{
RB_Student_ViewModel stuModel = null;
if (!string.IsNullOrEmpty(dmodel.Mobile))
......@@ -3204,36 +3269,23 @@ namespace Edu.Module.Course
/// <returns></returns>
public bool DelOrderGuestInfo(int guestId, UserInfo userInfo)
{
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
Dictionary<string, object> keyValues = new Dictionary<string, object>()
{
{ nameof(RB_Order_Guest_ViewModel.Status),1}
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
List<WhereHelper> wheres = new List<WhereHelper>()
{
new WhereHelper()
{
FiledName=nameof(RB_Order_Guest_ViewModel.Id),
FiledValue=guestId,
OperatorEnum=OperatorEnum.Equal
FiledValue=guestId,
OperatorEnum=OperatorEnum.Equal
}
};
bool flag = order_GuestRepository.Update(keyValues, wheres);
if (flag)
{
var gmodel = order_GuestRepository.GetEntity(guestId);
//查询学生账号
//var sModel = student_OrderGuestRepository.GetStrOrderGuestListRepository(new RB_Student_OrderGuest_ViewModel() { OrderId = gmodel?.OrderId ?? 0, GuestId = guestId }).FirstOrDefault();
//if (sModel != null) {
// //更新账号表
// Dictionary<string, object> valuePairs = new Dictionary<string, object>() {
// { nameof(RB_Account_ViewModel.Status),DateStateEnum.Delete}
// };
// List<WhereHelper> wheres1 = new List<WhereHelper>() {
// new WhereHelper(){
// FiledName=nameof(RB_Account_ViewModel.Id),
// FiledValue=sModel.Account_Id,
// OperatorEnum=OperatorEnum.Equal
// }
// };
// accountRepository.Update(valuePairs, wheres1);
//}
changeLogRepository.Insert(new Model.Entity.Log.RB_User_ChangeLog()
{
Id = 0,
......@@ -3292,8 +3344,8 @@ namespace Edu.Module.Course
{
string orderIds = string.Join(",", orderList.Select(x => x.OrderId));
//学员信息
List<RB_Student_ViewModel> stuList = studentRepository.GetStudentListRepository(new RB_Student_ViewModel() { QOrderIds = orderIds },isQueryCreateType:true);
List<RB_Student_ViewModel> stuList = studentRepository.GetStudentListRepository(new RB_Student_ViewModel() { QOrderIds = orderIds }, isQueryCreateType: true);
List<int> idList = new List<int>();
List<RB_Order_ViewModel> sourceTargetList = new List<RB_Order_ViewModel>();
var sourceOrderIdList = Common.ConvertHelper.StringToList(string.Join(",", orderList.Select(x => x.SourceOrderId)));
......@@ -3489,14 +3541,17 @@ namespace Edu.Module.Course
if (teacherModel.AccountType != Common.Enum.User.AccountTypeEnum.Teacher) { return "所选账号不是教师端,无法关联"; }
NewName = teacherModel?.EmployeeName ?? "";
}
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
Dictionary<string, object> keyValues = new Dictionary<string, object>()
{
{ nameof(RB_Order.HelpEnterId),helpEnterId}
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
List<WhereHelper> wheres = new List<WhereHelper>()
{
new WhereHelper()
{
FiledName=nameof(RB_Order.OrderId),
FiledValue=orderId,
OperatorEnum=OperatorEnum.Equal
FiledValue=orderId,
OperatorEnum=OperatorEnum.Equal
}
};
bool flag = orderRepository.Update(keyValues, wheres);
......@@ -3914,13 +3969,15 @@ namespace Edu.Module.Course
//如果有效课时与总课时相等代表款已收完,更新佣金为可发放状态
if (gmodel.TotalHours <= validClassHours)
{
var studentMapping = student_OrderGuestRepository.GetStrOrderGuestListRepository(new RB_Student_OrderGuest_ViewModel() {
var studentMapping = student_OrderGuestRepository.GetStrOrderGuestListRepository(new RB_Student_OrderGuest_ViewModel()
{
GuestId = guestId
});
if (studentMapping.Any()) {
if (studentMapping.Any())
{
UpdateReturnMoneyStatus(studentMapping.First().Student_Id, gmodel.OrderId);
}
}
}
return true;
......@@ -3931,7 +3988,7 @@ namespace Edu.Module.Course
/// </summary>
/// <param name="stuId"></param>
/// <param name="orderId"></param>
private void UpdateReturnMoneyStatus(int stuId,int orderId)
private void UpdateReturnMoneyStatus(int stuId, int orderId)
{
var model = returnComissionRepository.GetModelByOrderIdStuId(orderId, stuId);
if (model != null && model.Status == -1)
......@@ -3967,7 +4024,8 @@ namespace Edu.Module.Course
};
userReturnComissionRepository.Update(userKeyValues, userWheres);
}
else {
else
{
userModel = new RB_User_ReturnComission_ViewModel()
{
UserId = model.OrderSourceId,
......@@ -4003,7 +4061,7 @@ namespace Edu.Module.Course
};
returnComissionRepository.Update(keyValues, wheres);
}
}
/// <summary>
......@@ -4547,5 +4605,60 @@ namespace Edu.Module.Course
#endregion
/// <summary>
/// 初始化课程顾问跟踪状态
/// </summary>
public void RunStudentadvisorModule()
{
var orderList = orderRepository.GetOrderListRepository(new RB_Order_ViewModel()
{
StartTime = "2022-02-15",
OrderState = OrderStateEnum.Normal
});
if (orderList != null && orderList.Count > 0)
{
string qOrderIds = string.Join(",", orderList.Select(qitem => qitem.OrderId));
if (!string.IsNullOrEmpty(qOrderIds))
{
var stuOrderList = student_OrderGuestRepository.GetStrOrderGuestListRepository(new RB_Student_OrderGuest_ViewModel() { QOrderIds = qOrderIds });
var advList = new List<RB_Student_Advisor_Extend>();
if (stuOrderList != null && stuOrderList.Count > 0)
{
string stuIds = string.Join(",", stuOrderList.Select(qitem => qitem.Student_Id));
if (!string.IsNullOrEmpty(stuIds))
{
advList = student_AdvisorRepository.GetStudentAdvisorListRepository(new RB_Student_Advisor_Extend() { QStuIds = stuIds });
}
}
foreach (var item in orderList)
{
var tempStuList = stuOrderList?.Where(qitem => qitem.OrderId == item.OrderId)?.ToList();
if (tempStuList != null && tempStuList.Count > 0)
{
foreach (var subItem in tempStuList)
{
var tempAdv = advList?.Where(qitem => qitem.StuId == subItem.Student_Id && qitem.AdvisorStatus == 5)?.FirstOrDefault();
if (tempAdv == null && subItem.Student_Id!=65)
{
student_AdvisorRepository.Insert(new Model.Entity.Customer.RB_Student_Advisor()
{
Id = 0,
StuId = subItem.Student_Id,
AdvisorDate = Common.ConvertHelper.FormatDate(item.CreateTime),
AdvisorRemark = "新增订单,系统自动添加!",
AdvisorStatus = 5,
CreateBy = item.CreateBy,
CreateTime = item.CreateTime,
Group_Id = item.Group_Id
});
}
}
}
}
}
}
}
}
}
\ No newline at end of file
......@@ -104,11 +104,9 @@ namespace Edu.Module.Customer
{
var newTime = StartTime.AddDays(-1);
string start = Common.ConvertHelper.FormatDate(newTime);
var empList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel()
{
//市场部编号4,课程顾问部编号13
QDeptIds = "4",
Group_Id = 100000,
IsLeave = 1,
UserRole = UserRoleEnum.MarketPersion,
......@@ -553,6 +551,17 @@ namespace Edu.Module.Customer
DateTime start = Convert.ToDateTime(StartTime);
DateTime end = Convert.ToDateTime(EndTime);
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()
{
StartTime = StartTime,
......@@ -622,15 +631,13 @@ namespace Edu.Module.Customer
}
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 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()
{
......@@ -727,38 +734,38 @@ namespace Edu.Module.Customer
ClueCount = yesDataList?.Sum(qitem => qitem.ClueCount) ?? 0,
YestodayClue = yesDataList?.Sum(qitem => qitem.YestodayClue) ?? 0,
CurWeekClue = curWeekList?.Sum(qitem => qitem.CurWeekClue) ?? 0,
LastWeekClue = lastWeekList?.Sum(qitem => qitem.LastWeekClue) ?? 0,
CurMonthClue = tempDataList?.Sum(qitem => qitem.CurMonthClue) ?? 0,
LastMonthClue = tempDataList?.Sum(qitem => qitem.LastMonthClue) ?? 0,
CurWeekClue = curWeekList?.Sum(qitem => qitem.ClueCount) ?? 0,
LastWeekClue = lastWeekList?.Sum(qitem => qitem.YestodayClue) ?? 0,
CurMonthClue = yesDataList?.Sum(qitem => qitem.CurMonthClue) ?? 0,
LastMonthClue = yesDataList?.Sum(qitem => qitem.LastMonthClue) ?? 0,
FollowCount = yesDataList?.Sum(qitem => qitem.FollowCount) ?? 0,
YestodayFollow = yesDataList?.Sum(qitem => qitem.YestodayFollow) ?? 0,
CurWeekFollow = curWeekList?.Sum(qitem => qitem.CurWeekFollow) ?? 0,
LastWeekFollow = lastWeekList?.Sum(qitem => qitem.LastWeekFollow) ?? 0,
CurMonthFollow = tempDataList?.Sum(qitem => qitem.CurMonthFollow) ?? 0,
LastMonthFollow = tempDataList?.Sum(qitem => qitem.LastMonthFollow) ?? 0,
CurWeekFollow = curWeekList?.Sum(qitem => qitem.FollowCount) ?? 0,
LastWeekFollow = lastWeekList?.Sum(qitem => qitem.YestodayFollow) ?? 0,
CurMonthFollow = yesDataList?.Sum(qitem => qitem.CurMonthFollow) ?? 0,
LastMonthFollow = yesDataList?.Sum(qitem => qitem.LastMonthFollow) ?? 0,
VisitCount = yesDataList?.Sum(qitem => qitem.VisitCount) ?? 0,
YestodayVisit = yesDataList?.Sum(qitem => qitem.YestodayVisit) ?? 0,
CurWeekVisit = curWeekList?.Sum(qitem => qitem.CurWeekVisit) ?? 0,
LastWeekVisit = lastWeekList?.Sum(qitem => qitem.LastWeekVisit) ?? 0,
CurMonthVisit = tempDataList?.Sum(qitem => qitem.CurMonthVisit) ?? 0,
LastMonthVisit = tempDataList?.Sum(qitem => qitem.LastMonthVisit) ?? 0,
CurWeekVisit = curWeekList?.Sum(qitem => qitem.VisitCount) ?? 0,
LastWeekVisit = lastWeekList?.Sum(qitem => qitem.YestodayVisit) ?? 0,
CurMonthVisit = yesDataList?.Sum(qitem => qitem.CurMonthVisit) ?? 0,
LastMonthVisit = yesDataList?.Sum(qitem => qitem.LastMonthVisit) ?? 0,
TrialLessonCount = yesDataList?.Sum(qitem => qitem.TrialLessonCount) ?? 0,
YestodayTrialLesson = yesDataList?.Sum(qitem => qitem.YestodayTrialLesson) ?? 0,
CurWeekTrialLesson = curWeekList?.Sum(qitem => qitem.CurWeekTrialLesson) ?? 0,
LastWeekTrialLesson = lastWeekList?.Sum(qitem => qitem.LastWeekTrialLesson) ?? 0,
CurMonthTrialLesson = tempDataList?.Sum(qitem => qitem.CurMonthTrialLesson) ?? 0,
LastMonthTrialLesson = tempDataList?.Sum(qitem => qitem.LastMonthTrialLesson) ?? 0,
CurWeekTrialLesson = curWeekList?.Sum(qitem => qitem.TrialLessonCount) ?? 0,
LastWeekTrialLesson = lastWeekList?.Sum(qitem => qitem.YestodayTrialLesson) ?? 0,
CurMonthTrialLesson = yesDataList?.Sum(qitem => qitem.CurMonthTrialLesson) ?? 0,
LastMonthTrialLesson = yesDataList?.Sum(qitem => qitem.LastMonthTrialLesson) ?? 0,
SaleMoney = yesDataList?.Sum(qitem => qitem.SaleMoney) ?? 0,
YestodaySale = yesDataList?.Sum(qitem => qitem.YestodaySale) ?? 0,
CurWeekSale = curWeekList?.Sum(qitem => qitem.CurWeekSale) ?? 0,
LastWeekSale = lastWeekList?.Sum(qitem => qitem.LastWeekSale) ?? 0,
CurMonrhSale = tempDataList?.Sum(qitem => qitem.CurMonrhSale) ?? 0,
LastMonthSale = tempDataList?.Sum(qitem => qitem.LastMonthSale) ?? 0,
CurWeekSale = curWeekList?.Sum(qitem => qitem.SaleMoney) ?? 0,
LastWeekSale = lastWeekList?.Sum(qitem => qitem.YestodaySale) ?? 0,
CurMonrhSale = yesDataList?.Sum(qitem => qitem.CurMonrhSale) ?? 0,
LastMonthSale = yesDataList?.Sum(qitem => qitem.LastMonthSale) ?? 0,
},
BarData = new
{
......@@ -786,7 +793,7 @@ namespace Edu.Module.Customer
{
object obj = new object();
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))
{
var empList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel()
......@@ -969,8 +976,8 @@ namespace Edu.Module.Customer
CurMonthOrderNum,
LastMonthOrderNum,
CurWeekStu = curWeekStuList?.Select(qitem => new { qitem.StuId, qitem.StuName }),
CurMonthStu = curWeekStuList?.Select(qitem => new { qitem.StuId, qitem.StuName }),
CurWeekStu = curWeekStuList?.Count??0,
CurMonthStu = curMonthStuList?.Count??0,
};
return obj;
}
......@@ -986,7 +993,7 @@ namespace Edu.Module.Customer
{
List<RB_Consultant_Data_Extend> list = new List<RB_Consultant_Data_Extend>();
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))
{
var empList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel()
......
......@@ -67,6 +67,11 @@ namespace Edu.Module.User
/// </summary>
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 学员跟进
......@@ -372,5 +377,20 @@ namespace Edu.Module.User
}
#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
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}
WHERE A.Status=0 AND C.Status=0 AND C.StuStage<>7 AND C.AdvisorStatus<>7 {0}
";
if (query.CreateBy > 0)
{
......
......@@ -99,6 +99,14 @@ namespace Edu.Repository.Sell
{
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))
{
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
{
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)
{
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
StringBuilder builder = new StringBuilder();
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
,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
INNER JOIN rb_order_guest AS D ON A.GuestId=D.Id
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
}
}
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
GROUP BY A.Student_Id,A.OrderId
",builder.ToString());
", builder.ToString());
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
int priceDiscountType = param.GetInt("PriceDiscountType");
if (priceDiscountType <= 0)
{
return ApiResult.ParamIsNull(message: "请选择【优惠类型】");
//return ApiResult.ParamIsNull(message: "请选择【优惠类型】");
}
RB_Course_Preferential_Extend model = new RB_Course_Preferential_Extend()
{
......
......@@ -89,7 +89,7 @@ namespace Edu.WebApi.Controllers.Course
x.ClassStyle,
ClassStyleName = x.ClassStyle.ToName(),
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,
OriginalPrice = x.CourseOriginalPrice,
SellPrice = x.CourseSellPrice,
......@@ -466,11 +466,11 @@ namespace Edu.WebApi.Controllers.Course
{
ClassId = parms.GetInt("ClassId", 0),
OrderId = parms.GetInt("OrderId"),
SourceId=parms.GetInt("SourceId"),
SourceId = parms.GetInt("SourceId"),
Group_Id = base.UserInfo.Group_Id,
OrderState = OrderStateEnum.Normal
};
if (query.ClassId <= 0&&query.SourceId<=0)
if (query.ClassId <= 0 && query.SourceId <= 0)
{
return ApiResult.ParamIsNull();
}
......@@ -493,7 +493,8 @@ namespace Edu.WebApi.Controllers.Course
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetOrderGuestRenewState() {
public ApiResult GetOrderGuestRenewState()
{
var userInfo = base.UserInfo;
string StuIds = base.ParmJObj.GetStringValue("StuIds");
if (string.IsNullOrEmpty(StuIds))
......@@ -534,7 +535,7 @@ namespace Edu.WebApi.Controllers.Course
HelpEnterId = base.ParmJObj.GetInt("HelpEnterId"),
GeneralOccupation = base.ParmJObj.GetStringValue("GeneralOccupation"),
EduOccupation = base.ParmJObj.GetStringValue("EduOccupation"),
OrderNature = (OrderNatureEnum)base.ParmJObj.GetInt("OrderNature"),
OldPreferPrice = base.ParmJObj.GetDecimal("OldPreferPrice"),
CourseId = base.ParmJObj.GetInt("CourseId"),
......@@ -581,17 +582,21 @@ namespace Edu.WebApi.Controllers.Course
{
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);
if (vlist.Any()) {
if (vlist.Any())
{
var vmodel = vlist.FirstOrDefault();
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();
if (demodel.GuestNum != gNum) {
if (demodel.GuestNum != gNum)
{
return ApiResult.ParamIsNull("客人数量不正确");
}
}
......@@ -600,7 +605,7 @@ namespace Edu.WebApi.Controllers.Course
demodel.School_Id = userInfo.School_Id;
demodel.Dept_Id = userInfo.DeptId;
demodel.OrderForm = OrderFormEnum.Computer;
if (demodel.OrderType== OrderTypeEnum.CourseOrder && demodel.OrderIdentify != 2)
if (demodel.OrderType == OrderTypeEnum.CourseOrder && demodel.OrderIdentify != 2)
{
demodel.EnterID = userInfo.Id; //由前端传递了, 可能会不存在 (此字段为市场人员)
}
......@@ -992,7 +997,7 @@ namespace Edu.WebApi.Controllers.Course
public ApiResult GetGuestEducationEnumList()
{
var list = EnumHelper.EnumToList(typeof(GuestEducationEnum));
return ApiResult.Success(data:list);
return ApiResult.Success(data: list);
}
/// <summary>
......@@ -1128,7 +1133,7 @@ namespace Edu.WebApi.Controllers.Course
{
OrderId = base.ParmJObj.GetInt("OrderId"),
ClassId = base.ParmJObj.GetInt("ClassId"),
GuestState =(GuestStateEnum)base.ParmJObj.GetInt("GuestState"),
GuestState = (GuestStateEnum)base.ParmJObj.GetInt("GuestState"),
GuestName = base.ParmJObj.GetStringValue("GuestName"),
SourceId = base.ParmJObj.GetInt("SourceId"),
};
......@@ -1145,7 +1150,7 @@ namespace Edu.WebApi.Controllers.Course
SexStr = x.Sex == 1 ? "男" : "女",
x.Age,
BirthDate = Common.ConvertHelper.FormatDate(x.BirthDate),
Mobile=x.StuTel,
Mobile = x.StuTel,
x.Basics,
x.Education,
EducationName = x.Education.ToName(),
......@@ -1189,7 +1194,7 @@ namespace Edu.WebApi.Controllers.Course
x.ValidClassHours,
x.CompleteHours,
x.MakeUpHours,
SurplusHours=x.TotalHours-x.CompleteHours,
SurplusHours = x.TotalHours - x.CompleteHours,
x.GuestState,
x.GuestStateStr,
GraduationTime = Common.ConvertHelper.FormatDate(x.GraduationTime),
......@@ -1302,15 +1307,18 @@ namespace Edu.WebApi.Controllers.Course
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetMyStudentToGuest() {
public ApiResult SetMyStudentToGuest()
{
var userInfo = base.UserInfo;
JObject parms = JObject.Parse(base.RequestParm.Msg.ToString());
int OrderId = parms.GetInt("OrderId", 0);//订单
string StuIds = parms.GetStringValue("StuIds");//学生Ids
if (OrderId <= 0) {
if (OrderId <= 0)
{
return ApiResult.ParamIsNull("订单不存在");
}
if (string.IsNullOrEmpty(StuIds)) {
if (string.IsNullOrEmpty(StuIds))
{
return ApiResult.ParamIsNull("请选择学生");
}
......@@ -1319,7 +1327,8 @@ namespace Edu.WebApi.Controllers.Course
{
return ApiResult.Success();
}
else {
else
{
return ApiResult.Failed(msg);
}
}
......@@ -1352,7 +1361,7 @@ namespace Edu.WebApi.Controllers.Course
Q_OrderState = base.ParmJObj.GetInt("Q_OrderState"),
Q_OrderBy = base.ParmJObj.GetInt("Q_OrderBy"),
PlatformTax = base.ParmJObj.GetDecimal("PlatformTax"),
CourseSubject=base.ParmJObj.GetInt("CourseSubject"),
CourseSubject = base.ParmJObj.GetInt("CourseSubject"),
};
demodel.Group_Id = userInfo.Group_Id;
demodel.CreateBy = userInfo.Id;
......@@ -1551,7 +1560,7 @@ namespace Edu.WebApi.Controllers.Course
ClassNo = base.ParmJObj.GetStringValue("ClassNo"),
CourseSubject = base.ParmJObj.GetInt("CourseSubject"),
CustomerId = base.ParmJObj.GetInt("CustomerId", 0),
CategoryId=base.ParmJObj.GetInt("CategoryId"),
CategoryId = base.ParmJObj.GetInt("CategoryId"),
};
demodel.Group_Id = userInfo.Group_Id;
......@@ -2433,7 +2442,7 @@ namespace Edu.WebApi.Controllers.Course
#endregion
#region 获取学员状态列表
/// <summary>
/// 获取学员状态列表
/// </summary>
......
......@@ -68,8 +68,7 @@ namespace Edu.WebApi.Controllers.User
[AllowAnonymous]
public ApiResult Test()
{
//courseModule.RunWordsUrlModule();
new OrderModule().RunStudentadvisorModule();
return ApiResult.Success();
}
......
......@@ -2672,8 +2672,9 @@ namespace Edu.WebApi.Controllers.User
ExcelDataSource subHeader = new ExcelDataSource() { ExcelRows = new List<ExcelColumn>() };
header.ExcelRows.Add(new ExcelColumn("员工") { Rowspan = 2, CellWidth = 15 });
subHeader.ExcelRows.Add(new ExcelColumn());
header.ExcelRows.Add(new ExcelColumn("本月名单") { CellWidth = 25, Rowspan = 2 });
subHeader.ExcelRows.Add(new ExcelColumn(""));
header.ExcelRows.Add(new ExcelColumn("名单") { CellWidth = 25,Colspan=2 });
subHeader.ExcelRows.Add(new ExcelColumn("本周"));
subHeader.ExcelRows.Add(new ExcelColumn("本月"));
header.ExcelRows.Add(new ExcelColumn("试听") { CellWidth = 15, Colspan = 2 });
subHeader.ExcelRows.Add(new ExcelColumn("本周"));
......@@ -2713,10 +2714,10 @@ namespace Edu.WebApi.Controllers.User
{
var excelRows = new List<ExcelColumn>();
excelRows.Add(new ExcelColumn(UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName));
string curWeekStu = string.Join(",", item?.CurWeekStuList?.Select(qitem => qitem.StuName));
string curMonthStu = string.Join(",", item?.CurMonthStuList?.Select(qitem => qitem.StuName));
string curWeekStu = (item?.CurWeekStuList?.Count ?? 0).ToString();
string curMonthStu = (item?.CurMonthStuList?.Count ?? 0).ToString();
excelRows.Add(new ExcelColumn(curWeekStu));
excelRows.Add(new ExcelColumn(curMonthStu));
//excelRows.Add(new ExcelColumn(curWeekStu));
excelRows.Add(new ExcelColumn(item.CurWeekTrialLesson.ToString()));
excelRows.Add(new ExcelColumn(item.CurMonthTrialLesson.ToString()));
......
......@@ -813,7 +813,7 @@ namespace Edu.WebApi.Controllers.User
public FileContentResult DownLoadStudent()
{
List<ExcelDataSource> slist = new List<ExcelDataSource>();
var query = new RB_Student_ViewModel()
{
StuName = base.ParmJObj.GetStringValue("StuName"),
......@@ -831,17 +831,39 @@ namespace Edu.WebApi.Controllers.User
StuType = base.ParmJObj.GetInt("StuType"),
ExistCourseConsultant = base.ParmJObj.GetInt("ExistCourseConsultant"),
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)
{
query.CreateBy = base.UserInfo.Id;
}
string CreateIds = base.ParmJObj.GetStringValue("CreateIds");
if (!string.IsNullOrEmpty(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");
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