public static string AddLog(string systemCode, BaseUserEntity userEntity, string ipAddress, string ipAddressName, string macAddress, string loginStatus) { if (!BaseSystemInfo.RecordLogOnLog) { return(string.Empty); } if (userEntity == null) { return(null); } string result = string.Empty; BaseLoginLogEntity entity = new BaseLoginLogEntity(); entity.SystemCode = systemCode; entity.UserId = userEntity.Id; entity.UserName = userEntity.NickName; entity.RealName = userEntity.RealName; entity.CompanyId = userEntity.CompanyId; entity.CompanyName = userEntity.CompanyName; if (BaseSystemInfo.OnInternet && !string.IsNullOrEmpty(userEntity.CompanyId)) { entity.CompanyCode = BaseOrganizeManager.GetCodeByCache(userEntity.CompanyId); } entity.IPAddress = ipAddress; entity.IPAddressName = ipAddressName; entity.MACAddress = macAddress; entity.LoginStatus = loginStatus; entity.LogLevel = LoginStatusToLogLevel(loginStatus); entity.CreateOn = DateTime.Now; string tableName = GetSplitTableName(userEntity); using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.LoginLogDbType, BaseSystemInfo.LoginLogDbConnection)) { BaseLoginLogManager loginLogManager = new BaseLoginLogManager(dbHelper, tableName); try { // 2015-07-13 把登录日志无法正常写入的,进行日志记录 result = loginLogManager.Add(entity, false, false); } catch (System.Exception ex) { FileUtil.WriteMessage("AddLogTask: 异常信息:" + ex.Message + System.Environment.NewLine + "错误源:" + ex.Source + System.Environment.NewLine + "堆栈信息:" + ex.StackTrace, System.Web.HttpContext.Current.Server.MapPath("~/Log/") + "Log" + DateTime.Now.ToString(BaseSystemInfo.DateFormat) + ".txt"); } } return(result); }
private int UpdataAuditStatr(string id, string categoryCode, string categoryFullName, string objectId, string objectFullName, string auditIdea, BaseWorkFlowStepEntity workFlowStepEntity) { BaseWorkFlowCurrentEntity workFlowCurrentEntity = this.GetObject(id); workFlowCurrentEntity.CategoryCode = categoryCode; workFlowCurrentEntity.CategoryFullName = categoryFullName; workFlowCurrentEntity.ObjectId = objectId; workFlowCurrentEntity.ObjectFullName = objectFullName; workFlowCurrentEntity.ProcessId = workFlowStepEntity.ProcessId; workFlowCurrentEntity.ActivityId = workFlowStepEntity.Id; workFlowCurrentEntity.ActivityType = workFlowStepEntity.ActivityType; workFlowCurrentEntity.SendDate = DateTime.Now; workFlowCurrentEntity.AuditDate = DateTime.Now; workFlowCurrentEntity.AuditStatus = AuditStatus.StartAudit.ToString(); workFlowCurrentEntity.AuditStatusName = AuditStatus.StartAudit.ToDescription(); // 是否提交给组织机构审批 workFlowCurrentEntity.ToDepartmentId = workFlowStepEntity.AuditDepartmentId; workFlowCurrentEntity.ToDepartmentName = workFlowStepEntity.AuditDepartmentName; // 是否提交给角色审批 workFlowCurrentEntity.ToRoleId = workFlowStepEntity.AuditRoleId; workFlowCurrentEntity.ToRoleRealName = workFlowStepEntity.AuditRoleRealName; // 是否提交给用户审批 workFlowCurrentEntity.ToUserId = workFlowStepEntity.AuditUserId; workFlowCurrentEntity.ToUserRealName = workFlowStepEntity.AuditUserRealName; if (!string.IsNullOrEmpty(workFlowStepEntity.AuditUserId)) { BaseUserManager userManager = new BaseUserManager(UserInfo); BaseUserEntity userEntity = userManager.GetObject(workFlowStepEntity.AuditUserId); workFlowCurrentEntity.ToUserRealName = userEntity.RealName; // 用户的部门信息需要处理 if (!string.IsNullOrEmpty(userEntity.DepartmentId)) { BaseOrganizeManager organizeManager = new BaseOrganizeManager(UserInfo); BaseOrganizeEntity entity = organizeManager.GetObject(userEntity.DepartmentId); workFlowCurrentEntity.ToDepartmentName = entity.FullName; } } // 当前审核人的信息写入当前工作流 workFlowCurrentEntity.AuditUserId = string.Empty; workFlowCurrentEntity.AuditUserCode = string.Empty; workFlowCurrentEntity.AuditUserRealName = string.Empty; workFlowCurrentEntity.AuditIdea = auditIdea; workFlowCurrentEntity.AuditDate = DateTime.Now; int result = this.UpdateObject(workFlowCurrentEntity); this.AddHistory(workFlowCurrentEntity); return(result); }
/// <summary> /// 按主键获取列表 /// </summary> /// <param name="userInfo">用户</param> /// <param name="ids">主键数组</param> /// <returns>数据表</returns> public List <BaseOrganizeEntity> GetListByIds(BaseUserInfo userInfo, string[] ids) { List <BaseOrganizeEntity> result = new List <BaseOrganizeEntity>(); var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterReadDb(userInfo, parameter, (dbHelper) => { var userManager = new BaseOrganizeManager(dbHelper, userInfo); result = userManager.GetList <BaseOrganizeEntity>(BaseOrganizeEntity.FieldId, ids, BaseOrganizeEntity.FieldSortCode); }); return(result); }
/// <summary> /// 同步数据 /// </summary> /// <param name="userInfo">用户</param> /// <param name="all">同步所有数据</param> /// <returns>影响行数</returns> public int Synchronous(BaseUserInfo userInfo, bool all = false) { int result = 0; var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterWriteDb(userInfo, parameter, (dbHelper) => { var manager = new BaseOrganizeManager(dbHelper, userInfo); // result = manager.Synchronous(all); }); return(result); }
/// <summary> /// 获得角色中的组织机构主键 /// </summary> /// <param name="userInfo">用户</param> /// <param name="roleId">角色主键</param> /// <returns>组织机构主键</returns> public string[] GetRoleOrganizeIds(BaseUserInfo userInfo, string roleId) { string[] result = null; var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterReadDb(userInfo, parameter, (dbHelper) => { var manager = new BaseOrganizeManager(dbHelper, userInfo); result = manager.GetIdsInRole(userInfo.SystemCode, roleId); }); return(result); }
/// <summary> /// 清除角色组织机构关联 /// </summary> /// <param name="userInfo">用户</param> /// <param name="roleId">角色主键</param> /// <returns>影响行数</returns> public int ClearOrganizeUser(BaseUserInfo userInfo, string roleId) { int result = 0; var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterWriteDb(userInfo, parameter, (dbHelper) => { var manager = new BaseOrganizeManager(dbHelper, userInfo); result = manager.ClearOrganize(userInfo.SystemCode, roleId); }); return(result); }
/// <summary> /// 按主键数组获取列表 /// </summary> /// <param name="userInfo">用户</param> /// <param name="ids">组织机构主键</param> /// <returns>数据表</returns> public DataTable GetDataTableByIds(BaseUserInfo userInfo, string[] ids) { var dt = new DataTable(BaseOrganizeEntity.TableName); var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterReadDb(userInfo, parameter, (dbHelper) => { var manager = new BaseOrganizeManager(dbHelper, userInfo); dt = manager.GetDataTable(BaseOrganizeEntity.FieldId, ids, BaseOrganizeEntity.FieldSortCode); dt.TableName = BaseOrganizeEntity.TableName; }); return(dt); }
/// <summary> /// 按父节点获取列表 /// </summary> /// <param name="userInfo">用户</param> /// <param name="parentId">父节点</param> /// <returns>数据表</returns> public DataTable GetDataTableByParent(BaseUserInfo userInfo, string parentId) { // 写入调试信息 #if (DEBUG) int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod()); #endif // 加强安全验证防止未授权匿名调用 #if (!DEBUG) LogOnService.UserIsLogOn(userInfo); #endif DataTable dataTable = new DataTable(BaseOrganizeEntity.TableName); using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType)) { try { dbHelper.Open(UserCenterDbConnection); // 获得组织机构列表 BaseOrganizeManager organizeManager = new BaseOrganizeManager(dbHelper, userInfo); List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>(BaseOrganizeEntity.FieldParentId, parentId)); parameters.Add(new KeyValuePair <string, object>(BaseOrganizeEntity.FieldEnabled, 1)); parameters.Add(new KeyValuePair <string, object>(BaseOrganizeEntity.FieldDeletionStateCode, 0)); dataTable = organizeManager.GetDataTable(parameters, BaseOrganizeEntity.FieldSortCode); dataTable.DefaultView.Sort = BaseOrganizeEntity.FieldSortCode; dataTable.TableName = BaseOrganizeEntity.TableName; BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.OrganizeService_GetDataTableByParent, MethodBase.GetCurrentMethod()); } catch (Exception ex) { BaseExceptionManager.LogException(dbHelper, userInfo, ex); throw ex; } finally { dbHelper.Close(); } } // 写入调试信息 #if (DEBUG) BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart); #endif return(dataTable); }
/// <summary> /// 重新设置缓存(重新强制设置缓存)可以提供外部调用的 /// </summary> /// <param name="id">主键</param> /// <returns>用户信息</returns> public static BaseOrganizeEntity SetCache(string id) { BaseOrganizeEntity result = null; BaseOrganizeManager manager = new BaseOrganizeManager(); result = manager.GetObject(id); if (result != null) { SetCache(result); } return(result); }
/// <summary> /// 获取部门列表 /// </summary> /// <param name="userInfo">用户</param> /// <param name="parameters">参数</param> /// <returns>数据表</returns> public DataTable GetDataTable(BaseUserInfo userInfo, List <KeyValuePair <string, object> > parameters) { var dt = new DataTable(BaseOrganizeEntity.TableName); var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterReadDb(userInfo, parameter, (dbHelper) => { // 获得组织机构列表 var manager = new BaseOrganizeManager(dbHelper, userInfo); dt = manager.GetDataTable(parameters, BaseOrganizeEntity.FieldSortCode); dt.DefaultView.Sort = BaseOrganizeEntity.FieldSortCode; dt.TableName = BaseOrganizeEntity.TableName; }); return(dt); }
/// <summary> /// 获得列表 /// </summary> /// <param name="userInfo">用户</param> /// <param name="parentId">父亲节点主键</param> /// <returns>数据表</returns> public DataTable GetErrorDataTable(BaseUserInfo userInfo, string parentId) { var dt = new DataTable(BaseOrganizeEntity.TableName); var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterReadDb(userInfo, parameter, (dbHelper) => { // 这里可以缓存起来,提高效率 var manager = new BaseOrganizeManager(dbHelper, userInfo); dt = manager.GetErrorDataTable(parentId); dt.DefaultView.Sort = BaseOrganizeEntity.FieldSortCode; dt.TableName = BaseOrganizeEntity.TableName; }); return(dt); }
/// <summary> /// 查询组织机构 /// </summary> /// <param name="userInfo">用户</param> /// <param name="organizeId">组织机构</param> /// <param name="searchValue">查询</param> /// <returns>数据表</returns> public DataTable Search(BaseUserInfo userInfo, string organizeId, string searchValue) { var dt = new DataTable(BaseOrganizeEntity.TableName); var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterReadDb(userInfo, parameter, (dbHelper) => { // 获得组织机构列表 var manager = new BaseOrganizeManager(dbHelper, userInfo); dt = manager.Search(searchValue, organizeId); dt.DefaultView.Sort = BaseOrganizeEntity.FieldSortCode; dt.TableName = BaseOrganizeEntity.TableName; }); return(dt); }
/// <summary> /// 1:默认从只读的缓存服务器获取数据 /// 2:若读取不到,就会到接口上获取,接口会把数据缓存到只读服务器上,为下次阅读提高性能 /// </summary> /// <param name="userInfo"></param> /// <param name="id"></param> /// <returns></returns> public static BaseOrganizeEntity GetObjectByCache(BaseUserInfo userInfo, string id) { BaseOrganizeEntity result = null; string key = "O:" + id; result = BaseOrganizeManager.GetCacheByKey(key); // 远程通过接口获取数据 if (result == null) { result = GetObject(userInfo, id); } return(result); }
/// <summary> /// 批量删除数据 /// </summary> /// <param name="userInfo">用户</param> /// <param name="ids">主键数组</param> /// <returns>影响行数</returns> public int BatchDelete(BaseUserInfo userInfo, string[] ids) { int result = 0; var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterWriteDb(userInfo, parameter, (dbHelper) => { var manager = new BaseOrganizeManager(dbHelper, userInfo); result = manager.Delete(ids); // 把公司文件夹也删除了 BaseFolderManager folderManager = new BaseFolderManager(dbHelper, userInfo); result = folderManager.Delete(ids); }); return(result); }
/// <summary> /// 批量移动数据 /// </summary> /// <param name="userInfo">用户</param> /// <param name="ids">主键数组</param> /// <param name="parentId">父节点主键</param> /// <returns>影响行数</returns> public int BatchMoveTo(BaseUserInfo userInfo, string[] organizeIds, string parentId) { int result = 0; var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterWriteDb(userInfo, parameter, (dbHelper) => { var manager = new BaseOrganizeManager(dbHelper, userInfo); for (int i = 0; i < organizeIds.Length; i++) { result += manager.MoveTo(organizeIds[i], parentId); } }); return(result); }
/// <summary> /// 获取管理网点列表 /// </summary> /// <returns>返回序列化</returns> public List <BaseOrganizeEntity> GetUserManageCompanes(string userId, string permissionId) { List <BaseOrganizeEntity> result = null; string[] manageCompanyIds = GetUserManageCompanyIds(userId, permissionId); if (manageCompanyIds != null && manageCompanyIds.Length < 1) { List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>(BaseOrganizeEntity.FieldId, manageCompanyIds)); parameters.Add(new KeyValuePair <string, object>(BaseOrganizeEntity.FieldEnabled, 1)); parameters.Add(new KeyValuePair <string, object>(BaseOrganizeEntity.FieldDeletionStateCode, 0)); BaseOrganizeManager organizeManager = new BaseOrganizeManager(this.DbHelper, this.UserInfo); result = organizeManager.GetList <BaseOrganizeEntity>(parameters); } return(result); }
/// <summary> /// 获得公司列表 /// 2015-11-25 吉日嘎拉 进行改进 /// </summary> /// <param name="province">省</param> /// <param name="city">城市</param> /// <param name="district">县区</param> /// <returns>数据表</returns> public static string[] GetOrganizeByDistrictByCache(string province, string city, string district) { string[] result = null; string organize = string.Empty; if (string.IsNullOrWhiteSpace(province)) { province = string.Empty; } if (string.IsNullOrWhiteSpace(city)) { city = string.Empty; } if (string.IsNullOrWhiteSpace(district)) { district = string.Empty; } // string key = "OrganizeByDistrict:" + province + ":" + city + ":" + district; string key = "OBD:" + province + ":" + city + ":" + district; using (var redisClient = PooledRedisHelper.GetReadOnlyClient()) { organize = redisClient.Get <string>(key); } if (!string.IsNullOrWhiteSpace(organize)) { result = organize.Split('.'); } else { // 从数据库读取数据 BaseOrganizeManager organizeManager = new BaseOrganizeManager(); result = organizeManager.GetOrganizeByDistrict(province, city, district); // 设置缓存 if (result != null && result.Length > 0) { organize = string.Join(".", result); using (var redisClient = PooledRedisHelper.GetClient()) { redisClient.Set <string>(key, organize, DateTime.Now.AddHours(4)); } } } return(result); }
/// <summary> /// 将组织机构从角色中移除 /// </summary> /// <param name="userInfo">用户</param> /// <param name="roleId">角色主键</param> /// <param name="organizeIds">组织机构主键</param> /// <returns>影响行数</returns> public int RemoveOrganizeFromRole(BaseUserInfo userInfo, string roleId, string[] organizeIds) { int result = 0; var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterWriteDbWithTransaction(userInfo, parameter, (dbHelper) => { var manager = new BaseOrganizeManager(dbHelper, userInfo); if (organizeIds != null) { result += manager.RemoveFormRole(userInfo.SystemCode, organizeIds, roleId); } }); return(result); }
/// <summary> /// 按部门获取部门用户,包括子部门的用户 /// </summary> /// <param name="departmentId">部门主键</param> /// <returns>数据表</returns> public DataTable SearchByDepartment(string departmentId, string searchValue) { string sqlQuery = " SELECT " + BaseUserEntity.TableName + ".* " + " FROM " + BaseUserEntity.TableName; sqlQuery += " WHERE (" + BaseUserEntity.TableName + "." + BaseUserEntity.FieldDeletionStateCode + " = 0 "; sqlQuery += " AND " + BaseUserEntity.TableName + "." + BaseUserEntity.FieldEnabled + " = 1 ) "; if (!String.IsNullOrEmpty(departmentId)) { /* * 用非递归调用的建议方法 * sqlQuery += " AND " + BaseUserEntity.TableName + "." + BaseUserEntity.FieldDepartmentId + " IN ( SELECT " + BaseOrganizeEntity.FieldId + " FROM " + BaseOrganizeEntity.TableName + " WHERE " + BaseOrganizeEntity.FieldId + " = " + departmentId + " OR " + BaseOrganizeEntity.FieldParentId + " = " + departmentId + ")"; */ BaseOrganizeManager organizeManager = new BaseOrganizeManager(this.DbHelper, this.UserInfo); string[] organizeIds = organizeManager.GetChildrensId(BaseOrganizeEntity.FieldId, departmentId, BaseOrganizeEntity.FieldParentId); if (organizeIds != null && organizeIds.Length > 0) { sqlQuery += " AND (" + BaseUserEntity.TableName + "." + BaseUserEntity.FieldCompanyId + " IN (" + StringUtil.ArrayToList(organizeIds) + ")" + " OR " + BaseUserEntity.TableName + "." + BaseUserEntity.FieldDepartmentId + " IN (" + StringUtil.ArrayToList(organizeIds) + ")" + " OR " + BaseUserEntity.TableName + "." + BaseUserEntity.FieldWorkgroupId + " IN (" + StringUtil.ArrayToList(organizeIds) + "))"; } } List <IDbDataParameter> dbParameters = new List <IDbDataParameter>(); searchValue = searchValue.Trim(); if (!String.IsNullOrEmpty(searchValue)) { sqlQuery += " AND (" + BaseUserEntity.FieldUserName + " LIKE " + DbHelper.GetParameter(BaseUserEntity.FieldUserName); sqlQuery += " OR " + BaseUserEntity.FieldCode + " LIKE " + DbHelper.GetParameter(BaseUserEntity.FieldCode); sqlQuery += " OR " + BaseUserEntity.FieldRealName + " LIKE " + DbHelper.GetParameter(BaseUserEntity.FieldRealName); sqlQuery += " OR " + BaseUserEntity.FieldDepartmentName + " LIKE " + DbHelper.GetParameter(BaseUserEntity.FieldDepartmentName) + ")"; if (searchValue.IndexOf("%") < 0) { searchValue = "%" + searchValue + "%"; } dbParameters.Add(DbHelper.MakeParameter(BaseUserEntity.FieldUserName, searchValue)); dbParameters.Add(DbHelper.MakeParameter(BaseUserEntity.FieldCode, searchValue)); dbParameters.Add(DbHelper.MakeParameter(BaseUserEntity.FieldRealName, searchValue)); dbParameters.Add(DbHelper.MakeParameter(BaseUserEntity.FieldDepartmentName, searchValue)); } sqlQuery += " ORDER BY " + BaseUserEntity.TableName + "." + BaseUserEntity.FieldSortCode; return(DbHelper.Fill(sqlQuery, dbParameters.ToArray())); }
/// <summary> /// 组织机构添加到角色 /// </summary> /// <param name="userInfo">用户</param> /// <param name="roleId">角色主键</param> /// <param name="organizeIds">组织机构主键</param> /// <returns>影响行数</returns> public int AddOrganizeToRole(BaseUserInfo userInfo, string roleId, string[] organizeIds) { int result = 0; var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterWriteDb(userInfo, parameter, (dbHelper) => { var manager = new BaseOrganizeManager(dbHelper, userInfo); // 小心异常,检查一下参数的有效性 if (organizeIds != null) { result += manager.AddToRole(userInfo.SystemCode, organizeIds, roleId); } }); return(result); }
public static int RefreshCache(string organizeId) { int result = 0; // 2016-02-29 吉日嘎拉 强制刷新缓存 BaseOrganizeEntity organizeEntity = BaseOrganizeManager.GetObjectByCache(organizeId, true); if (organizeEntity != null) { string[] systemCodes = BaseSystemManager.GetSystemCodes(); for (int i = 0; i < systemCodes.Length; i++) { BaseOrganizePermissionManager.ResetPermissionByCache(systemCodes[i], organizeId); } } return(result); }
/// <summary> /// 更新组织机构 /// </summary> /// <param name="userInfo">用户</param> /// <param name="organizeEntity">实体</param> /// <param name="statusCode">状态码</param> /// <param name="statusMessage">状态信息</param> /// <returns>影响行数</returns> public int Update(BaseUserInfo userInfo, BaseOrganizeEntity organizeEntity, out string statusCode, out string statusMessage) { // 写入调试信息 #if (DEBUG) int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod()); #endif // 加强安全验证防止未授权匿名调用 #if (!DEBUG) LogOnService.UserIsLogOn(userInfo); #endif statusCode = string.Empty; statusMessage = string.Empty; int returnValue = 0; using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType)) { try { dbHelper.Open(UserCenterDbConnection); BaseOrganizeManager organizeManager = new BaseOrganizeManager(dbHelper, userInfo); returnValue = organizeManager.Update(organizeEntity, out statusCode); statusMessage = organizeManager.GetStateMessage(statusCode); BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.OrganizeService_Update, MethodBase.GetCurrentMethod()); } catch (Exception ex) { BaseExceptionManager.LogException(dbHelper, userInfo, ex); throw ex; } finally { dbHelper.Close(); } } // 写入调试信息 #if (DEBUG) BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart); #endif return(returnValue); }
/// <summary> /// 按详细情况添加实体 /// </summary> /// <param name="userInfo">用户</param> /// <param name="parentId">父主键</param> /// <param name="code">编号</param> /// <param name="fullName">全称</param> /// <param name="categoryId">分类</param> /// <param name="outerPhone">外线</param> /// <param name="innerPhone">内线</param> /// <param name="fax">传真</param> /// <param name="enabled">有效</param> /// <param name="statusCode">状态码</param> /// <param name="statusMessage">状态信息</param> /// <returns>主键</returns> public string AddByDetail(BaseUserInfo userInfo, string parentId, string code, string fullName, string categoryId, string outerPhone, string innerPhone, string fax, bool enabled, out string statusCode, out string statusMessage) { // 写入调试信息 #if (DEBUG) int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod()); #endif // 加强安全验证防止未授权匿名调用 #if (!DEBUG) LogOnService.UserIsLogOn(userInfo); #endif statusCode = string.Empty; statusMessage = string.Empty; string returnValue = string.Empty; using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType)) { try { dbHelper.Open(UserCenterDbConnection); BaseOrganizeManager organizeManager = new BaseOrganizeManager(dbHelper, userInfo); returnValue = organizeManager.AddByDetail(parentId, code, fullName, categoryId, outerPhone, innerPhone, fax, enabled, out statusCode); statusMessage = organizeManager.GetStateMessage(statusCode); BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.OrganizeService_AddByDetail, MethodBase.GetCurrentMethod()); } catch (Exception ex) { BaseExceptionManager.LogException(dbHelper, userInfo, ex); throw ex; } finally { dbHelper.Close(); } } // 写入调试信息 #if (DEBUG) BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart); #endif return(returnValue); }
public DataTable GetChildrenUsers(string organizeId) { string[] organizeIds = null; BaseOrganizeManager organizeManager = new BaseOrganizeManager(this.DbHelper, this.UserInfo); switch (DbHelper.CurrentDbType) { case CurrentDbType.Access: case CurrentDbType.SqlServer: string organizeCode = organizeManager.GetCodeById(organizeId); organizeIds = organizeManager.GetChildrensIdByCode(BaseOrganizeEntity.FieldCode, organizeCode); break; case CurrentDbType.Oracle: organizeIds = organizeManager.GetChildrensId(BaseOrganizeEntity.FieldId, organizeId, BaseOrganizeEntity.FieldParentId); break; } return(this.GetDataTableByOrganizes(organizeIds)); }
/// <summary> /// 查询组织机构 /// </summary> /// <param name="userInfo">用户</param> /// <param name="organizeId">组织机构</param> /// <param name="searchValue">查询</param> /// <returns>数据表</returns> public DataTable Search(BaseUserInfo userInfo, string organizeId, string searchValue) { // 写入调试信息 #if (DEBUG) int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod()); #endif // 加强安全验证防止未授权匿名调用 #if (!DEBUG) LogOnService.UserIsLogOn(userInfo); #endif DataTable dataTable = new DataTable(BaseOrganizeEntity.TableName); using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType)) { try { dbHelper.Open(UserCenterDbConnection); // 获得组织机构列表 BaseOrganizeManager organizeManager = new BaseOrganizeManager(dbHelper, userInfo); dataTable = organizeManager.Search(string.Empty, searchValue); dataTable.DefaultView.Sort = BaseOrganizeEntity.FieldSortCode; dataTable.TableName = BaseOrganizeEntity.TableName; BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.OrganizeService_Search, MethodBase.GetCurrentMethod()); } catch (Exception ex) { BaseExceptionManager.LogException(dbHelper, userInfo, ex); throw ex; } finally { dbHelper.Close(); } } // 写入调试信息 #if (DEBUG) BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart); #endif return(dataTable); }
/// <summary> /// 批量打删除标志 /// </summary> /// <param name="userInfo">用户</param> /// <param name="ids">主键数组</param> /// <returns>影响行数</returns> public int SetDeleted(BaseUserInfo userInfo, string[] ids) { int result = 0; var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterWriteDb(userInfo, parameter, (dbHelper) => { var manager = new BaseOrganizeManager(dbHelper, userInfo); for (int i = 0; i < ids.Length; i++) { // 设置部门为删除状态 result += manager.SetDeleted(ids[i]); // 相应的用户也需要处理 var userManager = new BaseUserManager(dbHelper, userInfo); List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>(BaseUserEntity.FieldCompanyId, null)); parameters.Add(new KeyValuePair <string, object>(BaseUserEntity.FieldCompanyName, null)); userManager.SetProperty(new KeyValuePair <string, object>(BaseUserEntity.FieldCompanyId, ids[i]), parameters); parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>(BaseUserEntity.FieldSubCompanyId, null)); parameters.Add(new KeyValuePair <string, object>(BaseUserEntity.FieldSubCompanyName, null)); userManager.SetProperty(new KeyValuePair <string, object>(BaseUserEntity.FieldSubCompanyId, ids[i]), parameters); parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>(BaseUserEntity.FieldDepartmentId, null)); parameters.Add(new KeyValuePair <string, object>(BaseUserEntity.FieldDepartmentName, null)); userManager.SetProperty(new KeyValuePair <string, object>(BaseUserEntity.FieldDepartmentId, ids[i]), parameters); parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>(BaseUserEntity.FieldWorkgroupId, null)); parameters.Add(new KeyValuePair <string, object>(BaseUserEntity.FieldWorkgroupName, null)); userManager.SetProperty(new KeyValuePair <string, object>(BaseUserEntity.FieldWorkgroupId, ids[i]), parameters); // 相应的员工也需要处理 var staffManager = new BaseStaffManager(dbHelper, userInfo); staffManager.SetProperty(new KeyValuePair <string, object>(BaseStaffEntity.FieldCompanyId, ids[i]), new KeyValuePair <string, object>(BaseStaffEntity.FieldCompanyId, null)); staffManager.SetProperty(new KeyValuePair <string, object>(BaseStaffEntity.FieldSubCompanyId, ids[i]), new KeyValuePair <string, object>(BaseStaffEntity.FieldSubCompanyId, null)); staffManager.SetProperty(new KeyValuePair <string, object>(BaseStaffEntity.FieldDepartmentId, ids[i]), new KeyValuePair <string, object>(BaseStaffEntity.FieldDepartmentId, null)); staffManager.SetProperty(new KeyValuePair <string, object>(BaseStaffEntity.FieldWorkgroupId, ids[i]), new KeyValuePair <string, object>(BaseStaffEntity.FieldWorkgroupId, null)); } var folderManager = new BaseFolderManager(dbHelper, userInfo); folderManager.SetDeleted(ids); }); return(result); }
public int GetRemainingCount(DotNet.Model.BaseUserEntity userEntity, string applicationCode, string accountCode) { if (string.IsNullOrEmpty(applicationCode)) { if (userEntity != null) { applicationCode = BaseOrganizeManager.GetCodeByCache(userEntity.CompanyId); } } if (string.IsNullOrEmpty(accountCode)) { if (userEntity != null) { accountCode = userEntity.Code; } } return(GetRemainingCount(applicationCode, accountCode)); }
/// <summary> /// 按详细情况添加实体 /// </summary> /// <param name="userInfo">用户</param> /// <param name="parentId">父主键</param> /// <param name="code">编号</param> /// <param name="fullName">全称</param> /// <param name="categoryId">分类</param> /// <param name="outerPhone">外线</param> /// <param name="innerPhone">内线</param> /// <param name="fax">传真</param> /// <param name="enabled">有效</param> /// <param name="statusCode">状态码</param> /// <param name="statusMessage">状态信息</param> /// <returns>主键</returns> public string AddByDetail(BaseUserInfo userInfo, string parentId, string code, string fullName, string categoryId, string outerPhone, string innerPhone, string fax, bool enabled, out string statusCode, out string statusMessage) { string result = string.Empty; string returnCode = string.Empty; string returnMessage = string.Empty; var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterWriteDb(userInfo, parameter, (dbHelper) => { var manager = new BaseOrganizeManager(dbHelper, userInfo); result = manager.AddByDetail(parentId, code, fullName, categoryId, outerPhone, innerPhone, fax, enabled); returnMessage = manager.GetStateMessage(returnCode); }); statusCode = returnCode; statusMessage = returnMessage; return(result); }
/// <summary> /// 批量移动数据 /// </summary> /// <param name="userInfo">用户</param> /// <param name="organizeIds">主键数组</param> /// <param name="parentId">父节点主键</param> /// <returns>影响行数</returns> public int BatchMoveTo(BaseUserInfo userInfo, string[] organizeIds, string parentId) { // 写入调试信息 #if (DEBUG) int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod()); #endif // 加强安全验证防止未授权匿名调用 #if (!DEBUG) LogOnService.UserIsLogOn(userInfo); #endif int returnValue = 0; using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType)) { try { dbHelper.Open(UserCenterDbConnection); BaseOrganizeManager organizeManager = new BaseOrganizeManager(dbHelper, userInfo); for (int i = 0; i < organizeIds.Length; i++) { returnValue += organizeManager.MoveTo(organizeIds[i], parentId); } BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.OrganizeService_BatchMoveTo, MethodBase.GetCurrentMethod()); } catch (Exception ex) { BaseExceptionManager.LogException(dbHelper, userInfo, ex); throw ex; } finally { dbHelper.Close(); } } // 写入调试信息 #if (DEBUG) BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart); #endif return(returnValue); }
/// <summary> /// 获取城市 /// 2015-11-25 吉日嘎拉 采用缓存方式,效率应该会更高 /// </summary> /// <param name="province">省份</param> /// <returns>城市数组</returns> public static string[] GetCityByCache(string province = null) { string[] result = null; string city = string.Empty; if (string.IsNullOrWhiteSpace(province)) { province = string.Empty; } // string key = "OrganizeCity:" + province; string key = "OC:" + province; using (var redisClient = PooledRedisHelper.GetReadOnlyClient()) { city = redisClient.Get <string>(key); } if (!string.IsNullOrWhiteSpace(city)) { result = city.Split('.'); } else { // 从数据库读取数据 BaseOrganizeManager organizeManager = new BaseOrganizeManager(); result = organizeManager.GetCity(province); // 设置缓存 if (result != null && result.Length > 0) { city = string.Join(".", result); using (var redisClient = PooledRedisHelper.GetClient()) { redisClient.Set <string>(key, city, DateTime.Now.AddHours(4)); } } } return(result); }