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 /// /// 获取条件后的queryData /// /// /// /// /// /// /// /// private IQueryable GetQuery(IQueryable 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 查询 /// /// 分页查询 /// /// /// /// /// /// /// public List 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(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; } } } } }