using CRM.Core.BLL.Util; using CRM.Core.Common.Layui; using CRM.Core.Model.Entity; using System; using System.Collections.Generic; using System.Linq; using WX.CRM.Common; namespace CRM.Core.BLL.Quality { public class QC_CUSTOMERCOMPLAIN_BL : DbContextRepository { public QC_CUSTOMERCOMPLAIN GetModel_CustomerComplain(decimal id) { using (var db = new zxdContext()) { return db.QC_CUSTOMERCOMPLAIN.FirstOrDefault(m => m.PKID == id); } } public List GetList_CustomerComplain(ref Laypage pg, string resid, string fromType, string level, decimal status, DateTime? stime, DateTime? etime) { using (var db = new zxdContext()) { var data = db.QC_CUSTOMERCOMPLAIN.AsQueryable(); if (!string.IsNullOrWhiteSpace(resid)) data = data.Where(m => m.RESID.Contains(resid)); if (!string.IsNullOrWhiteSpace(fromType)) data = data.Where(m => m.FROMTYPE == fromType); if (!string.IsNullOrWhiteSpace(level)) data = data.Where(m => m.COMPLAINLEVEL.Contains(level)); if (stime.HasValue) data = data.Where(m => m.CTIME >= stime); if (etime.HasValue) data = data.Where(m => m.CTIME < etime); //if (status >= 0) data = data.Where(m => m.STATUS == status); //if (userId > 0) // data = data.Where(m => m.SALESID == userId); //else if(!string.IsNullOrWhiteSpace(groupId)) //{ // decimal[] _groupIds = OperationUtil.ConvertToDecimal(groupId.Split(',')); // var userids = db.BAS_INNERUSERGROUP.Where(m => _groupIds.Contains(m.GID.Value)).Select(m => m.INNERUSERID); // data = data.Where(m => userids.Contains(m.SALESID)); //} var dataList = (from a in data //join b in db.RES_CUSTOMERDETAIL on a.RESID equals b.RESID //join c in db.BAS_SUBCOMTYPE on a.FROMTYPE equals c.SUBTYPECODE join d in db.QC_COMPLAINTDICT on a.COMPLAINLEVEL equals d.DICTVALUE join e in db.QC_COMPLAIN_SERVICEMEMO on a.PKID equals e.COMPLAINID into tmp1 from ae in tmp1.DefaultIfEmpty() select new QC_CUSTOMERCOMPLAIN_Extend() { PKID = a.PKID, RESID = a.RESID, SALESID = a.SALESID, REASON = a.REASON, STATUS = a.STATUS, FROMTYPE = a.FROMTYPE, COMPLAINLEVEL = a.COMPLAINLEVEL, CTIME = a.CTIME, UTIME = a.UTIME, DEPTAUDITPKID = a.DEPTAUDITPKID, COMPLIANGUID = a.COMPLIANGUID, UNHANDLEWARNTIME = a.UNHANDLEWARNTIME, HANDLEWARNTIME = a.HANDLEWARNTIME, COMPANYCODE = a.COMPANYCODE, SERVICEMEMO = ae.MEMO, SERVICEMEMOID = ae.MEMOID, SERVICERECORDID = ae.RECORDID, RECOMPLAINLEVEL = ae.RECOMPLAINLEVEL, //CUSTOMERNAME=b.CNAME, //FROMTYPENAME = c.SUBTYPENAME, LEVELNAME = d.DICTDESC }); #region 排序 if (pg.order == "asc") { switch (pg.sort) { case "RESID": dataList = dataList.OrderBy(m => m.RESID); break; case "LEVELNAME": dataList = dataList.OrderBy(m => m.COMPLAINLEVEL); break; case "FROMTYPENAME": dataList = dataList.OrderBy(m => m.RESID); break; default: dataList = dataList.OrderBy(m => m.CTIME); break; } } else { switch (pg.sort) { case "RESID": dataList = dataList.OrderByDescending(m => m.RESID); break; case "LEVELNAME": dataList = dataList.OrderByDescending(m => m.COMPLAINLEVEL); break; case "FROMTYPENAME": dataList = dataList.OrderByDescending(m => m.RESID); break; default: dataList = dataList.OrderByDescending(m => m.CTIME); break; } } #endregion PagerUtil.SetPager(ref dataList, ref pg); return dataList.ToList(); } } public List GetUnHandleList() { using (var db = new zxdContext()) { var query = db.QC_CUSTOMERCOMPLAIN.AsQueryable(); query = query.Where(m => m.STATUS == -1 && m.UNHANDLEWARNTIME < DateTime.Now); return query.ToList(); } } public List GetHandleingList() { using (var db = new zxdContext()) { var query = db.QC_CUSTOMERCOMPLAIN.AsQueryable(); query = query.Where(m => m.STATUS == 0 && m.HANDLEWARNTIME < DateTime.Now); return query.ToList(); } } } }