Commit 30c0b3ac authored by 吴春's avatar 吴春

Merge branch 'master' of http://gitlab.oytour.com/Kui2/education

# Conflicts:
#	Edu.Module.Course/ClassModule.cs
parents a08a7b87 4a69f56a
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;
using System.Text;
using VT.FW.DB;
namespace Edu.Model.Entity.User
{
/// <summary>
/// 部门岗位关联表实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Department_Post
{
/// <summary>
/// 部门岗位关联表主键Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 部门编号
/// </summary>
public int Dept_Id { get; set; }
/// <summary>
/// 岗位编号
/// </summary>
public int PostId { get; set; }
}
}
......@@ -21,11 +21,6 @@ namespace Edu.Model.Entity.User
/// </summary>
public string PostName { get; set; }
/// <summary>
/// 部门编号
/// </summary>
public int RB_Dept_Id { get; set; }
/// <summary>
/// 集团编号
/// </summary>
......
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
using Edu.Model.Entity.User;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Model.ViewModel.User
{
/// <summary>
/// 部门岗位关联表视图实体类
/// </summary>
public class RB_Department_Post_ViewModel: RB_Department_Post
{
/// <summary>
/// 岗位名称
/// </summary>
public string PostName { get; set; }
/// <summary>
/// 部门编号【查询使用,逗号分隔】
/// </summary>
public string QDeptIds { get; set; }
}
}
......@@ -65,5 +65,15 @@ namespace Edu.Model.ViewModel.User
return Common.ConvertHelper.StringToList(this.ManagerIds);
}
}
/// <summary>
/// 部门管理岗位列表
/// </summary>
public List<RB_Department_Post_ViewModel> DeptPostList { get; set; }
/// <summary>
/// 选择的岗位
/// </summary>
public List<int> ChoosePostList { get; set; }
}
}
\ No newline at end of file
......@@ -43,11 +43,6 @@ namespace Edu.Model.ViewModel.User
}
}
/// <summary>
/// 所属部门
/// </summary>
public string DeptName { get; set; }
/// <summary>
/// 岗位编号查询
/// </summary>
......
......@@ -144,6 +144,11 @@ namespace Edu.Module.Course
bool flag = false;
if (model.ClassId > 0)
{
var oldModel = GetClassModule(model.ClassId);
if (oldModel.Teacher_Id != model.Teacher_Id && model.Teacher_Id > 0 && oldModel.Teacher_Id > 0)
{
class_PlanRepository.UpdatePlanTeacherIdRepository(model.Teacher_Id, model.ClassId);
}
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{ nameof(RB_Class_ViewModel.ClassName),model.ClassName},
......@@ -170,7 +175,6 @@ namespace Edu.Module.Course
{ nameof(RB_Class_ViewModel.DefaultTimeJson),model.DefaultTimeJson},
{ nameof(RB_Class_ViewModel.DateJson),model.DateJson},
//{ nameof(RB_Class_ViewModel.CompleteProgress),model.CompleteProgress},
//{ nameof(RB_Class_ViewModel.OutRemark),model.OutRemark},
};
flag = classRepository.Update(fileds, new WhereHelper(nameof(RB_Class_ViewModel.ClassId), model.ClassId));
}
......@@ -258,16 +262,66 @@ namespace Edu.Module.Course
}
//班级上课计划列表
List<RB_Class_Plan_ViewModel> classPlanList = new List<RB_Class_Plan_ViewModel>();
//删除班级计划
switch (model.ClassStyle)
List<RB_Class_Plan_ViewModel> classPlanList = CreateClassPlanList(model, defaultPlanTimeList);
model.ClassPlanList = classPlanList;
if (model.ClassPlanList != null && model.ClassPlanList.Count > 0)
{
//按周排课
case Common.Enum.Course.ClassStyleEnum.Week:
if (model.WeekDayList != null && model.WeekDayList.Count > 0)
foreach (var item in model.ClassPlanList)
{
item.ClassPlanId = 0;
if (!class_PlanRepository.CheckExistsRepository(item))
{
var srartDate = model.OpenTime;
for (var i = 0; i < 120; i++)
//添加班级上课计划
var newClassPlanId = class_PlanRepository.Insert(item);
if (item.PlanTimeList != null && item.PlanTimeList.Count > 0)
{
foreach (var subItem in item.PlanTimeList)
{
subItem.ClassTimeId = 0;
subItem.ClassPlanId = newClassPlanId;
//添加班级上课计划的上课时间
class_TimeRepository.Insert(subItem);
}
}
}
}
}
#endregion
return flag;
}
/// <summary>
/// 生成班级上课计划表
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
private List<RB_Class_Plan_ViewModel> CreateClassPlanList(RB_Class_ViewModel model,List<RB_Class_Time_ViewModel> defaultPlanTimeList)
{
List<RB_Class_Plan_ViewModel> classPlanList = new List<RB_Class_Plan_ViewModel>();
double totalMinutes = 0;
foreach (var item in defaultPlanTimeList)
{
var startDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + item.StartTime+":00");
var endDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + item.EndTime + ":00");
TimeSpan span = endDate.Subtract(startDate);
if (span.TotalMinutes > 0)
{
totalMinutes += span.TotalMinutes;
}
}
//计算每天课时数
var dayClassHour = totalMinutes / 45.0;
if (dayClassHour > 0)
{
var totalDay = model.ClassHours / dayClassHour;
var srartDate = model.OpenTime;
switch (model.ClassStyle)
{
//按周排课
case Common.Enum.Course.ClassStyleEnum.Week:
int i = 0;
while (classPlanList.Count < totalDay)
{
var newDate = srartDate.AddDays(i);
foreach (var item in model.WeekDayList)
......@@ -388,17 +442,15 @@ namespace Edu.Module.Course
break;
}
}
i++;
}
}
break;
//按月排课
case Common.Enum.Course.ClassStyleEnum.Month:
if (model.WeekDayList != null && model.WeekDayList.Count > 0)
{
var srartDate = model.OpenTime;
for (var i = 0; i < 120; i++)
break;
//按月排课
case Common.Enum.Course.ClassStyleEnum.Month:
int j = 0;
while (classPlanList.Count < totalDay)
{
var newDate = srartDate.AddDays(i);
var newDate = srartDate.AddDays(j);
foreach (var item in model.WeekDayList)
{
if (newDate.Day == Convert.ToInt32(item))
......@@ -416,12 +468,11 @@ namespace Edu.Module.Course
});
}
}
j++;
}
}
break;
//固定日期排课
case Common.Enum.Course.ClassStyleEnum.FixedDate:
{
break;
//固定日期排课
case Common.Enum.Course.ClassStyleEnum.FixedDate:
foreach (var item in model.WeekDayList)
{
classPlanList.Add(new RB_Class_Plan_ViewModel()
......@@ -436,34 +487,10 @@ namespace Edu.Module.Course
TeacherId = model.Teacher_Id,
});
}
}
break;
}
model.ClassPlanList = classPlanList;
if (model.ClassPlanList != null && model.ClassPlanList.Count > 0)
{
foreach (var item in model.ClassPlanList)
{
item.ClassPlanId = 0;
if (!class_PlanRepository.CheckExistsRepository(item))
{
//添加班级上课计划
var newClassPlanId = class_PlanRepository.Insert(item);
if (item.PlanTimeList != null && item.PlanTimeList.Count > 0)
{
foreach (var subItem in item.PlanTimeList)
{
subItem.ClassTimeId = 0;
subItem.ClassPlanId = newClassPlanId;
//添加班级上课计划的上课时间
class_TimeRepository.Insert(subItem);
}
}
}
break;
}
}
#endregion
return flag;
return classPlanList;
}
/// <summary>
......@@ -493,9 +520,10 @@ namespace Edu.Module.Course
{
extModel.DefaultTimeList = Common.Plugin.JsonHelper.DeserializeObject<List<RB_Class_Time_ViewModel>>(extModel.DefaultTimeJson);
}
if (!string.IsNullOrEmpty(extModel.DateJson))
{
extModel.WeekDayList = Common.Plugin.JsonHelper.DeserializeObject<List<string>>(extModel.DateJson);
if (!string.IsNullOrEmpty(extModel.DateJson) && extModel.ClassStyle!= Common.Enum.Course.ClassStyleEnum.OnLine)
{
extModel.WeekDayList= Common.Plugin.JsonHelper.DeserializeObject<List<string>>(extModel.DateJson);
}
}
return extModel;
......
......@@ -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 学生名单
......
using Edu.Cache.User;
using Edu.Common.API;
using Edu.Common.Enum;
using Edu.Common.Enum.Course;
using Edu.Common.Plugin;
using Edu.Model.CacheModel;
using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.Log;
using Edu.Model.ViewModel.User;
using Edu.Repository.Course;
using Edu.Repository.Log;
using Edu.Repository.User;
using System;
using System.Collections.Generic;
using System.Linq;
using VT.FW.DB;
namespace Edu.Module.Course
{
/// <summary>
/// 教务奖励处理类
/// </summary>
public class TeachingRewardsModule
{
/// <summary>
/// 奖励
/// </summary>
private readonly RB_Teaching_RewardsRepository teaching_RewardsRepository = new RB_Teaching_RewardsRepository();
/// <summary>
/// 概率范围
/// </summary>
private readonly RB_Teaching_Rewards_RateRepository teaching_Rewards_RateRepository = new RB_Teaching_Rewards_RateRepository();
/// <summary>
/// 基础
/// </summary>
private readonly RB_Teaching_Rewards_BaseRepository teaching_Rewards_BaseRepository = new RB_Teaching_Rewards_BaseRepository();
/// <summary>
/// 用户日志
/// </summary>
private readonly RB_User_ChangeLogRepository changeLogRepository = new RB_User_ChangeLogRepository();
/// <summary>
/// 获取教务奖励列表
/// </summary>
/// <param name="demodel"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
public List<RB_Teaching_Rewards_Rate_ViewModel> GetTeachimgRewardsList(RB_Teaching_Rewards_Rate_ViewModel demodel, UserInfo userInfo,out List<RB_Teaching_Rewards_Rate_ViewModel> fclist)
{
var rlist = teaching_Rewards_RateRepository.GetList(new RB_Teaching_Rewards_Rate_ViewModel() { Group_Id = userInfo.Group_Id, Type = demodel.Type });
var relist = rlist.Where(x => x.RateType == 2).OrderBy(x => x.StartValue).ToList();
fclist = rlist.Where(x => x.RateType == 1).OrderBy(x => x.StartValue).ToList();
var vlist = new List<RB_Teaching_Rewards_ViewModel>();
if (relist.Any()) {
string TackClassRateIds = string.Join(",", relist.Select(x => x.Id));
vlist = teaching_RewardsRepository.GetList(new RB_Teaching_Rewards_ViewModel() { TackClassRateIds = TackClassRateIds });
}
foreach (var item in relist) {
var clist = new List<RB_Teaching_Rewards_Rate_ViewModel>();
foreach (var qitem in fclist) {
var vmodel = vlist.Where(x => x.FullClassRateId == qitem.Id && x.TackClassRateId == item.Id).FirstOrDefault();
decimal Money = 0;
int PeopelNum = 0;
if (vmodel != null)
{
Money = vmodel.Money;
PeopelNum = vmodel.PeopelNum;
}
clist.Add(new RB_Teaching_Rewards_Rate_ViewModel()
{
Id = qitem.Id,
StartValue = qitem.StartValue,
EndValue = qitem.EndValue,
ClassMoney = Money,
PeopelNum = PeopelNum
});
}
item.FullClassList = clist;
}
return relist;
}
/// <summary>
/// 保存教务奖励配置
/// </summary>
/// <param name="type"></param>
/// <param name="deList"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
public bool SetTeachingRewardsInfo(int type,List<RB_Teaching_Rewards_Rate_ViewModel> deList, UserInfo userInfo)
{
var rlist = teaching_Rewards_RateRepository.GetList(new RB_Teaching_Rewards_Rate_ViewModel() { Group_Id = userInfo.Group_Id, Type = type });
var trans = teaching_Rewards_RateRepository.DbTransaction;
try
{
if (rlist.Any())
{
//直接全删了 重新新增
var xblist = rlist.Where(x => x.RateType == 2).OrderBy(x => x.StartValue).ToList();
string TackClassRateIds = string.Join(",", xblist.Select(x => x.Id));
var vlist = teaching_RewardsRepository.GetList(new RB_Teaching_Rewards_ViewModel() { TackClassRateIds = TackClassRateIds });
teaching_RewardsRepository.DeleteBatch(vlist, trans);
teaching_Rewards_RateRepository.DeleteBatch(rlist, trans);
}
var FullClassList = deList.FirstOrDefault().FullClassList;
//先新增满班率
foreach (var item in FullClassList)
{
int Id = teaching_Rewards_RateRepository.Insert(new Model.Entity.Course.RB_Teaching_Rewards_Rate()
{
Id = 0,
CreateBy = userInfo.Id,
CreateTime = DateTime.Now,
EndValue = item.EndValue,
Group_Id = userInfo.Group_Id,
RateType = 1,
School_Id = userInfo.School_Id,
StartValue = item.StartValue,
Type = type
}, trans);
item.Id = Id;
}
foreach (var item in deList)
{
//新增续班率
int Id = teaching_Rewards_RateRepository.Insert(new Model.Entity.Course.RB_Teaching_Rewards_Rate()
{
Id = 0,
CreateBy = userInfo.Id,
CreateTime = DateTime.Now,
EndValue = item.EndValue,
Group_Id = userInfo.Group_Id,
RateType = 2,
School_Id = userInfo.School_Id,
StartValue = item.StartValue,
Type = type
}, trans);
foreach (var qitem in item.FullClassList)
{
//获取 满班率id
int mId = FullClassList.Where(x => x.StartValue == qitem.StartValue && x.EndValue == qitem.EndValue).FirstOrDefault()?.Id ?? 0;
if (mId > 0)
{
teaching_RewardsRepository.Insert(new Model.Entity.Course.RB_Teaching_Rewards()
{
Id = 0,
FullClassRateId = mId,
TackClassRateId = Id,
Money = qitem.ClassMoney,
PeopelNum = qitem.PeopelNum
}, trans);
}
}
}
teaching_Rewards_RateRepository.DBSession.Commit();
return true;
}
catch (Exception ex)
{
LogHelper.Write(ex, "SetTeachingRewardsInfo");
teaching_Rewards_RateRepository.DBSession.Rollback();
return false;
}
}
/// <summary>
/// 保存教务奖励 基础
/// </summary>
/// <param name="demodel"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
public bool SetTeachingRewardsBase(RB_Teaching_Rewards_Base_ViewModel demodel, UserInfo userInfo)
{
if (demodel.Id > 0)
{
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Teaching_Rewards_Base_ViewModel.BasicMoney),demodel.BasicMoney},
{ nameof(RB_Teaching_Rewards_Base_ViewModel.BasicHour),demodel.BasicHour},
{ nameof(RB_Teaching_Rewards_Base_ViewModel.UpdateBy),demodel.UpdateBy},
{ nameof(RB_Teaching_Rewards_Base_ViewModel.UpdateTime),demodel.UpdateTime}
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Teaching_Rewards_Base_ViewModel.Id),
FiledValue=demodel.Id,
OperatorEnum=OperatorEnum.Equal
}
};
var flag = teaching_Rewards_BaseRepository.Update(keyValues, wheres);
if (flag) {
//记录日志
changeLogRepository.Insert(new Model.Entity.Log.RB_User_ChangeLog()
{
Id = 0,
Type = 1,
CreateBy = userInfo.Id,
CreateTime = DateTime.Now,
Group_Id = userInfo.Group_Id,
LogContent = "更新教务奖励-基础",
School_Id = userInfo.School_Id,
SourceId = 0
});
}
return flag;
}
else {
var list = teaching_Rewards_BaseRepository.GetList(new RB_Teaching_Rewards_Base_ViewModel() { Group_Id = userInfo.Group_Id, Type = demodel.Type });
if (list.Any())
{
return false;
}
int Id = teaching_Rewards_BaseRepository.Insert(demodel);
if (Id > 0) {
//记录日志
changeLogRepository.Insert(new Model.Entity.Log.RB_User_ChangeLog()
{
Id = 0,
Type = 1,
CreateBy = userInfo.Id,
CreateTime = DateTime.Now,
Group_Id = userInfo.Group_Id,
LogContent = "新增教务奖励-基础",
School_Id = userInfo.School_Id,
SourceId = 0
});
}
return Id > 0;
}
}
/// <summary>
/// 获取教务奖励基础
/// </summary>
/// <param name="type"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
public object GetTeachingRewardsBaseInfo(int type, UserInfo userInfo)
{
var model = teaching_Rewards_BaseRepository.GetList(new RB_Teaching_Rewards_Base_ViewModel() { Group_Id = userInfo.Group_Id, Type = type }).FirstOrDefault();
return new
{
Id = model?.Id ?? 0,
BasicMoney = model?.BasicMoney ?? 0,
BasicHour = model?.BasicHour ?? 0
};
}
}
}
......@@ -21,12 +21,16 @@ namespace Edu.Module.User
/// </summary>
private readonly RB_AccountRepository accountRepository = new RB_AccountRepository();
/// <summary>
/// 岗位仓储层对象
/// </summary>
private readonly RB_PostRepository postRepository = new RB_PostRepository();
/// <summary>
/// 部门岗位关联表仓储层对象
/// </summary>
private readonly RB_Department_PostRepository department_PostRepository = new RB_Department_PostRepository();
/// <summary>
/// 获取部门分页列表
/// </summary>
......@@ -40,6 +44,7 @@ namespace Edu.Module.User
var list = departmentRepository.GetDepartmentPageListRepository(pageIndex, pageSize, out rowsCount, query);
List<RB_Department_ViewModel> parentList = new List<RB_Department_ViewModel>();
List<Employee_ViewModel> empList = new List<Employee_ViewModel>();
List<RB_Department_Post_ViewModel> deptPostList = new List<RB_Department_Post_ViewModel>();
if (list != null && list.Count > 0)
{
//查询部门列表
......@@ -54,6 +59,12 @@ namespace Edu.Module.User
{
empList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel() { QIds = persion });
}
string qDeptIds = string.Join(",", list.Select(qitem => qitem.DeptId));
if (!string.IsNullOrEmpty(qDeptIds))
{
deptPostList = department_PostRepository.GetDepartmentPostListRepository(new RB_Department_Post_ViewModel() { QDeptIds = qDeptIds });
}
}
foreach (var item in list)
{
......@@ -73,6 +84,7 @@ namespace Edu.Module.User
persionName = persionName.Substring(1);
}
item.ManagerName = persionName;
item.DeptPostList = deptPostList?.Where(qitem => qitem.Dept_Id == item.DeptId)?.ToList() ?? new List<RB_Department_Post_ViewModel>();
}
return list;
}
......@@ -217,22 +229,22 @@ namespace Edu.Module.User
#region 添加岗位
if (isQueryPost)
{
var tempPostList = postList?.Where(qitem => qitem.RB_Dept_Id == fItem.DeptId)?.ToList();
if (tempPostList != null && tempPostList.Count > 0)
{
foreach (var pItem in tempPostList)
{
tModel.ChildList.Add(new DepartmentTree_ViewModel()
{
DeptId = pItem.PostId,
DeptName = pItem.PostName,
ParentId = 0,
ChildList = new List<DepartmentTree_ViewModel>(),
School_Id = fItem.School_Id,
DataType = 3,
});
}
}
//var tempPostList = postList?.Where(qitem => qitem.RB_Dept_Id == fItem.DeptId)?.ToList();
//if (tempPostList != null && tempPostList.Count > 0)
//{
// foreach (var pItem in tempPostList)
// {
// tModel.ChildList.Add(new DepartmentTree_ViewModel()
// {
// DeptId = pItem.PostId,
// DeptName = pItem.PostName,
// ParentId = 0,
// ChildList = new List<DepartmentTree_ViewModel>(),
// School_Id = fItem.School_Id,
// DataType = 3,
// });
// }
//}
}
#endregion
......@@ -296,22 +308,22 @@ namespace Edu.Module.User
#region 添加岗位
if (postList != null && postList.Count > 0)
{
var tempPostList = postList?.Where(qitem => qitem.RB_Dept_Id == item.DeptId)?.ToList();
if (tempPostList != null && tempPostList.Count > 0)
{
foreach (var pItem in tempPostList)
{
model.ChildList.Add(new DepartmentTree_ViewModel()
{
DeptId = pItem.PostId,
DeptName = pItem.PostName,
ParentId = 0,
ChildList = new List<DepartmentTree_ViewModel>(),
School_Id = item.School_Id,
DataType = 3,
});
}
}
//var tempPostList = postList?.Where(qitem => qitem.RB_Dept_Id == item.DeptId)?.ToList();
//if (tempPostList != null && tempPostList.Count > 0)
//{
// foreach (var pItem in tempPostList)
// {
// model.ChildList.Add(new DepartmentTree_ViewModel()
// {
// DeptId = pItem.PostId,
// DeptName = pItem.PostName,
// ParentId = 0,
// ChildList = new List<DepartmentTree_ViewModel>(),
// School_Id = item.School_Id,
// DataType = 3,
// });
// }
//}
}
#endregion
......@@ -399,7 +411,7 @@ namespace Edu.Module.User
/// </summary>
/// <param name="extModel"></param>
/// <returns></returns>
public bool SetDepartmentModule(RB_Department_ViewModel extModel)
public virtual bool SetDepartmentModule(RB_Department_ViewModel extModel)
{
bool flag;
if (extModel.DeptId > 0)
......@@ -425,6 +437,20 @@ namespace Edu.Module.User
extModel.DeptId = newId;
flag = newId > 0;
}
department_PostRepository.DeleteOne(new WhereHelper(nameof(RB_Department_Post_ViewModel.Dept_Id), extModel.DeptId));
if (extModel.ChoosePostList != null && extModel.ChoosePostList.Count > 0)
{
foreach (var item in extModel.ChoosePostList)
{
var deptPostModel = new RB_Department_Post_ViewModel()
{
Id = 0,
Dept_Id = extModel.DeptId,
PostId = item
};
department_PostRepository.Insert(deptPostModel);
}
}
return flag;
}
......@@ -435,7 +461,22 @@ namespace Edu.Module.User
/// <returns></returns>
public RB_Department_ViewModel GetDepartmentModule(object DeptId)
{
return departmentRepository.GetEntity<RB_Department_ViewModel>(DeptId);
var extModel = departmentRepository.GetEntity<RB_Department_ViewModel>(DeptId);
if (extModel != null && extModel.DeptId > 0)
{
var deptPostList = department_PostRepository.GetDepartmentPostListRepository(new RB_Department_Post_ViewModel()
{
Dept_Id = extModel.DeptId
});
extModel.ChoosePostList = new List<int>();
if (deptPostList != null && deptPostList.Count > 0)
{
}
extModel.DeptPostList = deptPostList;
}
return extModel;
}
/// <summary>
......
......@@ -61,7 +61,6 @@ namespace Edu.Module.User
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Post_ViewModel.PostName),extModel.PostName },
{nameof(RB_Post_ViewModel.RB_Dept_Id),extModel.RB_Dept_Id },
{nameof(RB_Post_ViewModel.UpdateBy),extModel.UpdateBy },
{nameof(RB_Post_ViewModel.UpdateTime),extModel.UpdateTime },
};
......
......@@ -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);
......
using Edu.Common.Enum;
using Edu.Model.Entity.Course;
using Edu.Model.ViewModel.Course;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
......@@ -73,6 +74,23 @@ WHERE 1=1
return base.Exists(list);
}
/// <summary>
/// 老师改变则修改后面的代课老师为新的教师编号
/// </summary>
/// <param name="TeacherId"></param>
/// <param name="classId"></param>
/// <returns></returns>
public bool UpdatePlanTeacherIdRepository(int TeacherId, int classId)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
UPDATE rb_class_plan
SET TeacherId={0}
WHERE ClassId={1} AND ClassDate>'{2}'
", TeacherId, classId, DateTime.Now.ToString("yyyy-MM-dd"));
return base.Execute(builder.ToString()) > 0;
}
/// <summary>
/// 根据班级编号删除班级上课计划
/// </summary>
......
......@@ -82,7 +82,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();
}
}
}
using Edu.Model.Entity.User;
using Edu.Model.ViewModel.User;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Edu.Repository.User
{
/// <summary>
/// 部门岗位关联表仓储层
/// </summary>
public class RB_Department_PostRepository : BaseRepository<RB_Department_Post>
{
/// <summary>
/// 获取部门管理岗位列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Department_Post_ViewModel> GetDepartmentPostListRepository(RB_Department_Post_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.PostName,'') AS PostName
FROM rb_department_post AS A LEFT JOIN rb_post AS B ON A.PostId=B.PostId
WHERE 1=1
");
if (query == null)
{
return new List<RB_Department_Post_ViewModel>();
}
else
{
if (query.Dept_Id > 0)
{
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Department_Post_ViewModel.Dept_Id), query.Dept_Id);
}
if (!string.IsNullOrEmpty(query.QDeptIds))
{
builder.AppendFormat(" AND {0} IN ({1}) ", nameof(RB_Department_Post_ViewModel.Dept_Id), query.QDeptIds);
}
}
return Get<RB_Department_Post_ViewModel>(builder.ToString()).ToList();
}
}
}
......@@ -27,8 +27,8 @@ namespace Edu.Repository.User
DynamicParameters parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.DeptName,'') AS DeptName
FROM rb_post AS A LEFT JOIN rb_department AS B ON A.RB_Dept_Id=B.DeptId
SELECT A.*
FROM rb_post AS A
WHERE 1=1
");
if (query != null)
......@@ -83,10 +83,6 @@ WHERE 1=1
{
builder.Append($" AND A.{nameof(RB_Post_ViewModel.PostId)}={query.PostId} ");
}
if (query.RB_Dept_Id > 0)
{
builder.Append($" AND A.{nameof(RB_Post_ViewModel.RB_Dept_Id)}={query.RB_Dept_Id} ");
}
if (!string.IsNullOrEmpty(query.QPostIds))
{
builder.Append($" AND A.{nameof(RB_Post_ViewModel.PostId)} IN({query.QPostIds}) ");
......
......@@ -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
}
}
......@@ -1217,7 +1217,6 @@ namespace Edu.WebApi.Controllers.User
var query = new RB_Post_ViewModel()
{
Group_Id = base.UserInfo.Group_Id,
RB_Dept_Id = base.ParmJObj.GetInt("RB_Dept_Id"),
};
var list = postModule.GetPostListModule(query);
return ApiResult.Success(data: list);
......
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