335 lines
14 KiB
C#
335 lines
14 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using WX.CRM.BLL.Util;
|
||
using WX.CRM.Common;
|
||
using WX.CRM.IBLL.Quality;
|
||
using WX.CRM.Model.Entity;
|
||
using WX.CRM.Common;
|
||
using WX.CRM.BLL.Base;
|
||
using WX.CRM.BLL.Util;
|
||
using WX.CRM.Model.MAP;
|
||
using WX.CRM.BLL.Application.UserComBox;
|
||
|
||
namespace WX.CRM.BLL.Quality
|
||
{
|
||
public class QC_CUSTOMERCOMPLAIN_BL : IQC_CUSTOMERCOMPLAIN, IQC_CUSTOMERCOMPLAIN_Q
|
||
{
|
||
public bool Create(ref ValidationErrors errors, WX.CRM.Model.Entity.QC_CUSTOMERCOMPLAIN model)
|
||
{
|
||
try
|
||
{
|
||
using (crmContext db = new crmContext())
|
||
{
|
||
var customerModel = db.RES_CUSTOMER.FirstOrDefault(m => m.RESID == model.map_RESID);
|
||
if (customerModel == null)
|
||
{
|
||
errors.Add("请输入正确的客户ID!");
|
||
return false;
|
||
}
|
||
//if (!string.IsNullOrWhiteSpace(model.map_TRADECODE))
|
||
//{
|
||
// //var gjs_CustomerModel = db.GJS_CUSTOMER.FirstOrDefault(m => m.TRADECODE == model.TRADECODE);
|
||
// //if(gjs_CustomerModel==null)
|
||
// //{
|
||
// // errors.Add("请输入正确的交易商代码");
|
||
// // return false;
|
||
// //}
|
||
//}
|
||
//model.PKID = new SEQUENCES_BL().Seq_base_get();
|
||
db.QC_CUSTOMERCOMPLAIN.Add(model);
|
||
return db.SaveChanges().GetResult();
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
errors.Add(ex.Message);
|
||
return false;
|
||
}
|
||
}
|
||
|
||
public bool Update(ref ValidationErrors errors, QC_CUSTOMERCOMPLAIN model)
|
||
{
|
||
try
|
||
{
|
||
using (var db = new crmContext())
|
||
{
|
||
QC_CUSTOMERCOMPLAIN entry = db.QC_CUSTOMERCOMPLAIN.FirstOrDefault(m => m.PKID == model.PKID);
|
||
if (entry == null)
|
||
{
|
||
errors.Add("数据不存在!");
|
||
return false;
|
||
}
|
||
entry.STATUS = model.STATUS;
|
||
entry.UTIME = model.UTIME;
|
||
entry.COMPLAINLEVEL = model.COMPLAINLEVEL;
|
||
db.SaveChanges();
|
||
return true;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
errors.Add(ex.Message);
|
||
return false;
|
||
}
|
||
}
|
||
|
||
public bool Delete(ref ValidationErrors errors, decimal id)
|
||
{
|
||
try
|
||
{
|
||
using (var db = new crmContext())
|
||
{
|
||
QC_CUSTOMERCOMPLAIN entry = db.QC_CUSTOMERCOMPLAIN.FirstOrDefault(m => m.PKID == id);
|
||
if (entry == null)
|
||
{
|
||
errors.Add("数据已经被删除!");
|
||
return false;
|
||
}
|
||
db.QC_CUSTOMERCOMPLAIN.Remove(entry);
|
||
return db.SaveChanges().GetResult();
|
||
}
|
||
}
|
||
catch (Exception ex) { errors.Add(ex.Message); return false; }
|
||
}
|
||
|
||
public QC_CUSTOMERCOMPLAIN GetModel_CustomerComplain(decimal id)
|
||
{
|
||
using (var db = new crmContext())
|
||
{
|
||
return db.QC_CUSTOMERCOMPLAIN.FirstOrDefault(m => m.PKID == id);
|
||
}
|
||
}
|
||
|
||
public QC_CUSTOMERCOMPLAIN GetModel(decimal recordId)
|
||
{
|
||
using (var db = new crmContext())
|
||
{
|
||
return db.QC_CUSTOMERCOMPLAIN.FirstOrDefault(m => m.RECORDID == recordId);
|
||
}
|
||
}
|
||
|
||
|
||
public bool Check(ref ValidationErrors errors, WX.CRM.Model.Entity.QC_CUSTOMERCOMPLAIN model)
|
||
{
|
||
try
|
||
{
|
||
using (var db = new crmContext())
|
||
{
|
||
QC_CUSTOMERCOMPLAIN entry = db.QC_CUSTOMERCOMPLAIN.FirstOrDefault(m => m.PKID == model.PKID);
|
||
if (entry == null)
|
||
{
|
||
errors.Add("找不到数据!");
|
||
return false;
|
||
}
|
||
if (entry.STATUS == 1)
|
||
{
|
||
errors.Add("数据已经是已审核状态!");
|
||
return false;
|
||
}
|
||
entry.UTIME = model.UTIME;
|
||
entry.COMPLAINLEVEL = model.COMPLAINLEVEL;
|
||
entry.STATUS = model.STATUS;
|
||
db.SaveChanges();
|
||
return true;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
errors.Add(ex.Message);
|
||
return false;
|
||
}
|
||
}
|
||
|
||
public List<QC_CUSTOMERCOMPLAIN_Extend> GetList_CustomerComplain(ref Pager pg, string resid, string fromType, string level, decimal? status, DateTime? stime, DateTime? etime, QueryUserComboDto usercomboDto)
|
||
{
|
||
using (var db = new crmContext())
|
||
{
|
||
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.HasValue)
|
||
data = data.Where(m => m.STATUS == status);
|
||
if (usercomboDto.userId.HasValue)
|
||
data = data.Where(m => m.SALESID == usercomboDto.userId);
|
||
else if (!string.IsNullOrEmpty(usercomboDto.deptId))
|
||
{
|
||
|
||
var depts = OperationUtil.ConvertToDecimal(usercomboDto.deptId.Split(','));
|
||
List<decimal> ALLdeptIDS = new List<decimal>();
|
||
List<decimal> ALLgidS = new List<decimal>();
|
||
UserServices userservices = new UserServices();
|
||
foreach (var item in depts)
|
||
{
|
||
List<decimal> deptIDS = new List<decimal>();
|
||
List<decimal> gidS = new List<decimal>();
|
||
userservices.GetAllDeptIDOrGidByDeptId(item, ref deptIDS, ref gidS);//获取所有的组别和gid
|
||
ALLdeptIDS.AddRange(deptIDS);
|
||
ALLgidS.AddRange(gidS);
|
||
}
|
||
data = (from a in data
|
||
join b in db.BAS_INNERUSERGROUP on a.SALESID equals b.INNERUSERID
|
||
//join g in db.BAS_INNERGROUP on b.GID equals g.GID
|
||
where ALLdeptIDS.Contains(b.DEPTID.Value) || ALLgidS.Contains(b.GID.Value)
|
||
select a);
|
||
}
|
||
else if (usercomboDto.companyId.HasValue)
|
||
{
|
||
data = (from a in data
|
||
join b in db.BAS_INNERUSERGROUP on a.SALESID equals b.INNERUSERID
|
||
join g in db.BAS_INNERGROUP on b.GID equals g.GID
|
||
join m in db.BAS_SALESDEPARTMENT on g.SALEDEPTID equals m.SALEDEPTID
|
||
where m.COMPANYID == usercomboDto.companyId.Value
|
||
select a);
|
||
}
|
||
//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 d in db.QC_COMPLAINTDICT on a.COMPLAINLEVEL equals d.DICTVALUE
|
||
select new QC_CUSTOMERCOMPLAIN_Extend()
|
||
{
|
||
customerComplain = a,
|
||
CUSTOMERNAME = b.CNAME,
|
||
FROMTYPENAME = a.FROMTYPE,
|
||
LEVELNAME = d.DICTDESC
|
||
});
|
||
#region 排序
|
||
if (pg.order == "asc")
|
||
{
|
||
switch (pg.sort)
|
||
{
|
||
case "RESID":
|
||
dataList = dataList.OrderBy(m => m.customerComplain.RESID);
|
||
break;
|
||
case "LEVELNAME":
|
||
dataList = dataList.OrderBy(m => m.customerComplain.COMPLAINLEVEL);
|
||
break;
|
||
case "FROMTYPENAME":
|
||
dataList = dataList.OrderBy(m => m.customerComplain.RESID);
|
||
break;
|
||
default:
|
||
dataList = dataList.OrderBy(m => m.customerComplain.CTIME);
|
||
break;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
switch (pg.sort)
|
||
{
|
||
case "RESID":
|
||
dataList = dataList.OrderByDescending(m => m.customerComplain.RESID);
|
||
break;
|
||
case "LEVELNAME":
|
||
dataList = dataList.OrderByDescending(m => m.customerComplain.COMPLAINLEVEL);
|
||
break;
|
||
case "FROMTYPENAME":
|
||
dataList = dataList.OrderByDescending(m => m.customerComplain.RESID);
|
||
break;
|
||
default:
|
||
dataList = dataList.OrderByDescending(m => m.customerComplain.CTIME);
|
||
break;
|
||
}
|
||
}
|
||
#endregion
|
||
PagerUtil.SetPager<QC_CUSTOMERCOMPLAIN_Extend>(ref dataList, ref pg);
|
||
return dataList.ToList();
|
||
}
|
||
}
|
||
|
||
public List<QC_CUSTOMERCOMPLAIN_Extend> GetList_CustomerComplainByResIds(List<string> resIds)
|
||
{
|
||
using (var db = new crmContext())
|
||
{
|
||
var data = db.QC_CUSTOMERCOMPLAIN.Where(m => resIds.Contains(m.RESID)).AsQueryable();
|
||
var list = (from a in data
|
||
//join b in db.BAS_SUBCOMTYPE on a.COMPLAINLEVEL equals b.SUBTYPECODE
|
||
join b in db.QC_COMPLAINTDICT on a.COMPLAINLEVEL equals b.DICTVALUE
|
||
select new QC_CUSTOMERCOMPLAIN_Extend()
|
||
{
|
||
customerComplain = a,
|
||
LEVELNAME = b.DICTDESC
|
||
//LEVELNAME = b.DICTCODE
|
||
});
|
||
return list.OrderByDescending(m => m.customerComplain.CTIME).ToList();
|
||
}
|
||
}
|
||
|
||
public List<QC_CUSTOMERCOMPLAIN_Extend> GetList_CustomerComplainByCustomerId(ref Pager pg, string customerId)
|
||
{
|
||
using (var db = new crmContext())
|
||
{
|
||
var data = db.QC_CUSTOMERCOMPLAIN.AsQueryable();
|
||
|
||
var dataList = (from a in data
|
||
join e in db.RES_CUSTOMER on a.RESID equals e.RESID
|
||
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.BAS_SUBCOMTYPE on a.COMPLAINLEVEL equals d.SUBTYPECODE
|
||
join d in db.QC_COMPLAINTDICT on a.COMPLAINLEVEL equals d.DICTVALUE
|
||
where e.CUSTOMERID == customerId
|
||
select new QC_CUSTOMERCOMPLAIN_Extend()
|
||
{
|
||
customerComplain = a,
|
||
CUSTOMERNAME = b.CNAME,
|
||
FROMTYPENAME = c.SUBTYPENAME,
|
||
LEVELNAME = d.DICTDESC
|
||
});
|
||
#region 排序
|
||
if (pg.order == "asc")
|
||
{
|
||
switch (pg.sort)
|
||
{
|
||
case "RESID":
|
||
dataList = dataList.OrderBy(m => m.customerComplain.RESID);
|
||
break;
|
||
case "LEVELNAME":
|
||
dataList = dataList.OrderBy(m => m.customerComplain.COMPLAINLEVEL);
|
||
break;
|
||
case "FROMTYPENAME":
|
||
dataList = dataList.OrderBy(m => m.customerComplain.RESID);
|
||
break;
|
||
default:
|
||
dataList = dataList.OrderBy(m => m.customerComplain.CTIME);
|
||
break;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
switch (pg.sort)
|
||
{
|
||
case "RESID":
|
||
dataList = dataList.OrderByDescending(m => m.customerComplain.RESID);
|
||
break;
|
||
case "LEVELNAME":
|
||
dataList = dataList.OrderByDescending(m => m.customerComplain.COMPLAINLEVEL);
|
||
break;
|
||
case "FROMTYPENAME":
|
||
dataList = dataList.OrderByDescending(m => m.customerComplain.RESID);
|
||
break;
|
||
default:
|
||
dataList = dataList.OrderByDescending(m => m.customerComplain.CTIME);
|
||
break;
|
||
}
|
||
}
|
||
#endregion
|
||
PagerUtil.SetPager<QC_CUSTOMERCOMPLAIN_Extend>(ref dataList, ref pg);
|
||
return dataList.ToList();
|
||
}
|
||
}
|
||
}
|
||
}
|