public ActionResult SaveUser(Guid?userId, string userName, bool enabled, string userCode, string realName, string organization, string organizationName, string department, string departmentName, string position, string positionName, string status, Employee employeeInfo, Guid[] roleIds) { bool result = false; EmployeeLogic empLogic = new EmployeeLogic(); EmployeeModel user = null; bool isCreate = userId == null; if (isCreate) { if (WebSecurity.UserNameExists(userName)) { return(Json(new { Result = false, ErrorMessage = String.Format("用户名[{0}]已存在", userName) })); } else { user = empLogic.CreateEmployeeModel(Guid.NewGuid(), userName); } } else { user = empLogic.GetEmployeeInfoById(userId.Value); if (user == null) { return(Json(new { Result = false, ErrorMessage = "用户不存在" })); } } user.UserCode = userCode; user.RealName = realName; user.Organization = organization; user.OrganizationName = organizationName; user.Department = department; user.DepartmentName = departmentName; user.Position = position; user.PositionName = positionName; user.Status = status; user.Gender = employeeInfo.Gender; user.Birthday = employeeInfo.Birthday; user.CellPhoneNumber = employeeInfo.CellPhoneNumber; user.LinePhoneNumber = employeeInfo.LinePhoneNumber; user.Email = employeeInfo.Email; user.Email2 = employeeInfo.Email2; user.QQ = employeeInfo.QQ; user.ID = employeeInfo.ID; user.Address = employeeInfo.Address; if (isCreate) { user.Enabled = enabled; WebSecurity.CreateUser(user, DefaultPassword, null, empLogic.InsertEmployeeHandler); result = true; } else { if (user.Enabled != enabled) { WebSecurity.EnabledUser(user.UserName, enabled); user.Enabled = enabled; } result = WebSecurity.UpdateUser(user, empLogic.UpdateEmployeeHandler); } if (roleIds != null) { result = WebSecurity.UpdateRolesForUser(user.UserId, roleIds); Functions.RemoveFunctionCache(new Guid[] { user.UserId }); } //加载该员工的成本信息 empLogic.LoadEmployeeCost(user); string jsonData = Newtonsoft.Json.JsonConvert.SerializeObject( new { Result = result, Data = user }); return(Content(jsonData)); }