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 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 data = db.CSVR_RECORDSHARED.AsQueryable(); 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(ref data, ref pg);//分页 return data.ToList(); } } public List 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()) { IQueryable data = db.CSVR_RECORDSHARED.AsQueryable(); 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(ref data, ref pg);//分页 return data.ToList(); } } public List 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()) { IQueryable data = db.CSVR_RECORDSHARED.AsQueryable(); 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 ALLdeptIDS = new List(); List ALLgidS = new List(); UserServices userservices = new UserServices(); foreach (var item in depts) { List deptIDS = new List(); List gidS = new List(); 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(ref result, ref pg);//分页 return result.ToList(); } } } }