Commit 27e5f738 authored by liudong1993's avatar liudong1993

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

parents 03eb6667 bb6fdfb3
......@@ -449,6 +449,19 @@ namespace Edu.Common
}
}
/// <summary>
/// 超过下班时间多少分钟数不能打卡
/// </summary>
public static int MoreThanMinutes
{
get
{
int.TryParse(ReadConfigKey("MoreThanMinutes"), out int MoreThanMinutes);
return MoreThanMinutes;
}
}
/// <summary>
/// 消息推送AppId
/// </summary>
......
using Edu.Common.Plugin;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Common.Enum.Course
{
......@@ -21,14 +18,14 @@ namespace Edu.Common.Enum.Course
[EnumField("线下发展")]
OffLine = 2,
/// <summary>
/// 同行转交
/// 一般同行
/// </summary>
[EnumField("同行转交")]
[EnumField("一般同行")]
Client = 3,
/// <summary>
/// 学员介绍
/// 转介人/学员介绍
/// </summary>
[EnumField("学员介绍")]
[EnumField("转介人/学员介绍")]
Student = 4,
/// <summary>
/// 内部亲属
......@@ -39,6 +36,11 @@ namespace Edu.Common.Enum.Course
/// 内部员工
/// </summary>
[EnumField("内部员工")]
Employee = 6
Employee = 6,
/// <summary>
/// 一般同行
/// </summary>
[EnumField("教育同行")]
EduClient = 7,
}
}
using Edu.Common.Plugin;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Common.Enum.Sale
{
/// <summary>
/// 订单性质
/// </summary>
public enum OrderNatureEnum
{
/// <summary>
/// 直通车
/// </summary>
[EnumField("直通车")]
ThroughTrain = 1,
/// <summary>
/// 代收代付
/// </summary>
[EnumField("代收代付")]
CollectionAndPayment = 2,
/// <summary>
/// 返佣
/// </summary>
[EnumField("返佣")]
Rebate = 3,
}
}
......@@ -164,5 +164,40 @@ namespace Edu.Model.Entity.Course
/// 来源编号(OrderType=1,SourceId=0),(OrderType=2,SourceId=留学就业产品对应编号)
/// </summary>
public int SourceId { get; set; }
/// <summary>
/// 协助人员编号(协助老师编号)
/// </summary>
public int HelpEnterId { get; set; }
/// <summary>
/// 一般同行名称
/// </summary>
public string GeneralOccupation { get; set; }
/// <summary>
/// 教育同行名称
/// </summary>
public string EduOccupation { get; set; }
/// <summary>
/// 是否少价(1-是)
/// </summary>
public int IsLessPrice { get; set; }
/// <summary>
/// 少价金额
/// </summary>
public decimal LessPrice { get; set; }
/// <summary>
/// (教育订单使用)订单性质(1-直通车,2-代收代付,3-返佣)
/// </summary>
public OrderNatureEnum OrderNature { get; set; }
/// <summary>
/// (教育订单使用)订单性质(1-直通车,2-代收代付,3-返佣)
/// </summary>
public decimal OldPreferPrice { get; set; }
}
}
......@@ -48,6 +48,9 @@ namespace Edu.Model.ViewModel.Course
/// </summary>
public int ClassRoomId { get; set; }
public string RoomName { get; set; }
/// <summary>
/// 集团
/// </summary>
......
......@@ -182,5 +182,15 @@ namespace Edu.Model.ViewModel.Course
/// 销售平台
/// </summary>
public string Saleplat { get; set; }
/// <summary>
/// 课程售价
/// </summary>
public decimal CourseSellPrice { get; set; }
/// <summary>
/// 课程原价
/// </summary>
public decimal CourseOriginalPrice { get; set; }
}
}
\ No newline at end of file
......@@ -89,6 +89,7 @@ namespace Edu.Model.ViewModel.Course
/// 合同列表
/// </summary>
public List<RB_Education_Contract_ViewModel> ContractList { get; set; }
/// <summary>
/// 报名开始时间
/// </summary>
......@@ -120,5 +121,10 @@ namespace Edu.Model.ViewModel.Course
/// 留学就业产品名称
/// </summary>
public string StudyName { get; set; }
/// <summary>
/// 协助人员姓名
/// </summary>
public string HelpEnterName { get; set; }
}
}
\ No newline at end of file
......@@ -82,7 +82,7 @@ namespace Edu.Model.ViewModel.Duty
get
{
string str = Common.ConvertHelper.FormatTimeStr(this.CheckTime);
if (str == "")
if (str == "" || str == "00:00")
{
str = "未打卡";
}
......@@ -98,13 +98,23 @@ namespace Edu.Model.ViewModel.Duty
get
{
string str = Common.ConvertHelper.FormatTimeStr(this.FinishTime);
if (str == "")
if ( str == "" || str == "00:00")
{
str = "未打卡";
}
return str;
}
}
/// <summary>
/// 值班状态(0-未开始,1-值班中,2-已完成,3-未值班)
/// </summary>
public int QDutyStatus { get; set; }
/// <summary>
/// 出勤状态(1-迟到,2-早退,3-缺勤,4-正常)
/// </summary>
public int QAttendanceStatus { get; set; }
}
/// <summary>
......
......@@ -81,5 +81,15 @@ namespace Edu.Model.ViewModel.Duty
/// 交接工作总数
/// </summary>
public int TotalHandoverCount { get; set; }
/// <summary>
/// 值班状态(0-未开始,1-值班中,2-已完成,3-未值班)
/// </summary>
public int QDutyStatus { get; set; }
/// <summary>
/// 出勤状态(1-迟到,2-早退,3-缺勤,4-正常)
/// </summary>
public int QAttendanceStatus { get; set; }
}
}
......@@ -698,15 +698,28 @@ namespace Edu.Module.Course
}
/// <summary>
/// 删除班级
/// 修改班级【正常/删除】状态
/// </summary>
/// <param name="ClassId"></param>
/// <param name="Status"></param>
/// <param name="message"></param>
/// <returns></returns>
public bool RemoveClassModule(object ClassId)
public bool RemoveClassModule(int ClassId, int Status, out string message)
{
message = "";
var orderList = orderRepository.GetPageList(1, 1, out _, new RB_Order_ViewModel()
{
ClassId = ClassId,
Q_OrderState = 1
});
if (orderList != null && orderList.Count > 0)
{
message = "此班级下存在正常订单!不能删除!";
return false;
}
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{ nameof(RB_Class_ViewModel.Status),(int)DateStateEnum.Delete},
{ nameof(RB_Class_ViewModel.Status),Status},
};
return classRepository.Update(fileds, new WhereHelper(nameof(RB_Class_ViewModel.ClassId), ClassId));
}
......@@ -1543,6 +1556,19 @@ namespace Edu.Module.Course
return class_TimeRepository.GetClassTimeByRoomId(RoomId, Group_Id);
}
/// <summary>
/// 获取班级上课时间
/// </summary>
/// <param name="classIds"></param>
/// <returns></returns>
public List<RB_Class_Time_Extend> GetClassTimeByTId(int TId, int Group_Id)
{
return class_TimeRepository.GetClassTimeByTId(TId, Group_Id);
}
public int GetNowClassHours(RB_Class_Time_Extend model)
{
int classHours = 0;
......
......@@ -92,6 +92,11 @@ namespace Edu.Module.Course
/// </summary>
private readonly RB_QuestionRepository questionRepository = new RB_QuestionRepository();
/// <summary>
/// 班级仓储层对象
/// </summary>
private readonly RB_ClassRepository classRepository = new RB_ClassRepository();
#region 课程管理
/// <summary>
......@@ -333,15 +338,27 @@ namespace Edu.Module.Course
}
/// <summary>
/// 删除课程
/// 修改课程状态
/// </summary>
/// <param name="CourseId"></param>
/// <param name="Status">1-删除,0-启用</param>
/// <param name="message"></param>
/// <returns></returns>
public bool RemoveCourseModule(object CourseId)
public bool RemoveCourseModule(int CourseId,int Status,out string message)
{
message = "";
var classList = classRepository.GetClassListRepository(new RB_Class_ViewModel()
{
CouseId = CourseId
});
if (classList != null && classList.Count > 0)
{
message = "此课程下存在正常的班级信息,不能删除!";
return false;
}
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Course_ViewModel.Status),(int)DateStateEnum.Delete },
{nameof(RB_Course_ViewModel.Status),Status},
};
bool flag = courseRepository.Update(fileds, new WhereHelper(nameof(RB_Course_ViewModel.CourseId), CourseId));
return flag;
......
This diff is collapsed.
This diff is collapsed.
......@@ -2,6 +2,7 @@
using Edu.Common.Enum.Sale;
using Edu.Model.CacheModel;
using Edu.Model.ViewModel.StudyAbroad;
using Edu.Repository.Course;
using Edu.Repository.StudyAbroad;
using System;
using System.Collections.Generic;
......@@ -26,6 +27,11 @@ namespace Edu.Module.StudyAbroad
/// </summary>
private readonly RB_StudyaBroad_PreferentialRepository studyaBroad_PreferentialRepository = new RB_StudyaBroad_PreferentialRepository();
/// <summary>
/// 订单仓储层对象
/// </summary>
private readonly RB_OrderRepository orderRepository = new RB_OrderRepository();
/// <summary>
/// 获取留学就业分页列表
/// </summary>
......@@ -245,8 +251,19 @@ namespace Edu.Module.StudyAbroad
/// <param name="Id">供应商编号</param>
/// <param name="Status">状态(0-正常,1-删除)</param>
/// <returns></returns>
public bool RemoveStudyAbroadModule(int Id, int Status)
public bool RemoveStudyAbroadModule(int Id, int Status,out string message)
{
message = "";
var orderList = orderRepository.GetStudyOrderPageListRepository(1, 1, out _, new Model.ViewModel.Course.RB_Order_ViewModel()
{
SourceId = Id,
Q_OrderState = 1
});
if (orderList != null && orderList.Count > 0)
{
message = "此产品下存在正常订单!不能删除!";
return false;
}
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{ nameof(RB_StudyAbroad_ViewModel.Status),Status},
......
......@@ -75,7 +75,7 @@ namespace Edu.Module.User
/// <returns></returns>
public List<RB_Assist_ViewModel> GetAssistPageListModule(int pageIndex, int pageSize, out long rowsCount, RB_Assist_ViewModel query)
{
var list= assistRepository.GetAssistPageListRepository(pageIndex, pageSize, out rowsCount, query);
var list = assistRepository.GetAssistPageListRepository(pageIndex, pageSize, out rowsCount, query);
if (list != null && list.Count > 0)
{
string postIds = string.Join(",", list.Where(qitem => qitem.Post_Id > 0).Select(qitem => qitem.Post_Id));
......@@ -100,7 +100,7 @@ namespace Edu.Module.User
}
/// <summary>
/// 添加修改助教
///【员工管理端】添加修改助教
/// </summary>
/// <param name="model"></param>
/// <param name="isUpdateBasic">是否更新基础资料</param>
......@@ -134,13 +134,13 @@ namespace Edu.Module.User
model.LeaveTime = null;
}
fileds.Add(nameof(RB_Assist_ViewModel.IDCard), model.IDCard);
fileds.Add(nameof(RB_Assist_ViewModel.Sex),model.Sex);
fileds.Add(nameof(RB_Assist_ViewModel.EntryTime),model.EntryTime);
fileds.Add(nameof(RB_Assist_ViewModel.Address),model.Address);
fileds.Add(nameof(RB_Assist_ViewModel.BirthDate),model.BirthDate);
fileds.Add(nameof(RB_Assist_ViewModel.LeaveStatus),model.LeaveStatus);
fileds.Add(nameof(RB_Assist_ViewModel.LeaveTime),model.LeaveTime);
fileds.Add(nameof(RB_Assist_ViewModel.Education),model.Education);
fileds.Add(nameof(RB_Assist_ViewModel.Sex), model.Sex);
fileds.Add(nameof(RB_Assist_ViewModel.EntryTime), model.EntryTime);
fileds.Add(nameof(RB_Assist_ViewModel.Address), model.Address);
fileds.Add(nameof(RB_Assist_ViewModel.BirthDate), model.BirthDate);
fileds.Add(nameof(RB_Assist_ViewModel.LeaveStatus), model.LeaveStatus);
fileds.Add(nameof(RB_Assist_ViewModel.LeaveTime), model.LeaveTime);
fileds.Add(nameof(RB_Assist_ViewModel.Education), model.Education);
fileds.Add(nameof(RB_Assist_ViewModel.Email), model.Email);
}
string logContent = "";
......@@ -212,8 +212,8 @@ namespace Edu.Module.User
}
if (flag)
{
var account= accountModule.GetAccountListModule(new RB_Account_ViewModel() { AccountType = AccountTypeEnum.Assist, AccountId = model.AId })?.FirstOrDefault();
int Id = account?.Id??0;
var account = accountModule.GetAccountListModule(new RB_Account_ViewModel() { AccountType = AccountTypeEnum.Assist, AccountId = model.AId })?.FirstOrDefault();
int Id = account?.Id ?? 0;
flag = accountModule.SetAccountModule(new RB_Account_ViewModel()
{
Id = Id,
......@@ -233,6 +233,89 @@ namespace Edu.Module.User
return flag;
}
/// <summary>
/// 【助教端】添加修改助教
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool SetAssistModule_V2(RB_Assist_ViewModel model)
{
bool flag;
if (model.AId > 0)
{
var oldModel = GetAssistModule(model.AId);
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Assist_ViewModel.AssistName),model.AssistName.Trim() },
{nameof(RB_Assist_ViewModel.AssistTel),model.AssistTel },
{nameof(RB_Assist_ViewModel.AssistIcon),model.AssistIcon },
{nameof(RB_Assist_ViewModel.UpdateBy),model.UpdateBy },
{nameof(RB_Assist_ViewModel.UpdateTime),model.UpdateTime },
};
fileds.Add(nameof(RB_Assist_ViewModel.Dept_Id), model.Dept_Id);
fileds.Add(nameof(RB_Assist_ViewModel.Post_Id), model.Post_Id);
fileds.Add(nameof(RB_Assist_ViewModel.AssistIntro), model.AssistIntro);
fileds.Add(nameof(RB_Assist_ViewModel.Teacher_Id), model.Teacher_Id);
fileds.Add(nameof(RB_Assist_ViewModel.School_Id), model.School_Id);
string logContent = "";
if (model.AssistName != oldModel.AssistName)
{
logContent += string.Format(",将姓名由【{0}】修改为【{1}】。", oldModel.AssistName, model.AssistName);
}
if (model.AssistTel != oldModel.AssistTel)
{
logContent += string.Format(",将电话由【{0}】修改为【{1}】。", oldModel.AssistTel, model.AssistTel);
}
if (model.AssistIntro != oldModel.AssistIntro)
{
logContent += string.Format(",将简介由【{0}】修改为【{1}】。", oldModel.AssistIntro, model.AssistIntro);
}
if (model.AssistIcon != oldModel.AssistIcon)
{
logContent += string.Format(",将头像由【{0}】修改为【{1}】。", oldModel.AssistIcon, model.AssistIcon);
}
if (!string.IsNullOrEmpty(logContent))
{
//新增日志
userChangeLogModule.SetUserChangeLogModule(model.CreateBy, model.Group_Id, model.School_Id, logContent, model.AId, AccountTypeEnum.Assist);
}
flag = assistRepository.Update(fileds, new WhereHelper(nameof(RB_Assist.AId), model.AId));
}
else
{
var newId = assistRepository.Insert(model);
model.AId = newId;
userChangeLogModule.SetUserChangeLogModule(model.CreateBy, model.Group_Id, model.School_Id, "新建助教用户", newId, AccountTypeEnum.Assist);
flag = newId > 0;
}
if (flag)
{
var account = accountModule.GetAccountListModule(new RB_Account_ViewModel() { AccountType = AccountTypeEnum.Assist, AccountId = model.AId })?.FirstOrDefault();
int Id = account?.Id ?? 0;
if (Id == 0)
{
flag = accountModule.SetAccountModule(new RB_Account_ViewModel()
{
Id = Id,
Account = model.AssistTel,
Password = Common.DES.Encrypt(Common.Config.DefaultPwd),
AccountType = AccountTypeEnum.Assist,
AccountId = model.AId,
CreateBy = model.CreateBy,
UpdateBy = model.CreateBy,
CreateTime = DateTime.Now,
UpdateTime = DateTime.Now,
Group_Id = model.Group_Id,
School_Id = model.School_Id,
DirectSupervisor = model.DirectSupervisor
});
}
}
return flag;
}
/// <summary>
/// 添加修改助教部门
/// </summary>
......@@ -409,7 +492,7 @@ namespace Edu.Module.User
flag = assistRepository.Update(fileds, new WhereHelper(nameof(RB_Assist.AId), AId));
var accountList = accountModule.GetAccountListExtModule(new RB_Account_ViewModel()
{
AccountId=model.AId,
AccountId = model.AId,
Account = model.AssistTel,
AccountType = AccountTypeEnum.Assist
});
......
......@@ -114,7 +114,7 @@ namespace Edu.Module.User
}
/// <summary>
/// 新增修改讲师
/// 员工管理端(新增修改讲师)
/// </summary>
/// <param name="model"></param>
/// <param name="isUpdateBasic">是否更新基础资料</param>
......@@ -241,6 +241,8 @@ namespace Edu.Module.User
{
var account = accountModule.GetAccountListModule(new RB_Account_ViewModel() { AccountType = AccountTypeEnum.Teacher, AccountId = model.TId })?.FirstOrDefault();
int Id = account?.Id ?? 0;
if (Id == 0)
{
flag = accountModule.SetAccountModule(new RB_Account_ViewModel()
{
Id = Id,
......@@ -257,6 +259,120 @@ namespace Edu.Module.User
DirectSupervisor = model.DirectSupervisor
});
}
}
return flag;
}
/// <summary>
/// 教师端(新增修改讲师)
/// </summary>
/// <param name="model"></param>
/// <param name="isUpdateBasic">是否更新基础资料</param>
/// <returns></returns>
public bool SetTeacherModule_V2(RB_Teacher_ViewModel model, bool isUpdateBasic = false)
{
bool flag;
if (model.TId > 0)
{
var oldModel = GetTeacherModule(model.TId);
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Teacher_ViewModel.TeacherName),model.TeacherName },
{nameof(RB_Teacher_ViewModel.TeacherTel),model.TeacherTel },
{nameof(RB_Teacher_ViewModel.TeacherHead),model.TeacherHead },
{nameof(RB_Teacher_ViewModel.TeacherIcon),model.TeacherIcon },
{nameof(RB_Teacher_ViewModel.UpdateBy),model.UpdateBy },
{nameof(RB_Teacher_ViewModel.UpdateTime),model.UpdateTime },
{nameof(RB_Teacher_ViewModel.School_Id),model.School_Id },
};
fileds.Add(nameof(RB_Teacher_ViewModel.TeachTag), model.TeachTag);
fileds.Add(nameof(RB_Teacher_ViewModel.SortNum), model.SortNum);
fileds.Add(nameof(RB_Teacher_ViewModel.IsRecommend), model.IsRecommend);
fileds.Add(nameof(RB_Teacher_ViewModel.IsShow), model.IsShow);
fileds.Add(nameof(RB_Teacher_ViewModel.TeacherIntro), model.TeacherIntro);
fileds.Add(nameof(RB_Teacher_ViewModel.TeacherSay), model.TeacherSay);
fileds.Add(nameof(RB_Teacher_ViewModel.Dept_Id), model.Dept_Id);
fileds.Add(nameof(RB_Teacher_ViewModel.Post_Id), model.Post_Id);
fileds.Add(nameof(RB_Teacher_ViewModel.BaseStuNum), model.BaseStuNum);
fileds.Add(nameof(RB_Teacher_ViewModel.BaseHourFee), model.BaseHourFee);
#region 修改日志
string logContent = "";
if (model.TeacherName != oldModel.TeacherName)
{
logContent += string.Format(",将姓名由【{0}】修改为【{1}】。", oldModel.TeacherName, model.TeacherName);
}
if (model.TeacherTel != oldModel.TeacherTel)
{
logContent += string.Format(",将电话由【{0}】修改为【{1}】。", oldModel.TeacherTel, model.TeacherTel);
}
if (model.BaseStuNum != oldModel.BaseStuNum)
{
logContent += string.Format(",将带班基础人数由【{0}】修改为【{1}】。", oldModel.BaseStuNum, model.BaseStuNum);
}
if (Common.ConvertHelper.FormatDate(model.EntryTime) != Common.ConvertHelper.FormatDate(oldModel.EntryTime))
{
logContent += string.Format(",将入职时间由【{0}】修改为【{1}】。", oldModel.EntryTime, model.EntryTime);
}
if (model.Address != oldModel.Address)
{
logContent += string.Format(",将地址由【{0}】修改为【{1}】。", oldModel.Address, model.Address);
}
if (Common.ConvertHelper.FormatDate(model.BirthDate) != Common.ConvertHelper.FormatDate(oldModel.BirthDate))
{
logContent += string.Format(",将生日由【{0}】修改为【{1}】。", Common.ConvertHelper.FormatDate(oldModel.BirthDate), Common.ConvertHelper.FormatDate(model.BirthDate));
}
if (model.Education != oldModel.Education)
{
logContent += string.Format(",将学历由【{0}】修改为【{1}】。", oldModel.Education.ToName(), model.Education.ToName());
}
if (model.Email != oldModel.Email)
{
logContent += string.Format(",将邮箱由【{0}】修改为【{1}】。", oldModel.Email, model.Email);
}
if (model.BaseHourFee != oldModel.BaseHourFee)
{
logContent += string.Format(",将基础课时费由【{0}】修改为【{1}】。", oldModel.BaseHourFee, model.BaseHourFee);
}
if (model.BaseStuNum != oldModel.BaseStuNum)
{
logContent += string.Format(",将基础带班人数由【{0}】修改为【{1}】。", oldModel.BaseStuNum, model.BaseStuNum);
}
if (!string.IsNullOrEmpty(logContent))
{
//新增日志
userChangeLogModule.SetUserChangeLogModule(model.CreateBy, model.Group_Id, model.School_Id, logContent, model.TId, AccountTypeEnum.Teacher);
}
#endregion
flag = teacherRepository.Update(fileds, new WhereHelper(nameof(RB_Teacher_ViewModel.TId), model.TId));
}
else
{
var newId = teacherRepository.Insert(model);
model.TId = newId;
userChangeLogModule.SetUserChangeLogModule(model.CreateBy, model.Group_Id, model.School_Id, "新建教师用户", newId, AccountTypeEnum.Teacher);
flag = newId > 0;
}
if (flag)
{
var account = accountModule.GetAccountListModule(new RB_Account_ViewModel() { AccountType = AccountTypeEnum.Teacher, AccountId = model.TId })?.FirstOrDefault();
int Id = account?.Id ?? 0;
flag = accountModule.SetAccountModule(new RB_Account_ViewModel()
{
Id = Id,
Account = model.TeacherTel,
Password = Common.DES.Encrypt(Common.Config.DefaultPwd),
AccountType = AccountTypeEnum.Teacher,
AccountId = model.TId,
CreateBy = model.CreateBy,
UpdateBy = model.CreateBy,
CreateTime = DateTime.Now,
UpdateTime = DateTime.Now,
Group_Id = model.Group_Id,
School_Id = model.School_Id,
DirectSupervisor = model.DirectSupervisor
});
}
return flag;
}
......@@ -530,5 +646,15 @@ namespace Edu.Module.User
return teacherRepository.GetListByStudentId(Student_Id, Group_Id);
}
/// <summary>
/// 获取教师账户
/// </summary>
/// <param name="teacherIds"></param>
/// <returns></returns>
public List<RB_Teacher_ViewModel> GetTeacherByTId(int AccountId,int Group_Id)
{
return teacherRepository.GetTeacherByTId(AccountId, Group_Id);
}
}
}
......@@ -235,7 +235,7 @@ WHERE A.ClassId={0}
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,B.CourseName,D.TeacherName,IFNULL(D.TeacherHead,'') AS TeacherHead,E.SName AS SchoolName,R.RoomName
,IFNULL(t.GuestNum,0) AS OrderStudentCount
,IFNULL(t.GuestNum,0) AS OrderStudentCount,IFNULL(B.SellPrice,0) AS CourseSellPrice,IFNULL(B.OriginalPrice,0) AS CourseOriginalPrice
FROM rb_class AS A LEFT JOIN rb_course AS B ON A.CouseId=B.CourseId
LEFT JOIN rb_teacher AS D ON A.Teacher_Id=D.TId
LEFT JOIN rb_class_room AS R ON A.ClassRoomId=R.RoomId
......
......@@ -127,6 +127,27 @@ where a.`Status`=0 and c.ClassStatus =2 and a.ClassRoomId={RoomId} and a.Group_
return Get<RB_Class_Time_Extend>(builder.ToString()).ToList();
}
/// <summary>
/// 获取班级上课时间
/// </summary>
/// <param name="classIds"></param>
/// <returns></returns>
public List<RB_Class_Time_Extend> GetClassTimeByTId(int TId, int Group_Id)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat($@"SELECT t.TeacherName,croom.RoomName,t.TeacherIcon,c.ClassHours,c.ClassName,cou.CourseName,lp.LessonPlanId,A.ClassPlanId,A.ClassId,A.`Status`,A.ClassRoomId,A.Group_Id,A.School_Id,A.TeacherId,B.ClassTimeId,CONCAT( DATE_FORMAT(A.ClassDate,'%Y-%m-%d') ,' ',B.StartTime,':00') AS NewPlanDateTime,
B.EndTime,B.StartTime,B.SuiPai,B.ClassStatus,CONCAT( DATE_FORMAT(A.ClassDate,'%Y-%m-%d') ,' ',B.EndTime,':00') AS NewEndPlanDateTime
FROM rb_class_plan AS A INNER JOIN rb_class_time AS B ON A.ClassPlanId=B.ClassPlanId
LEFT JOIN rb_teacher as t on a.TeacherId=t.TId
LEFT JOIN rb_class as c on c.ClassId=a.ClassId
LEFT JOIN rb_course as cou on cou.CourseId=c.CouseId
LEFT JOIN rb_class_room as croom on croom.RoomId=a.ClassRoomId
LEFT JOIN (SELECT ClassPlanId,MAX(LessonPlanId) as LessonPlanId from rb_class_lessonplan where `Status`=0 GROUP BY ClassPlanId) as lp on lp.ClassPlanId=a.ClassPlanId
where a.`Status`=0 and c.ClassStatus =2 and a.TeacherId={TId} and a.Group_Id={Group_Id} and DATE_FORMAT(A.ClassDate,'%Y-%m-%d')>=DATE_FORMAT(NOW(),'%Y-%m-%d') ORDER BY CONCAT( DATE_FORMAT(A.ClassDate,'%Y-%m-%d') ,' ',B.EndTime,':00') asc LIMIT 10");
return Get<RB_Class_Time_Extend>(builder.ToString()).ToList();
}
#endregion
}
}
......@@ -349,6 +349,10 @@ where {where}
{
where += $@" and o.{nameof(RB_Order_ViewModel.ClassId)} ={demodel.ClassId}";
}
if (demodel.SourceId > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.SourceId)} ={demodel.SourceId}";
}
if (demodel.OrderState > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderState)} ={(int)demodel.OrderState}";
......
......@@ -47,6 +47,31 @@ WHERE 1=1
{
builder.AppendFormat(@" AND A.{0} IN({1}) ", nameof(RB_Duty_PlanDetails_ViewModel.DutyMan), query.QDutyMan);
}
if (query.QDutyStatus > -1)
{
builder.AppendFormat(" AND A.Status={0} ", query.QDutyStatus);
}
//迟到
if (query.QAttendanceStatus == 1)
{
builder.AppendFormat(" AND A.CheckLateTime>0 ");
}
//早退
if (query.QAttendanceStatus == 2)
{
builder.AppendFormat(" AND A.FinishLateTime>0 ");
}
//缺勤
if (query.QAttendanceStatus == 3)
{
builder.AppendFormat(" AND A.Status=0 AND A.FinishLateTime=0 AND A.CheckLateTime=0 ");
}
//正常
if (query.QAttendanceStatus == 4)
{
builder.AppendFormat(" AND A.Status=2 AND A.FinishLateTime=0 AND A.CheckLateTime=0 ");
}
}
builder.AppendFormat(" ORDER BY B.{0} ASC ", nameof(RB_Duty_Frequency_ViewModel.StartTime));
return Get<RB_Duty_PlanDetails_ViewModel>(builder.ToString()).ToList();
......
......@@ -25,9 +25,39 @@ namespace Edu.Repository.Duty
{
rowsCount = 0;
string joinTable = "";
if (query != null && !string.IsNullOrEmpty(query.QDutyMan))
if (query != null && (!string.IsNullOrEmpty(query.QDutyMan)||query.QDutyStatus>-1 || query.QAttendanceStatus>0 ))
{
joinTable = string.Format(" INNER JOIN (SELECT PlanId,DutyMan FROM rb_duty_plandetails WHERE 1=1 AND DutyMan IN({0})) AS C ON A.Id=C.PlanId ", query.QDutyMan);
string joinWhere = "";
if (!string.IsNullOrEmpty(query.QDutyMan))
{
joinWhere += string.Format(" AND DutyMan IN({0}) ", query.QDutyMan);
}
if (query.QDutyStatus >-1)
{
joinWhere += string.Format(" AND Status={0} ", query.QDutyStatus);
}
//迟到
if (query.QAttendanceStatus == 1)
{
joinWhere += string.Format(" AND CheckLateTime>0 ");
}
//早退
if (query.QAttendanceStatus == 2)
{
joinWhere += string.Format(" AND FinishLateTime>0 ");
}
//缺勤
if (query.QAttendanceStatus == 3)
{
joinWhere += string.Format(" AND Status=0 AND FinishLateTime=0 AND CheckLateTime=0 ");
}
//正常
if (query.QAttendanceStatus == 4)
{
joinWhere += string.Format(" AND Status=2 AND FinishLateTime=0 AND CheckLateTime=0 ");
}
joinTable = string.Format(" INNER JOIN (SELECT PlanId FROM rb_duty_plandetails WHERE 1=1 {0} GROUP BY PlanId ) AS C ON A.Id=C.PlanId ", joinWhere);
}
StringBuilder builder = new StringBuilder();
......@@ -125,6 +155,10 @@ WHERE 1=1 AND A.`Status`=0
{
builder.AppendFormat(@" AND B.{0}={1} ", nameof(RB_Duty_PlanDetails_ViewModel.DutyMan), query.QDutyMan);
}
if (query.QShift>0)
{
builder.AppendFormat(@" AND B.{0}={1} ", nameof(RB_Duty_PlanDetails_ViewModel.Shift), query.QShift);
}
if (query.Id > 0)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Duty_Plan_ViewModel.Id), query.Id);
......
......@@ -202,7 +202,33 @@ where t.`Status`=0 and c.`Status`=0 and sog.`Status`=0 and c.ClassStatus in(1,2
return Get<RB_Teacher_ViewModel>(builder.ToString(), parameters).ToList();
}
/// <summary>
/// 获取教师账户
/// </summary>
/// <param name="teacherIds"></param>
/// <returns></returns>
public List<RB_Teacher_ViewModel> GetTeacherByTId(int Id, int Group_Id)
{
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT t.*,a.Id as AccountId,s.SName,d.DeptName
FROM rb_teacher AS t
LEFT JOIN rb_account as a ON (t.TId=a.AccountId AND a.AccountType=2)
LEFT JOIN rb_school AS s ON t.School_Id=s.SId
left join rb_department as d on t.Dept_Id = d.DeptId
WHERE 1=1
");
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Teacher_ViewModel.Status), (int)DateStateEnum.Normal);
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Teacher_ViewModel.AuditStatus), (int)AccountStatusEnum.Pass);
builder.AppendFormat(" AND t.{0} ={1} ", nameof(RB_Teacher_ViewModel.TId), Id);
if (Group_Id > 0)
{
builder.AppendFormat(" AND a.Group_Id ={0} ", Group_Id);
}
return Get<RB_Teacher_ViewModel>(builder.ToString(), parameters).ToList();
}
}
}
\ No newline at end of file
......@@ -74,6 +74,7 @@ namespace Edu.WebApi.Controllers.Course
ClassStatusStr = item.ClassStatus.ToName(),
item.NewPlanDateTime,
item.ClassStatus,
item.Status,
});
}
pageModel.Count = rowsCount;
......@@ -349,8 +350,9 @@ namespace Edu.WebApi.Controllers.Course
public ApiResult RemoveClass()
{
var ClassId = base.ParmJObj.GetInt("ClassId", 0);
var flag = classModule.RemoveClassModule(ClassId);
return flag ? ApiResult.Success() : ApiResult.Failed();
int Status = base.ParmJObj.GetInt("Status", 1);
var flag = classModule.RemoveClassModule(ClassId, Status,out string message);
return flag ? ApiResult.Success(message: message) : ApiResult.Failed(message: message);
}
......@@ -1381,5 +1383,6 @@ namespace Edu.WebApi.Controllers.Course
return retult ? ApiResult.Success("课堂视频更新成功") : ApiResult.Failed("课堂视频更新失败");
}
#endregion
}
}
......@@ -298,15 +298,16 @@ namespace Edu.WebApi.Controllers.Course
}
/// <summary>
/// 删除课程
/// 修改课程状态
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult RemoveCourse()
{
var CourseId = base.ParmJObj.GetInt("CourseId", 0);
var flag = courseModule.RemoveCourseModule(CourseId);
return flag ? ApiResult.Success() : ApiResult.Failed();
int Status = base.ParmJObj.GetInt("Status", 1);
var flag = courseModule.RemoveCourseModule(CourseId, Status,out string message);
return flag ? ApiResult.Success(message: message) : ApiResult.Failed(message: message);
}
/// <summary>
......
using Edu.Cache.User;
using Edu.Common.API;
using Edu.Common.Enum.Duty;
using Edu.Common.Plugin;
using Edu.Model.ViewModel.Duty;
using Edu.Module.Duty;
......@@ -37,7 +38,16 @@ namespace Edu.WebApi.Controllers.Duty
QStartDate = base.ParmJObj.GetStringValue("StartDate"),
QEndDate = base.ParmJObj.GetStringValue("EndDate"),
IsFinish=base.ParmJObj.GetInt("IsFinish"),
QAttendanceStatus=base.ParmJObj.GetInt("QAttendanceStatus")
};
if (!string.IsNullOrEmpty(base.ParmJObj.GetStringValue("QDutyStatus")))
{
query.QDutyStatus = base.ParmJObj.GetInt("QDutyStatus", -1);
}
else
{
query.QDutyStatus = -1;
}
var dutyManList = Common.Plugin.JsonHelper.DeserializeObject<List<int>>(base.ParmJObj.GetStringValue("EmployeeIds"));
if (dutyManList != null && dutyManList.Count > 0)
{
......@@ -78,10 +88,10 @@ namespace Edu.WebApi.Controllers.Duty
qitem.StatusStr,
qitem.CheckTimeStr,
qitem.CheckLateTime,
CheckLateTimeStr = (qitem.CheckLateTime > 0 ? string.Format("[迟到{0}分钟]", qitem.CheckLateTime) : "[正常]"),
CheckLateTimeStr = (qitem.CheckTimeStr!="未打卡"?( qitem.CheckLateTime > 0 ? string.Format("[迟到{0}分钟]", qitem.CheckLateTime) : "[正常]"):""),
qitem.FinishTimeStr,
qitem.FinishLateTime,
FinishLateTimeStr = (qitem.FinishLateTime > 0 ? string.Format("[早退{0}分钟]", qitem.FinishLateTime) : "[正常]"),
FinishLateTimeStr = (qitem.FinishTimeStr!="未打卡"?(qitem.FinishLateTime > 0 ? string.Format("[早退{0}分钟]", qitem.FinishLateTime) : "[正常]"):""),
})
});
}
......@@ -118,47 +128,31 @@ namespace Edu.WebApi.Controllers.Duty
//当前班次
var currentModel = new RB_Duty_PlanDetails_ViewModel();
//上一个班次(交班)
var previousModel = new RB_Duty_PlanDetails_ViewModel();
var previousModel = new List<RB_Duty_PlanDetails_ViewModel>();
//下一个班次(接班)
var nextModel = new RB_Duty_PlanDetails_ViewModel();
//当前值班人员索引
int currentIndex = 0;
if (item.PlanDetails != null && item.PlanDetails.Count > 0)
{
currentIndex = dutyPlanModule.CalcCurrentDutyManIndexModule_V2(item);
//上一个班次索引
int previousIndex = currentIndex - 1;
//下一个班次索引
int nextIndex = currentIndex + 1;
var nextModel = new List<RB_Duty_PlanDetails_ViewModel>();
var dic = dutyPlanModule.CalcCurrentDutyManIndexModule_V3(item);
//当前班次
currentModel = item.PlanDetails[currentIndex];
//上一个班次
if (previousIndex >= 0)
{
previousModel = item.PlanDetails[previousIndex];
}
//下一个班次
if (nextIndex < item.PlanDetails.Count)
{
nextModel = item.PlanDetails[nextIndex];
}
}
currentModel = dic["current"].FirstOrDefault();
string jiaoBanMan = "";//交班人
string jieBanMan = "";//接班人
if (nextModel != null&&nextModel.Id>0)
if (dic["next"] != null&& dic["next"].Count>0)
{
jieBanMan = nextModel?.DutyManName ?? "";
jieBanMan = string.Join(",", dic["next"].Select(qitem => qitem.DutyManName));
}
if (previousModel!=null && previousModel.Id>0)
if (dic["previous"] != null && dic["previous"].Count>0)
{
jiaoBanMan = previousModel?.DutyManName ?? "";
jiaoBanMan = string.Join(",", dic["previous"].Select(qitem => qitem.DutyManName)); ;
}
DutyStatusEnum NewStatus = Common.Enum.Duty.DutyStatusEnum.NoStart;
if (currentModel.Status == Common.Enum.Duty.DutyStatusEnum.NoStart)
{
currentModel.Status= dutyPlanModule.CalcDutyPlanStatusModule(item.Date, currentModel.StartTime, currentModel.EndTime);
NewStatus = dutyPlanModule.CalcDutyPlanStatusModule(item.Date, currentModel.StartTime, currentModel.EndTime);
}
else
{
NewStatus = currentModel.Status;
}
result.Add(new
{
......@@ -169,6 +163,7 @@ namespace Edu.WebApi.Controllers.Duty
currentModel.ShiftName,
currentModel.StartTime,
currentModel.EndTime,
currentModel.DutyMan,
PlanList = currentModel?.WorkContentList ?? new List<RB_Duty_PlanWork_ViewModel>(),
currentModel.BurstCount,
currentModel.HandoverCount,
......@@ -177,14 +172,15 @@ namespace Edu.WebApi.Controllers.Duty
item.CreateByName,
currentModel.Status,
currentModel.StatusStr,
NewStatus,
item.TotalBurstCount,
item.TotalHandoverCount,
currentModel.CheckTimeStr,
currentModel.CheckLateTime,
CheckLateTimeStr = (currentModel.CheckLateTime > 0 ? string.Format("[迟到{0}分钟]", currentModel.CheckLateTime) : "[正常]"),
CheckLateTimeStr = (currentModel.CheckTimeStr != "未打卡" ? (currentModel.CheckLateTime > 0 ? string.Format("[迟到{0}分钟]", currentModel.CheckLateTime) : "[正常]") : ""),
currentModel.FinishTimeStr,
currentModel.FinishLateTime,
FinishLateTimeStr = (currentModel.FinishLateTime > 0 ? string.Format("[早退{0}分钟]", currentModel.FinishLateTime) : "[正常]"),
FinishLateTimeStr = (currentModel.FinishTimeStr != "未打卡" ? (currentModel.FinishLateTime > 0 ? string.Format("[早退{0}分钟]", currentModel.FinishLateTime) : "[正常]") : ""),
});
}
pageModel.Count = rowsCount;
......@@ -260,7 +256,13 @@ namespace Edu.WebApi.Controllers.Duty
{
var Id = base.ParmJObj.GetInt("Id");
var Shift = base.ParmJObj.GetInt("Shift");
var obj = dutyPlanModule.OnDutyModule(Id, Shift, base.UserInfo);
int UserId = base.UserInfo.Id;
int DutyMan = base.ParmJObj.GetInt("DutyMan");
if (DutyMan > 0)
{
UserId = DutyMan;
}
var obj = dutyPlanModule.OnDutyModule(Id, Shift, UserId);
return ApiResult.Success(data: obj);
}
......@@ -273,7 +275,13 @@ namespace Edu.WebApi.Controllers.Duty
{
var Id = base.ParmJObj.GetInt("Id");
var Shift = base.ParmJObj.GetInt("Shift");
var obj = dutyPlanModule.OnDutyModule(Id, Shift, base.UserInfo,isQueryWork:true);
int UserId = base.UserInfo.Id;
int DutyMan = base.ParmJObj.GetInt("DutyMan");
if (DutyMan > 0)
{
UserId = DutyMan;
}
var obj = dutyPlanModule.OnDutyModule(Id, Shift, UserId, isQueryWork:true);
return ApiResult.Success(data: obj);
}
......@@ -299,8 +307,8 @@ namespace Edu.WebApi.Controllers.Duty
var Id = base.ParmJObj.GetInt("Id");
var Shift = base.ParmJObj.GetInt("Shift");
var Status = base.ParmJObj.GetInt("Status");
var flag = dutyPlanModule.DutyCheckModule(Id, Shift, base.UserInfo.Id, Status);
return flag ? ApiResult.Success() : ApiResult.Failed();
var flag = dutyPlanModule.DutyCheckModule(Id, Shift, base.UserInfo.Id, Status,out string message);
return flag ? ApiResult.Success() : ApiResult.Failed(message: message);
}
/// <summary>
......
......@@ -269,6 +269,7 @@ namespace Edu.WebApi.Controllers.StudyAbroad
item.ManagerOpinion,
ManagerAuditTime = Common.ConvertHelper.FormatTime(item.ManagerAuditTime),
item.ImgCover,
item.Status,
});
}
pageModel.Count = rowsCount;
......@@ -511,8 +512,8 @@ namespace Edu.WebApi.Controllers.StudyAbroad
{
var Id = base.ParmJObj.GetInt("Id", 0);
var Status = base.ParmJObj.GetInt("Status", 0);
var flag = studyAbroadModule.RemoveStudyAbroadModule(Id, Status);
return flag ? ApiResult.Success() : ApiResult.Failed();
var flag = studyAbroadModule.RemoveStudyAbroadModule(Id, Status,out string message);
return flag ? ApiResult.Success(message: message) : ApiResult.Failed(message: message);
}
/// <summary>
......
......@@ -41,6 +41,10 @@ namespace Edu.WebApi.Controllers.User
/// 公用处理类
/// </summary>
private readonly PublicModule publicModule = new PublicModule();
/// <summary>
/// 教师处理类
/// </summary>
private readonly TeacherModule teacherModule = new TeacherModule();
[HttpGet]
[HttpPost]
......@@ -345,5 +349,150 @@ namespace Edu.WebApi.Controllers.User
return ApiResult.Success(data: obj);
}
}
/// <summary>
/// 人脸识别登录
/// </summary>
/// <returns></returns>
[HttpGet]
[HttpPost]
[AllowAnonymous]
public ApiResult LoginTeacherById()
{
JObject jobj = JObject.Parse(RequestParm.Msg.ToString());
int tId = jobj.GetInt("TId");
int classRoomId = jobj.GetInt("ClassRoomId", 0);
if (classRoomId == 0)
{
return ApiResult.Failed("请传入教室id");
}
var modelTeacher = teacherModule.GetTeacherByTId(tId, 0);
if (modelTeacher == null)
{
return ApiResult.Failed("老师不存在");
}
var model = accountModule.GetAccountListExtModule(new RB_Account_ViewModel()
{
AccountId = tId,
AccountType = AccountTypeEnum.Teacher
})?.FirstOrDefault();
if (model.Status == Common.Enum.DateStateEnum.Delete)
{
return ApiResult.Failed(message: $"此账号【{ model.Account }】已禁用,如需使用请联系管理员!");
}
var list = new Module.Course.ClassModule().GetClassTimeByRoomId(classRoomId, model.Group_Id);
var tempList = list.OrderBy(x => x.NewEndPlanDateTime).Where(x => x.TeacherId == model.AccountId && x.NewPlanDateTime.HasValue && System.DateTime.Now >= x.NewPlanDateTime.Value.AddMinutes(-10) && x.NewEndPlanDateTime.HasValue && System.DateTime.Now < x.NewEndPlanDateTime.Value.AddMinutes(30));
if (tempList == null || !tempList.Any())
{
list = new Module.Course.ClassModule().GetClassTimeByTId(tId, model.Group_Id);
tempList = list.OrderBy(x => x.NewEndPlanDateTime).Where(x => x.TeacherId == model.AccountId && x.NewPlanDateTime.HasValue && System.DateTime.Now >= x.NewPlanDateTime.Value.AddMinutes(-10) && x.NewEndPlanDateTime.HasValue && System.DateTime.Now < x.NewEndPlanDateTime.Value);
if (tempList == null || !tempList.Any())
{
tempList = list.OrderBy(x => x.NewEndPlanDateTime).Where(x => x.TeacherId == model.AccountId && x.NewEndPlanDateTime.HasValue && System.DateTime.Now < x.NewEndPlanDateTime.Value && x.NewEndPlanDateTime.HasValue && System.DateTime.Now.ToString("yyyy-MM-dd") == x.NewEndPlanDateTime.Value.ToString("yyyy-MM-dd"));
}
var result = new
{
TeacherName = modelTeacher.FirstOrDefault()?.TeacherName,
tempList = tempList.Select(x => new { x.RoomName, x.TeacherName, NewPlanDateTime = x.NewPlanDateTime.HasValue ? x.NewPlanDateTime.Value.ToString("yyyy-MM-dd HH:mm") : "", NewEndPlanDateTime = x.NewEndPlanDateTime.HasValue ? x.NewEndPlanDateTime.Value.ToString("yyyy-MM-dd HH:mm") : "" })
};
return ApiResult.Failed(message: $"本教室没有找到您的课", data: result);
}
else
{
var classModel = tempList.OrderBy(x => x.NewPlanDateTime).FirstOrDefault();
var extModel = new Module.Course.ClassRoomModule().GetClassRoomModule(classModel.ClassRoomId);
var classInfo = new
{
ClassName = classModel.ClassName ?? "",
CourseName = classModel.CourseName ?? "",
ClassTime = classModel.NewPlanDateTime.HasValue ? classModel.NewPlanDateTime.Value.ToString("yyyy-MM-dd HH:mm") : "",
ClassHours = new Module.Course.ClassModule().GetNowClassHours(classModel),
IsLessPlan = classModel.LessonPlanId > 0 ? 1 : 0,
RoomPicList = string.IsNullOrWhiteSpace(extModel.RoomPic) ? new List<string>() : JsonHelper.DeserializeObject<List<string>>(extModel.RoomPic),
SuiPaiList = string.IsNullOrWhiteSpace(classModel.SuiPai) ? new List<string>() : JsonHelper.DeserializeObject<List<string>>(classModel.SuiPai),
classModel.ClassId,
classModel.ClassTimeId,
classModel.ClassPlanId,
classModel.ClassRoomId,
classModel.ClassStatus,
ClassEndTime = classModel.NewEndPlanDateTime.HasValue ? classModel.NewEndPlanDateTime.Value.ToString("HH:mm") : "",
};
//生成教育token
IUserInfoToken eduUserInfo = new EduUserInfoToken()
{
requestFrom = Common.Enum.ApiRequestFromEnum.WebAdmin,
uid = model.Id.ToString()
};
//生成ERP-Token
IUserInfoToken erpUserInfo = new ErpTokenUserInfo()
{
requestFrom = Common.Enum.ApiRequestFromEnum.ERP,
uid = model.Id.ToString(),
groupId = model.Group_Id
};
string token = WebApiTokenHelper.CreateToken(Common.GlobalKey.JWT_User_Key, eduUserInfo);
string erpToken = WebApiTokenHelper.CreateToken(Common.GlobalKey.JWT_ERP_User_Key, erpUserInfo);
var treeList = menuModule.GetPostMenuTreeModule(new Model.ViewModel.System.RB_Menu_ViewModel()
{
MenuType = 2
}, out List<RB_Menu_ViewModel> userCenterList, postIds: model.Post_Id.ToString());
//获取功能权限列表
var actionList = menuModule.GetPostMenuFunctionListModule(model.Post_Id.ToString());
//上传配置
var uploadConfig = publicModule.GetFileStoreList(new Model.Public.RB_File_Store() { Group_Id = model.Group_Id, IsDefault = 1 })?.FirstOrDefault();
UserInfo obj = new UserInfo
{
Id = model.Id,
AccountId = model.AccountId,
UserMobile = model.Account,
AccountType = model.AccountType,
Group_Id = model.Group_Id,
GroupName = model.GroupName,
School_Id = model.School_Id,
AccountName = model.AccountName,
SchoolName = model.SchoolName,
Token = token,
ErpToken = erpToken,
MenuList = treeList,
UserCenterList = userCenterList,
GroupLogo = model.GroupLogo,
UserIcon = model.UserIcon,
ApiRequestFromEnum = Common.Enum.ApiRequestFromEnum.WebAdmin,
DeptId = model.Dept_Id,
DeptName = model.DeptName,
PostId = model.Post_Id,
PostName = model.PostName,
ActionMenuList = actionList?.Select(qitem => new { qitem.FunctionCode, qitem.FunctionName, qitem.MenuName, qitem.MenuUrl }),
UploadConfig = new
{
uploadConfig?.Bucket,
uploadConfig?.StoreType,
uploadConfig?.Region,
uploadConfig?.CustomDomain,
uploadConfig?.SecretKey,
uploadConfig?.SecretId,
uploadConfig?.UploadDomain
},
ClassInfo = classInfo,
StudyAbroadObj = publicModule.GetStudyAbroadListModule()
};
UserReidsCache.UserInfoSet(Cache.CacheKey.User_Login_Key + model.Id, obj, Common.Config.JwtExpirTime);
return ApiResult.Success(data: obj);
}
}
}
}
\ No newline at end of file
......@@ -12,6 +12,7 @@ using Edu.Model.ViewModel.User;
using Edu.Module.Log;
using Edu.Module.User;
using Edu.WebApi.Filter;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
......@@ -262,12 +263,12 @@ namespace Edu.WebApi.Controllers.User
Remark = base.ParmJObj.GetStringValue("Remark"),
SAddress = base.ParmJObj.GetStringValue("SAddress"),
SDomain = base.ParmJObj.GetStringValue("SDomain"),
SId =base.ParmJObj.GetInt("SId"),
SId = base.ParmJObj.GetInt("SId"),
SLinkTel = base.ParmJObj.GetStringValue("SLinkTel"),
SLogo=base.ParmJObj.GetStringValue("SLogo"),
SLogo = base.ParmJObj.GetStringValue("SLogo"),
SName = base.ParmJObj.GetStringValue("SName"),
Status=(DateStateEnum)base.ParmJObj.GetInt("Status"),
ContractTitle=base.ParmJObj.GetStringValue("ContractTitle"),
Status = (DateStateEnum)base.ParmJObj.GetInt("Status"),
ContractTitle = base.ParmJObj.GetStringValue("ContractTitle"),
};
extModel.CreateBy = base.UserInfo.Id;
extModel.CreateTime = DateTime.Now;
......@@ -359,7 +360,7 @@ namespace Edu.WebApi.Controllers.User
{
var query = new RB_Teacher_ViewModel()
{
IsQLeave=base.ParmJObj.GetInt("IsQLeave")
IsQLeave = base.ParmJObj.GetInt("IsQLeave")
};
query.Group_Id = base.UserInfo.Group_Id;
query.School_Id = base.UserInfo.School_Id;
......@@ -390,8 +391,8 @@ namespace Edu.WebApi.Controllers.User
Dept_Id = base.ParmJObj.GetInt("Dept_Id"),
Post_Id = base.ParmJObj.GetInt("Post_Id"),
BaseStuNum = base.ParmJObj.GetInt("BaseStuNum"),
BaseHourFee=base.ParmJObj.GetDecimal("BaseHourFee"),
AuditStatus= AccountStatusEnum.Pass
BaseHourFee = base.ParmJObj.GetDecimal("BaseHourFee"),
AuditStatus = AccountStatusEnum.Pass
};
extModel.TeachTag = base.ParmJObj.GetStringValue("TeachTag");
extModel.CreateBy = base.UserInfo.Id;
......@@ -399,7 +400,7 @@ namespace Edu.WebApi.Controllers.User
extModel.UpdateBy = base.UserInfo.Id;
extModel.UpdateTime = DateTime.Now;
extModel.Group_Id = base.UserInfo.Group_Id;
bool flag = teacherModule.SetTeacherModule(extModel, isUpdateBasic: true);
bool flag = teacherModule.SetTeacherModule_V2(extModel, isUpdateBasic: true);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
......@@ -452,6 +453,31 @@ namespace Edu.WebApi.Controllers.User
var flag = teacherModule.ReApplyTeacherModule(TId);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 获取讲师列表
/// </summary>
/// <returns></returns>
[HttpPost]
[AllowAnonymous]
public ApiResult GetAllTeacherList()
{
var query = new RB_Teacher_ViewModel()
{
IsQLeave = base.ParmJObj.GetInt("IsQLeave", 0),
Group_Id = base.ParmJObj.GetInt("Group_Id", 100000)
};
var list = teacherModule.GetTeacherListModule(query);
var result = list.Select(x => new
{
x.TeacherHead,
x.TId
});
return ApiResult.Success(data: result);
}
#endregion
#region 助教管理
......@@ -514,7 +540,7 @@ namespace Edu.WebApi.Controllers.User
AssistIntro = base.ParmJObj.GetStringValue("AssistIntro"),
Dept_Id = base.ParmJObj.GetInt("Dept_Id"),
Post_Id = base.ParmJObj.GetInt("Post_Id"),
AuditStatus= AccountStatusEnum.Pass
AuditStatus = AccountStatusEnum.Pass
};
extModel.CreateBy = base.UserInfo.Id;
extModel.CreateTime = DateTime.Now;
......@@ -522,7 +548,7 @@ namespace Edu.WebApi.Controllers.User
extModel.UpdateTime = DateTime.Now;
extModel.Group_Id = base.UserInfo.Group_Id;
bool flag = assistModule.SetAssistModule(extModel,isUpdateBasic:true);
bool flag = assistModule.SetAssistModule_V2(extModel);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
......@@ -730,7 +756,7 @@ namespace Edu.WebApi.Controllers.User
qitem.Email,
EmAccountId = qitem.Id,
qitem.DirectSupervisor,
DirectSupervisorName= qitem.DirectSupervisor>0?base.GetUserInfo(qitem.DirectSupervisor)?.AccountName??"":"",
DirectSupervisorName = qitem.DirectSupervisor > 0 ? base.GetUserInfo(qitem.DirectSupervisor)?.AccountName ?? "" : "",
});
return ApiResult.Success(data: pageModel);
}
......@@ -775,9 +801,9 @@ namespace Edu.WebApi.Controllers.User
Education = (EducationEnum)base.ParmJObj.GetInt("Education"),
School_Id = base.ParmJObj.GetInt("School_Id"),
Email = base.ParmJObj.GetStringValue("Email"),
DirectSupervisor=base.ParmJObj.GetInt("DirectSupervisor"),
Account=base.ParmJObj.GetStringValue("Account"),
Password=base.ParmJObj.GetStringValue("Password"),
DirectSupervisor = base.ParmJObj.GetInt("DirectSupervisor"),
Account = base.ParmJObj.GetStringValue("Account"),
Password = base.ParmJObj.GetStringValue("Password"),
};
if (!string.IsNullOrEmpty(extModel.Password.Trim()))
{
......@@ -905,7 +931,7 @@ namespace Edu.WebApi.Controllers.User
[HttpPost]
public ApiResult GetEmployee()
{
var Id =0;
var Id = 0;
var AccountId = base.ParmJObj.GetInt("AccountId", 0);
var AccountType = base.ParmJObj.GetInt("AccountType", 0);
var extModel = employeeModule.GetEmployeeModule(Id, AccountId, AccountType);
......@@ -958,14 +984,17 @@ namespace Edu.WebApi.Controllers.User
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetEmployeeDirectSupervisor() {
public ApiResult SetEmployeeDirectSupervisor()
{
var parms = ParmJObj;
int UserId = parms.GetInt("UserId", 0);
int DirectSupervisor = parms.GetInt("DirectSupervisor", 0);
if (UserId <= 0) {
if (UserId <= 0)
{
return ApiResult.ParamIsNull("请传递用户id");
}
if (DirectSupervisor <= 0) {
if (DirectSupervisor <= 0)
{
return ApiResult.ParamIsNull("请传递直接主管id");
}
bool flag = employeeModule.SetEmployeeDirectSupervisor(UserId, DirectSupervisor);
......@@ -1308,7 +1337,7 @@ namespace Edu.WebApi.Controllers.User
var query = new RB_Post_ViewModel()
{
Group_Id = base.UserInfo.Group_Id,
PostName= base.ParmJObj.GetStringValue("PostName")
PostName = base.ParmJObj.GetStringValue("PostName")
};
var list = postModule.GetPostListModule(query);
return ApiResult.Success(data: list);
......@@ -1325,7 +1354,7 @@ namespace Edu.WebApi.Controllers.User
var query = new RB_Post_ViewModel()
{
Group_Id = base.UserInfo.Group_Id,
QDeptIds=base.ParmJObj.GetStringValue("QDeptIds")
QDeptIds = base.ParmJObj.GetStringValue("QDeptIds")
};
var list = postModule.GetDeptPostListModule(query);
return ApiResult.Success(data: list);
......@@ -1397,7 +1426,7 @@ namespace Edu.WebApi.Controllers.User
QDeptIds = base.ParmJObj.GetStringValue("QDeptIds"),
EmployeeName = base.ParmJObj.GetStringValue("EmployeeName"),//姓名
AccountTypeStr = base.ParmJObj.GetStringValue("AccountTypeStr"),//人员类型【逗号分割】
IsLeave=base.ParmJObj.GetInt("IsLeave"),
IsLeave = base.ParmJObj.GetInt("IsLeave"),
};
query.Group_Id = base.UserInfo.Group_Id;
var list = employeeModule.GetEmployeeListModule(query);
......
using Edu.Common.Plugin;
using Edu.Module.Duty;
using System;
using System.IO;
using System.Threading;
......@@ -7,33 +8,44 @@ namespace Edu.WebApi.Timers
{
public class TimerJobj
{
private static DutyPlanModule dutyPlanModule = AOP.AOPHelper.CreateAOPObject<DutyPlanModule>();
static System.Timers.Timer timer1; //计时器
static System.Timers.Timer timer2;//定期处理未值班数据
public static void RunTimer()
{
timer1 = new System.Timers.Timer();
timer1.Interval = 1000 * (60 * 60) * 3; //60分钟
timer1.Elapsed += new System.Timers.ElapsedEventHandler(ClearFile);
timer1.Enabled = true;
timer2 = new System.Timers.Timer();
timer2.Interval = (1000 * 60) * (1 * 60); //1小时执行一次
timer2.Elapsed += new System.Timers.ElapsedEventHandler(DealDuty);
timer2.Enabled = true;
}
public static void RunStop()
{
timer1.Enabled = false;
timer2.Enabled = false;
}
/// <summary>
/// 防止重置
/// </summary>
private static int inTimer = 0;
private static int inTimer2 = 0;
/// <summary>
/// 清理文件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public static void ClearFile(object sender, System.Timers.ElapsedEventArgs e) {
public static void ClearFile(object sender, System.Timers.ElapsedEventArgs e)
{
if (Interlocked.Exchange(ref inTimer, 1) == 0)
{
string rootBook = AppDomain.CurrentDomain.BaseDirectory;
......@@ -71,5 +83,55 @@ namespace Edu.WebApi.Timers
Interlocked.Exchange(ref inTimer, 0);
}
}
/// <summary>
/// 处理值班数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public static void DealDuty(object sender, System.Timers.ElapsedEventArgs e)
{
if (Interlocked.Exchange(ref inTimer2, 1) == 0)
{
var list = dutyPlanModule.GetDutyPlanPageModule(1, 20, out _, new Model.ViewModel.Duty.RB_Duty_Plan_ViewModel()
{
QDutyStatus = 0,
QEndDate = Common.ConvertHelper.FormatDate(DateTime.Now.AddDays(1))
});
if (list != null && list.Count > 0)
{
foreach (var item in list)
{
foreach (var subItem in item.PlanDetails)
{
var endTime = Convert.ToDateTime((Common.ConvertHelper.FormatDate(item.Date) + " " + subItem.EndTime)).AddHours(2);
if (subItem.Status== Common.Enum.Duty.DutyStatusEnum.NoStart && endTime < DateTime.Now)
{
dutyPlanModule.UpdateNoDutyModule(subItem.Id);
}
}
}
}
var list2= dutyPlanModule.GetDutyPlanPageModule(1, 20, out _, new Model.ViewModel.Duty.RB_Duty_Plan_ViewModel()
{
QDutyStatus = 1,
QEndDate = Common.ConvertHelper.FormatDate(DateTime.Now)
});
foreach (var item in list2)
{
foreach (var subItem in item.PlanDetails)
{
var endTime = Convert.ToDateTime((Common.ConvertHelper.FormatDate(item.Date) + " " + subItem.EndTime)).AddHours(2);
if (subItem.Status == Common.Enum.Duty.DutyStatusEnum.DutyIng && endTime < DateTime.Now)
{
dutyPlanModule.UpdateDutyFinishedModule(subItem.Id);
}
}
}
Interlocked.Exchange(ref inTimer2, 0);
}
}
}
}
......@@ -63,6 +63,7 @@
//消息推送AppId
"PushAppId": "JiaHeJiaoYu",
//是否推送消息
"IsPushMessage": "1"
"IsPushMessage": "1",
//超过下班时间60分钟不能打卡
"MoreThanMinutes": 60
}
\ No newline at end of file
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