ComplianceServer/oldcode/Core.BLL/Quality/QC_CUSTOMERCOMPLAIN_BL.cs

146 lines
6.3 KiB
C#

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<QC_CUSTOMERCOMPLAIN>
{
public QC_CUSTOMERCOMPLAIN GetModel_CustomerComplain(decimal id)
{
using (var db = new zxdContext())
{
return db.QC_CUSTOMERCOMPLAIN.FirstOrDefault(m => m.PKID == id);
}
}
public List<QC_CUSTOMERCOMPLAIN_Extend> 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<QC_CUSTOMERCOMPLAIN_Extend>(ref dataList, ref pg);
return dataList.ToList();
}
}
public List<QC_CUSTOMERCOMPLAIN> 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<QC_CUSTOMERCOMPLAIN> 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();
}
}
}
}