You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
377 lines
13 KiB
377 lines
13 KiB
using Infrastructure.Application;
|
|
using Infrastructure.Data;
|
|
using Infrastructure.Extensions;
|
|
using Infrastructure.Web.Mvc;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.AspNetCore.Mvc.Filters;
|
|
using Microsoft.AspNetCore.Mvc.Rendering;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.Extensions.Logging;
|
|
using System;
|
|
using System.Globalization;
|
|
using System.Linq;
|
|
using TeacherExt.Entities;
|
|
using TeacherExt.Models;
|
|
|
|
namespace TeacherExt.Controllers
|
|
{
|
|
public class HomeController : CrudController<Teacher, Guid, EditTeacherModel>
|
|
{
|
|
private readonly ILogger<HomeController> _logger;
|
|
|
|
private readonly IRepository<Teacher> _teacherRepo;
|
|
|
|
public HomeController(ILogger<HomeController> logger, IRepository<Teacher> teacherRepo) : base(teacherRepo)
|
|
{
|
|
_logger = logger;
|
|
this._teacherRepo = teacherRepo;
|
|
}
|
|
|
|
public override IActionResult Add(EditTeacherModel model)
|
|
{
|
|
var teacher = new Teacher();
|
|
teacher.From(model);
|
|
this._teacherRepo.Add(teacher);
|
|
this._teacherRepo.SaveChanges();
|
|
return RedirectToAction();
|
|
}
|
|
|
|
public override void OnActionExecuting(ActionExecutingContext context)
|
|
{
|
|
}
|
|
|
|
public override IQueryable<Teacher> Query(PagedListModel<EditTeacherModel> model, IQueryable<Teacher> query)
|
|
{
|
|
return query.WhereIf(!string.IsNullOrEmpty(model.Query.RealName), o => o.RealName.Contains(model.Query.RealName))
|
|
.WhereIf(!string.IsNullOrEmpty(model.Query.CheckStatus), o => o.CheckStatus == model.Query.CheckStatus);
|
|
}
|
|
|
|
public override IQueryable<Teacher> Include(IQueryable<Teacher> query)
|
|
{
|
|
return query.Include(o => o.Info).Include(o => o.Prop);
|
|
}
|
|
|
|
public override void EntityToModel(Teacher entity, EditTeacherModel model)
|
|
{
|
|
if(string.IsNullOrEmpty(entity.IdNumber))
|
|
{
|
|
var value = entity.IdNumber.Length == 15 ? $"19{entity.IdNumber.Substring(5,6)}" : entity.IdNumber.Substring(5,8);
|
|
var birthday = DateTime.ParseExact(value, "yyyyMMdd", CultureInfo.InvariantCulture);
|
|
model.Age = DateTime.Now.Year - birthday.Year;
|
|
}
|
|
}
|
|
|
|
public override void ToEditModel(Teacher entity, EditTeacherModel model)
|
|
{
|
|
ViewData.SelectList(o => model.CheckStatus, () => this.GetCheckStatus(model.CheckStatus));
|
|
ViewData.SelectList(o => model.UserType, () => this.GetUserType(model.UserType));
|
|
ViewData.SelectList(o => model.Sex, () => this.GetSex(model.Sex));
|
|
ViewData.SelectList(o => model.Nation, () => this.GetNation(model.Nation));
|
|
ViewData.SelectList(o => model.Politics, () => this.GetPolitics(model.Politics));
|
|
ViewData.SelectList(o => model.MaxTitle, () => this.GetTitle(model.MaxTitle));
|
|
ViewData.SelectList(o => model.NotMaxTitle, () => this.GetTitle(model.NotMaxTitle));
|
|
ViewData.SelectList(o => model.PostType, () => this.GetPost(model.PostType));
|
|
ViewData.SelectList(o => model.PostGrade, () => this.GetPostGrade(model.PostGrade));
|
|
ViewData.SelectList(o => model.EducationGrade, () => this.GetEducationGrade(model.EducationGrade));
|
|
ViewData.SelectList(o => model.FullTimeSchoolType, () => this.GetFullTimeSchoolType(model.FullTimeSchoolType));
|
|
ViewData.SelectList(o => model.FullTimeSchoolEducation, () => this.GetEducation(model.FullTimeSchoolEducation));
|
|
ViewData.SelectList(o => model.JobTimeSchoolType, () => this.GetFullTimeSchoolType(model.JobTimeSchoolType));
|
|
ViewData.SelectList(o => model.JobTimeSchoolEducation, () => this.GetEducation(model.JobTimeSchoolEducation));
|
|
ViewData.SelectList(o => model.MaxEducation, () => this.GetEducation(model.MaxEducation));
|
|
ViewData.SelectList(o => model.MaxDegree, () => this.GetDegree(model.MaxDegree));
|
|
ViewData.SelectList(o => model.MainTeachPeriod, () => this.GetTeachPeriod(model.MainTeachPeriod));
|
|
ViewData.SelectList(o => model.MainTeachSubject, () => this.GetTeachSubject(model.MainTeachSubject));
|
|
ViewData.SelectList(o => model.MainTeachGrade, () => this.GetTeachGrade(model.MainTeachGrade));
|
|
ViewData.SelectList(o => model.OtherTeachPeriod, () => this.GetTeachPeriod(model.OtherTeachPeriod));
|
|
ViewData.SelectList(o => model.OtherTeachSubject, () => this.GetTeachSubject(model.OtherTeachSubject));
|
|
ViewData.SelectList(o => model.Position, () => this.GetPosition(model.Position));
|
|
ViewData.SelectList(o => model.TeacherCardType, () => this.GetTeacherCardType(model.TeacherCardType));
|
|
ViewData.SelectList(o => model.TeacherCardLangLevel, () => this.GetLangLevel(model.TeacherCardLangLevel));
|
|
ViewData.SelectList(o => model.CurrentAddressArea, () => this.GetAddressArea(model.CurrentAddressArea));
|
|
|
|
}
|
|
|
|
|
|
private SelectList GetCheckStatus(string selected)
|
|
{
|
|
return new string[] {
|
|
"未提交",
|
|
"待校级审核",
|
|
"校级审核失败",
|
|
"待局级审核",
|
|
"局级审核失败",
|
|
"局级审核成功",
|
|
}.ToSelectList(selected);
|
|
}
|
|
|
|
private SelectList GetUserType(string selected)
|
|
{
|
|
return new string[] {
|
|
"在编教师",
|
|
"区聘教师",
|
|
"校聘教师",
|
|
}.ToSelectList(selected);
|
|
}
|
|
|
|
private SelectList GetSex(string selected)
|
|
{
|
|
return new string[] {
|
|
"男",
|
|
"女",
|
|
}.ToSelectList(selected);
|
|
}
|
|
private SelectList GetNation(string selected)
|
|
{
|
|
return new string[] {
|
|
"汉族",
|
|
"蒙古族",
|
|
"回族",
|
|
"藏族",
|
|
"维吾尔族",
|
|
"苗族",
|
|
"彝族",
|
|
"壮族",
|
|
"布依族",
|
|
"朝鲜族",
|
|
"满族",
|
|
"侗族",
|
|
"瑶族",
|
|
"白族",
|
|
"土家族",
|
|
"哈尼族",
|
|
"哈萨克族",
|
|
"傣族",
|
|
"黎族",
|
|
"傈僳族",
|
|
"佤族",
|
|
"畲族",
|
|
"高山族",
|
|
"拉祜族",
|
|
"水族",
|
|
"东乡族",
|
|
"纳西族",
|
|
"景颇族",
|
|
"柯尔克孜族",
|
|
"土族",
|
|
"达斡尔族",
|
|
"仫佬族",
|
|
"羌族",
|
|
"布朗族",
|
|
"撒拉族",
|
|
"毛难族",
|
|
"仡佬族",
|
|
"锡伯族",
|
|
"阿昌族",
|
|
"普米族",
|
|
"塔吉克族",
|
|
"怒族",
|
|
"乌孜别克族",
|
|
"俄罗斯族",
|
|
"鄂温克族",
|
|
"崩龙族",
|
|
"保安族",
|
|
"裕固族",
|
|
"京族",
|
|
"塔塔尔族",
|
|
"独龙族",
|
|
"鄂伦春族",
|
|
"赫哲族",
|
|
"门巴族",
|
|
"珞巴族",
|
|
"基诺族",
|
|
}.ToSelectList(selected);
|
|
}
|
|
|
|
private SelectList GetPolitics(string selected)
|
|
{
|
|
return new string[] {
|
|
"中共党员",
|
|
"中共预备党员",
|
|
"共青团员",
|
|
"群众",
|
|
"民革会员",
|
|
"民盟盟员",
|
|
"民建会员",
|
|
"民进会员",
|
|
"农工党党员",
|
|
"致公党党员",
|
|
"九三学社社员",
|
|
"台盟盟员",
|
|
"其他民主党派",
|
|
}.ToSelectList(selected);
|
|
}
|
|
private SelectList GetTitle(string selected)
|
|
{
|
|
return new string[] {
|
|
"正高级教师",
|
|
"高级教师",
|
|
"一级教师",
|
|
"二级教师",
|
|
"未评",
|
|
"工勤",
|
|
}.ToSelectList(selected);
|
|
}
|
|
|
|
private SelectList GetPost(string selected)
|
|
{
|
|
return new string[] {
|
|
"专技岗位",
|
|
"管理岗位",
|
|
"工勤岗位",
|
|
}.ToSelectList(selected);
|
|
}
|
|
|
|
private SelectList GetPostGrade(string selected)
|
|
{
|
|
return new string[] {
|
|
"四级",
|
|
"五级",
|
|
"六级",
|
|
"七级",
|
|
"八级",
|
|
"九级",
|
|
"十级",
|
|
"十一级",
|
|
"十二级",
|
|
}.ToSelectList(selected);
|
|
}
|
|
private SelectList GetEducationGrade(string selected)
|
|
{
|
|
return new string[] {
|
|
"专技十一级",
|
|
"专技十二级",
|
|
}.ToSelectList(selected);
|
|
}
|
|
private SelectList GetFullTimeSchoolType(string selected)
|
|
{
|
|
return new string[] {
|
|
"师范院校师范专业",
|
|
"师范院校非师范专业",
|
|
"非师范院校师范专业",
|
|
"非师范院校非师范专业",
|
|
}.ToSelectList(selected);
|
|
}
|
|
private SelectList GetEducation(string selected)
|
|
{
|
|
return new string[] {
|
|
"研究生博士教育",
|
|
"研究生硕士教育",
|
|
"大学本科教育",
|
|
"大学专科教育",
|
|
"中等专业教育",
|
|
"普通高级中学教育",
|
|
"初级中学教育",
|
|
"小学教育",
|
|
"其他",
|
|
}.ToSelectList(selected);
|
|
}
|
|
private SelectList GetDegree(string selected)
|
|
{
|
|
return new string[] {
|
|
"学士学位",
|
|
"硕士学位",
|
|
"博士学位",
|
|
}.ToSelectList(selected);
|
|
}
|
|
private SelectList GetTeachPeriod(string selected)
|
|
{
|
|
return new string[] {
|
|
"学前教育",
|
|
"小学",
|
|
"普通初中",
|
|
}.ToSelectList(selected);
|
|
}
|
|
private SelectList GetTeachSubject(string selected)
|
|
{
|
|
return new string[] {
|
|
"语文",
|
|
"数学",
|
|
"英语",
|
|
"音乐",
|
|
"体育",
|
|
"美术",
|
|
"科学",
|
|
"书法",
|
|
"信息技术",
|
|
"政治",
|
|
"历史",
|
|
"地理",
|
|
"物理",
|
|
"化学",
|
|
"生物",
|
|
"幼教全科",
|
|
"心理健康",
|
|
"综合实践课",
|
|
"无",
|
|
}.ToSelectList(selected);
|
|
}
|
|
private SelectList GetTeachGrade(string selected)
|
|
{
|
|
return new string[] {
|
|
"九年级",
|
|
"八年级",
|
|
"七年级",
|
|
"六年级",
|
|
"五年级",
|
|
"四年级",
|
|
"三年级",
|
|
"二年级",
|
|
"一年级",
|
|
"幼儿园大班",
|
|
"幼儿园中班",
|
|
"幼儿园小班",
|
|
}.ToSelectList(selected);
|
|
}
|
|
private SelectList GetPosition(string selected)
|
|
{
|
|
return new string[] {
|
|
"校长",
|
|
"副校长",
|
|
"党支部副书记",
|
|
"办公室主任",
|
|
"办公室副主任",
|
|
"教导处主任",
|
|
"教导处副主任",
|
|
"德育主任",
|
|
"团支部书记",
|
|
"大队辅导员",
|
|
"工会主席",
|
|
"总务主任",
|
|
"总务副主任",
|
|
}.ToSelectList(selected);
|
|
}
|
|
private SelectList GetTeacherCardType(string selected)
|
|
{
|
|
return new string[] {
|
|
"幼儿园教师资格",
|
|
"小学教师资格",
|
|
"初级中学教师资格",
|
|
"高级中学教师资格",
|
|
"中等职业学校教师资格",
|
|
"中等职业学校实习指导教师资格",
|
|
"高等学校教师资格",
|
|
}.ToSelectList(selected);
|
|
}
|
|
private SelectList GetLangLevel(string selected)
|
|
{
|
|
return new string[] {
|
|
"一级甲等",
|
|
"一级乙等",
|
|
"二级甲等",
|
|
"二级乙等",
|
|
"三级甲等",
|
|
}.ToSelectList(selected);
|
|
}
|
|
private SelectList GetAddressArea(string selected)
|
|
{
|
|
return new string[] {
|
|
"城中区",
|
|
"城北区",
|
|
"城西区",
|
|
"城东区",
|
|
}.ToSelectList(selected);
|
|
}
|
|
|
|
}
|
|
}
|