Commit 466ab502 authored by 吴春's avatar 吴春

试听课需求

parent b96b8d54
...@@ -11,69 +11,93 @@ namespace Edu.Model.Entity.Reserve ...@@ -11,69 +11,93 @@ namespace Edu.Model.Entity.Reserve
[DB(ConnectionName = "DefaultConnection")] [DB(ConnectionName = "DefaultConnection")]
public class RB_Visitor_Reserve public class RB_Visitor_Reserve
{ {
/// <summary> /// <summary>
/// 预约编号(主键) /// 预约编号(主键)
/// </summary> /// </summary>
public int Id { get; set; } public int Id { get; set; }
/// <summary> /// <summary>
/// 访客编号 /// 访客编号
/// </summary> /// </summary>
public int Visitor_Id { get; set; } public int Visitor_Id { get; set; }
/// <summary> /// <summary>
/// 预约状态(0-跟进中,1-成交,2-流单,3-取消) /// 预约状态(0-跟进中,1-成交,2-流单,3-取消)
/// </summary> /// </summary>
public int ReserveStatus { get; set; } public int ReserveStatus { get; set; }
/// <summary> /// <summary>
/// 备注 /// 备注
/// </summary> /// </summary>
public string Remark { get; set; } public string Remark { get; set; }
/// <summary> /// <summary>
/// 关联订单号 /// 关联订单号
/// </summary> /// </summary>
public int OrderId { get; set; } public int OrderId { get; set; }
/// <summary> /// <summary>
/// 集团编号 /// 集团编号
/// </summary> /// </summary>
public int Group_Id { get; set; } public int Group_Id { get; set; }
/// <summary> /// <summary>
/// 学校编号 /// 学校编号
/// </summary> /// </summary>
public int School_Id { get; set; } public int School_Id { get; set; }
/// <summary> /// <summary>
/// 创建人 /// 创建人
/// </summary> /// </summary>
public int CreateBy { get; set; } public int CreateBy { get; set; }
/// <summary> /// <summary>
/// 创建时间 /// 创建时间
/// </summary> /// </summary>
public DateTime CreateTime { get; set; } public DateTime CreateTime { get; set; }
/// <summary> /// <summary>
/// 修改人 /// 修改人
/// </summary> /// </summary>
public int UpdateBy { get; set; } public int UpdateBy { get; set; }
/// <summary> /// <summary>
/// 更新时间 /// 更新时间
/// </summary> /// </summary>
public DateTime UpdateTime { get; set; } public DateTime UpdateTime { get; set; }
/// <summary> /// <summary>
/// 删除状态(0-正常,1-禁用) /// 删除状态(0-正常,1-禁用)
/// </summary> /// </summary>
public DateStateEnum Status { get; set; } public DateStateEnum Status { get; set; }
/// <summary> /// <summary>
/// 预约班级编号 /// 预约班级编号
/// </summary> /// </summary>
public int ReserveClassId { get; set; } public int ReserveClassId { get; set; }
}
/// <summary>
/// 试听需求
/// </summary>
public string Demand { get; set; }
/// <summary>
/// 学员反馈
/// </summary>
public string Feedback { get; set; }
/// <summary>
/// 预约日期
/// </summary>
public DateTime ReservationDate { get; set; }
/// <summary>
/// 1-试听课,2-留学需求
/// </summary>
public int IsReserve { get; set; }
}
} }
...@@ -138,7 +138,7 @@ namespace Edu.Model.Entity.User ...@@ -138,7 +138,7 @@ namespace Edu.Model.Entity.User
public string StuPurpose { get; set; } public string StuPurpose { get; set; }
/// <summary> /// <summary>
/// 客户类型,1-普通客户,2-会员客户 /// 客户类型,1-普通客户,2-留学客户
/// </summary> /// </summary>
public int StudentType { get; set; } public int StudentType { get; set; }
......
...@@ -21,6 +21,15 @@ using Edu.Common.Plugin; ...@@ -21,6 +21,15 @@ using Edu.Common.Plugin;
using Edu.Model.ViewModel.Customer; using Edu.Model.ViewModel.Customer;
using Edu.Model.Entity.Customer; using Edu.Model.Entity.Customer;
using Edu.Repository.Scroll; using Edu.Repository.Scroll;
using Renci.SshNet.Security;
using System.Web;
using Edu.Common;
using RabbitMQ.Client.Framing.Impl;
using Edu.Model.Entity.User;
using Edu.Model.Entity.Reserve;
using Edu.Model.Public;
using Edu.Module.User;
using Senparc.Weixin.MP.AdvancedAPIs;
namespace Edu.Module.Duty namespace Edu.Module.Duty
{ {
...@@ -34,6 +43,20 @@ namespace Edu.Module.Duty ...@@ -34,6 +43,20 @@ namespace Edu.Module.Duty
/// </summary> /// </summary>
private readonly RB_Visitor_ReserveRepository visitor_ReserveRepository = new RB_Visitor_ReserveRepository(); private readonly RB_Visitor_ReserveRepository visitor_ReserveRepository = new RB_Visitor_ReserveRepository();
/// <summary>
/// 约课课程仓储对象
/// </summary>
private readonly RB_TrialLessonRepository trialLessonRepository = new RB_TrialLessonRepository();
/// <summary>
/// 教室仓储对象
/// </summary>
private readonly RB_Class_RoomRepository class_RoomRepository = new RB_Class_RoomRepository();
/// <summary>
/// 教师仓储对象
/// </summary>
private readonly RB_TeacherRepository teacherRepository = new RB_TeacherRepository();
/// <summary> /// <summary>
/// 约课班级信息仓储层对象 /// 约课班级信息仓储层对象
/// </summary> /// </summary>
...@@ -74,7 +97,7 @@ namespace Edu.Module.Duty ...@@ -74,7 +97,7 @@ namespace Edu.Module.Duty
/// </summary> /// </summary>
private readonly RB_Scroll_AppointmentRepository scroll_AppointmentRepository = new RB_Scroll_AppointmentRepository(); private readonly RB_Scroll_AppointmentRepository scroll_AppointmentRepository = new RB_Scroll_AppointmentRepository();
private readonly Rb_dictvalueRepository rb_DictvalueRepository = new Rb_dictvalueRepository();
/// <summary> /// <summary>
/// 获取访客约课分页列表 /// 获取访客约课分页列表
/// </summary> /// </summary>
...@@ -126,7 +149,7 @@ namespace Edu.Module.Duty ...@@ -126,7 +149,7 @@ namespace Edu.Module.Duty
EndTime = model.EndTime, EndTime = model.EndTime,
TrialLessonId = model.TrialLessonId, TrialLessonId = model.TrialLessonId,
ClassPlanId = model.ClassPlanId, ClassPlanId = model.ClassPlanId,
ReserveType = model.ReserveType ReserveType = model.ReserveType,
}; };
if (model.ReserveClassId <= 0) if (model.ReserveClassId <= 0)
{ {
...@@ -185,6 +208,313 @@ namespace Edu.Module.Duty ...@@ -185,6 +208,313 @@ namespace Edu.Module.Duty
return flag; return flag;
} }
/// <summary>
/// 新增修改访客约课
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[TransactionCallHandler]
public virtual bool SetVisitorReserveModule_V2(RB_Visitor_Reserve_Extend model, out string message)
{
message = "";
bool flag;
if (visitor_ReserveRepository.ExistsVisitorReserveRepository(model))
{
message = string.Format("已存在此访客的预约试听课信息,请重新选择!");
return false;
}
//获取学员信息
var guestModel = studentRepository.GetEntity(model.Visitor_Id);
if (model.Id > 0)
{
var reserveClass = new RB_Reserve_Class_Extend()
{
ClassContent = model.ClassContent,
CreateTime = model.CreateTime,
CreateBy = model.CreateBy,
ClassRoomId = model.ClassRoomId,
ClassDate = model.ClassDate,
ClassTime = model.ClassTime,
Group_Id = model.Group_Id,
ReserveClassId = 0,
School_Id = model.School_Id,
Status = DateStateEnum.Normal,
TeacherId = model.TeacherId,
UpdateBy = model.UpdateBy,
UpdateTime = model.UpdateTime,
EndTime = model.EndTime,
TrialLessonId = model.TrialLessonId,
ClassPlanId = model.ClassPlanId,
ReserveType = model.ReserveType,
};
//查询课程信息
//查询教室信息
if (model.ReserveClassId <= 0)
{
if (model.ReserveType == 1)
{
//跟班 先查询该计划是否已有试听班级
var remodel = reserve_ClassRepository.GetReserveClassListRepository(new RB_Reserve_Class_Extend()
{
Group_Id = model.Group_Id,
ReserveType = 1,
ClassPlanId = model.ClassPlanId,
}).FirstOrDefault();
if (remodel != null)
{
model.ReserveClassId = remodel.ReserveClassId;
}
else
{
var newFlag = SetReserveClassModule(reserveClass, out string newMsg);
if (!newFlag)
{
message = newMsg;
return false;
}
model.ReserveClassId = reserveClass.ReserveClassId;
}
}
else
{
var newFlag = SetReserveClassModule_V2(reserveClass, guestModel, model, out string newMsg);
if (!newFlag)
{
message = newMsg;
return false;
}
model.ReserveClassId = reserveClass.ReserveClassId;
}
}
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Visitor_Reserve_Extend.UpdateBy),model.UpdateBy },
{nameof(RB_Visitor_Reserve_Extend.UpdateTime),model.UpdateTime },
{nameof(RB_Visitor_Reserve_Extend.ReserveClassId),model.ReserveClassId },
{nameof(RB_Visitor_Reserve_Extend.Remark),model.Remark },
};
flag = visitor_ReserveRepository.Update(fileds, new WhereHelper(nameof(RB_Visitor_Reserve_Extend.Id), model.Id));
}
else
{
var queryNotifyManager = accountRepository.GetWorkUserIdByDictRepository("TrialClass_Leader");
var newId = visitor_ReserveRepository.Insert(model);
model.Id = newId;
flag = newId > 0;
if (flag)
{
//发生企业微信推送信息 暂时未做后续完善
#region 试听课负责人(管理者)
if (queryNotifyManager != null && queryNotifyManager.Count > 0)
{
queryNotifyManager.ForEach(x =>
{
var path = $"/sale/orderStatistics?OrderId={model.Id}";//这个地址是欠费的通知地址,后续有H5需要改
path = HttpUtility.UrlEncode(path);
string markdownContent = $@"`试听课通知` 学员试听课通知\n>**概要信息** \n>学员名称:{guestModel.StuName}({guestModel.StuRealMobile})\n>
预约时间:<font color='warning'>{model.ReservationDate.ToString("yyyy-MM-dd")}\n>
试听需求:<font color='warning'>{model.Demand}\n>
请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={x.Id}&target={path})";
Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel()
{
CategoryId = PushMessageCategoryEnum.ReserveClass,
Content = markdownContent,
CoverImg = "",
CreateByName = "系统",
JumpUrl = "",
WorkMsgType = "markdown",
SendTime = DateTime.Now,
SendType = 0,
Title = "学员试听课通知",
Platform = 5,
ReceiveId = x.WorkUserId
};
List<Common.Message.PushMessageModel> pushList = new List<Common.Message.PushMessageModel>() { modelWork };
new Common.Message.MessageHelper().SendMessage(pushList);
});
}
#endregion
}
}
return flag;
}
/// <summary>
/// 新增修改留学需求
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[TransactionCallHandler]
public virtual bool SetStudyAbroad(RB_Visitor_Reserve_Extend model, UserInfo userInfo)
{
bool flag;
//获取学员信息
var guestModel = studentRepository.GetEntity(model.Visitor_Id);
if (model.Id > 0)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Visitor_Reserve_Extend.UpdateBy),model.UpdateBy },
{nameof(RB_Visitor_Reserve_Extend.UpdateTime),model.UpdateTime },
{nameof(RB_Visitor_Reserve_Extend.Remark),model.Remark },
};
flag = visitor_ReserveRepository.Update(fileds, new WhereHelper(nameof(RB_Visitor_Reserve_Extend.Id), model.Id));
}
else
{
var queryNotifyManager = accountRepository.GetWorkUserIdByDictRepository("StudyAbroad_Leader");
var newId = visitor_ReserveRepository.Insert(model);
model.Id = newId;
flag = newId > 0;
if (flag)
{
//发生企业微信推送信息 暂时未做后续完善
#region 试听课负责人(管理者)
if (queryNotifyManager != null && queryNotifyManager.Count > 0)
{
var studentModel = studentRepository.GetEntity(model.Visitor_Id);
List<Common.Message.PushMessageModel> pushList = new List<Common.Message.PushMessageModel>();
queryNotifyManager.ForEach(x =>
{
var path = $"/school/studentstudy?StuName={model.StuName}";//这个地址是欠费的通知地址,后续有H5需要改
path = HttpUtility.UrlEncode(path);
string markdownContent = $@"`留学需求通知` 学员留学需求通知\n>**概要信息** \n>学员名称:{studentModel.StuName}({studentModel.StuRealMobile})\n>
留学需求:<font color='warning'>{model.Remark}\n>
请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={x.Id}&target={path})";
Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel()
{
CategoryId = PushMessageCategoryEnum.SalePeople,
Content = markdownContent,
CoverImg = "",
CreateByName = userInfo.AccountName,
JumpUrl = "",
WorkMsgType = "markdown",
SendTime = DateTime.Now,
SendType = 0,
Title = "学员留学需求通知",
Platform = 5,
ReceiveId = x.WorkUserId
};
pushList.Add(modelWork);
});
if (pushList != null && pushList.Any())
{
new Common.Message.MessageHelper().SendMessage(pushList);
}
}
#endregion
}
}
return flag;
}
/// <summary>
/// 学员反馈
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[TransactionCallHandler]
public virtual bool SetVisitorReserveFeedbackModule(RB_Visitor_Reserve_Extend model, UserInfo UserInfo)
{
bool flag = false;
var oldModel = visitor_ReserveRepository.GetEntity(model.Id);
//获取学员信息
var guestModel = studentRepository.GetEntity(oldModel.Visitor_Id);
if (model.Id > 0)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Visitor_Reserve_Extend.UpdateBy),model.UpdateBy },
{nameof(RB_Visitor_Reserve_Extend.UpdateTime),model.UpdateTime },
{nameof(RB_Visitor_Reserve_Extend.Feedback),model.Feedback },
};
flag = visitor_ReserveRepository.Update(fileds, new WhereHelper(nameof(RB_Visitor_Reserve_Extend.Id), model.Id));
}
if (flag)
{
var reclassModel = reserve_ClassRepository.GetEntity(oldModel.ReserveClassId);
var paths = $"/school/student?StuName=" + guestModel.StuName;//
paths = HttpUtility.UrlEncode(paths);
string markdownContents = $@"`试听课反馈通知`\n>**概要信息** \n>学员名称:{guestModel.StuName}({guestModel.StuRealMobile})\n>
上课时间:<font color='warning'>{(StringHelper.FormatDate(reclassModel.ClassDate) + " " + reclassModel.ClassTime + "-" + reclassModel.EndTime)}\n>
学员反馈:<font color='warning'>{model.Feedback}\n>
请点击:[查看详情]({Config.ErpUrl}";
#region 试听课负责人(管理者)
var queryNotifyManager = accountRepository.GetWorkUserIdByDictRepository("TrialClass_Leader");
List<Common.Message.PushMessageModel> pushList = new List<Common.Message.PushMessageModel>();
if (queryNotifyManager != null && queryNotifyManager.Count > 0)
{
queryNotifyManager.ForEach(x =>
{
Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel()
{
CategoryId = PushMessageCategoryEnum.ReserveClass,
Content = markdownContents + $"/autologin?loginId={x.Id}&target={paths})",
CoverImg = "",
CreateByName = "系统",
JumpUrl = "",
WorkMsgType = "markdown",
SendTime = DateTime.Now,
SendType = 0,
Title = "学员试听课通知",
Platform = 5,
ReceiveId = x.WorkUserId
};
pushList.Add(modelWork);
});
}
#endregion
var teacherList = accountRepository.GetAccountListRepository(new Model.ViewModel.User.RB_Account_ViewModel()
{
Group_Id = model.Group_Id,
QAccountIds = (reclassModel?.TeacherId ?? 0).ToString(),
AccountType = Common.Enum.User.AccountTypeEnum.Teacher
});
foreach (var item in teacherList)
{
Common.Message.PushMessageModel pushModels = new Common.Message.PushMessageModel()
{
CategoryId = PushMessageCategoryEnum.ReserveClass,
Content = markdownContents + $"/autologin?loginId={item.Id}&target={paths})",
CoverImg = "",
CreateByName = UserInfo.AccountName,
JumpUrl = "",
SendTime = DateTime.Now,
SendType = 0,
Title = "试听课",
Platform = 2,
ReceiveId = (item?.WorkUserId).ToString(),
};
pushList.Add(pushModels);
}
if (pushList != null && pushList.Any())
{
new Common.Message.MessageHelper().SendMessage(pushList);
}
LogHelper.WriteInfo("学员反馈:" + JsonHelper.Serialize(pushList));
}
return flag;
}
/// <summary> /// <summary>
/// 根据编号获取访客约课 /// 根据编号获取访客约课
/// </summary> /// </summary>
...@@ -577,6 +907,16 @@ namespace Edu.Module.Duty ...@@ -577,6 +907,16 @@ namespace Edu.Module.Duty
} }
/// <summary>
/// 检查是否存在
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Reserve_Class_Extend> ExistsReserveClassListRepository(RB_Reserve_Class_Extend model)
{
return reserve_ClassRepository.ExistsReserveClassListRepository(model);
}
/// <summary> /// <summary>
/// 根据编号获取约课班级 /// 根据编号获取约课班级
/// </summary> /// </summary>
...@@ -641,5 +981,183 @@ namespace Edu.Module.Duty ...@@ -641,5 +981,183 @@ namespace Edu.Module.Duty
} }
return flag; return flag;
} }
#region 试听课预约新接口
/// <summary>
/// 新增修改约课班级
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool SetReserveClassModule_V2(RB_Reserve_Class_Extend model, RB_Student guestModel, RB_Visitor_Reserve_Extend modelReserve, out string message)
{
bool flag;
message = "";
var UserInfo = UserReidsCache.GetUserLoginInfo(model.CreateBy);
var chooseDateTime = Convert.ToDateTime(Common.ConvertHelper.FormatDate(model.ClassDate) + " " + model.ClassTime);
var chooseEndTime = Convert.ToDateTime(Common.ConvertHelper.FormatDate(model.ClassDate) + " " + model.EndTime);
if (model.ReserveType != 1)
{
var oldReserceClassList = ExistsReserveClassListRepository(model);
if (oldReserceClassList != null && oldReserceClassList.Any(x => x.ReserveClassId > 0))
{
model.ReserveClassId = oldReserceClassList?.FirstOrDefault()?.ReserveClassId ?? 0;
}
else
{
#region 教师验证
if (CheckClassTeacherModule(chooseDateTime, chooseEndTime, model, out string newMsg))
{
message = newMsg;
return false;
}
#endregion
#region 验证教室
if (CheckClassRoomModule(chooseDateTime, chooseEndTime, model, out string roomMessage))
{
message = roomMessage;
return false;
}
#endregion
#region 验证预约课
if (CheckAppointmentModule(chooseDateTime, chooseEndTime, model, out string appointMessage))
{
message = appointMessage;
return false;
}
#endregion
}
}
int oldTeacherId = 0;
if (model.ReserveClassId > 0)
{
var oldModel = GetReserveClassModule(model.ReserveClassId);
oldTeacherId = oldModel.TeacherId;
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Reserve_Class_Extend.TeacherId),model.TeacherId },
{nameof(RB_Reserve_Class_Extend.ClassDate),model.ClassDate },
{nameof(RB_Reserve_Class_Extend.ClassTime),model.ClassTime },
{nameof(RB_Reserve_Class_Extend.EndTime),model.EndTime },
{nameof(RB_Reserve_Class_Extend.ClassRoomId),model.ClassRoomId },
{nameof(RB_Reserve_Class_Extend.ClassContent),model.ClassContent },
{nameof(RB_Reserve_Class_Extend.UpdateBy),model.UpdateBy },
{nameof(RB_Reserve_Class_Extend.UpdateTime),model.UpdateTime },
{nameof(RB_Reserve_Class_Extend.TrialLessonId),model.TrialLessonId },
};
flag = reserve_ClassRepository.Update(fileds, new WhereHelper(nameof(RB_Reserve_Class_Extend.ReserveClassId), model.ReserveClassId));
}
else
{
var newId = reserve_ClassRepository.Insert(model);
model.ReserveClassId = newId;
flag = newId > 0;
}
if (flag)
{
model.LessonName = trialLessonRepository.GetEntity(model.TrialLessonId)?.LessonName ?? "";
model.RoomName = class_RoomRepository.GetEntity(model.ClassRoomId)?.RoomName ?? "";
model.TeacherName = teacherRepository.GetEntity(model.TeacherId)?.TeacherName ?? "";
var teacherList = accountRepository.GetAccountListRepository(new Model.ViewModel.User.RB_Account_ViewModel()
{
Group_Id = model.Group_Id,
QAccountIds = (model?.TeacherId ?? 0) + (oldTeacherId > 0 ? ("," + oldTeacherId) : ""),
AccountType = Common.Enum.User.AccountTypeEnum.Teacher
});
List<Common.Message.PushMessageModel> pushList = new List<Common.Message.PushMessageModel>();
#region 老师消息推送
if (model.TeacherId != oldTeacherId && oldTeacherId > 0)
{
Common.Message.PushMessageModel pushModel2 = new Common.Message.PushMessageModel()
{
CategoryId = PushMessageCategoryEnum.ReserveClass,
Content = "您有试听课被取消!请查收",
CoverImg = "",
CreateByName = UserInfo.AccountName,
JumpUrl = $"/course/classPlan?ClassType=2",
SendTime = DateTime.Now,
SendType = 0,
Title = "试听课",
Platform = 2,
ReceiveId = (teacherList.Where(qitem => qitem.AccountId == oldTeacherId)?.FirstOrDefault()?.WorkUserId).ToString(),
};
pushList.Add(pushModel2);
}
var path = $"/course/classPlan?ClassType=2";//
path = HttpUtility.UrlEncode(path);
string markdownContent = $@"`您有新的试听课信息!请查收`\n>**概要信息** \n>学员名称:{guestModel.StuName}({guestModel.StuRealMobile})\n>
预约时间:<font color='warning'>{modelReserve.ReservationDate.ToString("yyyy-MM-dd")}\n>
试听需求:<font color='warning'>{modelReserve.Demand}\n>
预约时间:<font color='warning'>{(StringHelper.FormatDate(model.ClassDate) + " " + model.ClassTime + "-" + model.EndTime)}\n>
课程名称:<font color='warning'>{model.LessonName}\n>
教室:<font color='warning'>{model.RoomName}\n>
请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={(teacherList.Where(qitem => qitem.AccountId == model.TeacherId)?.FirstOrDefault()?.Id ?? 0)}&target={path})";
Common.Message.PushMessageModel pushModel = new Common.Message.PushMessageModel()
{
CategoryId = PushMessageCategoryEnum.ReserveClass,
Content = markdownContent,
CoverImg = "",
CreateByName = UserInfo.AccountName,
JumpUrl = "",
SendTime = DateTime.Now,
SendType = 0,
Title = "试听课",
Platform = 2,
ReceiveId = (teacherList.Where(qitem => qitem.AccountId == model.TeacherId)?.FirstOrDefault()?.WorkUserId).ToString(),
};
pushList.Add(pushModel);
#endregion
#region 销售消息推送
var saleModel = accountRepository.GetAccountListRepository(new Model.ViewModel.User.RB_Account_ViewModel()
{
Group_Id = model.Group_Id,
Id = modelReserve.CreateBy,
})?.FirstOrDefault();
var paths = $"/school/student?StuName=" + guestModel.StuName;//
paths = HttpUtility.UrlEncode(paths);
string markdownContents = $@"`您有新的试听课信息!请查收`\n>**概要信息** \n>学员名称:{guestModel.StuName}({guestModel.StuRealMobile})\n>
预约时间:<font color='warning'>{modelReserve.ReservationDate.ToString("yyyy-MM-dd")}\n>
试听需求:<font color='warning'>{modelReserve.Demand}\n>
预约时间:<font color='warning'>{(StringHelper.FormatDate(model.ClassDate) + " " + model.ClassTime + "-" + model.EndTime)}\n>
主讲老师:<font color='warning'>{(model.TeacherName)}\n>
课程名称:<font color='warning'>{model.LessonName}\n>
教室:<font color='warning'>{model.RoomName}\n>
请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={modelReserve.CreateBy}&target={paths})";
Common.Message.PushMessageModel pushModels = new Common.Message.PushMessageModel()
{
CategoryId = PushMessageCategoryEnum.ReserveClass,
Content = markdownContents,
CoverImg = "",
CreateByName = UserInfo.AccountName,
JumpUrl = "",
SendTime = DateTime.Now,
SendType = 0,
Title = "试听课",
Platform = 2,
ReceiveId = (saleModel?.WorkUserId).ToString(),
};
pushList.Add(pushModels);
#endregion
LogHelper.WriteInfo("这是设置老师等发送消息:" + JsonHelper.Serialize(pushList));
new Common.Message.MessageHelper().SendMessage(pushList);
}
return flag;
}
#endregion
} }
} }
using Edu.AOP.CustomerAttribute; using Edu.AOP.CustomerAttribute;
using Edu.Common;
using Edu.Common.Enum; using Edu.Common.Enum;
using Edu.Common.Enum.System; using Edu.Common.Enum.System;
using Edu.Common.Enum.User; using Edu.Common.Enum.User;
...@@ -22,6 +23,7 @@ using Senparc.Weixin.MP.AdvancedAPIs; ...@@ -22,6 +23,7 @@ using Senparc.Weixin.MP.AdvancedAPIs;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Web;
using VT.FW.DB; using VT.FW.DB;
namespace Edu.Module.User namespace Edu.Module.User
...@@ -165,7 +167,10 @@ namespace Edu.Module.User ...@@ -165,7 +167,10 @@ namespace Edu.Module.User
/// </summary> /// </summary>
private readonly RB_Student_ConfigRepository student_ConfigRepository = new RB_Student_ConfigRepository(); private readonly RB_Student_ConfigRepository student_ConfigRepository = new RB_Student_ConfigRepository();
/// <summary>
/// 账号管理仓储层对象
/// </summary>
private readonly RB_AccountRepository accountRepository = new RB_AccountRepository();
/// <summary> /// <summary>
/// 获取学生列表 /// 获取学生列表
/// </summary> /// </summary>
...@@ -370,7 +375,7 @@ namespace Edu.Module.User ...@@ -370,7 +375,7 @@ namespace Edu.Module.User
item.StuStageName = stageList?.FirstOrDefault(qitem => qitem.Id == item.StuStage)?.StageName ?? ""; item.StuStageName = stageList?.FirstOrDefault(qitem => qitem.Id == item.StuStage)?.StageName ?? "";
item.StuTypeName = stuTypeList?.FirstOrDefault(qitem => qitem.Id == item.StuType)?.Name ?? ""; item.StuTypeName = stuTypeList?.FirstOrDefault(qitem => qitem.Id == item.StuType)?.Name ?? "";
item.StuChannelName = channelList?.FirstOrDefault(qitem => qitem.Id == item.StuChannel)?.Name ?? ""; item.StuChannelName = channelList?.FirstOrDefault(qitem => qitem.Id == item.StuChannel)?.Name ?? "";
item.StuPurposeName =!string.IsNullOrWhiteSpace(item.StuPurpose)?( string.Join(",", goalList?.Where(qitem => item.StuPurpose.Contains(qitem.Id.ToString()))?.Select(x => x.Name)) ?? ""):""; item.StuPurposeName = !string.IsNullOrWhiteSpace(item.StuPurpose) ? (string.Join(",", goalList?.Where(qitem => item.StuPurpose.Contains(qitem.Id.ToString()))?.Select(x => x.Name)) ?? "") : "";
item.StuNeedsName = needList?.FirstOrDefault(qitem => qitem.Id == item.StuNeeds)?.Name ?? ""; item.StuNeedsName = needList?.FirstOrDefault(qitem => qitem.Id == item.StuNeeds)?.Name ?? "";
item.AdvisorList = advisorList?.Where(qitem => qitem.StuId == item.StuId)?.ToList() ?? new List<RB_Student_Advisor_Extend>(); item.AdvisorList = advisorList?.Where(qitem => qitem.StuId == item.StuId)?.ToList() ?? new List<RB_Student_Advisor_Extend>();
item.CreateByName = accountList?.FirstOrDefault(qitem => qitem.Id == item.CreateBy)?.AccountName ?? ""; item.CreateByName = accountList?.FirstOrDefault(qitem => qitem.Id == item.CreateBy)?.AccountName ?? "";
...@@ -535,7 +540,7 @@ namespace Edu.Module.User ...@@ -535,7 +540,7 @@ namespace Edu.Module.User
extModel.AssistList = assistList; extModel.AssistList = assistList;
extModel.StuStageName = stageRepository.GetEntity(extModel.StuStage)?.StageName ?? ""; extModel.StuStageName = stageRepository.GetEntity(extModel.StuStage)?.StageName ?? "";
extModel.StuTypeName = student_TypeRepository.GetEntity(extModel.StuType)?.Name ?? ""; extModel.StuTypeName = student_TypeRepository.GetEntity(extModel.StuType)?.Name ?? "";
extModel.StuPurposeName =!string.IsNullOrWhiteSpace(extModel.StuPurpose)?( string.Join(",", learningGoalsRepository.GetLearningGoalsListRepository(new Model.ViewModel.System.RB_LearningGoals_Extend { QGoalIds = extModel.StuPurpose }).Select(x => x.Name)) ?? ""):""; extModel.StuPurposeName = !string.IsNullOrWhiteSpace(extModel.StuPurpose) ? (string.Join(",", learningGoalsRepository.GetLearningGoalsListRepository(new Model.ViewModel.System.RB_LearningGoals_Extend { QGoalIds = extModel.StuPurpose }).Select(x => x.Name)) ?? "") : "";
extModel.StuChannelName = channelRepository.GetChannelExtEntityRepository(extModel.StuChannel)?.Name ?? ""; extModel.StuChannelName = channelRepository.GetChannelExtEntityRepository(extModel.StuChannel)?.Name ?? "";
extModel.StuNeedsName = needsRepository.GetNeedsExtEntityRepository(extModel.StuNeeds)?.Name ?? ""; extModel.StuNeedsName = needsRepository.GetNeedsExtEntityRepository(extModel.StuNeeds)?.Name ?? "";
//if (extModel.CustomerId > 0) //if (extModel.CustomerId > 0)
...@@ -2306,7 +2311,7 @@ namespace Edu.Module.User ...@@ -2306,7 +2311,7 @@ namespace Edu.Module.User
} }
//学习目的 //学习目的
string goalIds = string.Join(",", list?.Where(qitem=> !string.IsNullOrWhiteSpace(qitem.StuPurpose))?.Select(qitem => qitem.StuPurpose)); string goalIds = string.Join(",", list?.Where(qitem => !string.IsNullOrWhiteSpace(qitem.StuPurpose))?.Select(qitem => qitem.StuPurpose));
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
...@@ -2363,7 +2368,7 @@ namespace Edu.Module.User ...@@ -2363,7 +2368,7 @@ namespace Edu.Module.User
item.StuStageName = stageList?.FirstOrDefault(qitem => qitem.Id == item.StuStage)?.StageName ?? ""; item.StuStageName = stageList?.FirstOrDefault(qitem => qitem.Id == item.StuStage)?.StageName ?? "";
item.StuTypeName = stuTypeList?.FirstOrDefault(qitem => qitem.Id == item.StuType)?.Name ?? ""; item.StuTypeName = stuTypeList?.FirstOrDefault(qitem => qitem.Id == item.StuType)?.Name ?? "";
item.StuChannelName = channelList?.FirstOrDefault(qitem => qitem.Id == item.StuChannel)?.Name ?? ""; item.StuChannelName = channelList?.FirstOrDefault(qitem => qitem.Id == item.StuChannel)?.Name ?? "";
item.StuPurposeName =!string.IsNullOrWhiteSpace(item.StuPurpose)?( string.Join(",", goalList?.Where(qitem => item.StuPurpose.Contains(qitem.Id.ToString())).Select(x => x.Name)) ?? ""):""; item.StuPurposeName = !string.IsNullOrWhiteSpace(item.StuPurpose) ? (string.Join(",", goalList?.Where(qitem => item.StuPurpose.Contains(qitem.Id.ToString())).Select(x => x.Name)) ?? "") : "";
item.StuNeedsName = needList?.FirstOrDefault(qitem => qitem.Id == item.StuNeeds)?.Name ?? ""; item.StuNeedsName = needList?.FirstOrDefault(qitem => qitem.Id == item.StuNeeds)?.Name ?? "";
item.AdvisorList = advisorList?.Where(qitem => qitem.StuId == item.StuId)?.ToList() ?? new List<RB_Student_Advisor_Extend>(); item.AdvisorList = advisorList?.Where(qitem => qitem.StuId == item.StuId)?.ToList() ?? new List<RB_Student_Advisor_Extend>();
item.CreateByName = accountList?.FirstOrDefault(qitem => qitem.Id == item.CreateBy)?.AccountName ?? ""; item.CreateByName = accountList?.FirstOrDefault(qitem => qitem.Id == item.CreateBy)?.AccountName ?? "";
...@@ -2492,7 +2497,7 @@ namespace Edu.Module.User ...@@ -2492,7 +2497,7 @@ namespace Edu.Module.User
item.StuStageName = stageList?.FirstOrDefault(qitem => qitem.Id == item.StuStage)?.StageName ?? ""; item.StuStageName = stageList?.FirstOrDefault(qitem => qitem.Id == item.StuStage)?.StageName ?? "";
item.StuTypeName = stuTypeList?.FirstOrDefault(qitem => qitem.Id == item.StuType)?.Name ?? ""; item.StuTypeName = stuTypeList?.FirstOrDefault(qitem => qitem.Id == item.StuType)?.Name ?? "";
item.StuChannelName = channelList?.FirstOrDefault(qitem => qitem.Id == item.StuChannel)?.Name ?? ""; item.StuChannelName = channelList?.FirstOrDefault(qitem => qitem.Id == item.StuChannel)?.Name ?? "";
item.StuPurposeName =!string.IsNullOrWhiteSpace(item.StuPurpose)?( string.Join(",", goalList?.Where(qitem => item.StuPurpose.Contains(qitem.Id.ToString()))?.Select(x => x.Name)) ?? ""):""; item.StuPurposeName = !string.IsNullOrWhiteSpace(item.StuPurpose) ? (string.Join(",", goalList?.Where(qitem => item.StuPurpose.Contains(qitem.Id.ToString()))?.Select(x => x.Name)) ?? "") : "";
item.StuNeedsName = needList?.FirstOrDefault(qitem => qitem.Id == item.StuNeeds)?.Name ?? ""; item.StuNeedsName = needList?.FirstOrDefault(qitem => qitem.Id == item.StuNeeds)?.Name ?? "";
item.AdvisorList = advisorList?.Where(qitem => qitem.StuId == item.StuId)?.ToList() ?? new List<RB_Student_Advisor_Extend>(); item.AdvisorList = advisorList?.Where(qitem => qitem.StuId == item.StuId)?.ToList() ?? new List<RB_Student_Advisor_Extend>();
item.CreateByName = accountList?.FirstOrDefault(qitem => qitem.Id == item.CreateBy)?.AccountName ?? ""; item.CreateByName = accountList?.FirstOrDefault(qitem => qitem.Id == item.CreateBy)?.AccountName ?? "";
......
...@@ -167,6 +167,41 @@ WHERE 1=1 AND c.Status=0 AND NOT(CONCAT(substring(C.ClassDate,1,10),' ',C.ClassT ...@@ -167,6 +167,41 @@ WHERE 1=1 AND c.Status=0 AND NOT(CONCAT(substring(C.ClassDate,1,10),' ',C.ClassT
return result>0; return result>0;
} }
/// <summary>
/// 检查是否存在
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Reserve_Class_Extend> ExistsReserveClassListRepository(RB_Reserve_Class_Extend query)
{
int result = 0;
var startTime = query.ClassDateStr + " " + query.ClassTime + ":00";
var endTime = query.ClassDateStr + " " + query.EndTime + ":00";
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT *
FROM RB_Reserve_Class c
WHERE 1=1 AND c.Status=0 AND (CONCAT(substring(C.ClassDate,1,10),' ',C.ClassTime,':00')= '{0}' and CONCAT(substring(C.ClassDate,1,10),' ',C.EndTime,':00')= '{1}')
", startTime, endTime );
if (query.TeacherId > 0)
{
builder.AppendFormat(" AND C.TeacherId={0} ", query.TeacherId);
}
if (query.ClassRoomId > 0)
{
builder.AppendFormat(" AND C.ClassRoomId={0} ", query.ClassRoomId);
}
if (query.TrialLessonId > 0)
{
builder.AppendFormat(" AND C.TrialLessonId={0} ", query.TrialLessonId);
}
if (query.ReserveClassId > 0)
{
builder.AppendFormat(" AND C.ReserveClassId<>{0} ", query.ReserveClassId);
}
return Get<RB_Reserve_Class_Extend>(builder.ToString()).ToList();
}
/// <summary> /// <summary>
/// 获取试听班级列表 /// 获取试听班级列表
/// </summary> /// </summary>
......
...@@ -82,6 +82,11 @@ WHERE 1=1 ...@@ -82,6 +82,11 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Visitor_Reserve_Extend.Id), query.Id); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Visitor_Reserve_Extend.Id), query.Id);
} }
if (query.IsReserve == 0)
{
query.IsReserve = 1;
}
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Visitor_Reserve_Extend.IsReserve), query.IsReserve);
if (query.CreateBy > 0) if (query.CreateBy > 0)
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Visitor_Reserve_Extend.CreateBy), query.CreateBy); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Visitor_Reserve_Extend.CreateBy), query.CreateBy);
...@@ -262,7 +267,7 @@ WHERE 1=1 ...@@ -262,7 +267,7 @@ WHERE 1=1
} }
} }
builder.AppendFormat(" GROUP BY A.Visitor_Id "); builder.AppendFormat(" GROUP BY A.Visitor_Id ");
return Get<RB_Visitor_Reserve_Extend>(builder.ToString(), parameters).ToList(); return Get<RB_Visitor_Reserve_Extend>(builder.ToString(), parameters).ToList();
} }
...@@ -418,7 +423,8 @@ WHERE 1=1 AND A.Status=0 {0} ...@@ -418,7 +423,8 @@ WHERE 1=1 AND A.Status=0 {0}
/// <param name="stuId"></param> /// <param name="stuId"></param>
/// <param name="groupId"></param> /// <param name="groupId"></param>
/// <returns></returns> /// <returns></returns>
public int GetVisitorReserveTeacherId(int stuId, int groupId) { public int GetVisitorReserveTeacherId(int stuId, int groupId)
{
string sql = $@"SELECT c.TeacherId FROM rb_visitor_reserve r string sql = $@"SELECT c.TeacherId FROM rb_visitor_reserve r
INNER JOIN rb_reserve_class c on r.ReserveClassId = c.ReserveClassId INNER JOIN rb_reserve_class c on r.ReserveClassId = c.ReserveClassId
WHERE r.Group_Id ={groupId} and r.`Status` =0 and c.`Status` =0 and r.Visitor_Id ={stuId} WHERE r.Group_Id ={groupId} and r.`Status` =0 and c.`Status` =0 and r.Visitor_Id ={stuId}
......
...@@ -40,20 +40,21 @@ namespace Edu.WebApi.Controllers.Duty ...@@ -40,20 +40,21 @@ namespace Edu.WebApi.Controllers.Duty
var query = new RB_Visitor_Reserve_Extend() var query = new RB_Visitor_Reserve_Extend()
{ {
Group_Id = base.UserInfo.Group_Id, Group_Id = base.UserInfo.Group_Id,
StartClassDate=base.ParmJObj.GetStringValue("StartClassDate"), StartClassDate = base.ParmJObj.GetStringValue("StartClassDate"),
EndClassDate=base.ParmJObj.GetStringValue("EndClassDate"), EndClassDate = base.ParmJObj.GetStringValue("EndClassDate"),
TeacherId=base.ParmJObj.GetInt("TeacherId"), TeacherId = base.ParmJObj.GetInt("TeacherId"),
ClassRoomId=base.ParmJObj.GetInt("ClassRoomId"), ClassRoomId = base.ParmJObj.GetInt("ClassRoomId"),
Q_ReserveStatus=base.ParmJObj.GetStringValue("Q_ReserveStatus"), Q_ReserveStatus = base.ParmJObj.GetStringValue("Q_ReserveStatus"),
VisitorName=base.ParmJObj.GetStringValue("VisitorName"), VisitorName = base.ParmJObj.GetStringValue("VisitorName"),
Id=base.ParmJObj.GetInt("Id"), Id = base.ParmJObj.GetInt("Id"),
IsQueryAll=base.ParmJObj.GetInt("IsQueryAll"), IsQueryAll = base.ParmJObj.GetInt("IsQueryAll"),
Visitor_Id=base.ParmJObj.GetInt("Visitor_Id"), Visitor_Id = base.ParmJObj.GetInt("Visitor_Id"),
ReserveClassId=base.ParmJObj.GetInt("ReserveClassId"), ReserveClassId = base.ParmJObj.GetInt("ReserveClassId"),
IsReserve = base.ParmJObj.GetInt("IsReserve", 1),
}; };
if (query.IsQueryAll != 1) if (query.IsQueryAll != 1)
{ {
// query.CreateBy = base.UserInfo.Id; // query.CreateBy = base.UserInfo.Id;
} }
var list = visitorReserveModule.GetVisitorReservePageModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); var list = visitorReserveModule.GetVisitorReservePageModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
foreach (var item in list) foreach (var item in list)
...@@ -69,6 +70,44 @@ namespace Edu.WebApi.Controllers.Duty ...@@ -69,6 +70,44 @@ namespace Edu.WebApi.Controllers.Duty
} }
/// <summary>
/// 根据约课id获取约课详细信息
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetVisitorReserveById()
{
var query = new RB_Visitor_Reserve_Extend()
{
Group_Id = base.UserInfo.Group_Id,
StartClassDate = base.ParmJObj.GetStringValue("StartClassDate"),
EndClassDate = base.ParmJObj.GetStringValue("EndClassDate"),
TeacherId = base.ParmJObj.GetInt("TeacherId"),
ClassRoomId = base.ParmJObj.GetInt("ClassRoomId"),
Q_ReserveStatus = base.ParmJObj.GetStringValue("Q_ReserveStatus"),
VisitorName = base.ParmJObj.GetStringValue("VisitorName"),
Id = base.ParmJObj.GetInt("Id"),
IsQueryAll = base.ParmJObj.GetInt("IsQueryAll"),
Visitor_Id = base.ParmJObj.GetInt("Visitor_Id"),
ReserveClassId = base.ParmJObj.GetInt("ReserveClassId"),
};
if (query.IsQueryAll != 1)
{
// query.CreateBy = base.UserInfo.Id;
}
var list = visitorReserveModule.GetVisitorReservePageModule(1, 10000, out long rowsCount, query);
foreach (var item in list)
{
if (item.CreateBy > 0)
{
item.CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? "";
}
}
return ApiResult.Success(data: list);
}
/// <summary> /// <summary>
/// 获取访客约课列表 /// 获取访客约课列表
/// </summary> /// </summary>
...@@ -88,12 +127,13 @@ namespace Edu.WebApi.Controllers.Duty ...@@ -88,12 +127,13 @@ namespace Edu.WebApi.Controllers.Duty
return ApiResult.Success(data: list); return ApiResult.Success(data: list);
} }
/// <summary> /// <summary>
/// 新增修改访客约课 /// 修改访客约课老师教室班级以及时间
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public ApiResult SetVisitorReserve() public ApiResult SetVisitorReserveClass()
{ {
var model = new RB_Visitor_Reserve_Extend() var model = new RB_Visitor_Reserve_Extend()
{ {
...@@ -102,6 +142,7 @@ namespace Edu.WebApi.Controllers.Duty ...@@ -102,6 +142,7 @@ namespace Edu.WebApi.Controllers.Duty
Remark = base.ParmJObj.GetStringValue("Remark"), Remark = base.ParmJObj.GetStringValue("Remark"),
ReserveClassId = base.ParmJObj.GetInt("ReserveClassId"), ReserveClassId = base.ParmJObj.GetInt("ReserveClassId"),
ClassDate = base.ParmJObj.GetDateTime("ClassDate"), ClassDate = base.ParmJObj.GetDateTime("ClassDate"),
ReservationDate = base.ParmJObj.GetDateTime("ReservationDate"),
ClassTime = base.ParmJObj.GetStringValue("ClassTime"), ClassTime = base.ParmJObj.GetStringValue("ClassTime"),
TeacherId = base.ParmJObj.GetInt("TeacherId"), TeacherId = base.ParmJObj.GetInt("TeacherId"),
ClassRoomId = base.ParmJObj.GetInt("ClassRoomId"), ClassRoomId = base.ParmJObj.GetInt("ClassRoomId"),
...@@ -109,17 +150,73 @@ namespace Edu.WebApi.Controllers.Duty ...@@ -109,17 +150,73 @@ namespace Edu.WebApi.Controllers.Duty
EndTime = base.ParmJObj.GetStringValue("EndTime"), EndTime = base.ParmJObj.GetStringValue("EndTime"),
TrialLessonId = base.ParmJObj.GetInt("TrialLessonId"), TrialLessonId = base.ParmJObj.GetInt("TrialLessonId"),
ReserveType = base.ParmJObj.GetInt("ReserveType", 0), ReserveType = base.ParmJObj.GetInt("ReserveType", 0),
ClassPlanId = base.ParmJObj.GetInt("ClassPlanId", 0) ClassPlanId = base.ParmJObj.GetInt("ClassPlanId", 0),
Demand = base.ParmJObj.GetStringValue("Demand"),
}; };
if (string.IsNullOrEmpty(model.ClassTime)) model.ReserveStatus = 0;
model.Group_Id = base.UserInfo.Group_Id;
model.School_Id = base.UserInfo.School_Id;
model.CreateBy = base.UserInfo.Id;
model.CreateTime = System.DateTime.Now;
model.UpdateBy = base.UserInfo.Id;
model.UpdateTime = System.DateTime.Now;
model.Status = Common.Enum.DateStateEnum.Normal;
if (model.TeacherId == 0 || model.ClassRoomId == 0 || model.TrialLessonId == 0 || string.IsNullOrWhiteSpace(model.EndTime) || string.IsNullOrWhiteSpace(model.ClassTime) || model.ClassDate < Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")))
{ {
return ApiResult.ParamIsNull("请选择预约时间段!"); return ApiResult.ParamIsNull();
} }
if (model.ReserveType == 1 && model.ClassPlanId <= 0) bool retult = visitorReserveModule.SetVisitorReserveModule_V2(model, out string message);
return retult ? ApiResult.Success() : ApiResult.Failed(message: message);
}
/// <summary>
/// 学员反馈信息
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetVisitorReserveFeedback()
{
var model = new RB_Visitor_Reserve_Extend()
{
Id = base.ParmJObj.GetInt("Id"),
Feedback = base.ParmJObj.GetStringValue("Feedback"),
};
model.UpdateBy = base.UserInfo.Id;
model.UpdateTime = System.DateTime.Now;
model.Status = Common.Enum.DateStateEnum.Normal;
if (model.Id == 0 || string.IsNullOrWhiteSpace(model.Feedback))
{ {
return ApiResult.ParamIsNull("请传递选择的跟班计划"); return ApiResult.ParamIsNull();
} }
bool retult = visitorReserveModule.SetVisitorReserveFeedbackModule(model, base.UserInfo);
return retult ? ApiResult.Success() : ApiResult.Failed(message: "反馈信息更新失败");
}
/// <summary>
/// 新增修改访客约课
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetVisitorReserve()
{
var model = new RB_Visitor_Reserve_Extend()
{
Id = base.ParmJObj.GetInt("Id"),
Visitor_Id = base.ParmJObj.GetInt("Visitor_Id"),
Remark = base.ParmJObj.GetStringValue("Remark"),
ReserveClassId = base.ParmJObj.GetInt("ReserveClassId"),
ReservationDate = base.ParmJObj.GetDateTime("ClassDate"),
ClassTime = base.ParmJObj.GetStringValue("ClassTime"),
TeacherId = base.ParmJObj.GetInt("TeacherId"),
ClassRoomId = base.ParmJObj.GetInt("ClassRoomId"),
ClassContent = base.ParmJObj.GetStringValue("ClassContent"),
EndTime = base.ParmJObj.GetStringValue("EndTime"),
TrialLessonId = base.ParmJObj.GetInt("TrialLessonId"),
ReserveType = base.ParmJObj.GetInt("ReserveType", 0),
ClassPlanId = base.ParmJObj.GetInt("ClassPlanId", 0),
Demand = base.ParmJObj.GetStringValue("Demand"),
};
model.ReserveStatus = 0; model.ReserveStatus = 0;
model.Group_Id = base.UserInfo.Group_Id; model.Group_Id = base.UserInfo.Group_Id;
model.School_Id = base.UserInfo.School_Id; model.School_Id = base.UserInfo.School_Id;
...@@ -128,7 +225,10 @@ namespace Edu.WebApi.Controllers.Duty ...@@ -128,7 +225,10 @@ namespace Edu.WebApi.Controllers.Duty
model.UpdateBy = base.UserInfo.Id; model.UpdateBy = base.UserInfo.Id;
model.UpdateTime = System.DateTime.Now; model.UpdateTime = System.DateTime.Now;
model.Status = Common.Enum.DateStateEnum.Normal; model.Status = Common.Enum.DateStateEnum.Normal;
bool retult = visitorReserveModule.SetVisitorReserveModule(model,out string message); model.IsReserve = 1;
//查询负责人信息
bool retult = visitorReserveModule.SetVisitorReserveModule_V2(model, out string message);
return retult ? ApiResult.Success() : ApiResult.Failed(message: message); return retult ? ApiResult.Success() : ApiResult.Failed(message: message);
} }
...@@ -185,11 +285,11 @@ namespace Edu.WebApi.Controllers.Duty ...@@ -185,11 +285,11 @@ namespace Edu.WebApi.Controllers.Duty
var query = new RB_Reserve_Class_Extend() var query = new RB_Reserve_Class_Extend()
{ {
Group_Id = base.UserInfo.Group_Id, Group_Id = base.UserInfo.Group_Id,
StartClassDate=base.ParmJObj.GetStringValue("StartClassDate"), StartClassDate = base.ParmJObj.GetStringValue("StartClassDate"),
EndClassDate=base.ParmJObj.GetStringValue("EndClassDate"), EndClassDate = base.ParmJObj.GetStringValue("EndClassDate"),
TeacherId=base.ParmJObj.GetInt("TeacherId"), TeacherId = base.ParmJObj.GetInt("TeacherId"),
ClassRoomId=base.ParmJObj.GetInt("ClassRoomId"), ClassRoomId = base.ParmJObj.GetInt("ClassRoomId"),
LessonName=base.ParmJObj.GetStringValue("LessonName"), LessonName = base.ParmJObj.GetStringValue("LessonName"),
ReserveType = base.ParmJObj.GetInt("ReserveType") ReserveType = base.ParmJObj.GetInt("ReserveType")
}; };
var list = visitorReserveModule.GetReserveClassPageModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); var list = visitorReserveModule.GetReserveClassPageModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
...@@ -241,8 +341,8 @@ namespace Edu.WebApi.Controllers.Duty ...@@ -241,8 +341,8 @@ namespace Edu.WebApi.Controllers.Duty
ClassTime = base.ParmJObj.GetStringValue("ClassTime"), ClassTime = base.ParmJObj.GetStringValue("ClassTime"),
ClassRoomId = base.ParmJObj.GetInt("ClassRoomId"), ClassRoomId = base.ParmJObj.GetInt("ClassRoomId"),
ClassContent = base.ParmJObj.GetStringValue("ClassContent"), ClassContent = base.ParmJObj.GetStringValue("ClassContent"),
EndTime=base.ParmJObj.GetStringValue("EndTime"), EndTime = base.ParmJObj.GetStringValue("EndTime"),
TrialLessonId=base.ParmJObj.GetInt("TrialLessonId"), TrialLessonId = base.ParmJObj.GetInt("TrialLessonId"),
}; };
if (string.IsNullOrEmpty(model.ClassTime)) if (string.IsNullOrEmpty(model.ClassTime))
{ {
...@@ -255,7 +355,7 @@ namespace Edu.WebApi.Controllers.Duty ...@@ -255,7 +355,7 @@ namespace Edu.WebApi.Controllers.Duty
model.UpdateBy = base.UserInfo.Id; model.UpdateBy = base.UserInfo.Id;
model.UpdateTime = System.DateTime.Now; model.UpdateTime = System.DateTime.Now;
model.Status = Common.Enum.DateStateEnum.Normal; model.Status = Common.Enum.DateStateEnum.Normal;
bool retult = visitorReserveModule.SetReserveClassModule(model,out string message); bool retult = visitorReserveModule.SetReserveClassModule(model, out string message);
return retult ? ApiResult.Success() : ApiResult.Failed(message: message); return retult ? ApiResult.Success() : ApiResult.Failed(message: message);
} }
...@@ -279,7 +379,7 @@ namespace Edu.WebApi.Controllers.Duty ...@@ -279,7 +379,7 @@ namespace Edu.WebApi.Controllers.Duty
public ApiResult RemoveReserveClass() public ApiResult RemoveReserveClass()
{ {
var ReserveClassId = base.ParmJObj.GetInt("ReserveClassId", 0); var ReserveClassId = base.ParmJObj.GetInt("ReserveClassId", 0);
var flag = visitorReserveModule.RemoveReserveClassModule(ReserveClassId,base.UserInfo,out string message); var flag = visitorReserveModule.RemoveReserveClassModule(ReserveClassId, base.UserInfo, out string message);
return flag ? ApiResult.Success() : ApiResult.Failed(message: message); return flag ? ApiResult.Success() : ApiResult.Failed(message: message);
} }
#endregion #endregion
...@@ -322,5 +422,33 @@ namespace Edu.WebApi.Controllers.Duty ...@@ -322,5 +422,33 @@ namespace Edu.WebApi.Controllers.Duty
#endregion #endregion
#region 留学需求单
/// <summary>
/// 新增修改留学需求单
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetStudyAbroad()
{
var model = new RB_Visitor_Reserve_Extend()
{
Id = base.ParmJObj.GetInt("Id"),
Visitor_Id = base.ParmJObj.GetInt("Visitor_Id"),
Remark = base.ParmJObj.GetStringValue("Remark"),
};
model.ReserveStatus = 0;
model.Group_Id = base.UserInfo.Group_Id;
model.School_Id = base.UserInfo.School_Id;
model.CreateBy = base.UserInfo.Id;
model.CreateTime = System.DateTime.Now;
model.UpdateBy = base.UserInfo.Id;
model.UpdateTime = System.DateTime.Now;
model.Status = Common.Enum.DateStateEnum.Normal;
model.IsReserve = 2;
bool retult = visitorReserveModule.SetStudyAbroad(model, base.UserInfo);
return retult ? ApiResult.Success() : ApiResult.Failed(message: "留学需求单操作失败");
}
#endregion
} }
} }
...@@ -1143,6 +1143,7 @@ namespace Edu.WebApi.Controllers.User ...@@ -1143,6 +1143,7 @@ namespace Edu.WebApi.Controllers.User
return flag ? ApiResult.Success(data: extModel) : ApiResult.Failed(); return flag ? ApiResult.Success(data: extModel) : ApiResult.Failed();
} }
/// <summary> /// <summary>
/// 修改客户阶段 /// 修改客户阶段
/// </summary> /// </summary>
...@@ -1361,7 +1362,7 @@ namespace Edu.WebApi.Controllers.User ...@@ -1361,7 +1362,7 @@ namespace Edu.WebApi.Controllers.User
QQ = base.ParmJObj.GetStringValue("QQ"), QQ = base.ParmJObj.GetStringValue("QQ"),
StuType = base.ParmJObj.GetInt("StuType"), StuType = base.ParmJObj.GetInt("StuType"),
StuRealMobile = base.ParmJObj.GetStringValue("StuRealMobile"), StuRealMobile = base.ParmJObj.GetStringValue("StuRealMobile"),
StudentType = base.ParmJObj.GetInt("StuType", 1), StudentType = base.ParmJObj.GetInt("StudentType", 1),
}; };
extModel.CreateType = StuCreateTypeEnum.CustomerInput; extModel.CreateType = StuCreateTypeEnum.CustomerInput;
extModel.Status = DateStateEnum.Normal; extModel.Status = DateStateEnum.Normal;
......
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