143 lines
5.7 KiB
C#
143 lines
5.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using WX.CRM.BLL.Util;
|
|
using WX.CRM.Common;
|
|
using WX.CRM.IBLL.Sms;
|
|
using WX.CRM.Model.Entity;
|
|
using WX.CRM.Model.MAP;
|
|
|
|
namespace WX.CRM.BLL.Sms
|
|
{
|
|
public class SMS_MESSAGE_HIS_BL : ISMS_MESSAGE_HIS_Q, ISMS_MESSAGE_HIS
|
|
{
|
|
#region 获取条件后的queryData
|
|
/// <summary>
|
|
/// 获取条件后的queryData
|
|
/// </summary>
|
|
/// <param name="queryData"></param>
|
|
/// <param name="db"></param>
|
|
/// <param name="parameterKey"></param>
|
|
/// <param name="stime"></param>
|
|
/// <param name="etime"></param>
|
|
/// <param name="salesId"></param>
|
|
/// <returns></returns>
|
|
private IQueryable<SMS_MESSAGE_HIS> GetQuery(IQueryable<SMS_MESSAGE_HIS> queryData, WX.CRM.Model.Entity.crmContext db, string stime, string etime, string msgtype, QueryUserComboDto userComboDto, string resid)
|
|
{
|
|
|
|
if (!string.IsNullOrEmpty(msgtype) && msgtype != "0")
|
|
{
|
|
|
|
msgtype = msgtype.Trim();
|
|
queryData = queryData.Where(m => m.TYPECODE == msgtype);
|
|
}
|
|
DateTime dt;
|
|
if (!string.IsNullOrWhiteSpace(stime) && DateTime.TryParse(stime, out dt))
|
|
queryData = queryData.Where(a => a.CTIME >= dt);
|
|
DateTime dt2;
|
|
if (!string.IsNullOrWhiteSpace(etime) && DateTime.TryParse(etime, out dt2))
|
|
{
|
|
//dt2 = dt2.AddDays(1);
|
|
queryData = queryData.Where(a => a.CTIME <= dt2);
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(resid))
|
|
{
|
|
string customerid = db.RES_CUSTOMER.Where(m => m.RESID == resid).FirstOrDefault().CUSTOMERID;
|
|
queryData = queryData.Where(m => db.RES_CUSTOMER.Where(q => q.CUSTOMERID == customerid).Select(t => t.RESID).Contains(m.RESID));
|
|
}
|
|
else if (userComboDto.userId.HasValue)
|
|
{
|
|
queryData = queryData.Where(m => m.CREATEUSER == userComboDto.userId.Value);
|
|
}
|
|
else if (!string.IsNullOrEmpty(userComboDto.groupIds))
|
|
{
|
|
decimal[] _groupids = OperationUtil.ConvertToDecimal(userComboDto.groupIds.Split(','));
|
|
var userIds = db.BAS_INNERUSERGROUP.Where(m => _groupids.Contains(m.GID.Value)).Select(m => m.INNERUSERID);
|
|
queryData = queryData.Where(m => userIds.Contains(m.CREATEUSER));
|
|
}
|
|
else if (!string.IsNullOrEmpty(userComboDto.deptId))
|
|
{
|
|
decimal[] _saleDeptId = OperationUtil.ConvertToDecimal(userComboDto.deptId.Split(','));
|
|
var groupIds = db.BAS_INNERGROUP.Where(m => _saleDeptId.Contains(m.SALEDEPTID.Value)).Select(p => p.GID).ToList();
|
|
var userIds = (from a in db.BAS_INNERUSERGROUP where groupIds.Contains(a.GID.Value) select a.INNERUSERID);
|
|
queryData = queryData.Where(a => userIds.Contains(a.CREATEUSER));
|
|
}
|
|
else if (userComboDto.companyId.HasValue)
|
|
{
|
|
queryData = from a in queryData
|
|
join u in db.BAS_INNERUSER on a.CREATEUSER equals u.PKID
|
|
join ug in db.BAS_INNERUSERGROUP on u.PKID equals ug.INNERUSERID
|
|
join g in db.BAS_INNERGROUP on ug.GID equals g.GID
|
|
join d in db.BAS_SALESDEPARTMENT on g.SALEDEPTID equals d.SALEDEPTID
|
|
where d.COMPANYID == userComboDto.companyId.Value
|
|
select a;
|
|
}
|
|
return queryData;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 查询
|
|
|
|
/// <summary>
|
|
/// 分页查询
|
|
/// </summary>
|
|
/// <param name="pager"></param>
|
|
/// <param name="Stime"></param>
|
|
/// <param name="Etime"></param>
|
|
/// <param name="msgType"></param>
|
|
/// <param name="userId"></param>
|
|
/// <returns></returns>
|
|
public List<WX.CRM.Model.Entity.SMS_MESSAGE_HIS> GetList(ref Pager pager, string Stime, string Etime, string msgType, QueryUserComboDto userComboDto, string resid)
|
|
{
|
|
using (var db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
var queryData = db.SMS_MESSAGE_HIS.AsQueryable();
|
|
|
|
queryData = GetQuery(queryData, db, Stime, Etime, msgType, userComboDto, resid);
|
|
queryData = queryData.OrderByDescending(p => p.CTIME);
|
|
PagerUtil.SetPager<WX.CRM.Model.Entity.SMS_MESSAGE_HIS>(ref queryData, ref pager);
|
|
var obj = queryData.ToList();
|
|
return obj;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
public void Add(WX.CRM.Model.Entity.SMS_MESSAGE_HIS model)
|
|
{
|
|
using (crmContext db = new crmContext())
|
|
{
|
|
model.MESSAGEID = new BLL.Base.SEQUENCES_BL().Seq_base_get(WX.CRM.Model.Enum.PKIDType.LargeTable);
|
|
model.CTIME = DateTime.Now;
|
|
model.CREATEUSER = 1;
|
|
db.SMS_MESSAGE_HIS.Add(model);
|
|
db.SaveChanges();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
public bool IsSendSmsThree(string resid)
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
DateTime stime = DateTime.Now.Date;
|
|
DateTime etime = stime.AddDays(1);
|
|
var list = db.SMS_MESSAGE_HIS.Where(p => p.CTIME >= stime && p.CTIME < etime);
|
|
list = list.Where(p => p.SUBTYPECODE == "SMS_ResetPwd" && p.RESID == resid);
|
|
var num = list.ToList();
|
|
if (num.Count < 6)
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|