TG.WXCRM.V4/BLL/Wx/WX_FRIENDSRELATION_BL.cs

93 lines
4.0 KiB
C#

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<WX_FRIENDSRELATION>, IWX_FRIENDSRELATION
{
public IList<WxBeiJiaResource> 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<WxBeiJiaResource> 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();
}
}
}
}