316 lines
14 KiB
C#
316 lines
14 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using WX.CRM.BLL.Base;
|
|
using WX.CRM.BLL.Util;
|
|
using WX.CRM.Common;
|
|
using WX.CRM.IBLL.Csvr;
|
|
using WX.CRM.Model.Entity;
|
|
using WX.CRM.Model.MAP;
|
|
using WX.CRM.BLL.Application.UserComBox;
|
|
|
|
namespace WX.CRM.BLL.Csvr
|
|
{
|
|
public class CSVR_RECORDSHARED_BL : ICSVR_RECORDSHARED, ICSVR_RECORDSHARED_Q
|
|
{
|
|
public bool Create_RecordShared(ref ValidationErrors errors, CSVR_RECORDSHARED model)
|
|
{
|
|
try
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
CSVR_RECORDSHARED entity = db.CSVR_RECORDSHARED.FirstOrDefault(m => m.RECORDID == model.RECORDID);
|
|
if (entity == null)
|
|
{
|
|
model.PKID = new SEQUENCES_BL().Seq_base_get();
|
|
db.CSVR_RECORDSHARED.Add(model);
|
|
return db.SaveChanges().GetResult();
|
|
}
|
|
else
|
|
{
|
|
errors.Add("添加的共享录音已存在!");
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
errors.Add(ex.Message);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public CSVR_RECORDSHARED GetModel_RecordShared(decimal recordId)
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
return db.CSVR_RECORDSHARED.FirstOrDefault(m => m.RECORDID == recordId);
|
|
}
|
|
}
|
|
|
|
public bool Delete_RecordShared(ref ValidationErrors errors, decimal id)
|
|
{
|
|
try
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
CSVR_RECORDSHARED entity = db.CSVR_RECORDSHARED.FirstOrDefault(m => m.PKID == id);
|
|
if (entity == null)
|
|
{
|
|
errors.Add("数据不存在!");
|
|
return false;
|
|
}
|
|
db.CSVR_RECORDSHARED.Remove(entity);
|
|
return db.SaveChanges().GetResult();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
errors.Add(ex.Message);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public List<CSVR_RECORDSHAREDVIEW> GetList_RecordShared(ref Pager pg, decimal recordTypeID, string resid, decimal recordid, decimal recordShardtype, string stime, string etime, decimal serviceEid, decimal shareEid)
|
|
{
|
|
using (crmContext db = new crmContext())
|
|
{
|
|
//IQueryable<CSVR_RECORDSHAREDVIEW> data = db.CSVR_RECORDSHARED.AsQueryable<CSVR_RECORDSHARED>();
|
|
var data = from n in db.CSVR_RECORDSHARED
|
|
join b in db.RES_CUSTOMER on n.RESID equals b.RESID
|
|
select new CSVR_RECORDSHAREDVIEW
|
|
{
|
|
PKID = n.PKID,
|
|
RECORDID = n.RECORDID,
|
|
SERVERID = n.SERVERID,
|
|
FILENAME = n.FILENAME,
|
|
RESID = b.UMID,
|
|
SERVICENUMBER = n.SERVICENUMBER,
|
|
TELNUMBERLAST4 = n.TELNUMBERLAST4,
|
|
TIMELENGTH = n.TIMELENGTH,
|
|
SALESEID = n.SALESEID,
|
|
TIMESTART = n.TIMESTART,
|
|
TIMEEND = n.TIMEEND,
|
|
CTIME = n.CTIME,
|
|
RECORDSHAREDTYPE = n.RECORDSHAREDTYPE,
|
|
RECORDTYPEID = n.RECORDTYPEID,
|
|
MEMO = n.MEMO,
|
|
INNERUSERID = n.INNERUSERID,
|
|
BIGTYPE = n.BIGTYPE,
|
|
SUBTYPE = n.SUBTYPE,
|
|
SALESUSERID = n.SALESUSERID
|
|
};
|
|
|
|
if (!string.IsNullOrEmpty(resid))
|
|
data = data.Where(m => m.RESID == resid);
|
|
if (recordTypeID > 0)
|
|
data = data.Where(m => m.RECORDTYPEID == recordTypeID);
|
|
if (recordShardtype > 0)
|
|
data = data.Where(m => m.RECORDSHAREDTYPE == recordShardtype);
|
|
if (recordid > 0)
|
|
data = data.Where(m => m.RECORDID == recordid);
|
|
if (serviceEid > 0)
|
|
data = data.Where(m => m.SALESEID == serviceEid);
|
|
if (shareEid > 0)
|
|
data = data.Where(m => db.BAS_INNERUSER.Where(d => d.EID == shareEid).FirstOrDefault().PKID == m.INNERUSERID);
|
|
|
|
DateTime _stime;
|
|
DateTime _etime;
|
|
if (!string.IsNullOrEmpty(stime) && DateTime.TryParse(stime, out _stime))
|
|
data = data.Where(m => m.CTIME >= _stime);
|
|
if (!string.IsNullOrEmpty(etime) && DateTime.TryParse(etime, out _etime))
|
|
{
|
|
_etime = _etime.AddDays(1);
|
|
data = data.Where(m => m.CTIME < _etime);
|
|
}
|
|
data = data.OrderByDescending(m => m.CTIME);
|
|
|
|
PagerUtil.SetPager<CSVR_RECORDSHAREDVIEW>(ref data, ref pg);//分页
|
|
return data.ToList();
|
|
}
|
|
}
|
|
|
|
public List<CSVR_RECORDSHAREDVIEW> GetList_RecordShared(ref Pager pg, decimal recordTypeID, string resid, decimal recordid, decimal recordShardtype, string stime, string etime, decimal shareEid, decimal groupId, decimal userId)
|
|
{
|
|
using (crmContext db = new crmContext())
|
|
{
|
|
var data = from n in db.CSVR_RECORDSHARED
|
|
join b in db.RES_CUSTOMER on n.RESID equals b.RESID
|
|
select new CSVR_RECORDSHAREDVIEW
|
|
{
|
|
PKID = n.PKID,
|
|
RECORDID = n.RECORDID,
|
|
SERVERID = n.SERVERID,
|
|
FILENAME = n.FILENAME,
|
|
RESID = b.UMID,
|
|
SERVICENUMBER = n.SERVICENUMBER,
|
|
TELNUMBERLAST4 = n.TELNUMBERLAST4,
|
|
TIMELENGTH = n.TIMELENGTH,
|
|
SALESEID = n.SALESEID,
|
|
TIMESTART = n.TIMESTART,
|
|
TIMEEND = n.TIMEEND,
|
|
CTIME = n.CTIME,
|
|
RECORDSHAREDTYPE = n.RECORDSHAREDTYPE,
|
|
RECORDTYPEID = n.RECORDTYPEID,
|
|
MEMO = n.MEMO,
|
|
INNERUSERID = n.INNERUSERID,
|
|
BIGTYPE = n.BIGTYPE,
|
|
SUBTYPE = n.SUBTYPE,
|
|
SALESUSERID = n.SALESUSERID
|
|
};
|
|
if (!string.IsNullOrEmpty(resid))
|
|
data = data.Where(m => m.RESID == resid);
|
|
if (recordTypeID > 0)
|
|
data = data.Where(m => m.RECORDTYPEID == recordTypeID);
|
|
if (recordShardtype > 0)
|
|
data = data.Where(m => m.RECORDSHAREDTYPE == recordShardtype);
|
|
if (recordid > 0)
|
|
data = data.Where(m => m.RECORDID == recordid);
|
|
if (userId > 0)
|
|
{
|
|
data = data.Where(m => m.SALESUSERID == userId);
|
|
}
|
|
else
|
|
{
|
|
if (groupId > 0)
|
|
{
|
|
var returnData = (from a in data
|
|
join b in db.BAS_INNERUSERGROUP on a.SALESUSERID equals b.INNERUSERID
|
|
where b.GID == groupId
|
|
select a);
|
|
data = returnData;
|
|
}
|
|
}
|
|
if (shareEid > 0)
|
|
data = data.Where(m => db.BAS_INNERUSER.Where(d => d.EID == shareEid).FirstOrDefault().PKID == m.INNERUSERID);
|
|
|
|
DateTime _stime;
|
|
DateTime _etime;
|
|
if (!string.IsNullOrEmpty(stime) && DateTime.TryParse(stime, out _stime))
|
|
data = data.Where(m => m.CTIME >= _stime);
|
|
if (!string.IsNullOrEmpty(etime) && DateTime.TryParse(etime, out _etime))
|
|
{
|
|
_etime = _etime.AddDays(1);
|
|
data = data.Where(m => m.CTIME < _etime);
|
|
}
|
|
data = data.OrderByDescending(m => m.CTIME);
|
|
PagerUtil.SetPager<CSVR_RECORDSHAREDVIEW>(ref data, ref pg);//分页
|
|
return data.ToList();
|
|
}
|
|
}
|
|
|
|
public List<CSVR_RECORDSHARED_Extend> GetList_WgRecordShared(ref Pager pg, string resid, decimal recordid, decimal recordShardtype, string stime, string etime, decimal shareEid, string bigType, string subType, QueryUserComboDto usercomboDto)
|
|
{
|
|
using (crmContext db = new crmContext())
|
|
{
|
|
var data = from n in db.CSVR_RECORDSHARED
|
|
join b in db.RES_CUSTOMER on n.RESID equals b.RESID
|
|
select new CSVR_RECORDSHAREDVIEW
|
|
{
|
|
PKID = n.PKID,
|
|
RECORDID = n.RECORDID,
|
|
SERVERID = n.SERVERID,
|
|
FILENAME = n.FILENAME,
|
|
RESID = b.UMID,
|
|
SERVICENUMBER = n.SERVICENUMBER,
|
|
TELNUMBERLAST4 = n.TELNUMBERLAST4,
|
|
TIMELENGTH = n.TIMELENGTH,
|
|
SALESEID = n.SALESEID,
|
|
TIMESTART = n.TIMESTART,
|
|
TIMEEND = n.TIMEEND,
|
|
CTIME = n.CTIME,
|
|
RECORDSHAREDTYPE = n.RECORDSHAREDTYPE,
|
|
RECORDTYPEID = n.RECORDTYPEID,
|
|
MEMO = n.MEMO,
|
|
INNERUSERID = n.INNERUSERID,
|
|
BIGTYPE = n.BIGTYPE,
|
|
SUBTYPE = n.SUBTYPE,
|
|
SALESUSERID = n.SALESUSERID
|
|
};
|
|
|
|
if (!string.IsNullOrEmpty(resid))
|
|
data = data.Where(m => m.RESID == resid);
|
|
if (recordShardtype > 0)
|
|
data = data.Where(m => m.RECORDSHAREDTYPE == recordShardtype);
|
|
if (recordid > 0)
|
|
data = data.Where(m => m.RECORDID == recordid);
|
|
if (!string.IsNullOrWhiteSpace(bigType))
|
|
{
|
|
data = data.Where(m => m.BIGTYPE == bigType);
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(subType))
|
|
{
|
|
data = data.Where(m => m.SUBTYPE == subType);
|
|
}
|
|
if (usercomboDto.userId.HasValue)
|
|
{
|
|
data = data.Where(m => m.SALESUSERID == usercomboDto.userId);
|
|
}
|
|
else if (!string.IsNullOrEmpty(usercomboDto.groupIds))
|
|
{
|
|
var _groupids = OperationUtil.ConvertToDecimal(usercomboDto.groupIds.Split(','));
|
|
data = (from a in data
|
|
join b in db.BAS_INNERUSERGROUP on a.SALESUSERID equals b.INNERUSERID
|
|
where _groupids.Contains(b.GID.Value)
|
|
select a);
|
|
}
|
|
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.SALESUSERID 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 (groupId > 0)
|
|
// {
|
|
// var returnData = (from a in data
|
|
// join b in db.BAS_INNERUSERGROUP on a.SALESUSERID equals b.INNERUSERID
|
|
// where b.GID == groupId
|
|
// select a);
|
|
// data = returnData;
|
|
// }
|
|
//}
|
|
if (shareEid > 0)
|
|
data = data.Where(m => db.BAS_INNERUSER.Where(d => d.EID == shareEid).FirstOrDefault().PKID == m.INNERUSERID);
|
|
|
|
DateTime _stime;
|
|
DateTime _etime;
|
|
if (!string.IsNullOrEmpty(stime) && DateTime.TryParse(stime, out _stime))
|
|
data = data.Where(m => m.CTIME >= _stime);
|
|
if (!string.IsNullOrEmpty(etime) && DateTime.TryParse(etime, out _etime))
|
|
{
|
|
_etime = _etime.AddDays(1);
|
|
data = data.Where(m => m.CTIME < _etime);
|
|
}
|
|
|
|
var result = (from a in data
|
|
join b in db.WX_MESSAGECOMPLIANCE on a.RECORDID equals b.RECORDID
|
|
select new CSVR_RECORDSHARED_Extend
|
|
{
|
|
RecordShared = a,
|
|
PENALTY = b.PENALTY,
|
|
RESULT = b.RESULT
|
|
});
|
|
|
|
result = result.OrderByDescending(m => m.RecordShared.CTIME);
|
|
PagerUtil.SetPager<CSVR_RECORDSHARED_Extend>(ref result, ref pg);//分页
|
|
return result.ToList();
|
|
}
|
|
}
|
|
}
|
|
} |