diff --git a/Lib/Castle.DynamicProxy2.dll b/Lib/Castle.DynamicProxy2.dll new file mode 100644 index 0000000000000000000000000000000000000000..45f372cff51f849349f0a33ff136fcf72e2b50e2 Binary files /dev/null and b/Lib/Castle.DynamicProxy2.dll differ diff --git a/Lib/Seasky.SFP.PDFInterface.dll b/Lib/Seasky.SFP.PDFInterface.dll new file mode 100644 index 0000000000000000000000000000000000000000..b4f236e62a5d7f78b5e717b89a642ff45fa17274 Binary files /dev/null and b/Lib/Seasky.SFP.PDFInterface.dll differ diff --git a/Lib/iSignature_PDF_API.dll b/Lib/iSignature_PDF_API.dll new file mode 100644 index 0000000000000000000000000000000000000000..ff26871fc48dc1bac103759f1a68e3a127c725f4 Binary files /dev/null and b/Lib/iSignature_PDF_API.dll differ diff --git a/QPFiling/App_Start/WebApiConfig.cs b/QPFiling/App_Start/WebApiConfig.cs index 2602729c835a60679a5dd0035e76fb9adae30b6a..a449ceb24579570c469203f474530a8f4ae4921e 100644 --- a/QPFiling/App_Start/WebApiConfig.cs +++ b/QPFiling/App_Start/WebApiConfig.cs @@ -26,7 +26,7 @@ namespace QPFiling #if DEBUG config.Routes.MapHttpRoute( name: "DefaultApi", - routeTemplate: "api/{controller}/{action}/{id}", + routeTemplate: "{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } ); #endif diff --git a/QPFiling/Controllers/UserController.cs b/QPFiling/Controllers/UserController.cs index fbb2bf0eaaa3a14ddd50b56600b07a06f997a9d8..1cd0f78c919a26606c31ce1a566a0fd3c2ec906d 100644 --- a/QPFiling/Controllers/UserController.cs +++ b/QPFiling/Controllers/UserController.cs @@ -21,7 +21,27 @@ namespace QPFiling.Controllers { IUserService UserService = ApplicationContext.Current.UnityContainer.Resolve<IUserService>(); + [HttpPost] + [RequestLogin] + public BaseResultModel<UserOutputModel> EditPwd(UserInputModel model) + { + if (model == null) + { + return new ErrorResultModel<UserOutputModel>() { ErrorMessage = "鍙傛暟涓嶈兘涓虹┖" }; + } + return UserService.EditPwd(model); + } + [HttpPost] + [RequestLogin] + public BaseResultModel<UserOutputModel> ResetPwd(UserInputModel model) + { + if (model == null) + { + return new ErrorResultModel<UserOutputModel>() { ErrorMessage = "鍙傛暟涓嶈兘涓虹┖" }; + } + return UserService.ResetPwd(model); + } [HttpPost] [RequestLogin] @@ -180,5 +200,6 @@ namespace QPFiling.Controllers var result = this.UserService.DeleteUser(model); return result; } + } } \ No newline at end of file diff --git a/SeaSky.QPFiling.BLL/User/IUserService.cs b/SeaSky.QPFiling.BLL/User/IUserService.cs index 536f5b372a89d19cce5897a99a76327dbcc08a87..05d6cc1eb55fb0d75c77c727db033c61277596cb 100644 --- a/SeaSky.QPFiling.BLL/User/IUserService.cs +++ b/SeaSky.QPFiling.BLL/User/IUserService.cs @@ -58,5 +58,19 @@ namespace SeaSky.QPFiling.BLL.User /// <param name="model">瀵嗙爜 璐﹀彿</param> /// <returns></returns> BaseResultModel<UserOutputModel> Login(UserInputModel model); + + /// <summary> + /// 淇敼瀵嗙爜 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + BaseResultModel<UserOutputModel> EditPwd(UserInputModel model); + + /// <summary> + /// 閲嶇疆瀵嗙爜 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + BaseResultModel<UserOutputModel> ResetPwd(UserInputModel model); } } diff --git a/SeaSky.QPFiling.BLL/User/UserService.cs b/SeaSky.QPFiling.BLL/User/UserService.cs index 083a1afcacb4f685812c2f438fb7ecffc73478fc..3ad3e81b204facd73f49dbd53a6af36db572fd57 100644 --- a/SeaSky.QPFiling.BLL/User/UserService.cs +++ b/SeaSky.QPFiling.BLL/User/UserService.cs @@ -19,610 +19,679 @@ using System.Threading.Tasks; namespace SeaSky.QPFiling.BLL.User { - public class UserService : IUserService - { - [Dependency] - public IUserRepository UserRepository { get; set; } + public class UserService : IUserService + { + [Dependency] + public IUserRepository UserRepository { get; set; } - [Dependency] - public IRoleRepository RoleRepository { get; set; } + [Dependency] + public IRoleRepository RoleRepository { get; set; } - [Dependency] - public ICompanyRepository CompanyRepository { get; set; } + [Dependency] + public ICompanyRepository CompanyRepository { get; set; } - [Dependency] - public IMenuRepository MenuRepository { get; set; } - /// <summary> - /// 鏍规嵁宸ュ彿锛屽鍚嶆ā绯婃煡璇� 椤圭洰 鐢ㄦ埛id鏌ヨ - /// </summary> - /// <param name="model">鐢ㄦ埛淇℃伅</param> - /// <returns></returns> - public BaseResultModel<PageModel<UserOutputModel>> ListUser(UserInputModel model) - { - try - { - var result = new SuccessResultModel<PageModel<UserOutputModel>>(); - result.Data = new PageModel<UserOutputModel>(); - using (HandiConnection conn = UserRepository.CreateConnection()) - { - if (model.PageSize == null || model.PageNO == null) - { - model.PageNO = 1; - model.PageSize = int.MaxValue; - } - result.Data.ListData = this.UserRepository.SelectUser(conn, model).ToList(); - result.Data.DataCount = this.UserRepository.CountUser(conn, model); - result.Data.PageNO = model.PageNO; - result.Data.PageSize = model.PageSize; - result.Data.TotalPages = (result.Data.DataCount + model.PageSize.Value - 1) / model.PageSize.Value; - } - return result; - } - catch (Exception e) - { - var result = new ErrorResultModel<PageModel<UserOutputModel>>(); - LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "ListUser", "", "", "鏌ヨ鐢ㄦ埛淇℃伅鏃跺彂鐢熼敊璇�.", e); - result.ErrorMessage = "鏌ヨ鐢ㄦ埛淇℃伅鏃跺彂鐢熼敊璇�."; - return result; - } - } + [Dependency] + public IMenuRepository MenuRepository { get; set; } + /// <summary> + /// 鏍规嵁宸ュ彿锛屽鍚嶆ā绯婃煡璇� 椤圭洰 鐢ㄦ埛id鏌ヨ + /// </summary> + /// <param name="model">鐢ㄦ埛淇℃伅</param> + /// <returns></returns> + public BaseResultModel<PageModel<UserOutputModel>> ListUser(UserInputModel model) + { + try + { + var result = new SuccessResultModel<PageModel<UserOutputModel>>(); + result.Data = new PageModel<UserOutputModel>(); + using (HandiConnection conn = UserRepository.CreateConnection()) + { + if (model.PageSize == null || model.PageNO == null) + { + model.PageNO = 1; + model.PageSize = int.MaxValue; + } + result.Data.ListData = this.UserRepository.SelectUser(conn, model).ToList(); + result.Data.DataCount = this.UserRepository.CountUser(conn, model); + result.Data.PageNO = model.PageNO; + result.Data.PageSize = model.PageSize; + result.Data.TotalPages = (result.Data.DataCount + model.PageSize.Value - 1) / model.PageSize.Value; + } + return result; + } + catch (Exception e) + { + var result = new ErrorResultModel<PageModel<UserOutputModel>>(); + LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "ListUser", "", "", "鏌ヨ鐢ㄦ埛淇℃伅鏃跺彂鐢熼敊璇�.", e); + result.ErrorMessage = "鏌ヨ鐢ㄦ埛淇℃伅鏃跺彂鐢熼敊璇�."; + return result; + } + } - /// <summary> - /// 鐧诲綍 - /// </summary> - /// <param name="model">瀵嗙爜 璐﹀彿</param> - /// <returns></returns> - public BaseResultModel<UserOutputModel> Login(UserInputModel model) - { - var error = new ErrorResultModel<UserOutputModel>(); - var testsms = new RecordInfoInputModel(); - if (model.UserName == null || model.PassWord == null) - { - error.ErrorMessage = "璐﹀彿銆佸瘑鐮佷笉鑳戒负绌�."; - return error; - } - try - { - var result = new SuccessResultModel<UserOutputModel>(); - using (HandiConnection conn = UserRepository.CreateConnection()) - { - model.PageNO = 1; - model.PageSize = this.UserRepository.CountUser(conn, model); - var user = this.UserRepository.SelectUser(conn, model).Where(t => t.UserName == model.UserName); - if (user == null || user.Count() != 1) - { - error.ErrorMessage = "璐﹀彿涓嶅瓨鍦�."; - return error; - } - result.Data = user.FirstOrDefault(); - string passWord = this.EncryptPassword(model.PassWord.Trim()); - if (passWord != result.Data.PassWord) - { - error.ErrorMessage = "瀵嗙爜閿欒"; - return error; - } - return result; - } - } - catch (Exception e) - { - var result = new ErrorResultModel<UserOutputModel>(); - LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "Login", "", "", "鐢ㄦ埛鐧诲綍鏃跺彂鐢熼敊璇�.", e); - result.ErrorMessage = "鐢ㄦ埛鐧诲綍鏃跺彂鐢熼敊璇�."; - return result; - } - } + /// <summary> + /// 鐧诲綍 + /// </summary> + /// <param name="model">瀵嗙爜 璐﹀彿</param> + /// <returns></returns> + public BaseResultModel<UserOutputModel> Login(UserInputModel model) + { + var error = new ErrorResultModel<UserOutputModel>(); + var testsms = new RecordInfoInputModel(); + if (model.UserName == null || model.PassWord == null) + { + error.ErrorMessage = "璐﹀彿銆佸瘑鐮佷笉鑳戒负绌�."; + return error; + } + try + { + var result = new SuccessResultModel<UserOutputModel>(); + using (HandiConnection conn = UserRepository.CreateConnection()) + { + model.PageNO = 1; + model.PageSize = this.UserRepository.CountUser(conn, model); + var user = this.UserRepository.SelectUser(conn, model).Where(t => t.UserName == model.UserName); + if (user == null || user.Count() != 1) + { + error.ErrorMessage = "璐﹀彿涓嶅瓨鍦�."; + return error; + } + result.Data = user.FirstOrDefault(); + string passWord = this.EncryptPassword(model.PassWord.Trim()); + if (passWord != result.Data.PassWord) + { + error.ErrorMessage = "瀵嗙爜閿欒"; + return error; + } + return result; + } + } + catch (Exception e) + { + var result = new ErrorResultModel<UserOutputModel>(); + LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "Login", "", "", "鐢ㄦ埛鐧诲綍鏃跺彂鐢熼敊璇�.", e); + result.ErrorMessage = "鐢ㄦ埛鐧诲綍鏃跺彂鐢熼敊璇�."; + return result; + } + } - /// <summary> - /// 鏍规嵁鐢ㄦ埛id鑾峰彇璇ョ敤鎴蜂俊鎭� - /// </summary> - /// <param name="UserID">鐢ㄦ埛id</param> - /// <returns></returns> - public BaseResultModel<UserOutputModel> GetUser(Guid UserID) - { - try - { - var result = new SuccessResultModel<UserOutputModel>(); - using (HandiConnection conn = UserRepository.CreateConnection()) - { - var model = new UserInputModel(); - model.UserID = UserID; - model.PageNO = 1; - model.PageSize = 1; - result.Data = this.UserRepository.SelectUser(conn, model).FirstOrDefault(); - if (result.Data == null) - { - var error = new ErrorResultModel<UserOutputModel>(); - error.ErrorMessage = "鑾峰彇璇ョ敤鎴蜂俊鎭け璐�."; - return error; - } - } - return result; - } - catch (Exception e) - { - var result = new ErrorResultModel<UserOutputModel>(); - LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "GetUser", "", "", "鑾峰彇璇ョ敤鎴蜂俊鎭椂鍙戠敓閿欒.", e); - result.ErrorMessage = "鑾峰彇璇ョ敤鎴蜂俊鎭椂鍙戠敓閿欒."; - return result; - } - } + /// <summary> + /// 鏍规嵁鐢ㄦ埛id鑾峰彇璇ョ敤鎴蜂俊鎭� + /// </summary> + /// <param name="UserID">鐢ㄦ埛id</param> + /// <returns></returns> + public BaseResultModel<UserOutputModel> GetUser(Guid UserID) + { + try + { + var result = new SuccessResultModel<UserOutputModel>(); + using (HandiConnection conn = UserRepository.CreateConnection()) + { + var model = new UserInputModel(); + model.UserID = UserID; + model.PageNO = 1; + model.PageSize = 1; + result.Data = this.UserRepository.SelectUser(conn, model).FirstOrDefault(); + if (result.Data == null) + { + var error = new ErrorResultModel<UserOutputModel>(); + error.ErrorMessage = "鑾峰彇璇ョ敤鎴蜂俊鎭け璐�."; + return error; + } + } + return result; + } + catch (Exception e) + { + var result = new ErrorResultModel<UserOutputModel>(); + LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "GetUser", "", "", "鑾峰彇璇ョ敤鎴蜂俊鎭椂鍙戠敓閿欒.", e); + result.ErrorMessage = "鑾峰彇璇ョ敤鎴蜂俊鎭椂鍙戠敓閿欒."; + return result; + } + } - /// <summary> - /// 鍒涘缓鐢ㄦ埛 - /// </summary> - /// <param name="model">鐢ㄦ埛淇℃伅</param> - /// <returns></returns> - public BaseResultModel<UserOutputModel> CreateUser(UserInputModel model) - { - var error = new ErrorResultModel<UserOutputModel>(); - string ver = this.ParamVerification(model); - if (!string.IsNullOrWhiteSpace(ver)) - { - error.ErrorMessage = ver; - return error; - } - try - { - var result = new SuccessResultModel<UserOutputModel>(); - using (HandiConnection conn = UserRepository.CreateTransaction()) - { - //楠岃瘉宸ュ彿鏄惁鍞竴 - var verUserInput = new UserInputModel(); - verUserInput.UserName = model.UserName; - verUserInput.PageNO = 1; - verUserInput.PageSize = int.MaxValue; - var veruserName = this.ListUser(verUserInput); - if (veruserName.IsSuccess) - { - var userl = veruserName.Data.ListData.Where(t => t.UserName == model.UserName.Replace(" ", "")).ToList(); - if (userl.Count > 0) - { - error.ErrorMessage = "宸ュ彿涓嶅厑璁搁噸澶�"; - return error; - } - } + /// <summary> + /// 鍒涘缓鐢ㄦ埛 + /// </summary> + /// <param name="model">鐢ㄦ埛淇℃伅</param> + /// <returns></returns> + public BaseResultModel<UserOutputModel> CreateUser(UserInputModel model) + { + var error = new ErrorResultModel<UserOutputModel>(); + string ver = this.ParamVerification(model); + if (!string.IsNullOrWhiteSpace(ver)) + { + error.ErrorMessage = ver; + return error; + } + try + { + var result = new SuccessResultModel<UserOutputModel>(); + using (HandiConnection conn = UserRepository.CreateTransaction()) + { + //楠岃瘉宸ュ彿鏄惁鍞竴 + var verUserInput = new UserInputModel(); + verUserInput.UserName = model.UserName; + verUserInput.PageNO = 1; + verUserInput.PageSize = int.MaxValue; + var veruserName = this.ListUser(verUserInput); + if (veruserName.IsSuccess) + { + var userl = veruserName.Data.ListData.Where(t => t.UserName == model.UserName.Replace(" ", "")).ToList(); + if (userl.Count > 0) + { + error.ErrorMessage = "宸ュ彿涓嶅厑璁搁噸澶�"; + return error; + } + } - string oldPassword = "111111"; - string password = this.EncryptPassword(oldPassword); - //娣诲姞榛樿淇℃伅 - model.PassWord = password; - model.UserID = Guid.NewGuid(); - model.UserCompanyID = Guid.NewGuid(); - model.UserRoleID = Guid.NewGuid(); - model.GmtCreateDate = DateTime.Now; - model.GmtCreateUser = ApplicationContext.Current.UserName; - model.GmtModifiedDate = DateTime.Now; - model.GmtModifiedUser = ApplicationContext.Current.UserName; - //娣诲姞鐢ㄦ埛鍩烘湰淇℃伅 - result.Data = this.UserRepository.InsertUser(conn, model); - if (result.Data == null) - { - conn.TransRollback(); - error.ErrorMessage = "鍒涘缓鐢ㄦ埛澶辫触."; - return error; - } - //娣诲姞鐢ㄦ埛瑙掕壊 - var userrole = this.UserRepository.InsertUserRole(conn, model); - if (userrole == null) - { - conn.TransRollback(); - error.ErrorMessage = "鍒涘缓鐢ㄦ埛瑙掕壊澶辫触."; - return error; - } - //娣诲姞鐢ㄦ埛鍗曚綅 - var usercompany = this.UserRepository.InsertUserCompany(conn, model); - if (usercompany == null) - { - conn.TransRollback(); - error.ErrorMessage = "鍒涘缓鐢ㄦ埛閮ㄩ棬澶辫触."; - return error; - } - conn.TransCommit(); - return result; - } + string oldPassword = "111111"; + string password = this.EncryptPassword(oldPassword); + //娣诲姞榛樿淇℃伅 + model.PassWord = password; + model.UserID = Guid.NewGuid(); + model.UserCompanyID = Guid.NewGuid(); + model.UserRoleID = Guid.NewGuid(); + model.GmtCreateDate = DateTime.Now; + model.GmtCreateUser = ApplicationContext.Current.UserName; + model.GmtModifiedDate = DateTime.Now; + model.GmtModifiedUser = ApplicationContext.Current.UserName; + //娣诲姞鐢ㄦ埛鍩烘湰淇℃伅 + result.Data = this.UserRepository.InsertUser(conn, model); + if (result.Data == null) + { + conn.TransRollback(); + error.ErrorMessage = "鍒涘缓鐢ㄦ埛澶辫触."; + return error; + } + //娣诲姞鐢ㄦ埛瑙掕壊 + var userrole = this.UserRepository.InsertUserRole(conn, model); + if (userrole == null) + { + conn.TransRollback(); + error.ErrorMessage = "鍒涘缓鐢ㄦ埛瑙掕壊澶辫触."; + return error; + } + //娣诲姞鐢ㄦ埛鍗曚綅 + var usercompany = this.UserRepository.InsertUserCompany(conn, model); + if (usercompany == null) + { + conn.TransRollback(); + error.ErrorMessage = "鍒涘缓鐢ㄦ埛閮ㄩ棬澶辫触."; + return error; + } + conn.TransCommit(); + return result; + } - } - catch (Exception e) - { - LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "CreateUser", "", "", "鍒涘缓鐢ㄦ埛鏃跺彂鐢熼敊璇�.", e); - error.ErrorMessage = "鍒涘缓鐢ㄦ埛鏃跺彂鐢熼敊璇�."; - return error; - } - } + } + catch (Exception e) + { + LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "CreateUser", "", "", "鍒涘缓鐢ㄦ埛鏃跺彂鐢熼敊璇�.", e); + error.ErrorMessage = "鍒涘缓鐢ㄦ埛鏃跺彂鐢熼敊璇�."; + return error; + } + } - /// <summary> - /// 淇敼鐢ㄦ埛 - /// </summary> - /// <param name="model"></param> - /// <returns></returns> - public BaseResultModel<UserOutputModel> ModifyUser(UserInputModel model) - { - var error = new ErrorResultModel<UserOutputModel>(); - string ver = this.ParamVerification(model); - if (!string.IsNullOrWhiteSpace(ver)) - { - error.ErrorMessage = ver; - return error; - } - try - { - var result = new SuccessResultModel<UserOutputModel>(); - using (HandiConnection conn = UserRepository.CreateTransaction()) - { - //楠岃瘉宸ュ彿鏄惁鍞竴 - var verUserInput = new UserInputModel(); - verUserInput.UserName = model.UserName; - verUserInput.PageNO = 1; - verUserInput.PageSize = int.MaxValue; - var veruserName = this.ListUser(verUserInput); - if (veruserName.IsSuccess) - { - var userl = veruserName.Data.ListData.Where(t => t.UserName == model.UserName.Replace(" ", "")).ToList(); - if (userl.Count > 1) - { - error.ErrorMessage = "宸ュ彿涓嶅厑璁搁噸澶�"; - return error; - } - if (userl.Count == 1) - { - //楠岃瘉閲嶅鐨勫伐鍙锋槸涓嶆槸鑷繁 - userl = userl.Where(t => t.UserID == model.UserID).ToList(); - if (userl.Count != 1) - { - error.ErrorMessage = "宸ュ彿涓嶅厑璁搁噸澶�"; - return error; - } - } - } - //鍒ゆ柇淇敼鐨勭敤鎴疯鑹诧紙鏈€鍚庝竴涓鐞嗗憳涓嶅厑璁镐慨鏀逛负闈炵鐞嗗憳锛� - int roleCount = this.UserRepository.AdminCount(conn); - if (roleCount == 1) - { - //鏈€鍚庝竴涓鐞嗗憳楠岃瘉鏄笉鏄嚜宸� - var getuser = new UserInputModel(); - getuser.UserID = model.UserID; - getuser.PageNO = 1; - int pagesize = this.UserRepository.CountUser(conn, getuser); - getuser.PageSize = pagesize; - var userinfo = this.UserRepository.SelectUser(conn, getuser).FirstOrDefault(); - if (userinfo.Rolename == "绠$悊鍛�") - { - if (model.RoleID != userinfo.RoleID) - { - error.ErrorMessage = "璇ョ敤鎴锋槸鏈€鍚庝竴涓鐞嗗憳涓嶅厑璁镐慨鏀�."; - return error; - } - } - } - model.GmtModifiedUser = ApplicationContext.Current.UserName; - model.GmtModifiedDate = DateTime.Now; - //淇敼鐢ㄦ埛淇℃伅 - result.Data = this.UserRepository.UpdateUser(conn, model); - if (result.Data == null) - { - conn.TransRollback(); - error.ErrorMessage = "淇敼鐢ㄦ埛淇℃伅澶辫触."; - return error; - } - //淇敼鐢ㄦ埛鍗曚綅淇℃伅 - var userCompany = this.UserRepository.UpdateUserCompany(conn, model); - if (userCompany == null) - { - conn.TransRollback(); - error.ErrorMessage = "淇敼鐢ㄦ埛鍗曚綅澶辫触."; - return error; - } - //淇敼鐢ㄦ埛瑙掕壊 - var userRole = this.UserRepository.UpdateUserRole(conn, model); - if (userRole == null) - { - conn.TransRollback(); - error.ErrorMessage = "淇敼鐢ㄦ埛瑙掕壊澶辫触."; - return error; - } - conn.TransCommit(); - return result; - } - } - catch (Exception e) - { - LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "ModifyUser", "", "", "淇敼鐢ㄦ埛鏃跺彂鐢熼敊璇�.", e); - error.ErrorMessage = "淇敼鐢ㄦ埛鏃跺彂鐢熼敊璇�."; - return error; - } - } + /// <summary> + /// 淇敼鐢ㄦ埛 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + public BaseResultModel<UserOutputModel> ModifyUser(UserInputModel model) + { + var error = new ErrorResultModel<UserOutputModel>(); + string ver = this.ParamVerification(model); + if (!string.IsNullOrWhiteSpace(ver)) + { + error.ErrorMessage = ver; + return error; + } + try + { + var result = new SuccessResultModel<UserOutputModel>(); + using (HandiConnection conn = UserRepository.CreateTransaction()) + { + //楠岃瘉宸ュ彿鏄惁鍞竴 + var verUserInput = new UserInputModel(); + verUserInput.UserName = model.UserName; + verUserInput.PageNO = 1; + verUserInput.PageSize = int.MaxValue; + var veruserName = this.ListUser(verUserInput); + if (veruserName.IsSuccess) + { + var userl = veruserName.Data.ListData.Where(t => t.UserName == model.UserName.Replace(" ", "")).ToList(); + if (userl.Count > 1) + { + error.ErrorMessage = "宸ュ彿涓嶅厑璁搁噸澶�"; + return error; + } + if (userl.Count == 1) + { + //楠岃瘉閲嶅鐨勫伐鍙锋槸涓嶆槸鑷繁 + userl = userl.Where(t => t.UserID == model.UserID).ToList(); + if (userl.Count != 1) + { + error.ErrorMessage = "宸ュ彿涓嶅厑璁搁噸澶�"; + return error; + } + } + } + //鍒ゆ柇淇敼鐨勭敤鎴疯鑹诧紙鏈€鍚庝竴涓鐞嗗憳涓嶅厑璁镐慨鏀逛负闈炵鐞嗗憳锛� + int roleCount = this.UserRepository.AdminCount(conn); + if (roleCount == 1) + { + //鏈€鍚庝竴涓鐞嗗憳楠岃瘉鏄笉鏄嚜宸� + var getuser = new UserInputModel(); + getuser.UserID = model.UserID; + getuser.PageNO = 1; + int pagesize = this.UserRepository.CountUser(conn, getuser); + getuser.PageSize = pagesize; + var userinfo = this.UserRepository.SelectUser(conn, getuser).FirstOrDefault(); + if (userinfo.Rolename == "绠$悊鍛�") + { + if (model.RoleID != userinfo.RoleID) + { + error.ErrorMessage = "璇ョ敤鎴锋槸鏈€鍚庝竴涓鐞嗗憳涓嶅厑璁镐慨鏀�."; + return error; + } + } + } + model.GmtModifiedUser = ApplicationContext.Current.UserName; + model.GmtModifiedDate = DateTime.Now; + //淇敼鐢ㄦ埛淇℃伅 + result.Data = this.UserRepository.UpdateUser(conn, model); + if (result.Data == null) + { + conn.TransRollback(); + error.ErrorMessage = "淇敼鐢ㄦ埛淇℃伅澶辫触."; + return error; + } + //淇敼鐢ㄦ埛鍗曚綅淇℃伅 + var userCompany = this.UserRepository.UpdateUserCompany(conn, model); + if (userCompany == null) + { + conn.TransRollback(); + error.ErrorMessage = "淇敼鐢ㄦ埛鍗曚綅澶辫触."; + return error; + } + //淇敼鐢ㄦ埛瑙掕壊 + var userRole = this.UserRepository.UpdateUserRole(conn, model); + if (userRole == null) + { + conn.TransRollback(); + error.ErrorMessage = "淇敼鐢ㄦ埛瑙掕壊澶辫触."; + return error; + } + conn.TransCommit(); + return result; + } + } + catch (Exception e) + { + LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "ModifyUser", "", "", "淇敼鐢ㄦ埛鏃跺彂鐢熼敊璇�.", e); + error.ErrorMessage = "淇敼鐢ㄦ埛鏃跺彂鐢熼敊璇�."; + return error; + } + } - /// <summary> - /// 鎵归噺瀵煎叆鐢ㄦ埛锛堝伐鍙� 濮撳悕 閮ㄩ棬锛堢紪鍙凤級 瑙掕壊 锛� - /// </summary> - /// <param name="models"></param> - /// <returns></returns> - public BaseResultModel<List<UserOutputModel>> ImportUser(List<UserInputModel> models) - { - //楠岃瘉鍙傛暟 - var error = new ErrorResultModel<List<UserOutputModel>>(); - error.Data = new List<UserOutputModel>(); - var nulllist = new List<UserInputModel>(); - int len = models.Count(); - for (int i = 0; i < len; i++) - { - int c=i; - //楠岃瘉excel涓棤閲嶅宸ュ彿 - if (models[i].UserName == "" && models[i].RealName == "" && models[i].CompanyCode == "" && models[i].RoleName == "") - { - nulllist.Add(models[i]); - continue; - } + /// <summary> + /// 鎵归噺瀵煎叆鐢ㄦ埛锛堝伐鍙� 濮撳悕 閮ㄩ棬锛堢紪鍙凤級 瑙掕壊 锛� + /// </summary> + /// <param name="models"></param> + /// <returns></returns> + public BaseResultModel<List<UserOutputModel>> ImportUser(List<UserInputModel> models) + { + //楠岃瘉鍙傛暟 + var error = new ErrorResultModel<List<UserOutputModel>>(); + error.Data = new List<UserOutputModel>(); + var nulllist = new List<UserInputModel>(); + int len = models.Count(); + for (int i = 0; i < len; i++) + { + int c = i; + //楠岃瘉excel涓棤閲嶅宸ュ彿 + if (models[i].UserName == "" && models[i].RealName == "" && models[i].CompanyCode == "" && models[i].RoleName == "") + { + nulllist.Add(models[i]); + continue; + } - int userNameCount = models.Where(a => a.UserName == models[i].UserName.Trim()).Count(); - if (userNameCount > 1) - { - error.ErrorCode = "01"; - error.ErrorMessage = "Excel涓瓨鍦ㄩ噸澶嶅伐鍙凤紝閲嶅宸ュ彿涓�" + models[i].UserName; - return error; - } + int userNameCount = models.Where(a => a.UserName == models[i].UserName.Trim()).Count(); + if (userNameCount > 1) + { + error.ErrorCode = "01"; + error.ErrorMessage = "Excel涓瓨鍦ㄩ噸澶嶅伐鍙凤紝閲嶅宸ュ彿涓�" + models[i].UserName; + return error; + } - } - if (nulllist != null || nulllist.Count() > 0) - { - foreach (var item in nulllist) - { - models.Remove(item); - } - } - try - { - //楠岃瘉鍗曚綅缂栫爜锛岃鑹叉槸鍚﹀瓨鍦紙鍗曚綅缂栧彿鏄ā绯婃煡璇級 - using (HandiConnection conn = UserRepository.CreateTransaction()) - { - //鑾峰彇鍏ㄩ儴瑙掕壊 - var allroleinput = new RoleInputModel(); - allroleinput.PageNO = 1; - allroleinput.PageSize = int.MaxValue; - var allRole = this.RoleRepository.SelectRole(conn, allroleinput); - for (int i = 0; i < models.Count(); i++) - { + } + if (nulllist != null || nulllist.Count() > 0) + { + foreach (var item in nulllist) + { + models.Remove(item); + } + } + try + { + //楠岃瘉鍗曚綅缂栫爜锛岃鑹叉槸鍚﹀瓨鍦紙鍗曚綅缂栧彿鏄ā绯婃煡璇級 + using (HandiConnection conn = UserRepository.CreateTransaction()) + { + //鑾峰彇鍏ㄩ儴瑙掕壊 + var allroleinput = new RoleInputModel(); + allroleinput.PageNO = 1; + allroleinput.PageSize = int.MaxValue; + var allRole = this.RoleRepository.SelectRole(conn, allroleinput); + for (int i = 0; i < models.Count(); i++) + { - //楠岃瘉鍙傛暟涓嶄负绌� - if (models[i].UserName == "" && models[i].RealName == "" && models[i].CompanyCode == "" && models[i].RoleName == "") - { - error.Data.Add(this.UserInput2Output(models[i], "宸ュ彿銆佸鍚嶃€佸崟浣嶇紪鍙枫€佽鑹插悕蹇呭~.")); - continue; - } - //楠岃瘉宸ュ彿鏄惁鍞竴 - var verUserInput = new UserInputModel(); - verUserInput.UserName = models[i].UserName; - verUserInput.PageNO = 1; - verUserInput.PageSize = int.MaxValue; - var veruserName = this.ListUser(verUserInput); - if (veruserName.IsSuccess) - { - var userl = veruserName.Data.ListData.Where(t => t.UserName == models[i].UserName.Replace(" ", "")).ToList(); - if (userl.Count > 0) - { - error.Data.Add(this.UserInput2Output(models[i], "宸ュ彿閲嶅.")); - continue; - } - } + //楠岃瘉鍙傛暟涓嶄负绌� + if (models[i].UserName == "" && models[i].RealName == "" && models[i].CompanyCode == "" && models[i].RoleName == "") + { + error.Data.Add(this.UserInput2Output(models[i], "宸ュ彿銆佸鍚嶃€佸崟浣嶇紪鍙枫€佽鑹插悕蹇呭~.")); + continue; + } + //楠岃瘉宸ュ彿鏄惁鍞竴 + var verUserInput = new UserInputModel(); + verUserInput.UserName = models[i].UserName; + verUserInput.PageNO = 1; + verUserInput.PageSize = int.MaxValue; + var veruserName = this.ListUser(verUserInput); + if (veruserName.IsSuccess) + { + var userl = veruserName.Data.ListData.Where(t => t.UserName == models[i].UserName.Replace(" ", "")).ToList(); + if (userl.Count > 0) + { + error.Data.Add(this.UserInput2Output(models[i], "宸ュ彿閲嶅.")); + continue; + } + } - //楠岃瘉鍗曚綅缂栧彿瀛樺湪锛堟牴鎹崟浣嶇紪鍙锋煡璇负妯$硦鏌ヨ锛� - var company = new CompanyInputModel(); - company.CompanyCode = models[i].CompanyCode; - company.PageSize = int.MaxValue; - company.PageNO = 1; - var listCompany = this.CompanyRepository.SelectCompany(conn, company).Where(t => t.CompanyCode == models[i].CompanyCode); - if (listCompany.Count() < 1 || listCompany == null) - { - error.Data.Add(this.UserInput2Output(models[i], "涓嶅瓨鍦ㄨ鍗曚綅缂栧彿.")); - continue; - } - //楠岃瘉瑙掕壊瀛樺湪 - var role = new RoleInputModel(); - role.RoleName = models[i].RoleName; - var listRole = this.RoleRepository.SelectRole(conn, role); - - if (listRole.Count < 1 || listRole == null) - { - error.Data.Add(this.UserInput2Output(models[i], "涓嶅瓨鍦ㄨ瑙掕壊.")); - break; - } - error.Data.Add(this.UserInput2Output(models[i], "")); - } - var listError = error.Data.Where(t => t.Errormessage != ""); - if (listError.Count() > 0) - { - return error; - } + //楠岃瘉鍗曚綅缂栧彿瀛樺湪锛堟牴鎹崟浣嶇紪鍙锋煡璇负妯$硦鏌ヨ锛� + var company = new CompanyInputModel(); + company.CompanyCode = models[i].CompanyCode; + company.PageSize = int.MaxValue; + company.PageNO = 1; + var listCompany = this.CompanyRepository.SelectCompany(conn, company).Where(t => t.CompanyCode == models[i].CompanyCode); + if (listCompany.Count() < 1 || listCompany == null) + { + error.Data.Add(this.UserInput2Output(models[i], "涓嶅瓨鍦ㄨ鍗曚綅缂栧彿.")); + continue; + } + //楠岃瘉瑙掕壊瀛樺湪 + var role = new RoleInputModel(); + role.RoleName = models[i].RoleName; + var listRole = this.RoleRepository.SelectRole(conn, role); + if (listRole.Count < 1 || listRole == null) + { + error.Data.Add(this.UserInput2Output(models[i], "涓嶅瓨鍦ㄨ瑙掕壊.")); + break; + } + error.Data.Add(this.UserInput2Output(models[i], "")); + } + var listError = error.Data.Where(t => t.Errormessage != ""); + if (listError.Count() > 0) + { + return error; + } - //瀵煎叆 - var result = new SuccessResultModel<List<UserOutputModel>>(); - - foreach (var item in models) - { - - string oldPassword = "111111"; - string password = this.EncryptPassword(oldPassword); - //娣诲姞榛樿淇℃伅 - item.PassWord = password; - item.UserID = Guid.NewGuid(); - item.UserCompanyID = Guid.NewGuid(); - item.UserRoleID = Guid.NewGuid(); - item.GmtCreateDate = DateTime.Now; - item.GmtCreateUser = ApplicationContext.Current.UserName; - item.GmtModifiedDate = DateTime.Now; - item.GmtModifiedUser = ApplicationContext.Current.UserName; - item.UserPhone = item.UserPhone == null ? "" : item.UserPhone; - item.Address = item.Address == null ? "" : item.Address; - //娣诲姞鐢ㄦ埛鍩烘湰淇℃伅 - var user = this.UserRepository.InsertUser(conn, item); - if (user == null) - { - conn.TransRollback(); - error.ErrorMessage = "鍒涘缓鐢ㄦ埛澶辫触."; - return error; - } - //娣诲姞鐢ㄦ埛瑙掕壊 - item.RoleID = allRole.Where(t => t.RoleName == item.RoleName).FirstOrDefault().RoleID; - var userrole = this.UserRepository.InsertUserRole(conn, item); - if (userrole == null) - { - conn.TransRollback(); - error.ErrorMessage = "鍒涘缓鐢ㄦ埛瑙掕壊澶辫触."; - return error; - } - //娣诲姞鐢ㄦ埛鍗曚綅 - var scom = new CompanyInputModel(); - scom.CompanyCode = item.CompanyCode; - scom.PageSize = int.MaxValue; - scom.PageNO = 1; - item.CompanyID = this.CompanyRepository.SelectCompany(conn, scom).Where(t => t.CompanyCode == item.CompanyCode).FirstOrDefault().CompanyID; - var usercompany = this.UserRepository.InsertUserCompany(conn, item); - if (usercompany == null) - { - conn.TransRollback(); - error.ErrorMessage = "鍒涘缓鐢ㄦ埛閮ㄩ棬澶辫触."; - return error; - } - } - conn.TransCommit(); - return result; - } - } - catch (Exception e) - { - LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "ImportUser", "", "", "鎵归噺瀵煎叆鐢ㄦ埛鏃跺彂鐢熼敊璇�.", e); - error.ErrorCode = "01"; - error.ErrorMessage = "鎵归噺瀵煎叆鐢ㄦ埛鏃跺彂鐢熼敊璇�."; - return error; - } - } - /// <summary> - /// 鍒犻櫎鐢ㄦ埛 - /// </summary> - /// <param name="model"></param> - /// <returns></returns> - public BaseResultModel<int> DeleteUser(UserInputModel model) - { - var error = new ErrorResultModel<int>(); - if (model.UserID == Guid.Empty) - { - error.ErrorMessage = "鐢ㄦ埛ID涓嶈兘涓虹┖."; - return error; - } - try - { - var result = new SuccessResultModel<int>(); - using (HandiConnection conn = UserRepository.CreateTransaction()) - { - //鍒ゆ柇鏈€鍚庝竴涓鐞嗗憳 - if (model.RoleName == "绠$悊鍛�") - { - var adminCount = UserRepository.AdminCount(conn); - if (adminCount == 1) - { - error.ErrorMessage = "璇ョ敤鎴蜂负鏈€鍚庝竴涓鐞嗗憳涓嶅厑璁稿垹闄�."; - return error; - } - } - //鍒ゆ柇鏈夋棤涓氬姟鍙戠敓 - var userFilingCount = this.UserRepository.UserFilingCount(conn, model.UserID); - if (userFilingCount > 0) - { - error.ErrorMessage = "璇ョ敤鎴峰~鎶ヨ繃澶囨鐢宠涓嶅厑璁稿垹闄�."; - return error; - } - //鍒犻櫎鍗曚綅鎺堟潈 - var delCompany = this.UserRepository.DeleteUserCompany(conn, model.UserCompanyID); - if (delCompany < 1) - { - conn.TransRollback(); - error.ErrorMessage = "鍒犻櫎鐢ㄦ埛鍏宠仈鍗曚綅鏃跺け璐�."; - return error; - } - //鍒犻櫎瑙掕壊鎺堟潈 - var delRole = this.UserRepository.DeleteUserRole(conn, model.UserRoleID); - if (delRole < 1) - { - conn.TransRollback(); - error.ErrorMessage = "鍒犻櫎鐢ㄦ埛鍏宠仈瑙掕壊鏃跺け璐�."; - return error; - } - //鍒犻櫎鐢ㄦ埛 - var delUser = this.UserRepository.DeleteUser(conn, model.UserID); - if (delUser < 1) - { - conn.TransRollback(); - error.ErrorMessage = "鍒犻櫎鐢ㄦ埛淇℃伅澶辫触."; - } - conn.TransCommit(); - return result; - } - } - catch (Exception e) - { - LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "DeleteUser", "", "", "鎵归噺瀵煎叆鐢ㄦ埛鏃跺彂鐢熼敊璇�.", e); - error.ErrorCode = ""; - error.ErrorMessage = "鎵归噺瀵煎叆鐢ㄦ埛鏃跺彂鐢熼敊璇�."; - return error; - } - } + //瀵煎叆 + var result = new SuccessResultModel<List<UserOutputModel>>(); - #region - /// <summary> - /// 鍙傛暟闈炵┖楠岃瘉 - /// </summary> - /// <param name="model">鐢ㄦ埛淇℃伅</param> - /// <returns></returns> - private string ParamVerification(UserInputModel model) - { - model.UserEmail = model.UserEmail == null ? "" : model.UserEmail; - model.Address = model.Address == null ? "" : model.Address; - string error = ""; - if (string.IsNullOrWhiteSpace(model.UserName) || string.IsNullOrEmpty(model.RealName) || string.IsNullOrEmpty(model.UserPhone)) - { - error = "宸ュ彿濮撳悕蹇呭~."; - } - if (model.RoleID == Guid.Empty || model.CompanyID == Guid.Empty) - { - error = "鍗曚綅銆佽鑹插繀閫�."; - } - return error; - } + foreach (var item in models) + { + string oldPassword = "111111"; + string password = this.EncryptPassword(oldPassword); + //娣诲姞榛樿淇℃伅 + item.PassWord = password; + item.UserID = Guid.NewGuid(); + item.UserCompanyID = Guid.NewGuid(); + item.UserRoleID = Guid.NewGuid(); + item.GmtCreateDate = DateTime.Now; + item.GmtCreateUser = ApplicationContext.Current.UserName; + item.GmtModifiedDate = DateTime.Now; + item.GmtModifiedUser = ApplicationContext.Current.UserName; + item.UserPhone = item.UserPhone == null ? "" : item.UserPhone; + item.Address = item.Address == null ? "" : item.Address; + //娣诲姞鐢ㄦ埛鍩烘湰淇℃伅 + var user = this.UserRepository.InsertUser(conn, item); + if (user == null) + { + conn.TransRollback(); + error.ErrorMessage = "鍒涘缓鐢ㄦ埛澶辫触."; + return error; + } + //娣诲姞鐢ㄦ埛瑙掕壊 + item.RoleID = allRole.Where(t => t.RoleName == item.RoleName).FirstOrDefault().RoleID; + var userrole = this.UserRepository.InsertUserRole(conn, item); + if (userrole == null) + { + conn.TransRollback(); + error.ErrorMessage = "鍒涘缓鐢ㄦ埛瑙掕壊澶辫触."; + return error; + } + //娣诲姞鐢ㄦ埛鍗曚綅 + var scom = new CompanyInputModel(); + scom.CompanyCode = item.CompanyCode; + scom.PageSize = int.MaxValue; + scom.PageNO = 1; + item.CompanyID = this.CompanyRepository.SelectCompany(conn, scom).Where(t => t.CompanyCode == item.CompanyCode).FirstOrDefault().CompanyID; + var usercompany = this.UserRepository.InsertUserCompany(conn, item); + if (usercompany == null) + { + conn.TransRollback(); + error.ErrorMessage = "鍒涘缓鐢ㄦ埛閮ㄩ棬澶辫触."; + return error; + } + } + conn.TransCommit(); + return result; + } + } + catch (Exception e) + { + LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "ImportUser", "", "", "鎵归噺瀵煎叆鐢ㄦ埛鏃跺彂鐢熼敊璇�.", e); + error.ErrorCode = "01"; + error.ErrorMessage = "鎵归噺瀵煎叆鐢ㄦ埛鏃跺彂鐢熼敊璇�."; + return error; + } + } - /// <summary> - /// 瀵嗙爜鍔犲瘑 - /// </summary> - /// <param name="passwordAndSalt">鍘熷瘑鐮�</param> - /// <returns>鍔犲瘑鍚庣殑瀵嗙爜</returns> - private string EncryptPassword(string passwordAndSalt) - { - MD5 md5 = MD5.Create(); - byte[] passwordAndSaltBytes = System.Text.Encoding.UTF8.GetBytes(passwordAndSalt); - byte[] hs = md5.ComputeHash(passwordAndSaltBytes); - StringBuilder sb = new StringBuilder(); - foreach (byte b in hs) - { - sb.Append(b.ToString("x2")); - } - return sb.ToString(); - } + /// <summary> + /// 鍒犻櫎鐢ㄦ埛 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + public BaseResultModel<int> DeleteUser(UserInputModel model) + { + var error = new ErrorResultModel<int>(); + if (model.UserID == Guid.Empty) + { + error.ErrorMessage = "鐢ㄦ埛ID涓嶈兘涓虹┖."; + return error; + } + try + { + var result = new SuccessResultModel<int>(); + using (HandiConnection conn = UserRepository.CreateTransaction()) + { + //鍒ゆ柇鏈€鍚庝竴涓鐞嗗憳 + if (model.RoleName == "绠$悊鍛�") + { + var adminCount = UserRepository.AdminCount(conn); + if (adminCount == 1) + { + error.ErrorMessage = "璇ョ敤鎴蜂负鏈€鍚庝竴涓鐞嗗憳涓嶅厑璁稿垹闄�."; + return error; + } + } + //鍒ゆ柇鏈夋棤涓氬姟鍙戠敓 + var userFilingCount = this.UserRepository.UserFilingCount(conn, model.UserID); + if (userFilingCount > 0) + { + error.ErrorMessage = "璇ョ敤鎴峰~鎶ヨ繃澶囨鐢宠涓嶅厑璁稿垹闄�."; + return error; + } + //鍒犻櫎鍗曚綅鎺堟潈 + var delCompany = this.UserRepository.DeleteUserCompany(conn, model.UserCompanyID); + if (delCompany < 1) + { + conn.TransRollback(); + error.ErrorMessage = "鍒犻櫎鐢ㄦ埛鍏宠仈鍗曚綅鏃跺け璐�."; + return error; + } + //鍒犻櫎瑙掕壊鎺堟潈 + var delRole = this.UserRepository.DeleteUserRole(conn, model.UserRoleID); + if (delRole < 1) + { + conn.TransRollback(); + error.ErrorMessage = "鍒犻櫎鐢ㄦ埛鍏宠仈瑙掕壊鏃跺け璐�."; + return error; + } + //鍒犻櫎鐢ㄦ埛 + var delUser = this.UserRepository.DeleteUser(conn, model.UserID); + if (delUser < 1) + { + conn.TransRollback(); + error.ErrorMessage = "鍒犻櫎鐢ㄦ埛淇℃伅澶辫触."; + } + conn.TransCommit(); + return result; + } + } + catch (Exception e) + { + LogWriter.WriteLog(Model.Enum.EnumLogLevel.Fatal, "DeleteUser", "", "", "鎵归噺瀵煎叆鐢ㄦ埛鏃跺彂鐢熼敊璇�.", e); + error.ErrorCode = ""; + error.ErrorMessage = "鎵归噺瀵煎叆鐢ㄦ埛鏃跺彂鐢熼敊璇�."; + return error; + } + } - private UserOutputModel UserInput2Output(UserInputModel model, string error) - { - var outModel = new UserOutputModel(); - outModel.UserName = model.UserName; - outModel.RealName = model.RealName; - outModel.CompanyCode = model.CompanyCode; - outModel.Rolename = model.RoleName; - outModel.Address = model.Address == null ? "" : model.Address; - outModel.UserEmail = model.UserEmail == null ? "" : model.UserEmail; - outModel.Errormessage = error; - return outModel; - } - #endregion - } + #region + /// <summary> + /// 鍙傛暟闈炵┖楠岃瘉 + /// </summary> + /// <param name="model">鐢ㄦ埛淇℃伅</param> + /// <returns></returns> + private string ParamVerification(UserInputModel model) + { + model.UserEmail = model.UserEmail == null ? "" : model.UserEmail; + model.Address = model.Address == null ? "" : model.Address; + string error = ""; + if (string.IsNullOrWhiteSpace(model.UserName) || string.IsNullOrEmpty(model.RealName) || string.IsNullOrEmpty(model.UserPhone)) + { + error = "宸ュ彿濮撳悕蹇呭~."; + } + if (model.RoleID == Guid.Empty || model.CompanyID == Guid.Empty) + { + error = "鍗曚綅銆佽鑹插繀閫�."; + } + return error; + } + + + /// <summary> + /// 瀵嗙爜鍔犲瘑 + /// </summary> + /// <param name="passwordAndSalt">鍘熷瘑鐮�</param> + /// <returns>鍔犲瘑鍚庣殑瀵嗙爜</returns> + private string EncryptPassword(string passwordAndSalt) + { + MD5 md5 = MD5.Create(); + byte[] passwordAndSaltBytes = System.Text.Encoding.UTF8.GetBytes(passwordAndSalt); + byte[] hs = md5.ComputeHash(passwordAndSaltBytes); + StringBuilder sb = new StringBuilder(); + foreach (byte b in hs) + { + sb.Append(b.ToString("x2")); + } + return sb.ToString(); + } + + private UserOutputModel UserInput2Output(UserInputModel model, string error) + { + var outModel = new UserOutputModel(); + outModel.UserName = model.UserName; + outModel.RealName = model.RealName; + outModel.CompanyCode = model.CompanyCode; + outModel.Rolename = model.RoleName; + outModel.Address = model.Address == null ? "" : model.Address; + outModel.UserEmail = model.UserEmail == null ? "" : model.UserEmail; + outModel.Errormessage = error; + return outModel; + } + + public BaseResultModel<UserOutputModel> ResetPwd(UserInputModel model) + { + if (model.UserID == null || model.UserID == Guid.Empty) + { + return new ErrorResultModel<UserOutputModel>() { ErrorMessage="UserID涓嶈兘涓虹┖"}; + } + + try + { + SuccessResultModel<UserOutputModel> result = new SuccessResultModel<UserOutputModel>(); + using (HandiConnection conn = UserRepository.CreateConnection()) + { + UserOutputModel dataModel = UserRepository.ResetPwd(conn, model); + result.Data = dataModel; + } + return result; + } + catch (Exception e) + { + return new ErrorResultModel<UserOutputModel>() { ErrorMessage = "鏈嶅姟鍣ㄥ嚭閿欎簡"}; + } + } + + public BaseResultModel<UserOutputModel> EditPwd(UserInputModel model) + { + if (string.IsNullOrWhiteSpace(model.PassWord)) + { + return new ErrorResultModel<UserOutputModel>() { ErrorMessage = "鍘熷瘑鐮佷笉鑳戒负绌�"}; + } + if (string.IsNullOrWhiteSpace(model.NewPwd)) + { + return new ErrorResultModel<UserOutputModel>() { ErrorMessage = "鏂板瘑鐮佷笉鑳戒负绌�" }; + } + if (string.IsNullOrWhiteSpace(model.RepeatPwd)) + { + return new ErrorResultModel<UserOutputModel>() { ErrorMessage = "閲嶅瀵嗙爜涓嶈兘涓虹┖" }; + } + if (model.RepeatPwd != model.NewPwd) + { + return new ErrorResultModel<UserOutputModel>() { ErrorMessage = "涓ゆ杈撳叆鐨勫瘑鐮佷笉涓€鑷�" }; + } + + model.PassWord = EncryptPassword(model.PassWord); + model.NewPwd = EncryptPassword(model.NewPwd); + model.RepeatPwd = EncryptPassword(model.RepeatPwd); + model.UserID = ApplicationContext.Current.UserID; + + try + { + SuccessResultModel<UserOutputModel> result = new SuccessResultModel<UserOutputModel>(); + using (HandiConnection conn = UserRepository.CreateConnection()) + { + UserOutputModel temp = UserRepository.SelectWithModel(conn,new UserOutputModel() { UserID = ApplicationContext.Current.UserID}); + if (temp.PassWord != model.PassWord) + { + return new ErrorResultModel<UserOutputModel>() { ErrorMessage = "鍘熷瘑鐮侀敊璇�"}; + } + + UserOutputModel dataModel = UserRepository.EditPwd(conn,model); + result.Data = dataModel; + } + return result; + } + catch (Exception e) + { + return new ErrorResultModel<UserOutputModel>() { ErrorMessage = "鏈嶅姟鍣ㄥ嚭閿欏暒" }; + } + } + #endregion + } } diff --git a/SeaSky.QPFiling.DAL/User/IUserRepository.cs b/SeaSky.QPFiling.DAL/User/IUserRepository.cs index e8759072815dbfd673bdb0b661511e660dddf87c..3ad93f3daecde0ea1bac0b5c123f2a7ee37c86e4 100644 --- a/SeaSky.QPFiling.DAL/User/IUserRepository.cs +++ b/SeaSky.QPFiling.DAL/User/IUserRepository.cs @@ -58,6 +58,22 @@ namespace SeaSky.QPFiling.DAL.User /// <returns>鎴愬姛杩斿洖淇敼淇℃伅 澶辫触杩斿洖null</returns> UserOutputModel UpdateUser(HandiConnection conn, UserInputModel model); + /// <summary> + /// 淇敼瀵嗙爜 + /// </summary> + /// <param name="conn"></param> + /// <param name="model"></param> + /// <returns></returns> + UserOutputModel EditPwd(HandiConnection conn, UserInputModel model); + + /// <summary> + /// 閲嶇疆瀵嗙爜 + /// </summary> + /// <param name="conn"></param> + /// <param name="model"></param> + /// <returns></returns> + UserOutputModel ResetPwd(HandiConnection conn,UserInputModel model); + /// <summary> /// 鏍规嵁鐢ㄦ埛id鏌ヨ璇ョ敤鎴峰妗堟潯鏁� /// </summary> diff --git a/SeaSky.QPFiling.DAL/User/UserRepository.cs b/SeaSky.QPFiling.DAL/User/UserRepository.cs index f8384ca63b7cac2716aa6a5a34968f1111d1c28d..ca0636241cef68c85715adf5d3945667278f2b30 100644 --- a/SeaSky.QPFiling.DAL/User/UserRepository.cs +++ b/SeaSky.QPFiling.DAL/User/UserRepository.cs @@ -283,13 +283,45 @@ WHERE [UserID] = @UserID } } - /// <summary> - /// 鏇存柊鐢ㄦ埛 - /// </summary> - /// <param name="conn"></param> - /// <param name="model">鐢ㄦ埛淇℃伅</param> - /// <returns>鎴愬姛杩斿洖淇敼淇℃伅 澶辫触杩斿洖null</returns> - public UserOutputModel UpdateUser(HandiConnection conn, UserInputModel model) + /// <summary> + /// 淇敼瀵嗙爜 + /// </summary> + /// <param name="conn"></param> + /// <param name="model"></param> + /// <returns></returns> + public UserOutputModel EditPwd(HandiConnection conn, UserInputModel model) + { + string sql = @"update [tb_sys_user] set PassWord = @pwd where UserID = @id"; + List<SqlParameter> param = new List<SqlParameter>() { new SqlParameter("pwd", model.NewPwd), new SqlParameter("id", model.UserID) }; + using (var reader = DataHelper.ExecuteReader(conn, sql, param.ToArray())) + { + return reader.Read() ? this.GenerateEntity2Save(reader) : null; + } + } + + /// <summary> + /// 閲嶇疆瀵嗙爜 + /// </summary> + /// <param name="conn"></param> + /// <param name="model"></param> + /// <returns></returns> + public UserOutputModel ResetPwd(HandiConnection conn, UserInputModel model) + { + string sql = @"update [tb_sys_user] set PassWord = '96e79218965eb72c92a549dd5a330112' where UserID = @id"; + List<SqlParameter> param = new List<SqlParameter>() {new SqlParameter("id", model.UserID) }; + using (var reader = DataHelper.ExecuteReader(conn, sql, param.ToArray())) + { + return reader.Read() ? this.GenerateEntity2Save(reader) : null; + } + } + + /// <summary> + /// 鏇存柊鐢ㄦ埛 + /// </summary> + /// <param name="conn"></param> + /// <param name="model">鐢ㄦ埛淇℃伅</param> + /// <returns>鎴愬姛杩斿洖淇敼淇℃伅 澶辫触杩斿洖null</returns> + public UserOutputModel UpdateUser(HandiConnection conn, UserInputModel model) { string sqlText = @" diff --git a/SeaSky.QPFiling.Model/User/UserInputModel.cs b/SeaSky.QPFiling.Model/User/UserInputModel.cs index 9a3ce52ad223c68912b38519ab530a01fab92b3c..82203c4db2e92a79eb2b9afa2249ca70a5050510 100644 --- a/SeaSky.QPFiling.Model/User/UserInputModel.cs +++ b/SeaSky.QPFiling.Model/User/UserInputModel.cs @@ -14,5 +14,8 @@ namespace SeaSky.QPFiling.Model.User public Guid UserRoleID { get; set; } public string RoleName { get; set; } public string CompanyCode { get; set; } + + public string RepeatPwd { get; set; } + public string NewPwd { get; set; } } } diff --git a/SeaSky.QPFiling.Model/User/UserModel.cs b/SeaSky.QPFiling.Model/User/UserModel.cs index 4b78ca9fe835e634a14892b0391a352a82cee84b..7f7b708df3895ac7d0388e05a20b307916c98de5 100644 --- a/SeaSky.QPFiling.Model/User/UserModel.cs +++ b/SeaSky.QPFiling.Model/User/UserModel.cs @@ -6,7 +6,7 @@ using System.Data; namespace SeaSky.QPFiling.Model.User { - [DBTableInfo("tb_User")] + [DBTableInfo("tb_sys_user")] [Serializable] public class UserModel : BasePageModel {