/// <summary> /// 更新用户 /// </summary> /// <param name="userInfo">用户信息</param> /// <param name="userEntity">用户实体</param> /// <param name="statusCode">状态码</param> /// <param name="statusMessage">状态信息</param> /// <returns>影响行数</returns> public int UpdateUser(UserInfo userInfo, PiUserEntity userEntity, out string statusCode, out string statusMessage) { int returnValue = 0; string returnCode = string.Empty; string returnMessage = string.Empty; var parameter = ParameterUtil.CreateWithMessage(userInfo, MethodBase.GetCurrentMethod(), this.serviceName, RDIFrameworkMessage.UserService_UpdateUser); ServiceUtil.ProcessRDIReadDb(userInfo, parameter, dbProvider => { var userManager = new PiUserManager(dbProvider, userInfo); returnValue = userManager.Update(userEntity, out returnCode); returnMessage = userManager.GetStateMessage(returnCode); }); statusCode = returnCode; statusMessage = returnMessage; return(returnValue); }
/// <summary> /// 用户修改密码 /// </summary> /// <param name="userInfo">用户</param> /// <param name="oldPassword">原始密码</param> /// <param name="newPassword">新密码</param> /// <param name="statusCode">返回状态码</param> /// <param name="statusMessage">返回状消息</param> /// <returns>影响行数</returns> public int ChangePassword(UserInfo userInfo, string oldPassword, string newPassword, out string statusCode, out string statusMessage) { int returnValue = 0; string returnCode = string.Empty; string returnMessage = string.Empty; var parameter = ParameterUtil.CreateWithMessage(userInfo, MethodBase.GetCurrentMethod(), this.serviceName, RDIFrameworkMessage.LogOnService_ChangePassword); ServiceUtil.ProcessRDIReadDb(userInfo, parameter, dbProvider => { var userManager = new PiUserManager(dbProvider, userInfo); returnValue = userManager.ChangePassword(oldPassword, newPassword, out returnCode); // 获得状态消息 returnMessage = userManager.GetStateMessage(returnCode); }); statusCode = returnCode; statusMessage = returnMessage; return(returnValue); }
/// <summary> /// 激活用户 /// </summary> /// <param name="userInfo">用户</param> /// <param name="openId">唯一识别码</param> /// <param name="statusCode">返回状态码</param> /// <param name="statusMessage">返回状消息</param> /// <returns>用户实体</returns> public UserInfo AccountActivation(UserInfo userInfo, string openId, out string statusCode, out string statusMessage) { UserInfo returnUserInfo = null; string returnCode = string.Empty; string returnMessage = string.Empty; var parameter = ParameterUtil.CreateWithMessage(userInfo, MethodBase.GetCurrentMethod(), this.serviceName, "激活用户"); ServiceUtil.ProcessRDIReadDb(userInfo, parameter, dbProvider => { var userManager = new PiUserManager(dbProvider, userInfo); // 先侦测是否在线 userLogOnManager.CheckOnLine(); // 再进行登录 returnUserInfo = userManager.AccountActivation(openId, out returnCode); returnMessage = userManager.GetStateMessage(returnCode); }); statusCode = returnCode; statusMessage = returnMessage; return(returnUserInfo); }
/// <summary> /// 按唯一识别码登录 /// </summary> /// <param name="userInfo">用户</param> /// <param name="openId">唯一识别码</param> /// <param name="returnStatusCode">返回状态码</param> /// <param name="returnStatusMessage">返回状消息</param> /// <returns>用户实体</returns> public UserInfo LogOnByOpenId(UserInfo userInfo, string openId, out string returnStatusCode, out string returnStatusMessage) { string returnCode = string.Empty; string returnMessage = string.Empty; UserInfo returnUserInfo = null; var parameter = ParameterUtil.CreateWithLog(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessRDIReadDb(userInfo, parameter, dbProvider => { var userManager = new PiUserManager(dbProvider, userInfo); // 先侦测是否在线 userLogOnManager.CheckOnLine(); // 再进行登录 returnUserInfo = userManager.LogOnByOpenId(openId, null, null); returnCode = userManager.ReturnStatusCode; returnMessage = userManager.GetStateMessage(userManager.ReturnStatusCode); }); returnStatusCode = returnCode; returnStatusMessage = returnMessage; return(returnUserInfo); }
/// <summary> /// 用户登录 /// </summary> /// <param name="userInfo">用户</param> /// <param name="userName">用户名</param> /// <param name="password">密码</param> /// <param name="openId">单点登录标识</param> /// <param name="createOpenId">重新创建单点登录标识</param> /// <param name="returnStatusCode">返回状态码</param> /// <param name="returnStatusMessage">返回状消息</param> /// <returns>用户实体</returns> public UserInfo UserLogOn(UserInfo userInfo, string userName, string password, string openId, bool createOpenId, out string returnStatusCode, out string returnStatusMessage) { returnStatusCode = StatusCode.DbError.ToString(); string returnCode = string.Empty; string returnMessage = string.Empty; UserInfo returnUserInfo = null; var parameter = ParameterUtil.CreateWithLog(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessRDIWriteDbWithLock(userInfo, parameter, locker, dbProvider => { var userManager = new PiUserManager(dbProvider, userInfo); // 先侦测是否在线 //userLogOnManager.CheckOnLine(); // 再进行登录 returnUserInfo = userManager.LogOn(userName, password, openId, createOpenId); returnCode = userManager.ReturnStatusCode; returnMessage = userManager.GetStateMessage(returnCode); }); returnStatusCode = returnCode; returnStatusMessage = returnMessage; return(returnUserInfo); }
/// <summary> /// 添加用户 /// </summary> /// <param name="dbProvider">数据库连接</param> /// <param name="userInfo">用户信息</param> /// <param name="userEntity">用户实体</param> /// <param name="statusCode">状态码</param> /// <param name="statusMessage">状态信息</param> /// <returns>主键</returns> public string AddUser(IDbProvider dbProvider, UserInfo userInfo, PiUserEntity userEntity, out string statusCode, out string statusMessage) { string returnValue = string.Empty; var userManager = new PiUserManager(dbProvider, userInfo); returnValue = userManager.Add(userEntity, out statusCode); statusMessage = userManager.GetStateMessage(statusCode); LogManager.Instance.Add(dbProvider, userInfo, this.serviceName, RDIFrameworkMessage.UserService_AddUser, MethodBase.GetCurrentMethod()); // 自己不用给自己发提示信息,这个提示信息是为了提高工作效率的,还是需要审核通过的,否则垃圾信息太多了 if (userEntity.Enabled == 0 && statusCode.Equals(StatusCode.OKAdd.ToString())) { // 不是系统管理员添加 if (!userInfo.IsAdministrator) { // 给超级管理员群组发信息 var roleManager = new PiRoleManager(dbProvider, userInfo); string[] roleIds = roleManager.GetIds(PiRoleTable.FieldCode, "Administrators", PiRoleTable.FieldId); string[] userIds = userManager.GetIds(PiUserTable.FieldCode, "Administrator", PiUserTable.FieldId); // 发送请求审核的信息 var messageEntity = new CiMessageEntity { Id = BusinessLogic.NewGuid(), FunctionCode = MessageFunction.WaitForAudit.ToString(), ReceiverId = DefaultRole.Administrator.ToString(), MSGContent = userInfo.RealName + "(" + userInfo.IPAddress + ")" + RDIFrameworkMessage.UserService_Application + userEntity.RealName + RDIFrameworkMessage.UserService_Check, IsNew = 1, ReadCount = 0, Enabled = 1, DeleteMark = 0 }; var messageManager = new CiMessageManager(dbProvider, userInfo); messageManager.BatchSend(userIds, null, roleIds, messageEntity, false); } } return(returnValue); }