149 lines
5.6 KiB
C#
149 lines
5.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using Air.Model;
|
|
using Air.Model.AirAdminViewModel;
|
|
using Mini.Common;
|
|
using Mini.Model;
|
|
using Mini.Model.Entity;
|
|
|
|
namespace Mini.Services.Bas
|
|
{
|
|
public class BasInnerUserService : IBasInnerUserService
|
|
{
|
|
private readonly IAdminRepository<Bas_InnerUser> _basInnerUserRepository;
|
|
private readonly IAdminRepository<Bas_InnerUserSalt> _basInnerUserSaltRepository;
|
|
public BasInnerUserService(IAdminRepository<Bas_InnerUser> basInnerUserRepository, IAdminRepository<Bas_InnerUserSalt> basInnerUserSaltRepository)
|
|
{
|
|
this._basInnerUserRepository = basInnerUserRepository;
|
|
this._basInnerUserSaltRepository = basInnerUserSaltRepository;
|
|
}
|
|
|
|
public int AddBasInnerUser(Bas_InnerUser basInnerUser)
|
|
{
|
|
if (basInnerUser == null)
|
|
throw new ArgumentNullException();
|
|
|
|
return _basInnerUserRepository.Add(basInnerUser);
|
|
}
|
|
|
|
public void Delete(Bas_InnerUser model)
|
|
{
|
|
var info = _basInnerUserRepository.Get(p => p.uid == model.uid);
|
|
if (info != null)
|
|
_basInnerUserRepository.Delete(info);
|
|
}
|
|
|
|
public Bas_InnerUser GetBasInnerUser(int uId)
|
|
{
|
|
if (uId == 0)
|
|
return null;
|
|
return _basInnerUserRepository.Get(p => p.uid == uId);
|
|
}
|
|
|
|
public Bas_InnerUser GetBasInnerUserByEid(int eId)
|
|
{
|
|
if (eId == 0)
|
|
return null;
|
|
return _basInnerUserRepository.Get(p => p.eid == eId);
|
|
}
|
|
|
|
public IList<Bas_InnerUserModel> GetList(ref Pager pager, int? eId, string uName, int? isDismiss)
|
|
{
|
|
var queryData = _basInnerUserRepository.Table;
|
|
if (eId.HasValue)
|
|
queryData = queryData.Where(p => p.eid == eId.Value);
|
|
if (!string.IsNullOrWhiteSpace(uName))
|
|
queryData = queryData.Where(p => p.uname.Contains(uName));
|
|
if (isDismiss.HasValue && isDismiss > -1)
|
|
queryData = queryData.Where(p => p.isdismiss == isDismiss.Value);
|
|
PagerUtil.SetPager<Bas_InnerUser>(ref queryData, ref pager);
|
|
return queryData.Select(p => new Bas_InnerUserModel() { uid = p.uid, uname = p.uname, eid = p.eid, gender = p.gender, isdismiss = p.isdismiss, birthday = p.birthday, passwd = p.passwd, createUser = p.createUser, ctime = p.ctime, updateuser = p.updateuser, utime = p.utime }).ToList();
|
|
}
|
|
|
|
public bool Update(Bas_InnerUserEidtModel model)
|
|
{
|
|
var info = _basInnerUserRepository.Get(p => p.uid == model.uid);
|
|
if(info!= null)
|
|
{
|
|
info.uid = model.uid;
|
|
info.uname = model.uname;
|
|
info.birthday = model.birthday;
|
|
info.createUser = model.createUser;
|
|
info.ctime = model.ctime;
|
|
info.eid = model.eid;
|
|
info.gender = model.gender;
|
|
info.isdismiss = model.isdismiss;
|
|
info.updateuser = model.updateuser;
|
|
info.utime = model.utime;
|
|
if (!string.IsNullOrEmpty(model.passwd))
|
|
{
|
|
var user_salt = _basInnerUserSaltRepository.Get(p => p.Eid == model.eid).PwdSalt;
|
|
info.passwd = Utility.Sha512(model.passwd + user_salt);
|
|
}
|
|
}
|
|
return _basInnerUserRepository.Update(info);
|
|
}
|
|
public bool UpdatePwd(BasUpdatePwd model,ref ValidationErrors errors)
|
|
{
|
|
bool result = false;
|
|
try
|
|
{
|
|
var info = _basInnerUserRepository.Get(p => p.uid == model.uid);
|
|
if (info == null)
|
|
{
|
|
errors.Add("找不到数据!");
|
|
return false;
|
|
}
|
|
var usersalt = _basInnerUserSaltRepository.Get(p => p.Eid == info.eid);
|
|
if (null == usersalt)
|
|
{
|
|
errors.Add("找不到数据!");
|
|
return false;
|
|
}
|
|
var user_salt = usersalt.PwdSalt;
|
|
string sha_password = Utility.Sha512(model.rpassword + user_salt);
|
|
info.passwd = sha_password;
|
|
_basInnerUserRepository.Update(info);
|
|
result = true;
|
|
}
|
|
catch (Exception ex) {
|
|
errors.Add("系统错误!");
|
|
LogHelper.Error(ex.ToString());
|
|
}
|
|
return result;
|
|
}
|
|
public bool ValidateUser(int Eid, string password, out string errorMessage, out int UserId)
|
|
{
|
|
errorMessage = string.Empty;
|
|
var user = _basInnerUserRepository.Get(p => p.eid == Eid && p.isdismiss == 0);
|
|
UserId = 0;
|
|
if (null == user)
|
|
{
|
|
errorMessage = "用户名或密码错误!";
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
UserId = user.uid;
|
|
}
|
|
var usersalt = _basInnerUserSaltRepository.Get(p => p.Eid == Eid);
|
|
if (null == usersalt)
|
|
{
|
|
errorMessage = "用户名或密码错误!";
|
|
return false;
|
|
}
|
|
var user_salt = usersalt.PwdSalt;
|
|
string sha_password = Utility.Sha512(password + user_salt);
|
|
if (user.passwd != sha_password)
|
|
{
|
|
errorMessage = "用户名或密码错误!";
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
}
|