/// <summary> /// 批量删除 /// </summary> /// <typeparam name="TEntity"> 要注册的类型 </typeparam> /// <param name="entities"> 要注册的对象集合 </param> public virtual OperationResult Delete <TEntity>(IEnumerable <TEntity> entities) where TEntity : EntityBase { string exMsg = string.Empty; try { using (iCMSDbContext ctx = new iCMSDbContext()) { foreach (TEntity entity in entities) { ctx.Entry(entity).State = EntityState.Deleted; } ctx.SaveChanges(); return(new OperationResult(EnumOperationResultType.Success, "操作成功!")); } } catch (Exception ex) { exMsg = ex.Message; } finally { // Context.Configuration.AutoDetectChangesEnabled = true; } return(new OperationResult(EnumOperationResultType.Error, exMsg)); }
/// <summary> /// 创建人:张辽阔 /// 创建时间:2016-10-26 /// 创建记录:执行有增、删、改操作的方法并且有返回值,带事务控制 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="func"></param> /// <returns></returns> public static T ExecuteTrans <T>(Func <iCMSDbContext, T> func) { if (func != null) { using (iCMSDbContext BaseContext = new iCMSDbContext()) { DbContextTransaction BaseTrans = BaseContext.Database.BeginTransaction(); //设置EF执行存储过程超时时间 BaseContext.Database.CommandTimeout = 5 * 60 * 1000; try { T result = func(BaseContext); BaseTrans.Commit(); return(result); } catch (Exception e) { BaseTrans.Rollback(); throw e; } } } else { return(default(T)); } }
/// <summary> /// 查找指定主键的实体记录 /// </summary> /// <param name="key"> 指定主键 </param> /// <returns> 符合编号的记录,不存在返回null </returns> public virtual TEntity GetByKey(object key) { using (iCMSDbContext ctx = new iCMSDbContext()) { return(Set <TEntity>(ctx).Find(key)); } }
/// <summary> /// 事务操作 /// </summary> /// <param name="models"></param> /// <returns></returns> public OperationResult TranMethod(Dictionary <EntityBase, EntityState> models) { string exMsg = string.Empty; try { using (iCMSDbContext ctx = new iCMSDbContext()) { foreach (var model in models) { ctx.Entry(model.Key).State = model.Value; } ctx.SaveChanges(); return(new OperationResult(EnumOperationResultType.Success, "操作成功!")); } } catch (Exception ex) { exMsg = ex.Message; } finally { // Context.Configuration.AutoDetectChangesEnabled = true; } return(new OperationResult(EnumOperationResultType.Error, exMsg)); }
/// <summary> /// 角色添加 /// 修改人:张辽阔 /// 修改时间:2016-11-08 /// 修改记录:修改IsDeault和IsShow的值 /// /// 修改人:王龙杰 /// 修改时间:2017-10-13 /// 修改记录:添加角色同时添加角色附权 /// </summary> /// <param name="Parameter"></param> /// <returns></returns> public BaseResponse <bool> AddRoleInfo(AddRoleParameter Parameter) { BaseResponse <bool> result = new BaseResponse <bool>(); try { using (iCMSDbContext dataContext = new iCMSDbContext()) { Validate validate = new Validate(userRepository, roleRepository); result = validate.ValidateAddRoleParams(Parameter); if (!result.IsSuccessful) { return(result); } Role role = new Role() { AddDate = DateTime.Now, RoleName = Parameter.RoleName, RoleCode = Parameter.RoleCode, //张辽阔 2016-11-08 修改 IsDeault = Parameter.IsDeault, IsShow = Parameter.IsShow, }; OperationResult operationResult = dataContext.Role.AddNew <Role>(dataContext, role); if (operationResult.ResultType == EnumOperationResultType.Success) { //添加角色附权 王龙杰 2017-10-13 dataContext.Configuration.AutoDetectChangesEnabled = false; var addRoleModuleList = (from p in Parameter.Module select new RoleModule { RoleCode = Parameter.RoleCode, ModuleCode = p, }); foreach (var item in addRoleModuleList) { dataContext.Entry(item).State = EntityState.Added; } dataContext.SaveChanges(); result.IsSuccessful = true; return(result); } else { result.IsSuccessful = false; result.Code = "003961"; return(result); } } } catch (Exception e) { LogHelper.WriteLog(e); result.IsSuccessful = false; result.Code = "003961"; return(result); } }
/// <summary> /// add by masu 2016年3月17日09:10:11 批量更新 /// </summary> /// <typeparam name="TEntity"> 要注册的类型 </typeparam> /// <param name="entity"> 要注册的对象 </param> public virtual OperationResult Update <TEntity>(IEnumerable <TEntity> entities) where TEntity : EntityBase { string exMsg = string.Empty; try { using (iCMSDbContext ctx = new iCMSDbContext()) { // EntityState state; //不跟踪变化,提高效率 ctx.Configuration.AutoDetectChangesEnabled = false; foreach (TEntity entity in entities) { if (ctx.Entry(entity).State == EntityState.Detached) { ctx.Entry(entity).State = EntityState.Modified; } } ctx.SaveChanges(); return(new OperationResult(EnumOperationResultType.Success, "操作成功!")); } } catch (Exception ex) { exMsg = ex.Message; } return(new OperationResult(EnumOperationResultType.Error, exMsg)); }
/// <summary> /// 删除指定编号的记录 /// </summary> /// <param name="id"> 实体记录编号 </param> /// <returns> 操作影响的行数 </returns> public virtual OperationResult Delete <TEntity>(int id) where TEntity : EntityBase { using (iCMSDbContext ctx = new iCMSDbContext()) { TEntity entity = Set <TEntity>(ctx).Find(id); return(Delete <TEntity>(entity)); } }
/// <summary> /// 删除所有符合特定表达式的数据 /// </summary> /// <param name="predicate"> 查询条件谓语表达式 </param> /// <returns> 操作影响的行数 </returns> public virtual OperationResult Delete(Expression <Func <TEntity, bool> > predicate) { using (iCMSDbContext ctx = new iCMSDbContext()) { List <TEntity> entities = Set <TEntity>(ctx).Where(predicate).ToList(); return(Delete <TEntity>(entities)); } }
/// <summary> /// 查询系统日志 /// </summary> /// <param name="Parameter"></param> /// <returns></returns> public BaseResponse <SystemLogResult> QuerySystemLog(QuerySystemLogParameter Parameter) { BaseResponse <SystemLogResult> result = new BaseResponse <SystemLogResult>(); var total = 0; var sysLogInfoList = new List <SysLogInfo>(); IQueryable <SysLog> sysLogList = null; try { ListSortDirection sortDirection = Parameter.Order.ToLower().Equals("desc") ? ListSortDirection.Descending : ListSortDirection.Ascending; if (Parameter.IsSuperAdmin) { sysLogList = sysLogRepository.GetDatas <SysLog>(p => true, false); } else { sysLogList = sysLogRepository.GetDatas <SysLog>(t => t.UserID != 1011, false); } var users = new iCMSDbContext().Users.ToList(); var linq = from sysLog in sysLogList join u in users on sysLog.UserID equals u.UserID into sysLogGroups from sl in sysLogGroups.DefaultIfEmpty(new User()) select new SysLogInfo { SysLogID = sysLog.SysLogID, UserID = sysLog.UserID, UserName = sl.UserName, Record = sysLog.Record, AddDate = sysLog.AddDate, IsDeleted = sl.IsDeleted, IPAddress = sysLog.IPAddress, }; sysLogInfoList = linq.AsQueryable() .Where(Parameter.Page, Parameter.PageSize, out total, new PropertySortCondition(Parameter.Sort, sortDirection)) .ToList(); result.Result = new SystemLogResult { Total = total, SysLogInfo = sysLogInfoList, Reason = "" }; result.IsSuccessful = true; return(result); } catch (Exception e) { LogHelper.WriteLog(e); result.IsSuccessful = false; result.Result = new SystemLogResult { Total = 0, SysLogInfo = new List <SysLogInfo>(), Reason = "003871" }; return(result); } }
/// <summary> /// 角色赋权 /// </summary> /// <param name="Parameter"></param> /// <returns></returns> public BaseResponse <bool> RoleAuthorization(RoleAuthorizationParameter Parameter) { BaseResponse <bool> result = new BaseResponse <bool>(); try { if (Parameter.Module == null) { Parameter.Module = new List <string>(); } Validate validate = new Validate(userRepository, roleRepository); result = validate.ValidateRoleAuthorizationParameter(Parameter.RoleCode); if (!result.IsSuccessful) { return(result); } using (var dataContext = new iCMSDbContext()) { dataContext.Configuration.AutoDetectChangesEnabled = false; var roleModuleList = (from p in dataContext.RoleModule where p.RoleCode == Parameter.RoleCode select p); foreach (var item in roleModuleList) { dataContext.Entry(item).State = EntityState.Deleted; } var addRoleModuleList = (from p in Parameter.Module select new RoleModule { RoleCode = Parameter.RoleCode, ModuleCode = p, }); foreach (var item in addRoleModuleList) { dataContext.Entry(item).State = EntityState.Added; } dataContext.SaveChanges(); } result.IsSuccessful = true; return(result); } catch (Exception e) { LogHelper.WriteLog(e); result.IsSuccessful = false; result.Code = "004021"; return(result); } }
/// <summary> /// 创建人:张辽阔 /// 创建时间:2016-10-27 /// 创建记录:删除多条数据 /// </summary> /// <typeparam name="TEntity"></typeparam> /// <param name="source"></param> /// <param name="entities">要删除的对象集合</param> /// <returns></returns> public static OperationResult Delete <TEntity>(this DbSet <TEntity> source, iCMSDbContext context, IEnumerable <TEntity> entities) where TEntity : EntityBase { //不跟踪变化,提高效率 context.Configuration.AutoDetectChangesEnabled = false; foreach (TEntity entity in entities) { context.Entry(entity).State = EntityState.Deleted; } context.SaveChanges(); return(new OperationResult(EnumOperationResultType.Success, "操作成功!")); }
///// <summary> ///// ///// </summary> ///// <typeparam name="TEntity"></typeparam> ///// <param name="isTracking">是否追踪</param> ///// <returns></returns> //public virtual IQueryable<TEntity> GetDatas<TEntity>(bool isTracking) where TEntity : EntityBase //{ // using (iCMSDbContext ctx = new iCMSDbContext()) // { // return Set<TEntity>(ctx).ToList().AsQueryable(); // } //} //add by iLine 20160427 增加条件查询 /// <summary> /// 根据条件获取数据 /// </summary> /// <typeparam name="TEntity"></typeparam> /// <param name="predicate"></param> /// <param name="isTracking"></param> /// <returns></returns> public virtual IQueryable <TEntity> GetDatas <TEntity>(Expression <Func <TEntity, bool> > predicate, bool isTracking) where TEntity : EntityBase { using (iCMSDbContext ctx = new iCMSDbContext()) { if (predicate != null) { return(ctx.Set <TEntity>().Where(predicate).ToList().AsQueryable()); } else { return(null); } } }
/// <summary> /// 更新 /// </summary> /// <typeparam name="TEntity"> 要注册的类型 </typeparam> /// <param name="entity"> 要注册的对象 </param> public virtual OperationResult Update <TEntity>(TEntity entity) where TEntity : EntityBase { string exMsg = string.Empty; try { using (iCMSDbContext ctx = new iCMSDbContext()) { if (ctx.Entry(entity).State == EntityState.Detached) { ctx.Set <TEntity>().Attach(entity); } ctx.Entry(entity).State = EntityState.Modified; ctx.SaveChanges(); //try //{ // #region 云推送添加 // BaseCloudService cloud = BaseCloudService.GetInstance(); // cloud.SyncInfo(entity, EnumCloudDataOperation.Update); // #endregion //} //catch (Exception ex) //{ // LogHelper.WriteLog(ex); //} //finally //{ //} #region 云平台修改 Multi Thread //Thread thread = new Thread(YunyiThreadHelper.YunyiUpdate); //thread.Start(entity); #endregion return(new OperationResult(EnumOperationResultType.Success, "操作成功!")); } } catch (Exception ex) { exMsg = ex.Message; } return(new OperationResult(EnumOperationResultType.Error, exMsg)); }
public string GetMonitorTreeDatas(MonitorTreeDatasParameter parameter) { int pid = parameter.Pid; var mts = _monitorTreeRepository.GetDatas <MonitorTree>(t => t.PID == pid, false); using (iCMSDbContext dbContext = new iCMSDbContext()) { var linq = from mt in mts.ToList() join mtType in dbContext.MonitorTreeType on mt.Type equals mtType.ID into mtGroup from mtg in mtGroup from mtProperty in dbContext.MonitorTreeProperty.ToList() where mt.MonitorTreePropertyID == mtProperty.MonitorTreePropertyID select new { MonitorTreeID = mt.MonitorTreeID, PID = mt.PID, OID = mt.OID, IsDefault = mt.IsDefault, Name = mt.Name, Des = mt.Des, Type = mt.Type, TypeName = mtg.Name, ImageID = mt.ImageID ?? -1, Status = mt.Status, AddDate = mt.AddDate.ToString(), //其他属性 Address = mtProperty.Address, URL = mtProperty.URL, TelphoneNO = mtProperty.TelphoneNO, FaxNO = mtProperty.FaxNO, Latitude = mtProperty.Latitude.HasValue ? mtProperty.Latitude.Value.ToString() : "", Longtitude = mtProperty.Longtitude.HasValue ? mtProperty.Longtitude.Value.ToString() : "", Length = mtProperty.Length.HasValue ? mtProperty.Length.Value.ToString() : "", Width = mtProperty.Width.HasValue ? mtProperty.Width.Value.ToString() : "", Area = mtProperty.Area.HasValue ? mtProperty.Area.Value.ToString() : "", PersonInCharge = mtProperty.PersonInCharge, PersonInChargeTel = mtProperty.PersonInChargeTel, Remark = mtProperty.Remark, ChildCount = -1 }; } var monitor = _monitorTreeRepository.GetByKey(pid); return(""); }
/// <summary> /// 创建人:张辽阔 /// 创建时间:2016-10-26 /// 创建记录:执行没有增、删、改操作的方法并且没有返回值,无事务控制 /// </summary> /// <param name="func"></param> public static void ExecuteNotTrans(Action <iCMSDbContext> func) { if (func != null) { using (iCMSDbContext BaseContext = new iCMSDbContext()) { try { func(BaseContext); } catch (Exception e) { throw e; } } } }
public OperationResult SqlQuery <T>(string sql, SqlParameter[] para) { string exMsg = string.Empty; try { using (iCMSDbContext ctx = new iCMSDbContext()) { var sqlQuery = ctx.Database.SqlQuery <T>(sql, para).ToList(); return(new OperationResult(EnumOperationResultType.Success, "操作成功!", sqlQuery)); } } catch (Exception ex) { exMsg = ex.Message; } return(new OperationResult(EnumOperationResultType.Error, exMsg)); }
/// <summary> /// 创建人:张辽阔 /// 创建时间:2016-10-26 /// 创建记录:执行有增、删、改操作的方法并且没有返回值,带事务控制 /// </summary> /// <param name="func"></param> public static void ExecuteTrans(Action <iCMSDbContext> func) { if (func != null) { using (iCMSDbContext BaseContext = new iCMSDbContext()) { DbContextTransaction BaseTrans = BaseContext.Database.BeginTransaction(); try { func(BaseContext); BaseTrans.Commit(); } catch (Exception e) { BaseTrans.Rollback(); throw e; } } } }
/// <summary> /// 创建人:张辽阔 /// 创建时间:2016-10-26 /// 创建记录:执行没有增、删、改操作的方法并且有返回值,无事务控制 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="func"></param> /// <returns></returns> public static T ExecuteNotTrans <T>(Func <iCMSDbContext, T> func) { if (func != null) { using (iCMSDbContext BaseContext = new iCMSDbContext()) { try { return(func(BaseContext)); } catch (Exception e) { throw e; } } } else { return(default(T)); } }
/// <summary> /// 直接执行SQL /// </summary> /// <param name="sql"></param> public OperationResult ExecuteSqlCommand(string sql) { string exMsg = string.Empty; try { using (iCMSDbContext ctx = new iCMSDbContext()) { ctx.Database.ExecuteSqlCommand(sql); return(new OperationResult(EnumOperationResultType.Success, "操作成功!")); } //Context.Database.ExecuteSqlCommand(sql); //return new OperationResult(EnumOperationResultType.Success, "操作成功!"); } catch (Exception ex) { exMsg = ex.Message; } return(new OperationResult(EnumOperationResultType.Error, exMsg)); }
/// <summary> /// 删除 /// </summary> /// <typeparam name="TEntity"> 要注册的类型 </typeparam> /// <param name="entity"> 要注册的对象 </param> public virtual OperationResult Delete <TEntity>(TEntity entity) where TEntity : EntityBase { string exMsg = string.Empty; try { using (iCMSDbContext ctx = new iCMSDbContext()) { ctx.Entry(entity).State = EntityState.Deleted; ctx.SaveChanges(); return(new OperationResult(EnumOperationResultType.Success, "操作成功!")); } } catch (Exception ex) { exMsg = ex.Message; } return(new OperationResult(EnumOperationResultType.Error, exMsg)); }
public BaseResponse <bool> EditOfficerRecord(EditOfficerParameter parameter) { BaseResponse <bool> response = new BaseResponse <bool>(); try { #region 输入验证 if (string.IsNullOrEmpty(parameter.Name)) { response.IsSuccessful = false; response.Reason = "干部名称不能为空"; return(response); } if (string.IsNullOrEmpty(parameter.IdentifyNumber)) { response.IsSuccessful = false; response.Reason = "身份证号不能为空"; return(response); } if (string.IsNullOrEmpty(parameter.OnOfficeDate)) { response.IsSuccessful = false; response.Reason = "请输入任职时间"; return(response); } if (parameter.OrganizationID < 1) { response.IsSuccessful = false; response.Reason = "请选择单位"; return(response); } //var isExisted = officerRepository.GetDatas<Officer>(t => !t.IsDeleted && !string.IsNullOrEmpty(t.Name) && t.OfficerID != parameter.OfficerID && t.Name.Equals(parameter.Name), true).Any(); //if (isExisted) //{ // response.IsSuccessful = false; // response.Reason = "干部名称已存在"; // return response; //} var isExisted = officerRepository.GetDatas <Officer>(t => !t.IsDeleted && !string.IsNullOrEmpty(t.IdentifyCardNumber) && t.IdentifyCardNumber.Equals(parameter.IdentifyNumber) && t.OfficerID != parameter.OfficerID, true).Any(); if (isExisted) { throw new Exception("身份证号码重复"); } if (!Utilitys.CheckIDCard(parameter.IdentifyNumber)) { throw new Exception("请输入合法的身份证号码"); } using (iCMSDbContext dbContext = new iCMSDbContext()) { var updateUser = dbContext.HBUsers.Where(t => !t.IsDeleted && t.UserID == parameter.UpdateUserID).FirstOrDefault(); if (updateUser == null) { throw new Exception("数据异常"); } int roleID = updateUser.RoleID; switch (roleID) { case (int)EnumRoleType.SuperAdmin: //超级管理员可以编辑任意单位的干部 break; case (int)EnumRoleType.FirstLevelAdmin: //一级管理员不能够编辑干部 throw new Exception("请使用二级管理员登陆,然后编辑干部"); break; case (int)EnumRoleType.SecondLevelAdmin: var organ = dbContext.Organizations.Where(t => !t.IsDeleted && t.OrganID == updateUser.OrganizationID).FirstOrDefault(); if (organ == null) { throw new Exception("数据异常"); } //二级管理员只能够添加本单位的干部 if (updateUser.OrganizationID != parameter.OrganizationID) { string msg = string.Format("只能修改本单位({0})的干部", organ.OrganFullName); throw new Exception(msg); } break; } //if (updateUser.OrganizationID != parameter.OrganizationID) //{ // string msg = string.Format("只能修改本单位({0})的干部", organ.OrganFullName); // throw new Exception(msg); //} } #endregion var offIndb = officerRepository.GetDatas <Officer>(t => !t.IsDeleted && t.OfficerID == parameter.OfficerID, true).FirstOrDefault(); if (offIndb == null) { response.IsSuccessful = false; response.Reason = "编辑干部数据异常"; return(response); } offIndb.Name = parameter.Name; offIndb.Gender = parameter.Gender; offIndb.IdentifyCardNumber = parameter.IdentifyNumber; var birth = Utilitys.GetBrithdayFromIdCard(parameter.IdentifyNumber); var birthDay = DateTime.MinValue; if (DateTime.TryParse(birth, out birthDay)) { offIndb.Birthday = birthDay; } offIndb.OrganizationID = parameter.OrganizationID; offIndb.PositionStr = parameter.PositionStr; offIndb.LevelID = parameter.LevelID; var onOfficeDate = DateTime.MinValue; if (DateTime.TryParse(parameter.OnOfficeDate, out onOfficeDate)) { offIndb.OnOfficeDate = onOfficeDate; } offIndb.Duty = parameter.Duty; //offIndb.InitialScore = parameter.InitialScore; var res = officerRepository.Update <Officer>(offIndb); if (res.ResultType != EnumOperationResultType.Success) { throw new Exception("编辑干部发生异常"); } return(response); } catch (Exception e) { response.IsSuccessful = false; response.Reason = e.Message; return(response); } }
private IQueryable <TEntity> Set <TEntity>(iCMSDbContext ctx, Expression <Func <TEntity, bool> > predicate) where TEntity : EntityBase { return(ctx.Set <TEntity>().Where(predicate).AsQueryable()); }
/// <summary> /// 角色编辑 /// 修改人:张辽阔 /// 修改时间:2016-11-08 /// 修改记录:修改IsDeault和IsShow的值 /// /// 修改人:王龙杰 /// 修改时间:2017-10-13 /// 修改记录:编辑角色同时添加角色附权 /// </summary> /// <param name="Parameter"></param> /// <returns></returns> public BaseResponse <bool> EditRoleInfo(EditRoleParameter Parameter) { BaseResponse <bool> result = new BaseResponse <bool>(); try { #region 验证角色是否已经被使用,如果已经被使用,则不能进行角色隐藏 王颖辉 2018-01-18 var role = roleRepository.GetByKey(Parameter.RoleID); if (role == null) { result.IsSuccessful = false; result.Code = "010092"; return(result); } //如果本次修改为隐藏,而且角色被使用,则不能进行隐藏 if (role.IsShow != Parameter.IsShow && role.IsShow == 1) { var isExist = userRepository.GetDatas <User>(item => item.RoleID == role.RoleID, true).Any(); if (isExist) { result.IsSuccessful = false; result.Code = "010102"; return(result); } } #endregion using (iCMSDbContext dataContext = new iCMSDbContext()) { Validate validate = new Validate(userRepository, roleRepository); result = validate.ValidateEditRoleParams(Parameter); if (!result.IsSuccessful) { return(result); } Role tempRoleObj = dataContext.Role .GetDatas <Role>(dataContext, p => p.RoleID == Parameter.RoleID) .FirstOrDefault(); tempRoleObj.RoleName = Parameter.RoleName; //张辽阔 2016-11-08 添加 tempRoleObj.IsDeault = Parameter.IsDeault; tempRoleObj.IsShow = Parameter.IsShow; OperationResult operationResult = dataContext.Role.Update <Role>(dataContext, tempRoleObj); if (operationResult.ResultType == EnumOperationResultType.Success) { //修改角色附权 王龙杰 2017-10-13 dataContext.Configuration.AutoDetectChangesEnabled = false; var roleModuleList = (from p in dataContext.RoleModule where p.RoleCode == tempRoleObj.RoleCode select p); foreach (var item in roleModuleList) { dataContext.Entry(item).State = EntityState.Deleted; } var addRoleModuleList = (from p in Parameter.Module select new RoleModule { RoleCode = tempRoleObj.RoleCode, ModuleCode = p, }); foreach (var item in addRoleModuleList) { dataContext.Entry(item).State = EntityState.Added; } dataContext.SaveChanges(); result.IsSuccessful = true; return(result); } else { result.IsSuccessful = false; result.Code = "003971"; return(result); } } } catch (Exception e) { LogHelper.WriteLog(e); result.IsSuccessful = false; result.Code = "003971"; return(result); } }
public BaseResponse <GetOfficerListResult> GetOfficerList(GetOfficerListParameter parameter) { BaseResponse <GetOfficerListResult> response = new BaseResponse <GetOfficerListResult>(); GetOfficerListResult result = new GetOfficerListResult(); if (string.IsNullOrEmpty(parameter.Sort)) { parameter.Sort = "OfficerID"; parameter.Order = "asc"; } try { using (iCMSDbContext dbContext = new iCMSDbContext()) { var officerQuerable = dbContext.Officers.Where(t => !t.IsDeleted && t.IsOnService); //test var temp = officerQuerable.ToList(); var currentUser = dbContext.HBUsers.Where(t => !t.IsDeleted && t.UserID == parameter.CurrentUserID).FirstOrDefault(); if (currentUser == null) { throw new Exception("数据异常"); } if (currentUser.RoleID == 4)//如果是二级管理员,则只返回本单位的干部 { officerQuerable = officerQuerable.Where(t => t.OrganizationID == currentUser.OrganizationID); } if (parameter.OrganizationID.HasValue && parameter.OrganizationID.Value > 0) { officerQuerable = officerQuerable.Where(t => t.OrganizationID == parameter.OrganizationID); } if (parameter.LevelID.HasValue && parameter.LevelID.Value > 0) { officerQuerable = officerQuerable.Where(t => t.LevelID == parameter.LevelID.Value); } var officerLinq = from off in officerQuerable join org in dbContext.Organizations on off.OrganizationID equals org.OrganID into group1 from g1 in group1 //join pos in dbContext.OfficerPositionTypes.Where(t => !t.IsDeleted) on off.PositionStr equals pos.PositionID into group2 //from g2 in group2 join lev in dbContext.OfficerLevelTypes.Where(t => !t.IsDeleted) on off.LevelID equals lev.LevelID into group3 from g3 in group3 //where org.OrganFullName.ToUpper().Contains(parameter.Keyword.ToUpper()) || org.OrganCode.ToUpper().Contains(parameter.Keyword.ToUpper()) select new OfficerDetailInfo { OfficerID = off.OfficerID, Name = off.Name, Gender = off.Gender, Birthday = off.Birthday, OrganizationName = g1.OrganFullName, PositionID = 0, //g2.PositionID, PositionName = off.PositionStr, LevelID = g3.LevelID, LevelName = g3.LevelName, OnOfficeDate = off.OnOfficeDate, OrganizationID = off.OrganizationID, CurrentScore = off.CurrentScore, IdentifyNumber = off.IdentifyCardNumber }; var temp2 = officerLinq.ToList(); if (!string.IsNullOrEmpty(parameter.Keyword)) { officerLinq = officerLinq.Where(t => t.Name.Contains(parameter.Keyword) || t.IdentifyNumber.Contains(parameter.Keyword) || t.OrganizationName.Contains(parameter.Keyword)); } ListSortDirection sortOrder = parameter.Order.ToLower().Equals("asc") ? ListSortDirection.Ascending : ListSortDirection.Descending; PropertySortCondition[] sortList = new PropertySortCondition[] { new PropertySortCondition(parameter.Sort, sortOrder), new PropertySortCondition("OfficerID", sortOrder), }; officerLinq = officerLinq.OrderBy(sortList); int count = officerLinq.Count(); if (parameter.Page > -1) { officerLinq = officerLinq .Skip((parameter.Page - 1) * parameter.PageSize) .Take(parameter.PageSize); } result.OfficerInfoList.AddRange(officerLinq.ToList()); result.Total = count; response.Result = result; #region 操作日志 new LogManager().AddOperationLog(parameter.CurrentUserID, "获取积分申请详细信息", parameter.RequestIP); #endregion return(response); } } catch (Exception e) { response.IsSuccessful = false; response.Reason = "获取单位列表发生异常"; return(response); } }
/// <summary> /// 查询用户日志 /// </summary> /// <param name="Parameter"></param> /// <returns></returns> public BaseResponse <UserLogResult> QueryUserLog(QueryUserLogParameter Parameter) { BaseResponse <UserLogResult> result = new BaseResponse <UserLogResult>(); var total = 0; var sortDirection = Parameter.Order.ToLower().Equals("desc") ? ListSortDirection.Descending : ListSortDirection.Ascending; try { IQueryable <UserLog> userLogs = null; if (Parameter.Page == -1) { if (Parameter.IsSuperAdmin) { userLogs = userLogRepository.GetDatas <UserLog>(p => true, false); } else { userLogs = userLogRepository.GetDatas <UserLog>(t => t.UserID != 1011, false); } } else { if (Parameter.IsSuperAdmin) { userLogs = userLogRepository.GetDatas <UserLog>(p => true, false); } else { userLogs = userLogRepository.GetDatas <UserLog>(t => t.UserID != 1011, false); } } var users = new iCMSDbContext().Users.ToList(); var linq = from log in userLogs join user in users on log.UserID equals user.UserID into userlogGroup from ul in userlogGroup.DefaultIfEmpty(new User()) select new UserLogInfo { UserLogID = log.UserLogID, UserID = log.UserID, Record = log.Record, UserName = ul.UserName, AddDate = log.AddDate, IsDeleted = ul.IsDeleted, }; result.Result = new UserLogResult { UserLogInfo = linq.AsQueryable() .Where(Parameter.Page, Parameter.PageSize, out total, new PropertySortCondition(Parameter.Sort, sortDirection)) .ToList(), Total = total, }; result.IsSuccessful = true; return(result); } catch (Exception e) { LogHelper.WriteLog(e); result.Code = "003881"; result.IsSuccessful = false; result.Result = new UserLogResult { Total = 0, UserLogInfo = new List <UserLogInfo>() }; return(result); } }
/// <summary> /// 查询角色信息 /// </summary> /// <param name="Parameter"></param> /// <returns></returns> public BaseResponse <RolesDataResult> QueryRoleInfo(QueryRolesInfoParameter Parameter) { BaseResponse <RolesDataResult> result = new BaseResponse <RolesDataResult>(); try { Validate validate = new Validate(userRepository, roleRepository); result = validate.ValidateQueryRoleInfoParams(Parameter.Sort, Parameter.Order); if (!result.IsSuccessful) { return(result); } int count = 0; if (Parameter.Page == 0) { Parameter.Page = 1; } using (var dataContext = new iCMSDbContext()) { IQueryable <iCMS.Frameworks.Core.DB.Models.Role> roleInfoList = null; ListSortDirection sortOrder = Parameter.Order.ToLower().Equals("asc") ? ListSortDirection.Ascending : ListSortDirection.Descending; PropertySortCondition[] sortList = new PropertySortCondition[] { new PropertySortCondition(Parameter.Sort, sortOrder), new PropertySortCondition("RoleID", sortOrder), }; if (Parameter.IsSuperAdmin) { roleInfoList = dataContext.Role.OrderBy(sortList); } else { roleInfoList = dataContext.Role.Where(t => t.IsShow == 1).OrderBy(sortList); } count = roleInfoList.Count(); if (Parameter.Page > -1) { roleInfoList = roleInfoList .Skip((Parameter.Page - 1) * Parameter.PageSize) .Take(Parameter.PageSize); } var tempRoleInfoList = roleInfoList .ToArray() .Select(role => { var roleModuleObj = (from roleModule in dataContext.RoleModule join module in dataContext.Module on roleModule.ModuleCode equals module.Code where roleModule.RoleCode == role.RoleCode && module.IsUsed == 1 select new { module.Code, module.ModuleName, }) .ToArray(); return(new RoleInfo { RoleID = role.RoleID, RoleCode = role.RoleCode, RoleName = role.RoleName, AddDate = role.AddDate.ToString("yyyy-MM-dd HH:mm:ss"), ModuleCode = string.Join("|", roleModuleObj.Select(p => p.Code)), ModuleName = string.Join("|", roleModuleObj.Select(p => p.ModuleName)), IsShow = role.IsShow, IsDeault = role.IsDeault, //王颖辉添加 2016-08-25 }); }) .ToList(); result.Result = new RolesDataResult { Total = count, RoleInfo = tempRoleInfoList, }; result.IsSuccessful = true; return(result); } } catch (Exception e) { LogHelper.WriteLog(e); result.IsSuccessful = false; result.Code = "003951"; result.Result = null; return(result); } }
public BaseResponse <GetUserInfoResult> GetUserInfo(GetUserInfoParameter parameter) { BaseResponse <GetUserInfoResult> response = new BaseResponse <GetUserInfoResult>(); try { if (string.IsNullOrEmpty(parameter.Sort)) { parameter.Sort = "UserToken"; } if (string.IsNullOrEmpty(parameter.Order)) { parameter.Order = "asc"; } if (parameter.Page == 0) { parameter.Page = 1; } if (parameter.PageSize == 0) { parameter.PageSize = 10; } switch (parameter.Sort) { case "RoleID": parameter.Sort = "RoleName"; break; } int count = 0; if (parameter.Page == 0) { parameter.Page = 1; } using (var dataContext = new iCMSDbContext()) { IQueryable <HBUser> userInfoList = dataContext.HBUsers.Where(p => p.IsDeleted == false); ListSortDirection sortOrder = parameter.Order.ToLower().Equals("asc") ? ListSortDirection.Ascending : ListSortDirection.Descending; PropertySortCondition[] sortList = new PropertySortCondition[] { new PropertySortCondition(parameter.Sort, sortOrder), new PropertySortCondition("UserID", sortOrder), }; var currentUser = dataContext.HBUsers.Where(t => t.UserID == parameter.CurrentUserID).FirstOrDefault(); if (currentUser == null) { response.IsSuccessful = false; return(response); } int currentRoleID = currentUser.RoleID; //根据当前登录用户角色来显示用户 switch (currentRoleID) { case 1: //超级管理员 userInfoList = userInfoList.Where(t => true); break; case 3: //一级管理员 userInfoList = userInfoList.Where(t => t.RoleID == 3 || t.RoleID == 4); break; case 4: //二级管理员 userInfoList = userInfoList.Where(t => t.RoleID == 4); break; } if (parameter.OrganizationID.HasValue && parameter.OrganizationID.Value > 0) { userInfoList = userInfoList.Where(t => t.OrganizationID == parameter.OrganizationID.Value); } //userInfoList = userInfoList.OrderBy(sortList); count = userInfoList.Count(); var organArray = organRepository.GetDatas <Organization>(t => !t.IsDeleted, true).ToList(); //if (parameter.Page > -1) //{ // userInfoList = userInfoList // .Skip((parameter.Page - 1) * parameter.PageSize) // .Take(parameter.PageSize); //} var tempUserInfoList = userInfoList .ToArray() .Select(user => { HBRole roleNameObj = dataContext.HBRoles.FirstOrDefault(role => role.RoleID == user.RoleID); var organ = organArray.Where(t => t.OrganID == user.OrganizationID).FirstOrDefault(); return(new HBUserInfo { UserID = user.UserID, RoleID = user.RoleID, RoleName = roleNameObj == null ? string.Empty : roleNameObj.RoleName, UserToken = user.UserToken, Gender = user.Gender, LastUpdateUserID = user.LastUpdateUserID, OrganizationID = user.OrganizationID, OrganizationName = organ == null ? string.Empty : organ.OrganFullName, UseStatus = user.UseStatus, AddDate = user.AddDate, OrganTypeID = organ == null ? 0 : organ.OrganTypeID }); }).AsQueryable(); tempUserInfoList = tempUserInfoList.OrderBy(sortList); if (parameter.Page > -1) { tempUserInfoList = tempUserInfoList .Skip((parameter.Page - 1) * parameter.PageSize) .Take(parameter.PageSize); } response.Result = new GetUserInfoResult { Total = count, UserInfoList = tempUserInfoList.ToList() }; response.IsSuccessful = true; response.Code = null; return(response); } } catch (Exception e) { response.IsSuccessful = false; response.Code = null; return(response); } }
private void ValidateAddOfficer(iCMSDbContext dbContext, AddOfficerParameter parameter) { #region 输入验证 if (string.IsNullOrEmpty(parameter.Name)) { throw new Exception("请输入用户名"); } if (string.IsNullOrEmpty(parameter.IdentifyNumber)) { throw new Exception("请输入身份证号码"); } if (string.IsNullOrEmpty(parameter.OnOfficeDate)) { throw new Exception("请输入任职时间"); } if (parameter.OrganizationID < 1) { throw new Exception("请选择单位"); } //var isExisted = dbContext.Officers.Where(t => !t.IsDeleted && !string.IsNullOrEmpty(t.Name) && t.Name.Equals(parameter.Name)).Any(); //if (isExisted) //{ // throw new Exception("干部名称已重复"); //} if (!Utilitys.CheckIDCard(parameter.IdentifyNumber)) { throw new Exception("请输入合法的身份证号码"); } var isExisted = dbContext.Officers.Where(t => !t.IsDeleted && !string.IsNullOrEmpty(t.IdentifyCardNumber) && t.IdentifyCardNumber.Equals(parameter.IdentifyNumber)).Any(); if (isExisted) { throw new Exception("身份证号码重复"); } var addUser = dbContext.HBUsers.Where(t => !t.IsDeleted && t.UserID == parameter.AddUserID).FirstOrDefault(); if (addUser == null) { throw new Exception("数据异常"); } int roleID = addUser.RoleID; switch (roleID) { case (int)EnumRoleType.SuperAdmin: //超级管理员可以任意单位的干部 break; case (int)EnumRoleType.FirstLevelAdmin: //一级管理员不能够添加干部 throw new Exception("请使用二级管理员登陆,然后添加干部"); break; case (int)EnumRoleType.SecondLevelAdmin: var organ = dbContext.Organizations.Where(t => !t.IsDeleted && t.OrganID == addUser.OrganizationID).FirstOrDefault(); if (organ == null) { throw new Exception("请选择干部所在单位"); } //二级管理员只能够添加本单位的干部 if (addUser.OrganizationID != parameter.OrganizationID) { string msg = string.Format("只能添加本单位({0})的干部", organ.OrganFullName); throw new Exception(msg); } break; } #endregion }
/// <summary> /// 为指定的类型返回 System.Data.Entity.DbSet,这将允许对上下文中的给定实体执行 CRUD 操作。 /// </summary> /// <typeparam name="TEntity"> 应为其返回一个集的实体类型。 </typeparam> /// <returns> 给定实体类型的 System.Data.Entity.DbSet 实例。 </returns> private DbSet <TEntity> Set <TEntity>(iCMSDbContext ctx) where TEntity : EntityBase { return(ctx.Set <TEntity>()); }
public BaseResponse <GetOrganListResult> GetOrganList(GetOrganInfoListParameter parameter) { BaseResponse <GetOrganListResult> response = new BaseResponse <GetOrganListResult>(); GetOrganListResult result = new GetOrganListResult(); if (string.IsNullOrEmpty(parameter.Sort)) { parameter.Sort = "OrganCode"; } if (string.IsNullOrEmpty(parameter.Order)) { parameter.Order = "asc"; } if (parameter.Page == 0) { parameter.Page = 1; } if (parameter.PageSize == 0) { parameter.PageSize = 10; } try { using (iCMSDbContext dbContext = new iCMSDbContext()) { var organQuerable = dbContext.Organizations.Where(t => !t.IsDeleted); if (parameter.OrganTypeID.HasValue && parameter.OrganTypeID.Value > 0) { organQuerable = organQuerable.Where(t => t.OrganTypeID == parameter.OrganTypeID.Value); } if (!string.IsNullOrEmpty(parameter.Keyword)) { string matchedWord = parameter.Keyword.ToUpper(); organQuerable = organQuerable.Where(t => t.OrganCode.ToUpper().Contains(matchedWord) || t.OrganFullName.ToUpper().Contains(matchedWord)); } var organListLinq = from organ in organQuerable join organType in dbContext.MainOrganTypes.Where(t => !t.IsDeleted) on organ.OrganTypeID equals organType.OrganTypeID into group1 from g1 in group1 //join category in dbContext.OrganCategories.Where(t => !t.IsDeleted) on g1.CategoryID equals category.CategoryID //into group2 //from g2 in group2 join item in dbContext.Officers.Where(t => !t.IsDeleted && t.IsOnService).GroupBy(t => t.OrganizationID) on organ.OrganID equals item.Key into group3 from g3 in group3.DefaultIfEmpty() select new OrganInfo { OrganID = organ.OrganID, OrganCode = organ.OrganCode, OrganFullName = organ.OrganFullName, OrganShortName = organ.OrganShortName, OrganTypeID = organ.OrganTypeID, OrganTypeName = g1.OrganTypeName, //OrganCategoryID = g2.CategoryID, //OrganCategoryName = g2.CategoryName, OfficerQuanlity = g3.Count(), AddDate = organ.AddDate, AreaID = organ.AreaID }; ListSortDirection sortOrder = parameter.Order.ToLower().Equals("asc") ? ListSortDirection.Ascending : ListSortDirection.Descending; PropertySortCondition[] sortList = new PropertySortCondition[] { new PropertySortCondition(parameter.Sort, sortOrder), new PropertySortCondition("OrganID", sortOrder), }; organListLinq = organListLinq.OrderBy(sortList); int count = organListLinq.Count(); if (parameter.Page > -1) { organListLinq = organListLinq .Skip((parameter.Page - 1) * parameter.PageSize) .Take(parameter.PageSize); } result.OrganInfoList.AddRange(organListLinq.ToList()); result.Total = count; response.Result = result; #region 操作日志 new LogManager().AddOperationLog(parameter.CurrentUserID, "获取部门列表", parameter.RequestIP); #endregion return(response); } } catch (Exception e) { response.IsSuccessful = false; response.Reason = e.Message; return(response); } }