/// <summary> /// 设置用户审核状态 /// </summary> /// <param name="userInfo">用户</param> /// <param name="ids">主键数组</param> /// <param name="auditStates">审核状态</param> /// <returns>影响行数</returns> public int SetUserAuditStates(BaseUserInfo userInfo, string[] ids, AuditStatus auditStates) { var result = 0; var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterWriteDb(userInfo, parameter, (dbHelper) => { var parameters = new List <KeyValuePair <string, object> >(); var userManager = new BaseUserManager(dbHelper, userInfo); // 被审核通过 if (auditStates == AuditStatus.AuditPass) { parameters.Add(new KeyValuePair <string, object>(BaseUserEntity.FieldAuditStatus, auditStates.ToString())); parameters.Add(new KeyValuePair <string, object>(BaseUserEntity.FieldEnabled, 1)); result = userManager.SetProperty(ids, parameters); // 锁定时间需要去掉 // 密码错误次数需要修改掉 var userLogonManager = new BaseUserLogonManager(dbHelper, userInfo); parameters = new List <KeyValuePair <string, object> > { new KeyValuePair <string, object>(BaseUserLogonEntity.FieldLockStartTime, null), new KeyValuePair <string, object>(BaseUserLogonEntity.FieldLockEndTime, null), new KeyValuePair <string, object>(BaseUserLogonEntity.FieldUserOnline, 0), new KeyValuePair <string, object>(BaseUserLogonEntity.FieldPasswordErrorCount, 0) }; result = userLogonManager.SetProperty(ids, parameters); // var staffManager = new BaseStaffManager(dbHelper, result); // string[] staffIds = staffManager.GetIds(BaseStaffEntity.FieldUserId, ids); // staffManager.SetProperty(staffIds, new KeyValuePair<string, object>(BaseStaffEntity.FieldEnabled, 1)); } // 被退回 if (auditStates == AuditStatus.AuditReject) { parameters.Add(new KeyValuePair <string, object>(BaseUserEntity.FieldAuditStatus, auditStates.ToString())); parameters.Add(new KeyValuePair <string, object>(BaseUserEntity.FieldEnabled, 0)); // parameters.Add(new KeyValuePair<string, object>(BaseUserEntity.FieldAuditStatus, Status.UserLocked.ToString())); result = userManager.SetProperty(ids, parameters); } }); return(result); }
/// <summary> /// 设置密码 /// </summary> /// <param name="userId">被设置的用户主键</param> /// <param name="newPassword">新密码(原始,未加密)</param> /// <param name="unlock">解除锁定</param> /// <param name="autoAdd">数据缺少自动补充登录信息</param> /// <param name="changeLog">记录更改</param> /// <returns>影响行数</returns> public virtual int SetPassword(int userId, string newPassword, bool?unlock = null, bool?autoAdd = null, bool changeLog = true) { var result = 0; // 密码强度检查 /* * if (BaseSystemInfo.CheckPasswordStrength) * { * if (password.Length == 0) * { * this.StatusCode = StatusCode.PasswordCanNotBeNull.ToString(); * return result; * } * } */ var encryptPassword = newPassword; var salt = string.Empty; // 加密密码 if (BaseSystemInfo.ServerEncryptPassword) { salt = RandomUtil.GetString(20); encryptPassword = EncryptUserPassword(newPassword, salt); } // 设置密码字段 var parameters = new List <KeyValuePair <string, object> > { new KeyValuePair <string, object>(BaseUserLogonEntity.FieldUserPassword, encryptPassword), // 2016-05-20 吉日嘎拉 把修改的痕迹保留起来 new KeyValuePair <string, object>(BaseUserLogonEntity.FieldUpdateTime, DateTime.Now) }; if (UserInfo != null) { parameters.Add(new KeyValuePair <string, object>(BaseUserLogonEntity.FieldUpdateUserId, UserInfo.UserId)); parameters.Add(new KeyValuePair <string, object>(BaseUserLogonEntity.FieldUpdateBy, UserInfo.RealName)); } //需要重新登录才可以,防止正在被人黑中,阻止已经在线上的人 parameters.Add(new KeyValuePair <string, object>(BaseUserLogonEntity.FieldOpenId, Guid.NewGuid().ToString("N"))); if (BaseSystemInfo.ServerEncryptPassword) { parameters.Add(new KeyValuePair <string, object>(BaseUserLogonEntity.FieldSalt, salt)); } parameters.Add(new KeyValuePair <string, object>(BaseUserLogonEntity.FieldChangePasswordTime, DateTime.Now)); if (unlock.HasValue && unlock.Value == true) { parameters.Add(new KeyValuePair <string, object>(BaseUserLogonEntity.FieldEnabled, 1)); parameters.Add(new KeyValuePair <string, object>(BaseUserLogonEntity.FieldLockStartTime, null)); parameters.Add(new KeyValuePair <string, object>(BaseUserLogonEntity.FieldLockEndTime, null)); } var userLogonManager = new BaseUserLogonManager(DbHelper, UserInfo); result = userLogonManager.SetProperty(new KeyValuePair <string, object>(BaseUserLogonEntity.FieldUserId, userId), parameters); if (result == 0 && autoAdd.HasValue && autoAdd.Value == true) { var userLogonEntity = new BaseUserLogonEntity { UserId = userId, ChangePasswordTime = DateTime.Now, UserPassword = encryptPassword, Salt = salt, Enabled = 1, CreateTime = DateTime.Now, UpdateTime = DateTime.Now }; if (UserInfo != null) { userLogonEntity.CreateUserId = UserInfo.UserId; userLogonEntity.CreateBy = UserInfo.RealName; } userLogonManager.AddEntity(userLogonEntity); result = 1; } // 2015-12-09 吉日嘎拉 增加日志功能、谁什么时候设置了谁的密码? if (changeLog) { var record = new BaseChangeLogEntity { TableName = BaseUserLogonEntity.CurrentTableName, TableDescription = FieldExtensions.ToDescription(typeof(BaseUserLogonEntity), "CurrentTableName"), ColumnName = BaseUserLogonEntity.FieldUserPassword, ColumnDescription = "用户密码", RecordKey = userId.ToString(), NewValue = "设置密码" }; var changeLogManager = new BaseChangeLogManager(UserInfo); changeLogManager.Add(record, true, false); } if (result == 1) { StatusCode = Status.SetPasswordOk.ToString(); // 调用扩展 if (BaseSystemInfo.OnInternet && BaseSystemInfo.ServerEncryptPassword) { // AfterSetPassword(userId, salt, password); } } else { // 数据可能被删除 StatusCode = Status.ErrorDeleted.ToString(); } return(result); }