using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Linq.Expressions; using WX.CRM.BLL.Application.UserComBox; using WX.CRM.BLL.Base; using WX.CRM.BLL.Util; using WX.CRM.Common; using WX.CRM.DAL.Res; using WX.CRM.IBLL.Res; using WX.CRM.Model.DTO; using WX.CRM.Model.Entity; using WX.CRM.Model.MAP; using WX.CRM.Model.QueryMap; using WX.CRM.Model.crmModel; using WX.CRM.BLL.Application.UserComBox; using WX.CRM.Common.Layui; using System.Diagnostics; namespace WX.CRM.BLL.Res { public class RES_ACTIVITY_BL : IRES_ACTIVITY, IRES_ACTIVITY_Q { private GroupByActivity_DAL groupdByActivity = new GroupByActivity_DAL(); private CACHE_BL cache_BL = new CACHE_BL(); /// /// 获取数据分组 /// /// /// /// /// /// /// /// /// /// //public IList GetList_Activity(DateTime sTime, DateTime eTime, int? resTypeId = null, int? activityId = null, bool? hasRegisterSoftware = null, bool? hasOpenFuturesAccount = null, bool? hasOpenSilverAccount = null, bool? hasMemo = null, decimal? restypeCode = null) //{ // eTime = eTime.AddDays(1); // var ds = groupdByActivity.GetList_Activity(sTime, eTime, resTypeId, activityId, hasRegisterSoftware, hasOpenFuturesAccount, hasOpenSilverAccount, hasMemo, restypeCode); // if (ds == null) // return null; // return ds.Tables[0].ToList(); //} /// /// 数据导出 /// /// /// /// /// /// /// /// /// /// public IList GetListExport_Activity(decimal resTypeId, decimal activityId, DateTime sTime, DateTime eTime, bool? hasRegisterSoftware = null, bool? hasOpenFuturesAccount = null, bool? hasOpenSilverAccount = null, bool? hasMemo = null) { eTime = eTime.AddDays(1); //return groupdByActivity.GetListExport_Activity(resTypeId, activityId, sTime, eTime, isRegisterSoftware, isOpenFuturesAccount, isOpenSilverAccount); var ds = groupdByActivity.GetListExport_Activity(resTypeId, activityId, sTime, eTime, hasRegisterSoftware, hasOpenFuturesAccount, hasOpenSilverAccount, hasMemo); if (ds == null) return null; return ds.Tables[0].ToList(); } public IList GetList_RESID(decimal resId) { using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext()) { return db.RES_ACTIVITY.Where(obj => obj.RESTYPEID == resId).ToList(); } } #region 添加 /// /// 添加 /// /// /// public bool Create(ref ValidationErrors errors, WX.CRM.Model.Entity.RES_ACTIVITY model) { try { using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext()) { var entry = db.RES_ACTIVITY.FirstOrDefault(m => m.ACTIVITYCODE == model.ACTIVITYCODE); if (entry != null) { errors.Add("该编码已经被占用!"); return false; } model.ACTIVITYID = new SEQUENCES_BL().Seq_base_get(); model.CTIME = DateTime.Now; db.RES_ACTIVITY.Add(model); return db.SaveChanges().GetResult(); } } catch (Exception ex) { errors.Add(ex.Message); return false; } } #endregion 添加 #region 修改 /// /// 数据的修改 /// /// /// public bool Update(ref ValidationErrors errors, WX.CRM.Model.Entity.RES_ACTIVITY model) { try { using (var db = new WX.CRM.Model.Entity.crmContext()) { WX.CRM.Model.Entity.RES_ACTIVITY entry = db.RES_ACTIVITY.FirstOrDefault(m => m.ACTIVITYID == model.ACTIVITYID); if (entry == null) return false; var et = db.RES_ACTIVITY.FirstOrDefault(m => m.ACTIVITYCODE == model.ACTIVITYCODE && m.ACTIVITYID != model.ACTIVITYID); if (et != null) { errors.Add("该编码已经被占用!"); return false; } entry.ACTIVITYID = model.ACTIVITYID; entry.ACTIVITYADDR = model.ACTIVITYADDR; entry.ACTIVITYCODE = model.ACTIVITYCODE; entry.RESOURCETAG = model.RESOURCETAG; entry.RESTYPEID = model.RESTYPEID; entry.MEMO = model.MEMO; entry.UTIME = DateTime.Now; entry.UPDATEUSER = model.UPDATEUSER; entry.ACTIVITYNAME = model.ACTIVITYNAME; entry.DEPTID = model.DEPTID; db.SaveChanges(); return true; } } catch (Exception ex) { errors.Add(ex.Message); return false; } } #endregion 修改 #region 删除 /// /// 删除 /// /// /// public bool Delete(ref ValidationErrors errors, decimal id) { try { using (var db = new WX.CRM.Model.Entity.crmContext()) { WX.CRM.Model.Entity.RES_ACTIVITY entry = db.RES_ACTIVITY.FirstOrDefault(m => m.ACTIVITYID == id); if (entry == null) { errors.Add("数据已经被删除!"); return false; } db.RES_ACTIVITY.Remove(entry); return db.SaveChanges().GetResult(); } } catch (Exception ex) { errors.Add(ex.Message); return false; } } #endregion 删除 #region 获取单条信息 /// /// 获取实体 /// /// /// public RES_ACTIVITY GetModel(decimal id) { using (var db = new crmContext()) { var entry = db.RES_ACTIVITY.FirstOrDefault(m => m.ACTIVITYID == id); return entry; } } public RES_ACTIVITY GetModel(Expression> where) { using (var db = new crmContext()) { var entry = db.RES_ACTIVITY.FirstOrDefault(where); return entry; } } #endregion 获取单条信息 #region 获取分页数据列表 public List GetList(ref Pager pager, string activityName, string activityCode, string resourceTag, string resTypeName, string stime, string etime) { using (var db = new WX.CRM.Model.Entity.crmContext()) { var queryData = db.RES_ACTIVITY.AsQueryable(); if (!string.IsNullOrWhiteSpace(activityName)) queryData = queryData.Where(m => m.ACTIVITYNAME.Contains(activityName)); if (!string.IsNullOrWhiteSpace(activityCode)) queryData = queryData.Where(m => m.ACTIVITYCODE.Contains(activityCode)); if (!string.IsNullOrWhiteSpace(resourceTag)) queryData = queryData.Where(m => m.RESOURCETAG.Contains(resourceTag)); if (!string.IsNullOrWhiteSpace(resTypeName)) { queryData = queryData.Where(m => (from a in db.RES_RESOURCETYPE where a.TYPENAME.Contains(resTypeName) select a.RESTYPEID).Contains(m.RESTYPEID)); } DateTime date1; if (!string.IsNullOrWhiteSpace(stime) && DateTime.TryParse(stime, out date1)) queryData = queryData.Where(m => m.CTIME >= date1); DateTime date2; if (!string.IsNullOrWhiteSpace(etime) && DateTime.TryParse(etime, out date2)) { date2 = date2.AddDays(1); queryData = queryData.Where(m => m.CTIME < date2); } if (pager.order == "desc") { switch (pager.sort) { case "ACTIVITYNAME": queryData = queryData.OrderByDescending(c => c.ACTIVITYNAME); break; case "ACTIVITYCODE": queryData = queryData.OrderByDescending(c => c.ACTIVITYCODE); break; case "RESTYPEID": queryData = queryData.OrderByDescending(c => c.RESTYPEID); break; case "RESOURCETAG": queryData = queryData.OrderByDescending(c => c.RESOURCETAG); break; default: queryData = queryData.OrderByDescending(c => c.CTIME); break; } } else { switch (pager.sort) { case "ACTIVITYNAME": queryData = queryData.OrderBy(c => c.ACTIVITYNAME); break; case "ACTIVITYCODE": queryData = queryData.OrderBy(c => c.ACTIVITYCODE); break; case "RESTYPEID": queryData = queryData.OrderBy(c => c.RESTYPEID); break; case "RESOURCETAG": queryData = queryData.OrderBy(c => c.RESOURCETAG); break; default: queryData = queryData.OrderBy(c => c.CTIME); break; } } //queryData = queryData.OrderByDescending(m => m.CTIME); PagerUtil.SetPager(ref queryData, ref pager); List list = (from a in queryData join x in db.RES_RESOURCETYPE on a.RESTYPEID equals x.RESTYPEID into tmp from ax in tmp.DefaultIfEmpty() select new WX.CRM.Model.Entity.RES_ACTIVITY_EXTEND() { res_ACTIVITY = a, TYPEName = ax.TYPENAME }).OrderByDescending(p => p.res_ACTIVITY.CTIME).ToList(); return list; } } #endregion 获取分页数据列表 #region 获取更多的活动信息分页数据列表 public List GetActivityInfoMoreList(ref Pager pager, string resid, string stime, string etime) { using (var db = new WX.CRM.Model.Entity.crmContext()) { var res_customer = db.RES_CUSTOMER.Where(p => p.CUSTOMERID == resid).Select(p => p.RESID).ToList(); //string strresid = ""; //foreach (var item in res_customer) //{ // strresid += item.RESID; // strresid += ","; //} var queryData = db.RES_POOLLOG.AsQueryable(); //if (res_customer.Any()) { queryData = queryData.Where(p => res_customer.Contains(p.RESID)); } DateTime date1; if (!string.IsNullOrWhiteSpace(stime) && DateTime.TryParse(stime, out date1)) queryData = queryData.Where(m => m.APPLYTIME >= date1); DateTime date2; if (!string.IsNullOrWhiteSpace(etime) && DateTime.TryParse(etime, out date2)) { date2 = date2.AddDays(1); queryData = queryData.Where(m => m.APPLYTIME < date2); } var data = queryData.ToList(); var data2 = db.RES_CUSTOMERDETAIL.Where(p => res_customer.Contains(p.RESID)); //queryData = queryData.OrderByDescending(p => p.APPLYTIME); //PagerUtil.SetPager(ref queryData, ref pager); List list = (from a in data //join b in db.RES_CUSTOMERUSER on a.RESID equals b.RESID //join cu in db.RES_CUSTOMER on a.RESID equals cu.RESID join b in data2 on a.RESID equals b.RESID join c in db.RES_ACTIVITY on a.ACTIVITYID equals c.ACTIVITYID join d in db.RES_RESOURCETYPE on a.RESTYPEID equals d.RESTYPEID select new ActivitySourceInfo() { ResId = b.UMID, //UserName = b == null ? "" :a.USERNAME, UserName = b.CNAME, ActivityName = c == null ? "" : c.ACTIVITYNAME, deptid = a.DEPTID, TypeName = d == null ? "" : d.TYPENAME, ApplyTime = a.APPLYTIME, DataType = a.DATATYPE, ExtXml = string.IsNullOrEmpty(a.KWORD) ? a.EXTXML : a.KWORD } ).ToList(); return list.OrderByDescending(p => p.ApplyTime).ToList(); } } public WX.CRM.Model.Entity.RES_CUSTOMERUSER GetRES_CUSTOMERUSERModel(string resid) { using (var db = new WX.CRM.Model.Entity.crmContext()) { WX.CRM.Model.Entity.RES_CUSTOMERUSER entry = db.RES_CUSTOMERUSER.FirstOrDefault(m => m.RESID == resid); return entry; } } public WX.CRM.Model.Entity.RES_RESOURCETYPE GetRES_RESOURCETYPEModel(decimal typeid) { using (var db = new WX.CRM.Model.Entity.crmContext()) { WX.CRM.Model.Entity.RES_RESOURCETYPE entry = db.RES_RESOURCETYPE.FirstOrDefault(m => m.RESTYPEID == typeid); return entry; } } #endregion 获取更多的活动信息分页数据列表 public List GetList(decimal resourctId) { using (var db = new WX.CRM.Model.Entity.crmContext()) { return db.RES_ACTIVITY.Where(p => p.RESTYPEID == resourctId).OrderByDescending(m => m.CTIME).ToList(); } } public List GetResList(decimal? resTypeId, decimal? activityId, DateTime? sTime, DateTime? eTime) { using (var db = new crmContext()) { if (eTime.HasValue) { eTime = eTime.Value.AddDays(1); } var query = from p in db.RES_POOLLOG join t in db.RES_RESOURCETYPE on p.RESTYPEID equals t.RESTYPEID join a in db.RES_ACTIVITY on p.RESOURCETAG equals a.RESOURCETAG //join b in db.CACHE_RES_POOLLOG on p.RESID equals b.RESID where p.CTIME >= sTime.Value && p.CTIME < eTime.Value select new ActivityResListView() { ResId = p.RESID, CTime = p.CTIME, ResTypeId = t.RESTYPEID, ResTypeName = t.TYPENAME, ActivityId = a.ACTIVITYID, ActivityName = a.ACTIVITYNAME, ExtXml = p.EXTXML }; if (resTypeId.HasValue) { query = query.Where(p => p.ResTypeId == resTypeId.Value); } if (activityId.HasValue) { query = query.Where(p => p.ActivityId == activityId.Value); } return query.Distinct().OrderByDescending(c => c.CTime).ToList(); } } public IList GetList_Activity(DateTime sTime, DateTime eTime, int Attribute, decimal userId, int hasRole, bool hasKword = false) { eTime = eTime.AddDays(1); var ds = groupdByActivity.GetList_Activity(sTime, eTime, Attribute, userId, hasRole, hasKword); if (ds == null) return null; return ds.Tables[0].ToList(); } public IList GetList_Activity_export(decimal resTypeId, decimal activityId, DateTime sTime, DateTime eTime, decimal userId, int hasRole) { eTime = eTime.AddDays(1); var ds = groupdByActivity.GetList_Activity_export(resTypeId, activityId, sTime, eTime, userId, hasRole, null); if (ds == null) return null; return ds.Tables[0].ToList(); } public IList GetList_Activity_export(decimal resTypeId, decimal activityId, DateTime sTime, DateTime eTime, decimal userId, int hasRole, int count) { eTime = eTime.AddDays(1); var ds = groupdByActivity.GetList_Activity_export(resTypeId, activityId, sTime, eTime, userId, hasRole, count); if (ds == null) return null; return ds.Tables[0].ToList(); } public IList GetList_DistributeActivity_export(decimal resTypeId, decimal ActivityId, DateTime? stime, DateTime? etime, string choices, DateTime? Memostime, DateTime? Memoetime, string excludeWeixinRes, string excludeOrderRes, string excludeSpecialMemo) { var ds = groupdByActivity.GetList_DistributeActivity_export(resTypeId, ActivityId, stime, etime, choices, Memostime, Memoetime, excludeWeixinRes, excludeOrderRes, excludeSpecialMemo); if (ds == null) return null; return ds.Tables[0].ToList(); } //获取最近一个月的活动信息 public List GetMonthActivityByresid(string resid) { var ds = groupdByActivity.GetMonthActivityByresid(resid); if (ds == null) return null; return ds.Tables[0].ToList(); } public List GetMyActiviryResList(ref Pager pager, QueryUserComboDto usercomboDto, string resid, decimal? hidResourceId, string hidRESOURCETAG, string activityName, string activityRemark, DateTime? cTime1, DateTime? cTime2, decimal? eid, int? deptlineId) { Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); var deptList = cache_BL.GetDeptNameMapList(); using (var db = new crmContext()) { var data = (from a in db.RES_POOLLOG join b in db.RES_RESOURCETYPE on a.RESTYPEID equals b.RESTYPEID where b.SOURCETYPE.Contains("xdzyc") join c in db.RES_ACTIVITY on a.ACTIVITYID equals c.ACTIVITYID join d in db.RES_CUSTOMERDETAIL on a.RESID equals d.RESID join e in db.RES_MYALLOCATERES on new { resid = a.RESID, deptid = a.DEPTID } equals new { resid = e.RESID, deptid = e.DEPTID } into temp from e in temp.DefaultIfEmpty() select new MyActivityResDto { logId = a.LOGID, ResourceTypeId = b.RESTYPEID, ResourceTypeName = b.TYPENAME, ResourceTag = c.RESOURCETAG, ActivityName = c.ACTIVITYNAME, ActivityRemark = a.EXTXML, CName = d.CNAME, CTime = a.CTIME, ResId = d.UMID, InnerUserId = e.INNERUSERID, DeptId = a.DEPTID }); if (usercomboDto.userId.HasValue) { data = data.Where(m => m.InnerUserId == usercomboDto.userId.Value); } else if (!string.IsNullOrEmpty(usercomboDto.groupIds)) { var _groupids = OperationUtil.ConvertToDecimal(usercomboDto.groupIds.Split(',')); data = (from a in data join b in db.BAS_INNERUSERGROUP on a.InnerUserId equals b.INNERUSERID where _groupids.Contains(b.GID.Value) select a); } else if (!string.IsNullOrEmpty(usercomboDto.deptId)) { var depts = OperationUtil.ConvertToDecimal(usercomboDto.deptId.Split(',')); List ALLdeptIDS = new List(); List ALLgidS = new List(); UserServices userservices = new UserServices(cache_BL); foreach (var item in depts) { List deptIDS = new List(); List gidS = new List(); userservices.GetAllDeptIDOrGidByDeptId(item, ref deptIDS, ref gidS);//获取所有的组别和gid ALLdeptIDS.AddRange(deptIDS); ALLgidS.AddRange(gidS); } data = (from a in data join b in db.BAS_INNERUSERGROUP on a.InnerUserId equals b.INNERUSERID //join g in db.BAS_INNERGROUP on b.GID equals g.GID where ALLdeptIDS.Contains(b.DEPTID.Value) || ALLgidS.Contains(b.GID.Value) select a); } if (usercomboDto.IsBound.HasValue) { if (usercomboDto.IsBound.GetValueOrDefault() == 0) { data = data.Where(w => !db.RES_RESID_WEWORKUSER.Any(a => a.RESID == w.ResId && a.ISDELETE != 1 && a.STATUS == 1)); } else { data = data.Where(w => db.RES_RESID_WEWORKUSER.Any(a => a.RESID == w.ResId && a.ISDELETE != 1 && a.STATUS == 1)); } } if (!string.IsNullOrWhiteSpace(resid)) data = data.Where(x => x.ResId == resid); if (hidResourceId.HasValue) data = data.Where(p => p.ResourceTypeId == hidResourceId.Value); if (!string.IsNullOrEmpty(hidRESOURCETAG)) data = data.Where(p => p.ResourceTag == hidRESOURCETAG); if (!string.IsNullOrEmpty(activityName)) data = data.Where(p => p.ActivityName == activityName); if (!string.IsNullOrEmpty(activityRemark)) data = data.Where(p => p.ActivityRemark.Contains(activityRemark)); if (cTime1.HasValue) data = data.Where(p => p.CTime >= cTime1); if (cTime2.HasValue) { cTime2 = cTime2.Value.AddDays(1); data = data.Where(p => p.CTime < cTime2); } if (eid.HasValue) data = data.Where(x => x.InnerUserId == eid); if (deptlineId.HasValue) data = data.Where(x => x.DeptId == deptlineId); data = data.OrderByDescending(m => m.CTime); PagerUtil.SetPager(ref data, ref pager); var result = data.ToList(); if (result.Any()) { var resIds = result.Select(x => x.ResId); var memos = from a in db.CACHE_ORD_MEMO join b in db.ORD_MEMOCONTENT on a.MEMOCONTENTID equals b.CONTENTID where resIds.Contains(a.RESID) orderby a.CTIME descending select new { a.RESID, a.CTIME, b.STRCONTENT }; var relations = new List(); if (!usercomboDto.IsBound.HasValue) { relations = db.RES_RESID_WEWORKUSER.Where(n => resIds.Contains(n.RESID) && n.ISDELETE != 1 && n.STATUS == 1).ToList(); } foreach (var item in result) { var momo = memos.FirstOrDefault(x => x.RESID == item.ResId); item.FollowInfo = momo?.STRCONTENT; item.FollowTime = momo?.CTIME; item.DeptName = deptList.FirstOrDefault(n => n.id == item.DeptId)?.title; if (usercomboDto.IsBound.HasValue) { item.IsBound = usercomboDto.IsBound.GetValueOrDefault() == 0 ? "否" : "是"; } else { item.IsBound = relations.FirstOrDefault(n => n.RESID == item.ResId) == null ? "否" : "是"; } } } stopWatch.Stop(); //记录费时 LogHelper.Info(string.Concat("新单查询用时:", stopWatch.ElapsedMilliseconds, "ms")); return result; } } public List GetResModels(Laypage pager, ActiveQueryModel querydto) { List res = new List(); var deptList = cache_BL.GetDeptNameMapList(); using (var db = new crmContext()) { Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); var data = (from a in db.RES_POOLLOG join e in db.RES_MYALLOCATERES on new { resid = a.RESID, deptid = a.DEPTID } equals new { resid = e.RESID, deptid = e.DEPTID } into temp from e in temp.DefaultIfEmpty() join b in db.RES_RESOURCETYPE on a.RESTYPEID equals b.RESTYPEID where b.SOURCETYPE.Contains("xdzyc") join c in db.RES_ACTIVITY on a.ACTIVITYID equals c.ACTIVITYID join d in db.RES_CUSTOMERDETAIL on a.RESID equals d.RESID select new MyActivityResDto { logId = a.LOGID, ResourceTypeId = b.RESTYPEID, ResourceTypeName = b.TYPENAME, ResourceTag = c.RESOURCETAG, ActivityName = c.ACTIVITYNAME, Activityid = c.ACTIVITYID, ActivityRemark = a.EXTXML, CName = d.CNAME, CTime = a.CTIME, ResId = d.UMID, InnerUserId = e.INNERUSERID, DeptId = a.DEPTID }); if (!string.IsNullOrWhiteSpace(querydto.resId)) { data = data.Where(n => n.ResId == querydto.resId); } if (querydto.resourceType.HasValue && querydto.resourceType > 0) { data = data.Where(n => n.ResourceTypeId == querydto.resourceType); } if (!string.IsNullOrWhiteSpace(querydto.cmbActive) && querydto.cmbActive != "全部") { var cmdactivity = Convert.ToDecimal(querydto.cmbActive); data = data.Where(n => n.Activityid == cmdactivity); } if (!string.IsNullOrWhiteSpace(querydto.actname)) { data = data.Where(n => n.ActivityName == querydto.actname); } if (!string.IsNullOrWhiteSpace(querydto.extxml)) { data = data.Where(n => n.ActivityRemark.Contains(querydto.extxml)); } if (querydto.xstime.HasValue) { data = data.Where(n => n.CTime >= querydto.xstime); } if (querydto.xetime.HasValue) { var endtime = querydto.xetime.Value.AddDays(1); data = data.Where(n => n.CTime < endtime); } if (!string.IsNullOrWhiteSpace(querydto.eid)) { var user = cache_BL.GetUserList().FirstOrDefault(n => n.EID.ToString() == querydto.eid || n.UNAME == querydto.eid); var userid = user?.PKID; data = data.Where(n => n.InnerUserId == userid); } if (querydto.deptlineid.HasValue) { data = data.Where(n => n.DeptId == querydto.deptlineid); } if (!string.IsNullOrWhiteSpace(querydto.txt_userId)) { var userid = Convert.ToDecimal(querydto.txt_userId); data = data.Where(m => m.InnerUserId == userid); } else if (!string.IsNullOrEmpty(querydto.txt_groupIds)) { var _groupids = OperationUtil.ConvertToDecimal(querydto.txt_groupIds.Split(',')); data = (from a in data join b in db.BAS_INNERUSERGROUP on a.InnerUserId equals b.INNERUSERID where _groupids.Contains(b.GID.Value) select a); } else if (!string.IsNullOrEmpty(querydto.txt_deptId)) { var depts = OperationUtil.ConvertToDecimal(querydto.txt_deptId.Split(',')); List ALLdeptIDS = new List(); List ALLgidS = new List(); UserServices userservices = new UserServices(cache_BL); foreach (var item in depts) { List deptIDS = new List(); List gidS = new List(); userservices.GetAllDeptIDOrGidByDeptId(item, ref deptIDS, ref gidS);//获取所有的组别和gid ALLdeptIDS.AddRange(deptIDS); ALLgidS.AddRange(gidS); } data = (from a in data join b in db.BAS_INNERUSERGROUP on a.InnerUserId equals b.INNERUSERID //join g in db.BAS_INNERGROUP on b.GID equals g.GID where ALLdeptIDS.Contains(b.DEPTID.Value) || ALLgidS.Contains(b.GID.Value) select a); } if (querydto.IsBound.HasValue) { if (querydto.IsBound.GetValueOrDefault() == 0) { data = data.Where(w => !db.RES_RESID_WEWORKUSER.Any(a => a.RESID == w.ResId && a.ISDELETE != 1 && a.STATUS == 1)); } else { data = data.Where(w => db.RES_RESID_WEWORKUSER.Any(a => a.RESID == w.ResId && a.ISDELETE != 1 && a.STATUS == 1)); } } data = data.OrderByDescending(n => n.CTime); PagerUtil.SetPager(ref data, ref pager); res = data.ToList(); if (res.Count > 0) { if (querydto.IsBound.HasValue) { foreach (var item in res) { item.IsBound = querydto.IsBound.GetValueOrDefault() == 0 ? "否" : "是"; } } else { var resids = res.Select(n => n.ResId).ToList(); var relations = db.RES_RESID_WEWORKUSER.Where(n => resids.Contains(n.RESID) && n.ISDELETE != 1 && n.STATUS == 1).ToList(); foreach (var item in res) { item.IsBound = relations.FirstOrDefault(n => n.RESID == item.ResId) == null ? "否" : "是"; } } } foreach (var item in res) { item.DeptName = deptList.FirstOrDefault(n => n.id == item.DeptId)?.title; } stopWatch.Stop(); //记录费时 LogHelper.Info(string.Concat("查询用时:", stopWatch.ElapsedMilliseconds, "ms")); } return res; } } }