using DTO; using IServices; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Transactions; using zhengcaioa.IService; using zhengcaioa.Models; namespace zhengcaioa.Controllers { public class UserController : Controller { private readonly ILogger _logger; private readonly IUserService _userService; private readonly IHrDeptService _hrDeptService; private readonly IHrPositionService _hrPositionService; private readonly ILiaotianService _liaotianService; private readonly IPltJiatingchengyuanService _pltJiatingchengyuanService; private readonly ISysAttachmentService _sysAttachmentService; public UserController(ILogger logger, IUserService userService, IHrDeptService hrDeptService, IHrPositionService hrPositionService, ILiaotianService liaotianService, IPltJiatingchengyuanService pltJiatingchengyuanService, ISysAttachmentService sysAttachmentService) { _logger = logger; _userService = userService; _hrDeptService = hrDeptService; _hrPositionService = hrPositionService; _liaotianService = liaotianService; _pltJiatingchengyuanService = pltJiatingchengyuanService; _sysAttachmentService = sysAttachmentService; } [CheckLogin] public IActionResult Index() { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; List actionlist = new List(); ActionEntity actionEntity = new ActionEntity(); actionEntity.OpenType = 0; actionEntity.ActionUrl = ""; actionEntity.ActionFun = "Search"; actionEntity.PageIco = "fa fa-search"; actionEntity.ActionName = "查询"; actionlist.Add(actionEntity); ActionEntity actionEntity1 = new ActionEntity(); actionEntity1.OpenType = 0; actionEntity1.ActionUrl = ""; actionEntity1.ActionFun = "Add"; actionEntity1.PageIco = "fa fa-plus"; actionEntity1.ActionName = "新增"; actionlist.Add(actionEntity1); ViewData["ActionInfo"] = actionlist; ViewBag.zhiwustatus = _liaotianService.GetSYScode("plt_user", "zhiwustatus").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); ViewBag.dept = _hrDeptService.GetList().Select(x => new { code = x.Id, label = x.DeptName }).ToList(); ViewBag.post = _hrPositionService.GetList().Select(x => new { code = x.Id, label = x.PostName }).ToList(); ViewBag.shifou = _liaotianService.GetSYScode("system", "shifou").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); ViewBag.sex = _liaotianService.GetSYScode("plt_user", "sex").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); ViewBag.isMaryed = _liaotianService.GetSYScode("plt_user", "IsMaryed").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); return View(); } [CheckLogin] public string GetUserList(PltUserDTOSearch search) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; //JsonResult jsonResult = new JsonResult(_liaotianService.SearchByPaging(search), new Newtonsoft.Json.Serialization.DefaultContractResolver()); return JsonConvert.SerializeObject(_userService.SearchByPaging(search)); } #region 编辑 [CheckLogin] public ActionResult Edit(string id = null) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; List actionlist = new List(); ActionEntity actionEntity = new ActionEntity(); actionEntity.OpenType = 0; actionEntity.ActionUrl = ""; actionEntity.ActionFun = "Save"; actionEntity.PageIco = "glyphicon glyphicon-ok"; actionEntity.ActionName = "保存"; actionlist.Add(actionEntity); ActionEntity actionEntity1 = new ActionEntity(); actionEntity1.OpenType = 0; actionEntity1.ActionUrl = ""; actionEntity1.ActionFun = "Nullify"; actionEntity1.PageIco = "fa fa-remove"; actionEntity1.ActionName = "删除"; actionlist.Add(actionEntity1); ViewData["ActionInfo"] = actionlist; ViewBag.dept = _hrDeptService.GetList();//.Select(x => new { code = x.Id, label = x.DeptName }).ToList(); ViewBag.post = _hrPositionService.GetList();//.Select(x => new { code = x.Id, label = x.PostName }).ToList(); ViewBag.shifou = _liaotianService.GetSYScode("system", "shifou");//.Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); ViewBag.zhiwustatus = _liaotianService.GetSYScode("plt_user", "zhiwustatus");//.Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); ViewBag.sex = _liaotianService.GetSYScode("plt_user", "sex");//.Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); ViewBag.isMaryed = _liaotianService.GetSYScode("plt_user", "IsMaryed");//.Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); PltUserDTO PltUserDTO = new PltUserDTO(); PltUserDTO.Zhiwustatus = "A"; List pltJiatingchengyuanDTOs = new List(); if (!String.IsNullOrEmpty(id)) { PltUserDTO = _userService.GetPltUserEntity(id); pltJiatingchengyuanDTOs = _pltJiatingchengyuanService.GetList(id); } PltUserDTO.Passwordchushi = "123456"; if (PltUserDTO.ShiyongDate.HasValue) { PltUserDTO.ShiyongDateName = PltUserDTO.ShiyongDate.Value.ToString("yyyy-MM-dd"); } if (PltUserDTO.Indate.HasValue) { PltUserDTO.IndateName = PltUserDTO.Indate.Value.ToString("yyyy-MM-dd"); } if (PltUserDTO.ShiyongDateEnd.HasValue) { PltUserDTO.ShiyongDateEndName = PltUserDTO.ShiyongDateEnd.Value.ToString("yyyy-MM-dd"); } if (PltUserDTO.Shebaodate.HasValue) { PltUserDTO.ShebaodateName = PltUserDTO.Shebaodate.Value.ToString("yyyy-MM-dd"); } if (PltUserDTO.ShiyongDate.HasValue) { PltUserDTO.ShiyongDateName = PltUserDTO.ShiyongDate.Value.ToString("yyyy-MM-dd"); } if (PltUserDTO.ShiyongDate.HasValue) { PltUserDTO.ShiyongDateName = PltUserDTO.ShiyongDate.Value.ToString("yyyy-MM-dd"); } if (PltUserDTO.ShiyongDate.HasValue) { PltUserDTO.ShiyongDateName = PltUserDTO.ShiyongDate.Value.ToString("yyyy-MM-dd"); } if (pltJiatingchengyuanDTOs.Count == 0) { pltJiatingchengyuanDTOs.Add(new PltJiatingchengyuanDTO()); } PltUserDTO.pltJiatingchengyuanDTOs = pltJiatingchengyuanDTOs; ViewData.Model = PltUserDTO; ResultDataEntity resultshenfenzheng = new ResultDataEntity(); if (!string.IsNullOrEmpty(id)) { SysAttachmentDTOSearch searchEntity = new SysAttachmentDTOSearch(); searchEntity.page = 1; searchEntity.rows = 1000; searchEntity.AttObj = "PltUsershenfenzheng"; searchEntity.AttObjid = id; resultshenfenzheng = _sysAttachmentService.SearchByPaging(searchEntity); } ViewBag.shenfenzheng = resultshenfenzheng; ResultDataEntity resultshenfenzhengbeimian = new ResultDataEntity(); if (!string.IsNullOrEmpty(id)) { SysAttachmentDTOSearch searchEntity = new SysAttachmentDTOSearch(); searchEntity.page = 1; searchEntity.rows = 1000; searchEntity.AttObj = "PltUsershenfenzhengbeimian"; searchEntity.AttObjid = id; resultshenfenzhengbeimian = _sysAttachmentService.SearchByPaging(searchEntity); } ViewBag.shenfenzhengbeimian = resultshenfenzhengbeimian; ResultDataEntity resultsxuelizheng = new ResultDataEntity(); if (!string.IsNullOrEmpty(id)) { SysAttachmentDTOSearch searchEntity = new SysAttachmentDTOSearch(); searchEntity.page = 1; searchEntity.rows = 1000; searchEntity.AttObj = "PltUserxuelizheng"; searchEntity.AttObjid = id; resultsxuelizheng = _sysAttachmentService.SearchByPaging(searchEntity); } ViewBag.xuelizheng = resultsxuelizheng; ResultDataEntity resultszhiyezigezheng = new ResultDataEntity(); if (!string.IsNullOrEmpty(id)) { SysAttachmentDTOSearch searchEntity = new SysAttachmentDTOSearch(); searchEntity.page = 1; searchEntity.rows = 1000; searchEntity.AttObj = "PltUserzhiyezigezheng"; searchEntity.AttObjid = id; resultszhiyezigezheng = _sysAttachmentService.SearchByPaging(searchEntity); } ViewBag.zhiyezigezheng = resultszhiyezigezheng; ResultDataEntity resultsqitazhengshu = new ResultDataEntity(); if (!string.IsNullOrEmpty(id)) { SysAttachmentDTOSearch searchEntity = new SysAttachmentDTOSearch(); searchEntity.page = 1; searchEntity.rows = 1000; searchEntity.AttObj = "PltUserqitazhengshu"; searchEntity.AttObjid = id; resultsqitazhengshu = _sysAttachmentService.SearchByPaging(searchEntity); } ViewBag.qitazhengshu = resultsqitazhengshu; return View(); } [CheckLogin] public string Get(string id = null) { PltUserDTO PltUserDTO = new PltUserDTO(); PltUserDTO.Zhiwustatus = "A"; if (!String.IsNullOrEmpty(id)) { PltUserDTO = _userService.GetPltUserEntity(id); } // ViewData.Model = PltUserDTO; return JsonConvert.SerializeObject(PltUserDTO); } /// /// 保存 /// /// 岗位实体类对象 /// [HttpPost] [CheckLogin] public string Save(PltUserDTO userdata) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; ResultEntity resultEntity = new ResultEntity(); resultEntity.Result = false; string s = @"^([A-Fa-f0-9]{2}[-,:]){5}[A-Fa-f0-9]{2}$"; Regex rStr = new Regex(s); if (rStr.IsMatch(userdata.IpMac)) { using (TransactionScope scope = new TransactionScope()) { userdata.RecStatus = "A"; if (String.IsNullOrEmpty(userdata.Id)) { userdata.Creater = curentuser.Id; userdata.Createtime = DateTime.Now; } userdata.Modifier = curentuser.Id; userdata.Modifytime = DateTime.Now; resultEntity = _userService.savePltUser(userdata); if (resultEntity.Result == false) { return JsonConvert.SerializeObject(resultEntity); } string[] JiatingchengyuanId = userdata.JiatingchengyuanId; string[] Name = userdata.Name; string[] Guanxi = userdata.Guanxi; string[] Gongzuodanwei = userdata.Gongzuodanwei; for (int i = 0; i < JiatingchengyuanId.Length; i++) { PltJiatingchengyuanDTO pltJiatingchengyuanDTO = new PltJiatingchengyuanDTO(); pltJiatingchengyuanDTO.Id = JiatingchengyuanId[i] == null ? "" : JiatingchengyuanId[i].Trim(); pltJiatingchengyuanDTO.UserId = userdata.Id; pltJiatingchengyuanDTO.Name = Name[i] == null ? "" : Name[i].Trim(); pltJiatingchengyuanDTO.Guanxi = Guanxi[i] == null ? "" : Guanxi[i].Trim(); pltJiatingchengyuanDTO.Gongzuodanwei = Gongzuodanwei[i] == null ? "" : Gongzuodanwei[i].Trim(); pltJiatingchengyuanDTO.RecStatus = "A"; if (String.IsNullOrEmpty(JiatingchengyuanId[i])) { pltJiatingchengyuanDTO.Creater = curentuser.Id; pltJiatingchengyuanDTO.Createtime = DateTime.Now; } pltJiatingchengyuanDTO.Modifier = curentuser.Id; pltJiatingchengyuanDTO.Modifytime = DateTime.Now; resultEntity = _pltJiatingchengyuanService.save(pltJiatingchengyuanDTO); if (resultEntity.Result == false) { return JsonConvert.SerializeObject(resultEntity); } } string[] Filepaths = userdata.Filepath; if (Filepaths != null && Filepaths.Length > 0) { for (int i = 0; i < Filepaths.Length; i++) { if (string.IsNullOrEmpty(userdata.attachmentid[i])) { SysAttachmentDTO sysAttachmentDTO = new SysAttachmentDTO(); //sysAttachmentDTO.Id = sysAttachmentDTO.AttObj = userdata.AttObj[i]; sysAttachmentDTO.AttObjid = userdata.Id; sysAttachmentDTO.Filefullname = userdata.Filefullname[i]; sysAttachmentDTO.Filepath = userdata.Filepath[i]; sysAttachmentDTO.Creater = curentuser.Id; sysAttachmentDTO.Modifier = curentuser.Id; sysAttachmentDTO.Createtime = DateTime.Now; sysAttachmentDTO.Modifytime = sysAttachmentDTO.Createtime; resultEntity = _sysAttachmentService.save(sysAttachmentDTO); if (resultEntity.Result == false) { return JsonConvert.SerializeObject(resultEntity); } } } } scope.Complete(); } } else { resultEntity.Message = "MAC地址格式错误"; } return JsonConvert.SerializeObject(resultEntity); } #endregion /// /// 删除主信息 /// /// 实体 /// /// [CheckLogin] public string Nullify(string Id = "") { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; return JsonConvert.SerializeObject(_userService.ModifyStatus(Id, curentuser.Id)); } /// /// 删除家庭成员 /// /// 实体 /// /// [CheckLogin] public string Nullifyjiating(string Id = "") { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; return JsonConvert.SerializeObject(_pltJiatingchengyuanService.ModifyStatus(Id, curentuser.Id)); } /// /// 获取用户信息 /// /// 实体 /// /// [CheckLogin] public string GetList(string DeptId = null, string IsYwjl = null) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; var quxian = _userService.GetList(DeptId, IsYwjl); return JsonConvert.SerializeObject(quxian); } /// /// 删除主信息 /// /// 实体 /// /// [CheckLogin] public string Chushimima(string Id, string Password) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; PltUserDTO pltUserDTO =_userService.GetPltUserEntity(Id); // pltUserDTO.Password = Password; pltUserDTO.Modifier = curentuser.Id; pltUserDTO.Password = Password; pltUserDTO.ZsName = "D"; pltUserDTO.Modifytime = DateTime.Now; ResultEntity resultEntity = _userService.savePltUser(pltUserDTO); return JsonConvert.SerializeObject(resultEntity); } [CheckLogin] public ActionResult Print(string id) { PltUserDTO dto = _userService.GetPltUserEntity(id); ViewData.Model = dto; return View(); } } }