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<PltUser> changePassword(string oldPwd, string newPwd, string User_id)
|
{
|
ResultEntity<PltUser> resultEntity = new ResultEntity<PltUser>();
|
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<PltUser>(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;
|
updatepltUser.Beizhu = pltUser.Beizhu;
|
updatepltUser.baomisalary = pltUser.baomisalary;
|
updatepltUser.jibensalary = pltUser.jibensalary;
|
updatepltUser.jintiesalary = pltUser.jintiesalary;
|
updatepltUser.geshuiqizheng = pltUser.geshuiqizheng;
|
}
|
|
_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<PltUserDTO>(entity);
|
return pltUserdto;
|
}
|
|
public ResultDataEntity<PltUserDTO> SearchByPaging(PltUserDTOSearch searchEntity)
|
{
|
ResultDataEntity<PltUserDTO> data = new ResultDataEntity<PltUserDTO>();
|
List<PltUserDTO> list = new List<PltUserDTO>();
|
|
|
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()
|
|
join h in listCode.Where(x => x.CodeTable == "system" && x.CodeField == "shifou")
|
on a.Istravelsubsidy equals h.CodeSn
|
into hsssss
|
from hhh in hsssss.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())
|
&& (string.IsNullOrWhiteSpace(searchEntity.Usernumber) || a.Usernumber == searchEntity.Usernumber.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" : "")),
|
IpMac = a.IpMac,
|
Iswdenter = a.Iswdenter,
|
Isxmenter = a.Isxmenter,
|
Usernumber = a.Usernumber,
|
advancewages = a.advancewages,
|
miniyearsalary = a.miniyearsalary,
|
senioritywages = a.senioritywages,
|
Istravelsubsidy = a.Istravelsubsidy,
|
Beizhu = a.Beizhu,
|
IstravelsubsidyName = hhh.Comments,
|
advancewagesName = a.advancewages.HasValue ? a.advancewages.Value.ToString("F2") : "",
|
miniyearsalaryName = a.miniyearsalary.HasValue ? a.miniyearsalary.Value.ToString("F2") : "",
|
senioritywagesName = a.senioritywages.HasValue ? a.senioritywages.Value.ToString("F2") : "",
|
jibensalary = a.jibensalary,
|
baomisalary = a.baomisalary,
|
jintiesalary = a.jintiesalary,
|
jibensalaryName = a.jibensalary.HasValue ? a.jibensalary.Value.ToString("F2") : "",
|
baomisalaryName = a.baomisalary.HasValue ? a.baomisalary.Value.ToString("F2") : "",
|
jintiesalaryName = a.jintiesalary.HasValue ? a.jintiesalary.Value.ToString("F2") : "",
|
geshuiqizheng = a.geshuiqizheng,
|
geshuiqizhengName = a.geshuiqizheng.HasValue ? a.geshuiqizheng.Value.ToString("F2") : "",
|
|
}
|
).OrderBy(x => x.Usernumber).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<List<PltUserDTO>>(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;
|
}
|
|
/// <summary>
|
/// 获取所有活动状态的人员
|
/// </summary>
|
/// <returns></returns>
|
public List<PltUserDTO> 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<List<PltUserDTO>>(listUser.ToList());
|
return list;
|
}
|
}
|
}
|
|