Commit 8c920f07 authored by 吴春's avatar 吴春

解决冲突

parents c7d97168 44d5c93d
......@@ -273,5 +273,10 @@ namespace Edu.Model.Entity.Course
/// 预约单号
/// </summary>
public int VisitorReserveId { get; set; }
/// <summary>
/// 是否续班订单(1-是)
/// </summary>
public int IsRenewOrder { get; set; }
}
}
......@@ -175,5 +175,13 @@ namespace Edu.Model.ViewModel.Course
/// 已上课次数
/// </summary>
public int Ranks { get; set; }
/// 是否续班订单
/// </summary>
public int IsRenewOrder { get; set; }
/// <summary>
/// 续课订单编号
/// </summary>
public int RenewOrderId { get; set; }
}
}
\ No newline at end of file
......@@ -180,5 +180,10 @@ namespace Edu.Model.ViewModel.Course
return str;
}
}
/// <summary>
/// 园学员编号【续课使用】
/// </summary>
public int OldGuestId { get; set; }
}
}
\ No newline at end of file
......@@ -1227,7 +1227,8 @@ namespace Edu.Module.Course
item.Mobile,
item.OrderId,
ClassHours = item.CompleteHours + "-" + (classModel?.ClassHours ?? 0),
IsRenew = courseModel?.IsRenew ?? 0,
IsRenew = item.IsRenewOrder,
item.RenewOrderId,
CheckStatus = checkStatus,
item.IsChaBan,
item.StartClassHours,
......
......@@ -309,7 +309,7 @@ namespace Edu.Module.Course
/// <param name="userInfo"></param>
/// <returns></returns>
[TransactionCallHandler]
public virtual bool SetClassOrder(RB_Order_ViewModel demodel, UserInfo userInfo, bool isEditOrder, out string message)
public virtual bool SetClassOrderModule(RB_Order_ViewModel demodel, UserInfo userInfo, bool isEditOrder, out string message)
{
bool flag = false;
message = "";
......@@ -693,6 +693,53 @@ namespace Edu.Module.Course
SetOrderGuestInfo(guestModel, out string Nmessage);
}
#endregion
#region 续课订单 添加学员名单
if (flag && demodel.RenewOrderId > 0 && demodel.OldGuestId>0)
{
var oldGuestModel = order_GuestRepository.GetEntity(demodel.OldGuestId);
var guestModel = new RB_Order_Guest_ViewModel()
{
Id = 0,
OrderId = demodel.OrderId,
ClassId = demodel.ClassId,
GuestName = oldGuestModel?.GuestName ?? "",
GuestState = 1,
Profession = oldGuestModel?.Profession??"",
Sex = oldGuestModel?.Sex??1,
Age = oldGuestModel?.Age ?? 18,
Mobile = oldGuestModel?.Mobile ?? "",
Basics = oldGuestModel?.Basics,
Education = oldGuestModel?.Education?? GuestEducationEnum.N2,
GuestSource = demodel.OrderSource,
LearningGoals = oldGuestModel?.LearningGoals??GuestLearningGoalsEnum.Love,
Contact = oldGuestModel?.Contact??"",
ContactMobile = oldGuestModel?.ContactMobile?? "",
Status = 0,
Group_Id = demodel.Group_Id,
School_Id = demodel.School_Id,
CreateBy = demodel.CreateBy,
CreateTime = demodel.CreateTime,
UpdateBy = demodel.UpdateBy,
UpdateTime = demodel.UpdateTime,
DropOutRemark = "",
IDCard = oldGuestModel?.IDCard??"",
Domicile = oldGuestModel?.Domicile ?? "",
ContactAddress = oldGuestModel?.ContactAddress ?? "",
SourceId = 0,
GraduatedSchool = oldGuestModel?.GraduatedSchool ?? "",
GraduatedMajor = oldGuestModel?.GraduatedMajor ?? "",
VolunteerMajor = oldGuestModel?.VolunteerMajor ?? "",
Price = 0,
StudyRemark = "",
TotalHours = Convert.ToInt32(courseModel.ClassHours),
CompleteHours = 0,
MakeUpHours = 0,
StuIcon = "",
};
SetOrderGuestInfo(guestModel, out string Nmessage);
}
#endregion
}
#region 写日志
......@@ -814,7 +861,7 @@ namespace Edu.Module.Course
/// <param name="userInfo"></param>
/// <returns></returns>
[TransactionCallHandler]
public virtual bool SetStudyOrder(RB_Order_ViewModel demodel, UserInfo userInfo, out string message)
public virtual bool SetStudyOrderModule(RB_Order_ViewModel demodel, UserInfo userInfo, out string message)
{
bool flag = false;
message = "";
......
......@@ -40,11 +40,7 @@ namespace Edu.Module.Course
/// </summary>
private readonly RB_Student_BackRecordRepository student_BackRecordRepository = new RB_Student_BackRecordRepository();
/// <summary>
/// 课程优惠仓储层对象
/// </summary>
private readonly RB_Course_PreferentialRepository course_PreferentialRepository = new RB_Course_PreferentialRepository();
/// <summary>
/// 旅客表仓储层对象
/// </summary>
......@@ -953,139 +949,7 @@ namespace Edu.Module.Course
return msg;
}
/// <summary>
/// 学员续课订单
/// </summary>
/// <param name="orderId"></param>
/// <param name="guestId"></param>
/// <param name="orderModel">订单实体类</param>
/// <param name="message">提示信息</param>
/// <returns></returns>
public virtual bool RenewOrderModule(int orderId, int guestId, RB_Order_ViewModel orderModel, out string message)
{
bool flag = false;
message = "";
var oldOrderModel = orderRepository.GetEntity(orderId);
if (oldOrderModel == null)
{
message = "原订单不存在!请核实在重新申请!";
flag = false;
return flag;
}
if (oldOrderModel.OrderState == OrderStateEnum.Cancel)
{
message = "原订单已取消!请核实在重新申请!";
flag = false;
return flag;
}
var oldGuestModel = order_GuestRepository.GetEntity(guestId);
if (oldGuestModel == null)
{
message = "原旅客信息不存在!请核实在重新申请!";
flag = false;
return flag;
}
if (oldGuestModel.GuestState != 1)
{
message = "原旅客状态不正确!请核实在重新申请!";
flag = false;
return flag;
}
var classModel = classRepository.GetEntity(orderModel.ClassId);
orderModel.School_Id = classModel?.School_Id ?? 0;
orderModel.EnterID = oldOrderModel.EnterID;
orderModel.OrderState = OrderStateEnum.Normal;
orderModel.OrderSource = oldOrderModel.OrderSource;
orderModel.OrderForm = oldOrderModel.OrderForm;
int CourseId = classModel?.CouseId ?? 0;
#region 计算订单提成信息
if (CourseId > 0)
{
//获取课程优惠
var coursePreferentialList = course_PreferentialRepository.GetCoursePreferentialListRepostory(new RB_Course_Preferential_Extend()
{
CourseId = CourseId
});
RB_Course_Preferential_Extend coursePreferentialModel = null;
if (coursePreferentialList != null && coursePreferentialList.Count > 0)
{
if (orderModel.GuestNum == 1)
{
coursePreferentialModel = coursePreferentialList?.Where(qitem => qitem.PriceDiscountType == CoursePriceDiscountEnum.SingleJoin)?.FirstOrDefault();
}
if (orderModel.GuestNum >= 2)
{
coursePreferentialModel = coursePreferentialList?.Where(qitem => qitem.PriceDiscountType == CoursePriceDiscountEnum.DoubleJoin)?.FirstOrDefault();
}
#region 记录提成信息
if (coursePreferentialModel == null)
{
coursePreferentialModel = coursePreferentialList.FirstOrDefault();
}
orderModel.CommissionType = coursePreferentialModel?.SaleCommissionType ?? 0;
orderModel.CommissionRate = coursePreferentialModel?.SaleCommissionMoney ?? 0;
orderModel.CommissionTypeTH = coursePreferentialModel?.B2BCommissionType ?? 0;
orderModel.CommissionRateTH = coursePreferentialModel?.B2BCommissionMoney ?? 0;
if (coursePreferentialModel != null)
{
orderModel.CommissionRemark = "使用优惠Id:" + coursePreferentialModel.Id + " 返佣类型:" + orderModel.CommissionType + " 返佣比例/金额:" + orderModel.CommissionRate + " 同行返佣类型:" + orderModel.CommissionTypeTH + " 同行返佣比例/金额:" + orderModel.CommissionRateTH;
}
#endregion
}
}
#endregion
orderModel.RenewOrderId = orderId;
orderModel.OrderType = Common.Enum.Sale.OrderTypeEnum.CourseOrder;
//新增订单
var newOrderId = orderRepository.Insert(orderModel);
orderModel.OrderId = newOrderId;
flag = newOrderId > 0;
if (flag)
{
//新增旅客
var guestModel = new RB_Order_Guest()
{
OrderId = orderModel.OrderId,
ClassId = orderModel.ClassId,
GuestName = oldGuestModel.GuestName,
GuestState = 1,
Profession = oldGuestModel?.Profession ?? "",
Sex = oldGuestModel?.Sex ?? 1,
Age = oldGuestModel?.Age ?? 0,
Mobile = oldGuestModel?.Mobile ?? "",
Basics = oldGuestModel?.Basics ?? "",
Education = oldGuestModel?.Education ?? 0,
GuestSource = oldGuestModel?.GuestSource ?? 0,
LearningGoals = oldGuestModel?.LearningGoals ?? 0,
Contact = oldGuestModel?.Contact ?? "",
ContactMobile = oldGuestModel?.ContactMobile ?? "",
Status = 0,
Group_Id = orderModel.Group_Id,
School_Id = orderModel?.School_Id ?? 0,
CreateBy = orderModel.CreateBy,
CreateTime = orderModel.CreateTime,
UpdateBy = orderModel.UpdateBy,
UpdateTime = orderModel.UpdateTime,
DropOutRemark = "",
};
var newGuestId = order_GuestRepository.Insert(guestModel);
guestModel.Id = newGuestId;
flag = newGuestId > 0;
}
if (flag)
{
Dictionary<string, object> orderFileds = new Dictionary<string, object>()
{
{nameof(RB_Order.RenewOrderId), newOrderId}
};
flag = orderRepository.Update(orderFileds, new WhereHelper(nameof(RB_Order.OrderId), orderId));
}
return flag;
}
/// <summary>
/// 获取续费课程列表
/// </summary>
......
......@@ -65,7 +65,7 @@ namespace Edu.Repository.Course
string sql = $@"
SELECT A.*,IFNULL(B.IsChaBan,0) AS IsChaBan,IFNULL(B.StartClassHours,0) AS StartClassHours,IFNULL(C.CourseName,'') AS CourseName
,B.EffectStatus,B.EffectTime,B.UpOrderId,B.OrderType,B.CourseId
,B.EffectStatus,B.EffectTime,B.UpOrderId,B.OrderType,B.CourseId,B.IsRenewOrder,B.RenewOrderId
FROM RB_Order_Guest AS A LEFT JOIN rb_order AS B ON A.OrderId=B.OrderId
LEFT JOIN rb_course AS C ON (B.CourseId=C.CourseId AND B.CourseId>0 AND B.OrderType=1)
WHERE {where}";
......
......@@ -231,6 +231,7 @@ namespace Edu.WebApi.Controllers.Course
EffectTime = Common.ConvertHelper.FormatDate(x.EffectTime),
x.UpOrderId,
x.VisitorReserveId,
x.RenewOrderId,
SaleRemarkList = x.SaleRemarkList.Select(z => new
{
z.Id,
......@@ -502,11 +503,11 @@ namespace Edu.WebApi.Controllers.Course
return ApiResult.ParamIsNull(message: "请选择插班课程!");
}
}
flag = orderModule.SetClassOrder(demodel, userInfo, base.CheckUserActionAuth("Edit_Order"), out message);
flag = orderModule.SetClassOrderModule(demodel, userInfo, base.CheckUserActionAuth("Edit_Order"), out message);
}
else
{
flag = orderModule.SetStudyOrder(demodel, userInfo, out message);
flag = orderModule.SetStudyOrderModule(demodel, userInfo, out message);
}
return flag ? ApiResult.Success(message: message) : ApiResult.Failed(message: message);
}
......@@ -1229,6 +1230,7 @@ namespace Edu.WebApi.Controllers.Course
x.UpOrderId,
OpenTime = Common.ConvertHelper.FormatDate(x.OpenTime),
x.VisitorReserveId,
x.RenewOrderId,
SaleRemarkList = x?.SaleRemarkList.Select(z => new
{
z.Id,
......@@ -1380,6 +1382,7 @@ namespace Edu.WebApi.Controllers.Course
EffectTime = Common.ConvertHelper.FormatDate(x.EffectTime),
x.UpOrderId,
x.VisitorReserveId,
x.RenewOrderId,
SaleRemarkList = x?.SaleRemarkList.Select(z => new
{
z.Id,
......
......@@ -181,24 +181,47 @@ namespace Edu.WebApi.Controllers.Course
int OrderId = base.ParmJObj.GetInt("OrderId");
//学员编号
int guestId = base.ParmJObj.GetInt("GuestId");
var oldOrderModel = orderModule.GetClassOrderInfoModule(OrderId);
var orderModel = new RB_Order_ViewModel()
{
OrderId=0,
ClassId = base.ParmJObj.GetInt("ClassId"),//班级编号
GuestNum = 1,
OrderSource= oldOrderModel.OrderSource,
OrderType=oldOrderModel.OrderType,
Class_Price = base.ParmJObj.GetDecimal("Class_Price"),//单价
Unit_Price = base.ParmJObj.GetDecimal("Class_Price"),//成交单价
GuestNum = 1,
PreferPrice = base.ParmJObj.GetDecimal("PreferPrice"),//应收,
Income = 0,
ClassId = base.ParmJObj.GetInt("ClassId"),//班级编号
HelpEnterId=0,
GeneralOccupation="",
EduOccupation="",
SaleRemark =base.ParmJObj.GetStringValue("SaleRemark"),//销售备注
CreateBy=base.UserInfo.Id,
CreateTime=DateTime.Now,
UpdateBy=base.UserInfo.Id,
UpdateTime=DateTime.Now,
Dept_Id=base.UserInfo.DeptId,
Group_Id=base.UserInfo.Group_Id,
SourceId=0,
IsLessPrice=0,
LessPrice=0,
OrderNature=oldOrderModel.OrderNature,
OldPreferPrice = base.ParmJObj.GetDecimal("PreferPrice"),//应收,
CourseId=0,
StartClassHours=0,
IsChaBan=0,
UpOrderId=0,
VisitorReserveId=0,
IsRenewOrder=1,
};
//orderModule.SetClassOrder(orderModel,base.UserInfo, base.CheckUserActionAuth("Edit_Order"), out message)
bool flag = studentBillModule.RenewOrderModule(OrderId, guestId, orderModel, out string message);
orderModel.Group_Id = base.UserInfo.Group_Id;
orderModel.School_Id = base.UserInfo.School_Id;
orderModel.Dept_Id = base.UserInfo.DeptId;
orderModel.OrderForm = OrderFormEnum.Computer;
orderModel.EnterID = base.UserInfo.Id;
orderModel.OrderState = OrderStateEnum.Normal;
orderModel.TradeWay = TradeWayEnum.OnLine;
orderModel.CreateBy = base.UserInfo.Id;
orderModel.CreateTime = DateTime.Now;
orderModel.UpdateBy = base.UserInfo.Id;
orderModel.UpdateTime = DateTime.Now;
orderModel.OldGuestId = guestId;
bool flag = orderModule.SetClassOrderModule(orderModel, base.UserInfo, base.CheckUserActionAuth("Edit_Order"), out string message);
return flag ? ApiResult.Success() : ApiResult.Failed(message: message);
}
......
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