using System; using System.Collections.Generic; using System.Linq; using System.Text; using AutoMapper; using DTO; using IServices; using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.EntityFrameworkCore; using zhengcaioa.IService; using zhengcaioa.Models; namespace zhengcaioa.Service { public class UserService : IUserService { private readonly zhengcaioaContext _context; private readonly IMapper _mapper; public UserService(zhengcaioaContext context, IMapper mapper) { _context = context; _mapper = mapper; } public string GetName() { return ""; } public PltUser login(string user_sn, string password) { var user = _context.PltUsers.Where(x => (x.UserSn == user_sn || x.Phone == user_sn ) && x.Password == password && x.RecStatus == "A").FirstOrDefault(); return user; } public ResultEntity changePassword(string oldPwd, string newPwd, string User_id) { ResultEntity resultEntity = new ResultEntity(); try { var _entity = _context.PltUsers.Where(m => m.Id == User_id && m.Password == oldPwd).FirstOrDefault(); if (_entity == null) { resultEntity.Result = false; resultEntity.Remark = "PWD_ERROR"; resultEntity.Message = "原密码不正确"; } else { _entity.Password = newPwd; _entity.ZsName = "A"; _context.SaveChanges(); resultEntity.Result = true; resultEntity.Remark = "PWD_NO_ERROR"; resultEntity.DataInfo = _entity; } } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "信息保存失败"; } return resultEntity; } public ResultEntity savePltUser(PltUserDTO pltUserDTO) { pltUserDTO.UserType = "01"; ResultEntity resultEntity = new ResultEntity(); try { var checkUserSn =_context.PltUsers.Where(x => x.UserSn == pltUserDTO.UserSn && x.RecStatus=="A" && x.Id != pltUserDTO.Id ).FirstOrDefault(); if(checkUserSn!=null&& (string.IsNullOrWhiteSpace(pltUserDTO.Id) ||(!string.IsNullOrWhiteSpace(pltUserDTO.Id) && checkUserSn.Id != pltUserDTO.Id )) ) { resultEntity.Result = false; resultEntity.Message = "用户账号重复"; return resultEntity; } var checkNumber = _context.PltUsers.Where(x => x.Usernumber == pltUserDTO.Usernumber && x.RecStatus == "A" && x.Id != pltUserDTO.Id).FirstOrDefault(); if (checkNumber != null && (string.IsNullOrWhiteSpace(pltUserDTO.Id) || (!string.IsNullOrWhiteSpace(pltUserDTO.Id) && checkNumber.Id != pltUserDTO.Id))) { resultEntity.Result = false; resultEntity.Message = "工号重复"; return resultEntity; } var checkPhone = _context.PltUsers.Where(x => x.Phone == pltUserDTO.Phone && x.RecStatus == "A" && x.Id != pltUserDTO.Id).FirstOrDefault(); if (checkPhone != null && (string.IsNullOrWhiteSpace(pltUserDTO.Id) || (!string.IsNullOrWhiteSpace(pltUserDTO.Id) && checkPhone.Id != pltUserDTO.Id))) { resultEntity.Result = false; resultEntity.Message = "用户手机号重复"; return resultEntity; } var checkIdcard = _context.PltUsers.Where(x => x.Idcard == pltUserDTO.Idcard && x.RecStatus == "A" && x.Id != pltUserDTO.Id).FirstOrDefault(); if (checkIdcard != null && (string.IsNullOrWhiteSpace(pltUserDTO.Id) || (!string.IsNullOrWhiteSpace(pltUserDTO.Id) && checkIdcard.Id != pltUserDTO.Id))) { resultEntity.Result = false; resultEntity.Message = "用户身份证号重复"; return resultEntity; } var pltUser = _mapper.Map(pltUserDTO); if (String.IsNullOrEmpty(pltUser.Id)) { pltUser.Id = Guid.NewGuid().ToString(); pltUserDTO.Id = pltUser.Id; pltUser.Password = pltUserDTO.Passwordchushi; _context.PltUsers.Add(pltUser); } else { var updatepltUser = _context.PltUsers.Find(pltUser.Id); updatepltUser.UserSn = pltUser.UserSn; updatepltUser.UserAlias = pltUser.UserAlias; updatepltUser.UserName = pltUser.UserName; if (!string.IsNullOrEmpty(pltUser.Password)) { updatepltUser.Password = pltUser.Password; } updatepltUser.UserType = pltUser.UserType; updatepltUser.Email = pltUser.Email; updatepltUser.Phone = pltUser.Phone; updatepltUser.Pic = pltUser.Pic; updatepltUser.Imei = pltUser.Imei; updatepltUser.UserCode = pltUser.UserCode; updatepltUser.DeptId = pltUser.DeptId; updatepltUser.HrPosition = pltUser.HrPosition; updatepltUser.RecStatus = pltUser.RecStatus; // updatepltUser.Creater = pltUser.Creater; //updatepltUser.Createtime = pltUser.Createtime; updatepltUser.Modifier = pltUser.Modifier; updatepltUser.Modifytime = pltUser.Modifytime; updatepltUser.IsYwjl = pltUser.IsYwjl; updatepltUser.IsQdht = pltUser.IsQdht; updatepltUser.IsGmsb = pltUser.IsGmsb; updatepltUser.Zhiwustatus = pltUser.Zhiwustatus; updatepltUser.BasicPrice = pltUser.BasicPrice; updatepltUser.Tel = pltUser.Tel; updatepltUser.Qq = pltUser.Qq; updatepltUser.Idcard = pltUser.Idcard; updatepltUser.Reamrk = pltUser.Reamrk; updatepltUser.LengthPrice = pltUser.LengthPrice; updatepltUser.ZsName = pltUser.ZsName; updatepltUser.Jg = pltUser.Jg; updatepltUser.JzAddress = pltUser.JzAddress; updatepltUser.HjAddress = pltUser.HjAddress; updatepltUser.Poxm = pltUser.Poxm; updatepltUser.Podh = pltUser.Podh; updatepltUser.Birthday = pltUser.Birthday; updatepltUser.Sex = pltUser.Sex; updatepltUser.Indate = pltUser.Indate; updatepltUser.Outdate = pltUser.Outdate; updatepltUser.ShiyongDate = pltUser.ShiyongDate; updatepltUser.ShiyongDateEnd = pltUser.ShiyongDateEnd; updatepltUser.ShiyongPrice = pltUser.ShiyongPrice; updatepltUser.Shebaodate = pltUser.Shebaodate; updatepltUser.Education = pltUser.Education; updatepltUser.School = pltUser.School; updatepltUser.Zhengzhi = pltUser.Zhengzhi; updatepltUser.IsMaryed = pltUser.IsMaryed; updatepltUser.Weixin = pltUser.Weixin; updatepltUser.Jinji = pltUser.Jinji; updatepltUser.JinjiPhone = pltUser.JinjiPhone; updatepltUser.JzYoubian = pltUser.JzYoubian; updatepltUser.HjYoubian = pltUser.HjYoubian; updatepltUser.IpMac = pltUser.IpMac; updatepltUser.Iswdenter = pltUser.Iswdenter; updatepltUser.Isxmenter = pltUser.Isxmenter; updatepltUser.Usernumber = pltUser.Usernumber; updatepltUser.advancewages = pltUser.advancewages; updatepltUser.miniyearsalary = pltUser.miniyearsalary; updatepltUser.senioritywages = pltUser.senioritywages; updatepltUser.Istravelsubsidy = pltUser.Istravelsubsidy; } _context.SaveChanges(); resultEntity.ReturnID = pltUser.Id; resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "保存失败,请联系管理员"; } return resultEntity; } public PltUserDTO GetPltUserEntity(string id) { PltUser entity = _context.PltUsers.Find(id); if (entity.RecStatus != "A") { entity = new PltUser(); } var pltUserdto = _mapper.Map(entity); return pltUserdto; } public ResultDataEntity SearchByPaging(PltUserDTOSearch searchEntity) { ResultDataEntity data = new ResultDataEntity(); List list = new List(); var listCode = (from a in _context.SysCodeDtls join b in _context.SysCodes on a.CodeId equals b.Id where a.RecStatus == "A" && b.RecStatus == "A" select new CodeDataEntity() { CodeId = b.Id, CodeTable = b.CodeTable, CodeField = b.CodeField, CodeSn = a.CodeSn, Comments = a.Comments, Contents = a.Contents, RecStatus = a.RecStatus, Sort = a.Sort } ); DateTime Indatestart = DateTime.Now; DateTime Indateend = DateTime.Now; if (!string.IsNullOrWhiteSpace(searchEntity.Indate)) { string[] Indates = searchEntity.Indate.Split("|"); DateTime.TryParse(Indates[0], out Indatestart); DateTime.TryParse(Indates[1], out Indateend); Indateend = Indateend.AddDays(1); } var query = (from a in _context.PltUsers join e in listCode.Where(x => x.CodeTable == "plt_user" && x.CodeField == "sex") on a.Sex equals e.CodeSn into esssss from eee in esssss.DefaultIfEmpty() join g in _context.HrDepts on a.DeptId equals g.Id into gsss from ggg in gsss.DefaultIfEmpty() join f in _context.HrPositions on a.HrPosition equals f.Id into fsssss from fff in fsssss.DefaultIfEmpty() where a.RecStatus == "A" && (string.IsNullOrWhiteSpace(searchEntity.Indate) || (a.Indate >= Indatestart && a.Indate < Indateend)) && (string.IsNullOrWhiteSpace(searchEntity.DeptId) || a.DeptId == searchEntity.DeptId.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.HrPosition) || a.HrPosition == searchEntity.HrPosition.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.IsGmsb) || a.IsGmsb == searchEntity.IsGmsb.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.IsQdht) || a.IsQdht == searchEntity.IsQdht.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.UserName) || a.UserName.Contains(searchEntity.UserName.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.Sex) || a.Sex == searchEntity.Sex.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.UserSn) || a.UserSn.Contains(searchEntity.UserSn.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.Phone) || a.Phone.Contains(searchEntity.Phone.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.Zhiwustatus) || a.Zhiwustatus == searchEntity.Zhiwustatus.Trim()) //select a select new PltUserDTO { Id = a.Id, UserName = a.UserName, DeptId = a.DeptId, DeptName = ggg.DeptName, Sex = a.Sex, SexName = eee.Comments, HrPosition = a.HrPosition, HrPositionName = fff.PostName, Phone = a.Phone, IndateName = a.Indate.HasValue ? a.Indate.Value.ToString("yyyy-MM-dd") : "", ShiyongDateName = (a.ShiyongDate.HasValue ? a.ShiyongDate.Value.ToString("yyyy-MM-dd") : "") + "至" + (a.ShiyongDateEnd.HasValue ? a.ShiyongDateEnd.Value.ToString("yyyy-MM-dd") : ""), BasicPrice = a.BasicPrice, ShiyongPrice = a.ShiyongPrice, ShiyongPriceName = a.ShiyongPrice.HasValue ? a.ShiyongPrice.Value.ToString("F2") : "", ShebaodateName = a.Shebaodate.HasValue ? a.Shebaodate.Value.ToString("yyyy-MM-dd") : "", Creater = a.Creater, Createtime = a.Createtime, RecStatus = a.RecStatus, Modifier = a.Modifier, Modifytime = a.Modifytime, UserSn = a.UserSn, Coler = (a.IsQdht!="A"?"red":((!a.Shebaodate.HasValue) && (a.IsGmsb != "D")? "Darkorange" : "")) } ).OrderBy(x => x.UserSn).ToList(); // query = query.OrderByDescending(x => x.Modifytime).ToList(); if (searchEntity.totalrows == 0) searchEntity.totalrows = query.Count(); var userlist = query.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList(); // list = _mapper.Map>(userlist); data.LoadData(searchEntity, userlist); return data; } public ResultEntity ModifyStatus(string id, string userid) { ResultEntity result = new ResultEntity(); result.Result = true; var model = _context.PltUsers.Find(id); if (model != null) { model.RecStatus = "D"; model.Modifier = userid; model.Modifytime = DateTime.Now; _context.SaveChanges(); } return result; } /// /// 获取所有活动状态的人员 /// /// public List GetList(string DeptId = null, string IsYwjl = null) { var listUser = _context.PltUsers.Where(u => u.RecStatus == "A" && u.Zhiwustatus == "A"); if (DeptId != null) { listUser = listUser.Where(x => x.DeptId == DeptId); } if (IsYwjl != null) { listUser = listUser.Where(x => x.IsYwjl == IsYwjl); } var list = _mapper.Map>(listUser.ToList()); return list; } } }