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 _basInnerUserRepository; private readonly IAdminRepository _basInnerUserSaltRepository; public BasInnerUserService(IAdminRepository basInnerUserRepository, IAdminRepository 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 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(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; } } }