Commit ae111b23 authored by liudong1993's avatar liudong1993

教务奖励配置

parent 5cc8b0af
using Edu.Common.Enum;
using Edu.Common.Enum.Course;
using System;
using VT.FW.DB;
namespace Edu.Model.Entity.Course
{
/// <summary>
/// 教务奖励实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Teaching_Rewards
{
/// <summary>
/// 主键
/// </summary>
public int Id { get; set; }
/// <summary>
/// 满班率id
/// </summary>
public int FullClassRateId { get; set; }
/// <summary>
/// 上课率id
/// </summary>
public int TackClassRateId { get; set; }
/// <summary>
/// 奖励课时费
/// </summary>
public decimal Money { get; set; }
/// <summary>
/// 增加带班人数
/// </summary>
public int PeopelNum { get; set; }
}
}
using Edu.Common.Enum;
using Edu.Common.Enum.Course;
using System;
using VT.FW.DB;
namespace Edu.Model.Entity.Course
{
/// <summary>
/// 教务奖励基础实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Teaching_Rewards_Base
{
/// <summary>
/// 主键
/// </summary>
public int Id { get; set; }
/// <summary>
/// 类型 1社会班 2学生班
/// </summary>
public int Type { get; set; }
/// <summary>
/// 基础课时费用
/// </summary>
public decimal BasicMoney { get; set; }
/// <summary>
/// 基础课时
/// </summary>
public int BasicHour { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 学校编号
/// </summary>
public int School_Id { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 修改人
/// </summary>
public int UpdateBy { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime UpdateTime { get; set; }
}
}
using Edu.Common.Enum;
using Edu.Common.Enum.Course;
using System;
using VT.FW.DB;
namespace Edu.Model.Entity.Course
{
/// <summary>
/// 教务奖励概率实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Teaching_Rewards_Rate
{
/// <summary>
/// 主键
/// </summary>
public int Id { get; set; }
/// <summary>
/// 类型 1社会-奖金 2社会-课时费 3学生-奖金 4学生-课时费
/// </summary>
public int Type { get; set; }
/// <summary>
/// 概率类型 1满班率 2平均上课率/续班率
/// </summary>
public int RateType { get; set; }
/// <summary>
/// 起始值(最小率)
/// </summary>
public decimal StartValue { get; set; }
/// <summary>
/// 结束值(最大率)
/// </summary>
public decimal EndValue { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 学校编号
/// </summary>
public int School_Id { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
}
}
using System;
using System.Collections.Generic;
namespace Edu.Model.ViewModel.Course
{
/// <summary>
/// 教务奖励-基础实体类
/// </summary>
[Serializable]
public class RB_Teaching_Rewards_Base_ViewModel : Model.Entity.Course.RB_Teaching_Rewards_Base
{
}
}
\ No newline at end of file
using System;
using System.Collections.Generic;
namespace Edu.Model.ViewModel.Course
{
/// <summary>
/// 教务奖励-比率实体类
/// </summary>
[Serializable]
public class RB_Teaching_Rewards_Rate_ViewModel : Model.Entity.Course.RB_Teaching_Rewards_Rate
{
/// <summary>
/// 满班率
/// </summary>
public List<RB_Teaching_Rewards_Rate_ViewModel> FullClassList { get; set; }
/// <summary>
/// 增加课时费
/// </summary>
public decimal ClassMoney { get; set; }
/// <summary>
/// 增加带班人数
/// </summary>
public int PeopelNum { get; set; }
}
}
\ No newline at end of file
using System;
using System.Collections.Generic;
namespace Edu.Model.ViewModel.Course
{
/// <summary>
/// 教务奖励实体类
/// </summary>
[Serializable]
public class RB_Teaching_Rewards_ViewModel : Model.Entity.Course.RB_Teaching_Rewards
{
/// <summary>
/// ids
/// </summary>
public string FullClassRateIds { get; set; }
/// <summary>
/// ids
/// </summary>
public string TackClassRateIds { get; set; }
}
}
\ No newline at end of file
......@@ -127,7 +127,7 @@ namespace Edu.Module.Course
}
else if (item.ClassStyle == Common.Enum.Course.ClassStyleEnum.FixedDate)
{
item.ClassPlanList = PlanWeek.Where(x => x.ClassId == item.ClassId).ToList();
item.ClassPlanList = PlanFixed.Where(x => x.ClassId == item.ClassId).ToList();
}
}
}
......@@ -793,6 +793,75 @@ namespace Edu.Module.Course
}
}
/// <summary>
/// 订单转班
/// </summary>
/// <param name="orderId"></param>
/// <param name="classId"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
public string SetClassOrderCareOfClass(int orderId, int classId, UserInfo userInfo)
{
var orderModel = orderRepository.GetEntity(orderId);
if (orderModel == null) { return "订单不存在"; }
if (orderModel.OrderState == OrderStateEnum.Cancel) { return "订单状态不正确"; }
if (orderModel.ClassId == classId) { return "转入班级不正确"; }
var classModel = classRepository.GetEntity(classId);
if (classModel == null) { return "班级不存在"; }
//获取该班级下订单人数
int BNum = orderRepository.GetClassOrderPeopleNum(classId.ToString()).FirstOrDefault()?.GuestNum ?? 0;
if (BNum + orderModel.GuestNum > classModel.ClassPersion)
{
return "转入班级剩余招收人数不足,请核实后再试";
}
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Order_ViewModel.ClassId),classId}
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Order_ViewModel.OrderId),
FiledValue=orderId,
OperatorEnum=OperatorEnum.Equal
}
};
bool flag = orderRepository.Update(keyValues, wheres);
if (flag)
{
//查询所有的学生名单
var glist = order_GuestRepository.GetList(new RB_Order_Guest_ViewModel() { OrderId = orderId });
foreach (var item in glist) {
Dictionary<string, object> keyValues1 = new Dictionary<string, object>() {
{ nameof(RB_Order_Guest_ViewModel.ClassId),classId}
};
List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Order_Guest_ViewModel.Id),
FiledValue=item.Id,
OperatorEnum=OperatorEnum.Equal
}
};
order_GuestRepository.Update(keyValues1, wheres1);
}
//记录日志
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 = $"订单转班,由【{orderModel.ClassId}】转移至【{classId}】",
School_Id = userInfo.School_Id,
SourceId = orderId
});
return "";
}
else {
return "出错了,请联系管理员";
}
}
#endregion
#region 学生名单
......
This diff is collapsed.
......@@ -152,6 +152,10 @@ WHERE 1=1
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.School_Id), query.School_Id);
}
if (query.ClassId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.ClassId), query.ClassId);
}
if (query.CouseId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.CouseId), query.CouseId);
......
......@@ -74,7 +74,8 @@ WHERE 1=1
/// <returns></returns>
public List<RB_Class_Time_ViewModel> GetClassTimeForProduct(string classIds) {
string sql = $@"SELECT t.ClassId,t.StartTime,t.EndTime FROM rb_class_time t
WHERE t.ClassId =1 GROUP BY t.ClassId,t.StartTime,t.EndTime";
LEFT JOIN rb_class_plan p on t.ClassPlanId = p.ClassPlanId
WHERE p.`Status`=0 AND t.ClassId =1 GROUP BY t.ClassId,t.StartTime,t.EndTime";
return Get<RB_Class_Time_ViewModel>(sql).ToList();
}
......
using Edu.Common.Enum;
using Edu.Model.Entity.Course;
using Edu.Model.ViewModel.Course;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB.Dapper;
namespace Edu.Repository.Course
{
/// <summary>
/// 教务奖励仓储层
/// </summary>
public class RB_Teaching_RewardsRepository : BaseRepository<RB_Teaching_Rewards>
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="demodel"></param>
/// <param name="orderIds"></param>
/// <returns></returns>
public List<RB_Teaching_Rewards_ViewModel> GetList(RB_Teaching_Rewards_ViewModel demodel)
{
string where = $@" 1=1";
if (demodel.FullClassRateId > 0)
{
where += $@" and {nameof(RB_Teaching_Rewards.FullClassRateId)} ={demodel.FullClassRateId}";
}
if (!string.IsNullOrEmpty(demodel.FullClassRateIds))
{
where += $@" and {nameof(RB_Teaching_Rewards.FullClassRateId)} in({demodel.FullClassRateIds})";
}
if (demodel.TackClassRateId > 0)
{
where += $@" and {nameof(RB_Teaching_Rewards.TackClassRateId)} ={demodel.TackClassRateId}";
}
if (!string.IsNullOrEmpty(demodel.TackClassRateIds))
{
where += $@" and {nameof(RB_Teaching_Rewards.TackClassRateId)} in({demodel.TackClassRateIds})";
}
string sql = $@" select * from RB_Teaching_Rewards where {where} order by Id desc";
return Get<RB_Teaching_Rewards_ViewModel>(sql).ToList();
}
}
}
using Edu.Common.Enum;
using Edu.Model.Entity.Course;
using Edu.Model.ViewModel.Course;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB.Dapper;
namespace Edu.Repository.Course
{
/// <summary>
/// 教务奖励-基础仓储层
/// </summary>
public class RB_Teaching_Rewards_BaseRepository : BaseRepository<RB_Teaching_Rewards_Base>
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="demodel"></param>
/// <param name="orderIds"></param>
/// <returns></returns>
public List<RB_Teaching_Rewards_Base_ViewModel> GetList(RB_Teaching_Rewards_Base_ViewModel demodel)
{
string where = $@" 1=1";
if (demodel.School_Id > 0)
{
where += $@" and {nameof(RB_Teaching_Rewards_Base.School_Id)} ={demodel.School_Id}";
}
if (demodel.Type > 0)
{
where += $@" and {nameof(RB_Teaching_Rewards_Base.Type)} ={demodel.Type}";
}
string sql = $@" select * from RB_Teaching_Rewards_Base where {where} order by Id desc";
return Get<RB_Teaching_Rewards_Base_ViewModel>(sql).ToList();
}
}
}
using Edu.Common.Enum;
using Edu.Model.Entity.Course;
using Edu.Model.ViewModel.Course;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB.Dapper;
namespace Edu.Repository.Course
{
/// <summary>
/// 教务奖励-概率仓储层
/// </summary>
public class RB_Teaching_Rewards_RateRepository : BaseRepository<RB_Teaching_Rewards_Rate>
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Teaching_Rewards_Rate_ViewModel> GetList(RB_Teaching_Rewards_Rate_ViewModel demodel)
{
string where = $@" 1=1";
if (demodel.School_Id > 0)
{
where += $@" and {nameof(RB_Teaching_Rewards_Rate.School_Id)} ={demodel.School_Id}";
}
if (demodel.Type > 0)
{
where += $@" and {nameof(RB_Teaching_Rewards_Rate.Type)} ={demodel.Type}";
}
if (demodel.RateType > 0)
{
where += $@" and {nameof(RB_Teaching_Rewards_Rate.RateType)} ={demodel.RateType}";
}
string sql = $@" select * from RB_Teaching_Rewards_Rate where {where} order by Id desc";
return Get<RB_Teaching_Rewards_Rate_ViewModel>(sql).ToList();
}
}
}
......@@ -284,10 +284,10 @@ namespace Edu.WebApi.Controllers.Course
demodel.Group_Id = userInfo.Group_Id;
demodel.School_Id = userInfo.School_Id;
demodel.Dept_Id = userInfo.DeptId;
demodel.OrderForm = Common.Enum.Course.OrderFormEnum.Computer;
demodel.OrderForm = OrderFormEnum.Computer;
demodel.EnterID = userInfo.Id;
demodel.OrderState = Common.Enum.Course.OrderStateEnum.Normal;
demodel.TradeWay = Common.Enum.Course.TradeWayEnum.OnLine;
demodel.OrderState = OrderStateEnum.Normal;
demodel.TradeWay = TradeWayEnum.OnLine;
demodel.CreateBy = userInfo.Id;
demodel.CreateTime = DateTime.Now;
demodel.UpdateBy = userInfo.Id;
......@@ -611,8 +611,14 @@ namespace Edu.WebApi.Controllers.Course
return ApiResult.ParamIsNull("请传递转入班级id");
}
return ApiResult.Success();
string msg = orderModule.SetClassOrderCareOfClass(OrderId, ClassId, userInfo);
if (msg == "")
{
return ApiResult.Success();
}
else {
return ApiResult.Failed(msg);
}
}
/// <summary>
......@@ -775,6 +781,7 @@ namespace Edu.WebApi.Controllers.Course
{
x.OrderId,
x.ClassId,
x.ClassName,
x.TradeWay,
x.Class_Price,
x.Unit_Price,
......
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.Plugin;
using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.Log;
using Edu.Module.Course;
using Edu.WebApi.Filter;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
namespace Edu.WebApi.Controllers.Course
{
[Route("api/[controller]/[action]")]
[ApiExceptionFilter]
[ApiController]
[EnableCors("AllowCors")]
public class TeachingRewardsController : BaseController
{
/// <summary>
/// 教务奖励处理类对象
/// </summary>
private readonly TeachingRewardsModule teachingRewardsModule = new TeachingRewardsModule();
#region 基础配置
/// <summary>
/// 获取教务奖励列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetTeachingRewardsList()
{
var userInfo = base.UserInfo;
RB_Teaching_Rewards_Rate_ViewModel demodel = JsonHelper.DeserializeObject<RB_Teaching_Rewards_Rate_ViewModel>(RequestParm.Msg.ToString());
if (demodel.Type <= 0) {
return ApiResult.ParamIsNull();
}
var list = teachingRewardsModule.GetTeachimgRewardsList(demodel, userInfo, out List<RB_Teaching_Rewards_Rate_ViewModel> fclist);
return ApiResult.Success("", new
{
FullClassRateList = fclist.Select(x => new
{
x.Id,
x.StartValue,
x.EndValue
}),
List = list.Select(x => new
{
x.Id,
x.StartValue,
x.EndValue,
FullClassList = x.FullClassList.Select(z => new
{
z.Id,
z.StartValue,
z.EndValue,
z.ClassMoney,
z.PeopelNum
})
})
});
}
/// <summary>
/// 保存教务奖励配置
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetTeachingRewardsInfo()
{
var userInfo = base.UserInfo;
JObject parms = JObject.Parse(RequestParm.Msg.ToString());
int Type = parms.GetInt("Type", 0);
string list = parms.GetStringValue("List");
if (string.IsNullOrEmpty(list))
{
return ApiResult.ParamIsNull("请传递比例列表");
}
List<RB_Teaching_Rewards_Rate_ViewModel> deList = JsonHelper.DeserializeObject<List<RB_Teaching_Rewards_Rate_ViewModel>>(list);
if (deList == null || !deList.Any())
{
return ApiResult.ParamIsNull("请传递比例列表");
}
decimal xcrate = 0;
foreach (var item in deList) {
if (item.StartValue <= 0) {
return ApiResult.ParamIsNull("比率不能小于0");
}
if (item.EndValue <= 0) {
return ApiResult.ParamIsNull("比率不能小于0");
}
if (item.StartValue > item.EndValue) {
return ApiResult.ParamIsNull("起始值不能大于结束值");
}
if (item.StartValue <= xcrate){
return ApiResult.ParamIsNull("续学率有重复,请核实后再试");
}
xcrate = item.EndValue;
if (item.FullClassList == null || !item.FullClassList.Any())
{
return ApiResult.ParamIsNull("请传递满班率列表");
}
decimal mbrate = 0;
foreach (var qitem in deList) {
if (qitem.StartValue <= 0)
{
return ApiResult.ParamIsNull("比率不能小于0");
}
if (qitem.EndValue <= 0)
{
return ApiResult.ParamIsNull("比率不能小于0");
}
if (qitem.StartValue > qitem.EndValue)
{
return ApiResult.ParamIsNull("起始值不能大于结束值");
}
if (qitem.StartValue <= mbrate)
{
return ApiResult.ParamIsNull("续学率有重复,请核实后再试");
}
mbrate = qitem.EndValue;
if (qitem.ClassMoney < 0) { return ApiResult.Failed("奖金/课时费不能小于0"); }
if (Type == 2 || Type == 4) {
if (qitem.PeopelNum < 0)
{
return ApiResult.Failed("增加带班人数不正确");
}
}
}
}
var flag = teachingRewardsModule.SetTeachingRewardsInfo(Type, deList, userInfo);
if (flag)
{
return ApiResult.Success();
}
else {
return ApiResult.Failed();
}
}
/// <summary>
/// 获取教务奖励 基础
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetTeachingRewardsBaseInfo()
{
var userInfo = base.UserInfo;
JObject parms = JObject.Parse(RequestParm.Msg.ToString());
int Type = parms.GetInt("Type", 1);// 类型 1社会班 2学生班
if (Type <= 0) {
return ApiResult.ParamIsNull();
}
var model = teachingRewardsModule.GetTeachingRewardsBaseInfo(Type, userInfo);
return ApiResult.Success("", model);
}
/// <summary>
/// 保存教务奖励 基础
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetTeachingRewardsBase() {
var userInfo = base.UserInfo;
RB_Teaching_Rewards_Base_ViewModel demodel = JsonHelper.DeserializeObject<RB_Teaching_Rewards_Base_ViewModel>(RequestParm.Msg.ToString());
if (demodel.Type <= 0) {
return ApiResult.ParamIsNull();
}
demodel.Group_Id = userInfo.Group_Id;
demodel.School_Id = userInfo.School_Id;
demodel.CreateBy = userInfo.Id;
demodel.CreateTime = DateTime.Now;
demodel.UpdateBy = userInfo.Id;
demodel.UpdateTime = DateTime.Now;
bool flag = teachingRewardsModule.SetTeachingRewardsBase(demodel, userInfo);
if (flag)
{
return ApiResult.Success();
}
else {
return ApiResult.Failed();
}
}
#endregion
}
}
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