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;
}
}
}