using System; using System.Collections.Generic; using System.Linq; using WX.CRM.IBLL.Wx; using WX.CRM.Model.Entity; namespace WX.CRM.BLL.Wx { public class WX_FRIENDSRELATION_BL : DbContextRepository, IWX_FRIENDSRELATION { public IList GetBeiJiaResources(DateTime? day, string jobUserName, decimal? isTuiGuang = null) { using (var db = new crmContext()) { var query = db.WX_FRIENDSRELATION.AsQueryable(); query = query.Where(p => p.ISWORKACOUNT == 1); query = query.Where(p => p.ISINNERUSER == 0); query = query.Where(p => p.TYPE == 1 || p.TYPE == 2); if (day.HasValue) { var day2 = day.Value.AddDays(1); query = query.Where(p => p.CREATETIME >= day.Value && p.CREATETIME < day2); } if (!string.IsNullOrEmpty(jobUserName)) { query = query.Where(p => p.JOBUSERNAME == jobUserName); } if (isTuiGuang.HasValue) { query = query.Where(p => p.ISTUIGUANG == isTuiGuang.Value); } var data = from q in query join r in db.WX_RCONTACT on q.USERNAME equals r.USERNAME into t from lt in t.DefaultIfEmpty() where q.JOBUSERNAME == lt.JOBWXUSERNAME || lt.JOBWXUSERNAME == null select new WxBeiJiaResource() { UserName = q.USERNAME, Alias = lt.ALIAS, ConRemark = lt.CONREMARK, CreateTime = q.CREATETIME, NickName = lt.NICKNAME, Type = q.TYPE.Value }; data = data.OrderByDescending(p => p.CreateTime); return data.ToList(); } } public IList GetBeiJiaResources(DateTime? day, string[] jobUserName, decimal? isTuiGuang = null) { using (var db = new crmContext()) { var query = db.WX_FRIENDSRELATION.AsQueryable(); query = query.Where(p => p.ISWORKACOUNT == 1); query = query.Where(p => p.ISINNERUSER == 0); query = query.Where(p => p.TYPE == 1 || p.TYPE == 2); if (day.HasValue) { var day2 = day.Value.AddDays(1); query = query.Where(p => p.CREATETIME >= day.Value && p.CREATETIME < day2); } if (jobUserName != null) { query = query.Where(p => jobUserName.Contains(p.JOBUSERNAME)); } if (isTuiGuang.HasValue) { query = query.Where(p => p.ISTUIGUANG == isTuiGuang.Value); } var data = from q in query join r in db.WX_RCONTACT on q.USERNAME equals r.USERNAME into t from lt in t.DefaultIfEmpty() where q.JOBUSERNAME == lt.JOBWXUSERNAME || lt.JOBWXUSERNAME == null select new WxBeiJiaResource() { UserName = q.USERNAME, Alias = lt.ALIAS, ConRemark = lt.CONREMARK, CreateTime = q.CREATETIME, NickName = lt.NICKNAME, Type = q.TYPE.Value, JobUserName = q.JOBUSERNAME }; data = data.OrderBy(p => p.JobUserName).OrderByDescending(p => p.CreateTime); return data.ToList(); } } } }