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.
iot/labs/Teacher/TeacherExt/Controllers/HomeController.cs

367 lines
13 KiB

using Infrastructure.Application;
using Infrastructure.Data;
using Infrastructure.Extensions;
using Infrastructure.Web.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 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);
}
}
}