Commit 200fd992 authored by 黄奎's avatar 黄奎

新增字段

parent aba83108
using Edu.Common.Plugin;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Common.Enum.Sale
{
/// <summary>
/// 订单类型枚举
/// </summary>
public enum OrderTypeEnum
{
/// <summary>
/// 班级课程订单
/// </summary>
[EnumField("班级课程订单")]
CourseOrder = 1,
/// <summary>
/// 留学订单
/// </summary>
[EnumField("留学就业订单")]
StudyabroadOrder = 2,
}
}
using Edu.Common.Enum;
using Edu.Common.Enum.Course;
using Edu.Common.Enum.Sale;
using System;
using VT.FW.DB;
......@@ -153,5 +154,15 @@ namespace Edu.Model.Entity.Course
/// 报价单id
/// </summary>
public int OfferId { get; set; }
/// <summary>
/// 订单类型
/// </summary>
public OrderTypeEnum OrderType { get; set; }
/// <summary>
/// 来源编号(OrderType=1,SourceId=0),(OrderType=2,SourceId=留学就业产品对应编号)
/// </summary>
public int SourceId { get; set; }
}
}
......@@ -105,5 +105,10 @@ namespace Edu.Model.ViewModel.Course
/// 取消人数
/// </summary>
public int CancelNum { get; set; }
/// <summary>
/// 留学就业产品名称
/// </summary>
public string StudyName { get; set; }
}
}
\ No newline at end of file
using Edu.Cache.User;
using Edu.AOP.CustomerAttribute;
using Edu.Cache.User;
using Edu.Common.API;
using Edu.Common.Enum;
using Edu.Common.Enum.Course;
......@@ -9,6 +10,7 @@ using Edu.Model.ViewModel.Log;
using Edu.Model.ViewModel.User;
using Edu.Repository.Course;
using Edu.Repository.Log;
using Edu.Repository.StudyAbroad;
using Edu.Repository.User;
using System;
using System.Collections.Generic;
......@@ -71,11 +73,17 @@ namespace Edu.Module.Course
/// 学生关联
/// </summary>
private readonly RB_Student_OrderGuestRepository student_OrderGuestRepository = new RB_Student_OrderGuestRepository();
/// <summary>
/// 账号
/// </summary>
private readonly RB_AccountRepository accountRepository = new RB_AccountRepository();
/// <summary>
/// 留学就业仓储层对象
/// </summary>
private readonly RB_StudyAbroadRepository studyAbroadRepository = new RB_StudyAbroadRepository();
#region 日语培训
......@@ -150,25 +158,47 @@ namespace Edu.Module.Course
/// <param name="demodel"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
public ApiResult SetClassOrder(RB_Order_ViewModel demodel, UserInfo userInfo)
[TransactionCallHandler]
public bool SetClassOrder(RB_Order_ViewModel demodel, UserInfo userInfo, out string message)
{
bool flag = false;
message = "";
if (demodel.OrderId > 0)
{
var orderModel = orderRepository.GetEntity(demodel.OrderId);
if (orderModel == null) { return ApiResult.Failed("订单不存在"); }
if (orderModel.OrderState == Common.Enum.Course.OrderStateEnum.Cancel) { return ApiResult.Failed("取消订单无法修改"); }
if (orderModel == null)
{
flag = false;
message = "订单不存在";
return flag;
}
if (orderModel.OrderState == Common.Enum.Course.OrderStateEnum.Cancel)
{
flag = false;
message = "取消订单无法修改";
return flag;
}
var classModel = classRepository.GetEntity(orderModel.ClassId);
if (classModel == null) { return ApiResult.Failed("班级不存在"); }
if (classModel == null)
{
flag = false;
message = "班级不存在";
return flag;
}
int BNum = orderRepository.GetClassOrderPeopleNum(demodel.ClassId.ToString()).FirstOrDefault()?.GuestNum ?? 0;
if (BNum + demodel.GuestNum - orderModel.GuestNum > classModel.ClassPersion)
{
return ApiResult.Failed("人数报超" + (classModel.ClassPersion - (BNum + demodel.GuestNum - orderModel.GuestNum)));
flag = false;
message = "人数报超" + (classModel.ClassPersion - (BNum + demodel.GuestNum - orderModel.GuestNum));
return flag;
}
#region 验证学生名单数量
var glist = order_GuestRepository.GetList(new RB_Order_Guest_ViewModel() { Group_Id = demodel.Group_Id, OrderId = demodel.OrderId, GuestState = 1 });
if (glist.Count() > demodel.GuestNum)
{
return ApiResult.Failed("请先取消学生名单再修改订单人员数量");
flag = false;
message = "请先取消学生名单再修改订单人员数量";
return flag;
}
#endregion
decimal MinPrice = orderModel.Class_Price;
......@@ -179,175 +209,333 @@ namespace Edu.Module.Course
{
MinPrice = spList.Where(x => demodel.GuestNum >= x.PersionNum).OrderByDescending(x => x.PersionNum).FirstOrDefault().PersionPrice;
}
}
if (demodel.Unit_Price < MinPrice) {
return ApiResult.Failed("成交单价不能小于最低价格");
}
if (demodel.PreferPrice != demodel.Unit_Price * demodel.GuestNum){
return ApiResult.Failed("应收总额不正确");
if (demodel.Unit_Price < MinPrice)
{
flag = false;
message = "成交单价不能小于最低价格";
return flag;
}
var trans = orderRepository.DbTransaction;
try
if (demodel.PreferPrice != demodel.Unit_Price * demodel.GuestNum)
{
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Order_ViewModel.GuestNum),demodel.GuestNum},
{ nameof(RB_Order_ViewModel.Unit_Price),demodel.Unit_Price},
{ nameof(RB_Order_ViewModel.PreferPrice),demodel.PreferPrice},
{ nameof(RB_Order_ViewModel.OrderSource),demodel.OrderSource},
{ nameof(RB_Order_ViewModel.SaleRemark),demodel.SaleRemark}
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Order_ViewModel.OrderId),
FiledValue=demodel.OrderId,
OperatorEnum=OperatorEnum.Equal
}
};
var flag = orderRepository.Update(keyValues, wheres, trans);
if (flag) {
//记录日志信息
string LogContent = $"修改日语培训订单【{demodel.OrderId}】";
if (orderModel.GuestNum != demodel.GuestNum)
{
LogContent += $",人数由【{orderModel.GuestNum}】修改为【{demodel.GuestNum}】";
}
if (orderModel.Unit_Price != demodel.Unit_Price)
{
LogContent += $",成交单价由【{orderModel.Unit_Price}】修改为【{demodel.Unit_Price}】";
}
if (orderModel.PreferPrice != demodel.PreferPrice)
{
LogContent += $",应收金额由【{orderModel.PreferPrice}】修改为【{demodel.PreferPrice}】";
}
if (orderModel.OrderSource != demodel.OrderSource)
{
LogContent += $",客人来源由【{orderModel.OrderSource.ToName()}】修改为【{demodel.OrderSource.ToName()}】";
}
//记录订单备注
if (orderModel.SaleRemark != demodel.SaleRemark)
{
LogContent += $",销售备注由【{orderModel.SaleRemark}】修改为【{demodel.SaleRemark}】";
order_RemarkRepository.Insert(new Model.Entity.Course.RB_Order_Remark()
{
Id = 0,
Content = demodel.SaleRemark,
CreateBy = demodel.CreateBy,
CreateTime = DateTime.Now,
OrderId = demodel.OrderId,
Type = 1
}, trans);
}
changeLogRepository.Insert(new Model.Entity.Log.RB_User_ChangeLog()
flag = false;
message = "应收总额不正确";
return flag;
}
Dictionary<string, object> keyValues = new Dictionary<string, object>()
{
{ nameof(RB_Order_ViewModel.GuestNum),demodel.GuestNum},
{ nameof(RB_Order_ViewModel.Unit_Price),demodel.Unit_Price},
{ nameof(RB_Order_ViewModel.PreferPrice),demodel.PreferPrice},
{ nameof(RB_Order_ViewModel.OrderSource),demodel.OrderSource},
{ nameof(RB_Order_ViewModel.SaleRemark),demodel.SaleRemark}
};
flag = orderRepository.Update(keyValues, new WhereHelper(nameof(RB_Order_ViewModel.OrderId), demodel.OrderId));
if (flag)
{
//记录日志信息
string LogContent = $"修改日语培训订单【{demodel.OrderId}】";
if (orderModel.GuestNum != demodel.GuestNum)
{
LogContent += $",人数由【{orderModel.GuestNum}】修改为【{demodel.GuestNum}】";
}
if (orderModel.Unit_Price != demodel.Unit_Price)
{
LogContent += $",成交单价由【{orderModel.Unit_Price}】修改为【{demodel.Unit_Price}】";
}
if (orderModel.PreferPrice != demodel.PreferPrice)
{
LogContent += $",应收金额由【{orderModel.PreferPrice}】修改为【{demodel.PreferPrice}】";
}
if (orderModel.OrderSource != demodel.OrderSource)
{
LogContent += $",客人来源由【{orderModel.OrderSource.ToName()}】修改为【{demodel.OrderSource.ToName()}】";
}
//记录订单备注
if (orderModel.SaleRemark != demodel.SaleRemark)
{
LogContent += $",销售备注由【{orderModel.SaleRemark}】修改为【{demodel.SaleRemark}】";
order_RemarkRepository.Insert(new Model.Entity.Course.RB_Order_Remark()
{
Id = 0,
Type = 2,
CreateBy = userInfo.Id,
Content = demodel.SaleRemark,
CreateBy = demodel.CreateBy,
CreateTime = DateTime.Now,
Group_Id = userInfo.Group_Id,
LogContent = LogContent,
School_Id = userInfo.School_Id,
SourceId = demodel.OrderId
}, trans);
OrderId = demodel.OrderId,
Type = 1
});
}
orderRepository.DBSession.Commit();
return ApiResult.Success();
}
catch (Exception ex)
{
LogHelper.Write(ex, "SetClassOrder");
orderRepository.DBSession.Rollback();
return ApiResult.Failed();
changeLogRepository.Insert(new Model.Entity.Log.RB_User_ChangeLog()
{
Id = 0,
Type = 2,
CreateBy = userInfo.Id,
CreateTime = DateTime.Now,
Group_Id = userInfo.Group_Id,
LogContent = LogContent,
School_Id = userInfo.School_Id,
SourceId = demodel.OrderId
});
}
}
else
{
//查询班级信息
var classModel = classRepository.GetEntity(demodel.ClassId);
if (classModel == null) {
return ApiResult.Failed("班级不存在");
if (classModel == null)
{
flag = false;
message = "班级不存在";
return flag;
}
if (classModel.ClassStatus != Common.Enum.Course.ClassStatusEnum.NonOpenClass) {
return ApiResult.Failed("班级状态不正确");
if (classModel.ClassStatus != Common.Enum.Course.ClassStatusEnum.NonOpenClass)
{
flag = false;
message = "班级状态不正确";
return flag;
}
if (classModel.EndOrderTime < Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"))) {
return ApiResult.Failed("已过期,无法报名");
if (classModel.EndOrderTime < Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")))
{
flag = false;
message = "已过期,无法报名";
return flag;
}
int BNum = orderRepository.GetClassOrderPeopleNum(demodel.ClassId.ToString()).FirstOrDefault()?.GuestNum ?? 0;
if (BNum + demodel.GuestNum > classModel.ClassPersion) {
return ApiResult.Failed("人数报超" + (classModel.ClassPersion - (BNum + demodel.GuestNum)));
if (BNum + demodel.GuestNum > classModel.ClassPersion)
{
flag = false;
message = "人数报超" + (classModel.ClassPersion - (BNum + demodel.GuestNum));
return flag;
}
demodel.Class_Price = classModel.SellPrice;
decimal MinPrice = classModel.SellPrice;
List<RB_Class_StepPrice_ViewModel> spList = new List<RB_Class_StepPrice_ViewModel>();
if (classModel.IsStepPrice == 1) {
if (classModel.IsStepPrice == 1)
{
spList = class_StepPriceRepository.GetClassStepPriceListRepository(new RB_Class_StepPrice_ViewModel() { ClassId = demodel.ClassId });
if (spList.Any() && demodel.GuestNum > 1)
{
MinPrice = spList.Where(x => demodel.GuestNum >= x.PersionNum).OrderByDescending(x => x.PersionNum).FirstOrDefault().PersionPrice;
}
}
if (demodel.Unit_Price < MinPrice) {
return ApiResult.Failed("成交单价不能小于最低价格");
if (demodel.Unit_Price < MinPrice)
{
flag = false;
message = "成交单价不能小于最低价格";
return flag;
}
if (demodel.PreferPrice != demodel.Unit_Price * demodel.GuestNum) {
return ApiResult.Failed("应收总额不正确");
if (demodel.PreferPrice != demodel.Unit_Price * demodel.GuestNum)
{
flag = false;
message = "应收总额不正确";
return flag;
}
var trans = orderRepository.DbTransaction;
try
int OrderId = orderRepository.Insert(demodel);
flag = OrderId > 0;
if (flag)
{
int OrderId = orderRepository.Insert(demodel, trans);
bool flag = OrderId > 0;
if (flag)
//记录历史阶梯价格
foreach (var item in spList)
{
//记录历史阶梯价格
foreach (var item in spList)
order_StepPriceRepository.Insert(new Model.Entity.Course.RB_Order_StepPrice()
{
order_StepPriceRepository.Insert(new Model.Entity.Course.RB_Order_StepPrice()
{
Id = 0,
Group_Id = demodel.Group_Id,
OrderId = OrderId,
PersionNum = item.PersionNum,
PersionPrice = item.PersionPrice,
School_Id = demodel.School_Id
}, trans);
}
//记录订单备注
if (!string.IsNullOrEmpty(demodel.SaleRemark))
Id = 0,
Group_Id = demodel.Group_Id,
OrderId = OrderId,
PersionNum = item.PersionNum,
PersionPrice = item.PersionPrice,
School_Id = demodel.School_Id
});
}
//记录订单备注
if (!string.IsNullOrEmpty(demodel.SaleRemark))
{
order_RemarkRepository.Insert(new Model.Entity.Course.RB_Order_Remark()
{
order_RemarkRepository.Insert(new Model.Entity.Course.RB_Order_Remark()
{
Id = 0,
Content = demodel.SaleRemark,
CreateBy = demodel.CreateBy,
CreateTime = DateTime.Now,
OrderId = OrderId,
Type = 1
}, trans);
}
//记录日志信息
changeLogRepository.Insert(new Model.Entity.Log.RB_User_ChangeLog()
Id = 0,
Content = demodel.SaleRemark,
CreateBy = demodel.CreateBy,
CreateTime = DateTime.Now,
OrderId = OrderId,
Type = 1
});
}
//记录日志信息
changeLogRepository.Insert(new Model.Entity.Log.RB_User_ChangeLog()
{
Id = 0,
Type = 2,
CreateBy = userInfo.Id,
CreateTime = DateTime.Now,
Group_Id = userInfo.Group_Id,
LogContent = "新增日语培训订单",
School_Id = userInfo.School_Id,
SourceId = OrderId
});
}
}
return flag;
}
/// <summary>
/// 留学就业下单
/// </summary>
/// <param name="demodel"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
[TransactionCallHandler]
public bool SetStudyOrder(RB_Order_ViewModel demodel, UserInfo userInfo, out string message)
{
bool flag = false;
message = "";
if (demodel.OrderId > 0)
{
var orderModel = orderRepository.GetEntity(demodel.OrderId);
if (orderModel == null)
{
flag = false;
message = "订单不存在";
return flag;
}
if (orderModel.OrderState == Common.Enum.Course.OrderStateEnum.Cancel)
{
flag = false;
message = "取消订单无法修改";
return flag;
}
var studyModel = studyAbroadRepository.GetEntity(orderModel.SourceId);
if (studyModel == null)
{
flag = false;
message = "留学就业产品不存在";
return flag;
}
if (demodel.PreferPrice != demodel.Unit_Price * demodel.GuestNum)
{
flag = false;
message = "应收总额不正确";
return flag;
}
Dictionary<string, object> keyValues = new Dictionary<string, object>()
{
{ nameof(RB_Order_ViewModel.GuestNum),demodel.GuestNum},
{ nameof(RB_Order_ViewModel.Unit_Price),demodel.Unit_Price},
{ nameof(RB_Order_ViewModel.PreferPrice),demodel.PreferPrice},
{ nameof(RB_Order_ViewModel.OrderSource),demodel.OrderSource},
{ nameof(RB_Order_ViewModel.SaleRemark),demodel.SaleRemark}
};
flag = orderRepository.Update(keyValues, new WhereHelper(nameof(RB_Order_ViewModel.OrderId), demodel.OrderId));
if (flag)
{
//记录日志信息
string LogContent = $"修改留学就业订单【{demodel.OrderId}】";
if (orderModel.GuestNum != demodel.GuestNum)
{
LogContent += $",人数由【{orderModel.GuestNum}】修改为【{demodel.GuestNum}】";
}
if (orderModel.Unit_Price != demodel.Unit_Price)
{
LogContent += $",成交单价由【{orderModel.Unit_Price}】修改为【{demodel.Unit_Price}】";
}
if (orderModel.PreferPrice != demodel.PreferPrice)
{
LogContent += $",应收金额由【{orderModel.PreferPrice}】修改为【{demodel.PreferPrice}】";
}
if (orderModel.OrderSource != demodel.OrderSource)
{
LogContent += $",客人来源由【{orderModel.OrderSource.ToName()}】修改为【{demodel.OrderSource.ToName()}】";
}
//记录订单备注
if (orderModel.SaleRemark != demodel.SaleRemark)
{
LogContent += $",销售备注由【{orderModel.SaleRemark}】修改为【{demodel.SaleRemark}】";
order_RemarkRepository.Insert(new Model.Entity.Course.RB_Order_Remark()
{
Id = 0,
Type = 2,
CreateBy = userInfo.Id,
Content = demodel.SaleRemark,
CreateBy = demodel.CreateBy,
CreateTime = DateTime.Now,
Group_Id = userInfo.Group_Id,
LogContent = "新增日语培训订单",
School_Id = userInfo.School_Id,
SourceId = OrderId
}, trans);
OrderId = demodel.OrderId,
Type = 1
});
}
orderRepository.DBSession.Commit();
return ApiResult.Success();
changeLogRepository.Insert(new Model.Entity.Log.RB_User_ChangeLog()
{
Id = 0,
Type = 2,
CreateBy = userInfo.Id,
CreateTime = DateTime.Now,
Group_Id = userInfo.Group_Id,
LogContent = LogContent,
School_Id = userInfo.School_Id,
SourceId = demodel.OrderId
});
}
}
else
{
//查询留学就业产品
var studyModel = studyAbroadRepository.GetEntity(demodel.SourceId);
if (studyModel == null)
{
flag = false;
message = "留学就业产品不存在";
return flag;
}
if (studyModel.SaleState != Common.Enum.Sale.SaleStateEnum.Sell)
{
flag = false;
message = "留学就业产品不正确";
return flag;
}
demodel.Class_Price = studyModel.SellPrice;
decimal MinPrice = studyModel.SellPrice;
if (demodel.Unit_Price < MinPrice)
{
flag = false;
message = "成交单价不能小于最低价格";
return flag;
}
if (demodel.PreferPrice != demodel.Unit_Price * demodel.GuestNum)
{
flag = false;
message = "应收总额不正确";
return flag;
}
catch (Exception ex)
int OrderId = orderRepository.Insert(demodel);
flag = OrderId > 0;
if (flag)
{
LogHelper.Write(ex, "SetClassOrder");
orderRepository.DBSession.Rollback();
return ApiResult.Failed();
//记录订单备注
if (!string.IsNullOrEmpty(demodel.SaleRemark))
{
order_RemarkRepository.Insert(new Model.Entity.Course.RB_Order_Remark()
{
Id = 0,
Content = demodel.SaleRemark,
CreateBy = demodel.CreateBy,
CreateTime = DateTime.Now,
OrderId = OrderId,
Type = 1
});
}
//记录日志信息
changeLogRepository.Insert(new Model.Entity.Log.RB_User_ChangeLog()
{
Id = 0,
Type = 2,
CreateBy = userInfo.Id,
CreateTime = DateTime.Now,
Group_Id = userInfo.Group_Id,
LogContent = "新增留学就业订单",
School_Id = userInfo.School_Id,
SourceId = OrderId
});
}
}
return flag;
}
/// <summary>
......@@ -370,7 +558,14 @@ namespace Edu.Module.Course
var model = orderRepository.GetEntity<RB_Order_ViewModel>(orderId);
if (model != null)
{
model.ClassName = classRepository.GetEntity(model.ClassId)?.ClassName ?? "";
if (model.OrderType == Common.Enum.Sale.OrderTypeEnum.CourseOrder)
{
model.ClassName = classRepository.GetEntity(model.ClassId)?.ClassName ?? "";
}
else if(model.OrderType== Common.Enum.Sale.OrderTypeEnum.StudyabroadOrder)
{
model.ClassName = studyAbroadRepository.GetEntity(model.SourceId)?.Name ?? "";
}
}
return model;
}
......@@ -1231,19 +1426,60 @@ namespace Edu.Module.Course
item.TeacherRemarkList = remarkList.Where(x => x.OrderId == item.OrderId && x.Type == 2).ToList();
item.RectorRemarkList = remarkList.Where(x => x.OrderId == item.OrderId && x.Type == 3).ToList();
item.DirectorRemarkList = remarkList.Where(x => x.OrderId == item.OrderId && x.Type == 4).ToList();
item.GuestList = guestList.Where(x => x.OrderId == item.OrderId).ToList();
}
}
return orderList;
}
/// <summary>
/// 获取留学就业订单分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Order_ViewModel> GetStudyOrderPageModule(int pageIndex, int pageSize, out long rowsCount, RB_Order_ViewModel demodel)
{
//获取订单列表
var orderList = orderRepository.GetStudyOrderPageListRepository(pageIndex, pageSize, out rowsCount, demodel);
if (orderList.Any())
{
string orderIds = string.Join(",", orderList.Select(x => x.OrderId));
//获取备注列表
var remarkList = order_RemarkRepository.GetList(new RB_Order_Remark_ViewModel() { }, orderIds);
//获取名单列表
var guestList = order_GuestRepository.GetList(new RB_Order_Guest_ViewModel() { OrderIds = orderIds });
foreach (var item in orderList)
{
item.SaleRemarkList = remarkList.Where(x => x.OrderId == item.OrderId && x.Type == 1).ToList();
item.TeacherRemarkList = remarkList.Where(x => x.OrderId == item.OrderId && x.Type == 2).ToList();
item.RectorRemarkList = remarkList.Where(x => x.OrderId == item.OrderId && x.Type == 3).ToList();
item.DirectorRemarkList = remarkList.Where(x => x.OrderId == item.OrderId && x.Type == 4).ToList();
item.GuestList = guestList.Where(x => x.OrderId == item.OrderId).ToList();
}
}
return orderList;
}
/// <summary>
/// 获取我的留学就业订单统计
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public RB_Order_ViewModel GetStudyOrderStatisticsModule(RB_Order_ViewModel demodel)
{
return orderRepository.GetStudyOrderStatisticsRepository(demodel);
}
/// <summary>
/// 获取我的订单统计
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public RB_Order_ViewModel GetMyOrderStatistics(RB_Order_ViewModel demodel) {
public RB_Order_ViewModel GetMyOrderStatistics(RB_Order_ViewModel demodel)
{
return orderRepository.GetMyOrderStatistics(demodel);
}
#endregion
......
using Edu.Common.Enum;
using Edu.Common.Enum.Sale;
using Edu.Model.Entity.Course;
using Edu.Model.ViewModel.Course;
using System;
......@@ -94,7 +95,7 @@ where {where} order by {orderBy}
}
/// <summary>
/// 获取分页列表
/// 获取课程班级订单分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
......@@ -104,6 +105,7 @@ where {where} order by {orderBy}
public List<RB_Order_ViewModel> GetPageList(int pageIndex, int pageSize, out long rowsCount, RB_Order_ViewModel demodel)
{
string where = $@" 1=1";
where += $@" and o.{nameof(RB_Order_ViewModel.OrderType)} ={(int)OrderTypeEnum.CourseOrder} ";
if (demodel.Group_Id > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.Group_Id)} ={demodel.Group_Id}";
......@@ -190,7 +192,7 @@ where {where} order by {orderBy}
{
where += $@" and o.{nameof(RB_Order_ViewModel.PreferPrice)} > (o.{nameof(RB_Order_ViewModel.Income)} - o.{nameof(RB_Order_ViewModel.Refund)} + o.{nameof(RB_Order_ViewModel.PlatformTax)} + o.{nameof(RB_Order_ViewModel.DiscountMoney)}) ";
}
string orderBy = " o.OrderId asc";
if (demodel.Q_OrderBy == 1)
{
......@@ -201,7 +203,9 @@ where {where} order by {orderBy}
orderBy = " o.CreateTime desc";
}
string sql = $@" select o.*,c.ClassName,c.School_Id as ClassSchoolId,t.TeacherName,t.TeacherIcon from RB_Order o
string sql = $@"
select o.*,c.ClassName,c.School_Id as ClassSchoolId,t.TeacherName,t.TeacherIcon
from RB_Order o
left join rb_class c on o.ClassId = c.ClassId
left join rb_teacher t on c.Teacher_Id = t.TId
where {where} order by {orderBy}
......@@ -209,6 +213,7 @@ where {where} order by {orderBy}
return GetPage<RB_Order_ViewModel>(pageIndex, pageSize, out rowsCount, sql).ToList();
}
/// <summary>
/// 获取我的订单统计
/// </summary>
......@@ -217,6 +222,7 @@ where {where} order by {orderBy}
public RB_Order_ViewModel GetMyOrderStatistics(RB_Order_ViewModel demodel)
{
string where = $@" 1=1";
where += $@" and o.{nameof(RB_Order_ViewModel.OrderType)} ={(int)OrderTypeEnum.CourseOrder} ";
if (demodel.Group_Id > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.Group_Id)} ={demodel.Group_Id}";
......@@ -303,6 +309,192 @@ where {where}
return Get<RB_Order_ViewModel>(sql).FirstOrDefault();
}
/// <summary>
/// 获取留学就业订单分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Order_ViewModel> GetStudyOrderPageListRepository(int pageIndex, int pageSize, out long rowsCount, RB_Order_ViewModel demodel)
{
string where = $@" 1=1";
where += $@" and o.{nameof(RB_Order_ViewModel.OrderType)} ={(int)OrderTypeEnum.StudyabroadOrder} ";
if (demodel.Group_Id > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.Group_Id)} ={demodel.Group_Id}";
}
if (demodel.School_Id > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.School_Id)} ={demodel.School_Id}";
}
if (demodel.OrderId > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderId)} ={demodel.OrderId}";
}
if (demodel.ClassId > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.ClassId)} ={demodel.ClassId}";
}
if (demodel.OrderState > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderState)} ={(int)demodel.OrderState}";
}
if (demodel.OrderSource > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderSource)} ={(int)demodel.OrderSource}";
}
if (demodel.OrderForm > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderForm)} ={(int)demodel.OrderForm}";
}
if (demodel.EnterID > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.EnterID)} ={demodel.EnterID}";
}
if (demodel.Dept_Id > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.Dept_Id)} ={demodel.Dept_Id}";
}
if (demodel.Q_OrderState > 0)
{
if (demodel.Q_OrderState == 1)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderState)} in(1,2)";
}
else if (demodel.Q_OrderState == 2)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderState)} =3";
}
}
if (!string.IsNullOrEmpty(demodel.GuestName))
{
if (demodel.Group_Id > 0)
{
where += $@" and o.OrderId in (select OrderId from rb_order_guest where Status =0 and Group_Id ={demodel.Group_Id} and GuestName like '%{demodel.GuestName}%')";
}
else
{
where += $@" and o.OrderId in (select OrderId from rb_order_guest where Status =0 and GuestName like '%{demodel.GuestName}%')";
}
}
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 (demodel.Q_NotCollect == 1)
{
where += $@" and o.{nameof(RB_Order_ViewModel.PreferPrice)} > (o.{nameof(RB_Order_ViewModel.Income)} - o.{nameof(RB_Order_ViewModel.Refund)} + o.{nameof(RB_Order_ViewModel.PlatformTax)} + o.{nameof(RB_Order_ViewModel.DiscountMoney)}) ";
}
if (demodel.OrderType > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderType)} ={(int)demodel.OrderType} ";
}
string orderBy = " o.OrderId asc";
if (demodel.Q_OrderBy == 1)
{
orderBy = " o.OrderId asc";
}
else if (demodel.Q_OrderBy == 2)
{
orderBy = " o.CreateTime desc";
}
string sql = $@"
SELECT o.*,C.`Name` AS StudyName
FROM RB_Order o LEFT JOIN rb_studyabroad c ON o.SourceId = c.Id
WHERE {where} ORDER BY {orderBy}
";
return GetPage<RB_Order_ViewModel>(pageIndex, pageSize, out rowsCount, sql).ToList();
}
/// <summary>
/// 获取我的订单统计
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public RB_Order_ViewModel GetStudyOrderStatisticsRepository(RB_Order_ViewModel demodel)
{
string where = $@" 1=1";
where += $@" and o.{nameof(RB_Order_ViewModel.OrderType)} ={(int)OrderTypeEnum.StudyabroadOrder} ";
if (demodel.Group_Id > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.Group_Id)} ={demodel.Group_Id}";
}
if (demodel.School_Id > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.School_Id)} ={demodel.School_Id}";
}
if (demodel.OrderId > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderId)} ={demodel.OrderId}";
}
if (demodel.ClassId > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.ClassId)} ={demodel.ClassId}";
}
if (demodel.OrderSource > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderSource)} ={(int)demodel.OrderSource}";
}
if (demodel.OrderForm > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderForm)} ={(int)demodel.OrderForm}";
}
if (demodel.EnterID > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.EnterID)} ={demodel.EnterID}";
}
if (demodel.Dept_Id > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.Dept_Id)} ={demodel.Dept_Id}";
}
if (!string.IsNullOrEmpty(demodel.GuestName))
{
if (demodel.Group_Id > 0)
{
where += $@" and o.OrderId in (select OrderId from rb_order_guest where Status =0 and Group_Id ={demodel.Group_Id} and GuestName like '%{demodel.GuestName}%')";
}
else
{
where += $@" and o.OrderId in (select OrderId from rb_order_guest where Status =0 and GuestName like '%{demodel.GuestName}%')";
}
}
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 (demodel.Q_NotCollect == 1)
{
where += $@" and o.{nameof(RB_Order_ViewModel.PreferPrice)} > (o.{nameof(RB_Order_ViewModel.Income)} - o.{nameof(RB_Order_ViewModel.Refund)} + o.{nameof(RB_Order_ViewModel.PlatformTax)} + o.{nameof(RB_Order_ViewModel.DiscountMoney)}) ";
}
string sql = $@"
SELECT SUM(CASE WHEN o.OrderState <> 3 THEN o.PreferPrice ELSE 0 END) AS PreferPrice,
SUM(CASE WHEN o.OrderState <> 3 THEN o.Income ELSE 0 END) AS Income,
SUM(CASE WHEN o.OrderState <> 3 THEN o.PreferPrice - o.Income + o.Refund - o.DiscountMoney ELSE 0 END) AS DueInMoney,
SUM(CASE WHEN o.OrderState <> 3 THEN o.GuestNum ELSE 0 END) AS GuestNum,
SUM(CASE WHEN o.OrderState = 3 THEN o.GuestNum ELSE 0 END) AS CancelNum,
SUM(CASE WHEN o.CommissionMoney <> -1 AND o.OrderState <> 3 THEN o.CommissionMoney ELSE 0 END) AS CommissionMoney,
SUM(CASE WHEN o.OrderState <> 3 THEN o.ExtraRewardMoney - o.ExtraDeductMoney ELSE 0 END) AS ExtraRewardMoney
FROM RB_Order o left join rb_studyabroad c on o.SourceId = c.Id
WHERE {where}
";
return Get<RB_Order_ViewModel>(sql).FirstOrDefault();
}
/// <summary>
/// 获取班级报名人数
/// </summary>
......
using System;
using System.Collections.Generic;
using System.Linq;
using Edu.Cache.User;
using Edu.Common.API;
using Edu.Common.Enum.Course;
using Edu.Common.Enum.Sale;
using Edu.Common.Plugin;
using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.Log;
......@@ -268,8 +270,19 @@ namespace Edu.WebApi.Controllers.Course
public ApiResult SetClassOrder()
{
var userInfo = base.UserInfo;
RB_Order_ViewModel demodel = JsonHelper.DeserializeObject<RB_Order_ViewModel>(RequestParm.Msg.ToString());
if (demodel.ClassId <= 0)
RB_Order_ViewModel demodel = new RB_Order_ViewModel()
{
OrderId=base.ParmJObj.GetInt("OrderId"),
ClassId=base.ParmJObj.GetInt("ClassId"),
GuestNum=base.ParmJObj.GetInt("GuestNum"),
OrderSource=(OrderSourceEnum)base.ParmJObj.GetInt("OrderSource"),
OrderType=(OrderTypeEnum)base.ParmJObj.GetInt("OrderType"),
PreferPrice=base.ParmJObj.GetDecimal("PreferPrice"),
SaleRemark=base.ParmJObj.GetStringValue("SaleRemark"),
SourceId=base.ParmJObj.GetInt("SourceId"),
Unit_Price=base.ParmJObj.GetDecimal("Unit_Price"),
};
if (demodel.OrderType== OrderTypeEnum.CourseOrder &&demodel.ClassId <= 0)
{
return ApiResult.ParamIsNull("请传递班级id");
}
......@@ -298,7 +311,17 @@ namespace Edu.WebApi.Controllers.Course
demodel.UpdateBy = userInfo.Id;
demodel.UpdateTime = DateTime.Now;
return orderModule.SetClassOrder(demodel, userInfo);
var flag = false;
string message = "";
if (demodel.OrderType == OrderTypeEnum.CourseOrder)
{
flag = orderModule.SetClassOrder(demodel, userInfo, out message);
}
else
{
flag = orderModule.SetStudyOrder(demodel, userInfo, out message);
}
return flag ? ApiResult.Success(message: message) : ApiResult.Failed(message: message);
}
/// <summary>
......@@ -343,7 +366,11 @@ namespace Edu.WebApi.Controllers.Course
if (model == null) {
return ApiResult.Failed("订单不存在");
}
var list = orderModule.GetClassOrderSetpPrice(OrderId);
var list = new List<RB_Order_StepPrice_ViewModel>();
if (model.OrderType == OrderTypeEnum.CourseOrder)
{
list = orderModule.GetClassOrderSetpPrice(OrderId);
}
return ApiResult.Success("", new
{
OrderInfo = new
......@@ -356,7 +383,9 @@ namespace Edu.WebApi.Controllers.Course
model.PreferPrice,
model.OrderSource,
OrderSourceName = model.OrderSource.ToName(),
model.SaleRemark
model.SaleRemark,
model.OrderType,
model.SourceId,
},
StepPriceList = list.Select(x => new
{
......@@ -410,7 +439,10 @@ namespace Edu.WebApi.Controllers.Course
model.ExtraDeductMoney,
model.IsCommissionGive,
CreateTime = model.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"),
CreateTime2 = model.CreateTime.ToString("yyyy年MM月dd日")
CreateTime2 = model.CreateTime.ToString("yyyy年MM月dd日"),
model.OrderType,
model.SourceId,
OrderTypeName=Common.Plugin.EnumHelper.ToName(model.OrderType),
});
}
......@@ -877,6 +909,8 @@ namespace Edu.WebApi.Controllers.Course
{
x.OrderId,
x.ClassId,
x.OrderType,
x.SourceId,
x.ClassSchoolId,
x.ClassName,
x.TradeWay,
......@@ -942,6 +976,118 @@ namespace Edu.WebApi.Controllers.Course
return ApiResult.Success("", pageModel);
}
/// <summary>
/// 获取我的留学就业订单列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetMyStudyOrderPageList()
{
var userInfo = base.UserInfo;
ResultPageModel pageModel = JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
RB_Order_ViewModel demodel = new RB_Order_ViewModel()
{
OrderId = base.ParmJObj.GetInt("OrderId"),
GuestName = base.ParmJObj.GetStringValue("GuestName"),
StartTime = base.ParmJObj.GetStringValue("StartTime"),
EndTime = base.ParmJObj.GetStringValue("EndTime"),
Q_NotCollect = base.ParmJObj.GetInt("Q_NotCollect"),
OrderState = (OrderStateEnum)base.ParmJObj.GetInt("OrderState"),
Q_OrderState = base.ParmJObj.GetInt("Q_OrderState"),
Q_OrderBy = base.ParmJObj.GetInt("Q_OrderBy"),
PlatformTax = base.ParmJObj.GetDecimal("PlatformTax"),
};
demodel.Group_Id = userInfo.Group_Id;
demodel.EnterID = userInfo.Id;
var orderList = orderModule.GetStudyOrderPageModule(pageModel.PageIndex, pageModel.PageSize, out long count, demodel);
var orderS = orderModule.GetStudyOrderStatisticsModule(demodel);
pageModel.Count = Convert.ToInt32(count);
pageModel.PageData = new
{
Statistics = new
{
PreferPrice = orderS?.PreferPrice ?? 0,
Income = orderS?.Income ?? 0,
DueInMoney = orderS?.DueInMoney ?? 0,
GuestNum = orderS?.GuestNum ?? 0,
CancelNum = orderS?.CancelNum ?? 0,
CommissionMoney = orderS?.CommissionMoney ?? 0,
ExtraRewardMoney = orderS?.ExtraRewardMoney ?? 0
},
List = orderList.Select(x => new
{
x.OrderId,
x.ClassId,
x.OrderType,
x.SourceId,
x.ClassSchoolId,
ClassName= x.StudyName,
x.TradeWay,
x.Class_Price,
x.Unit_Price,
x.GuestNum,
x.PreferPrice,
x.Income,
x.Refund,
x.DiscountMoney,
x.PlatformTax,
DueInMoney = x.PreferPrice - (x.Income - x.Refund + x.PlatformTax + x.DiscountMoney),
x.OrderState,
OrderStateName = x.OrderState.ToName(),
x.EnterID,
EnterName = UserReidsCache.GetUserLoginInfo(x.EnterID)?.AccountName ?? "",
x.CommissionMoney,
x.ExtraRewardMoney,
x.ExtraDeductMoney,
x.IsCommissionGive,
CreateTime = x.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"),
x.SaleRemark,
x.TeacherRemark,
x.RectorRemark,
x.DirectorRemark,
x.OfferId,
SaleRemarkList = x.SaleRemarkList.Select(z => new
{
z.Id,
z.Content,
CreateBy = z.CreateByName,
CreateTime = z.CreateTime.ToString("yyyy-MM-dd HH:mm:ss")
}),
TeacherRemarkList = x.TeacherRemarkList.Select(z => new
{
z.Id,
z.Content,
CreateBy = z.CreateByName,
CreateTime = z.CreateTime.ToString("yyyy-MM-dd HH:mm:ss")
}),
RectorRemarkList = x.RectorRemarkList.Select(z => new
{
z.Id,
z.Content,
CreateBy = z.CreateByName,
CreateTime = z.CreateTime.ToString("yyyy-MM-dd HH:mm:ss")
}),
DirectorRemarkList = x.DirectorRemarkList.Select(z => new
{
z.Id,
z.Content,
CreateBy = z.CreateByName,
CreateTime = z.CreateTime.ToString("yyyy-MM-dd HH:mm:ss")
}),
GuestList = x.GuestList.Select(z => new
{
z.Id,
z.GuestName,
z.GuestState
})
})
};
return ApiResult.Success("", pageModel);
}
/// <summary>
/// 订单转交
/// </summary>
......
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