using CRM.Core.BLL.Util; using CRM.Core.Common.Layui; using CRM.Core.Model.Entity; using CRM.Core.Model.QueryModels; using System; using System.Collections.Generic; using System.Linq; using WX.CRM.Common; namespace CRM.Core.BLL.Hg { public class Hg_Message_BL : DbContextRepository { #region 微信 /// /// 获取微信合规信息列表 /// /// /// /// /// public List GetWxList(ref Laypage pager, Hg_Wx_Message_Query param) { using (var db = new zxdContext()) { var query = db.Hg_Wx_Message.AsQueryable(); if (param.id.HasValue) { query = query.Where(m => m.id == param.id); } if (param.stime.HasValue)//时间 { query = query.Where(m => m.ctime > param.stime.Value); } if (param.etime.HasValue)//时间 { param.etime = param.etime.Value.AddDays(1); query = query.Where(m => m.ctime < param.etime.Value); } if (!string.IsNullOrEmpty(param.deptcodes))//部门 { if (param.deptcodes.IndexOf(",") > -1) { var deptcode = param.deptcodes.Split(','); query = query.Where(m => deptcode.Contains(m.detpcode)); } else query = query.Where(m => m.detpcode == param.deptcodes); } if (param.hgstatus.HasValue)//处理状态 { query = query.Where(m => m.hgstatus == param.hgstatus.Value); } if (param.iswg.HasValue)//违规状态 { query = query.Where(m => m.iswg == param.iswg.Value); } if (!string.IsNullOrEmpty(param.jobusername))//工作微信username { query = query.Where(m => m.username == param.jobusername); } if (!string.IsNullOrEmpty(param.kefuusername))//客户username { query = query.Where(m => m.talker == param.kefuusername); } query = query.OrderByDescending(m => m.ctime); PagerUtil.SetPager(ref query, ref pager); return query.ToList(); } } public bool ReadWxComplete(int[] ids, ref ValidationErrors erros) { bool result = false; try { using (var db = new zxdContext()) { foreach (var item in ids) { var entry = db.Hg_Wx_Message.FirstOrDefault(m => m.id == item); if (entry == null) { erros.Add($"{item}错误!"); } entry.hgstatus = 1; entry.hgtime = DateTime.Now; db.SaveChanges(); } } } catch (Exception e) { erros.Add(e.ToString()); LogHelper.Error(e.ToString()); } return result; } public bool WxViolationAdd(string ids, string hgdetail, string hgresult, string hgtype, string hgsubtype, ref ValidationErrors erros) { bool result = false; try { var idlist = ids.Split(','); using (var db = new zxdContext()) { foreach (var item in idlist) { int id = Convert.ToInt32(item); var entry = db.Hg_Wx_Message.FirstOrDefault(m => m.id == id); if (entry == null) { erros.Add($"{item}数据找不到"); return false; } Hg_Violation model = new Hg_Violation() { hgid = entry.id, pkid = entry.pkid, action = entry.issend.ToString(), content = entry.msgcontent, detpcode = entry.detpcode, corpid = null, cusname = entry.nickname,//客户昵称 eid = entry.eid, fromer = entry.username, hgdetail = hgdetail, hgresult = hgresult, hgsubtype = hgsubtype, hgtime = DateTime.Now, hgtype = hgtype, kefuname = entry.kefuname, msgid = entry.msgsvrid, msgtype = entry.msgtype == 1 ? "文本" : "语音", touser = entry.talker, type = "WX", uname = "", voiceUrl = entry.voiceUrl, word = entry.word }; db.Hg_Violation.Add(model); entry.hgstatus = 1; entry.hgtime = DateTime.Now; entry.iswg = 1; db.SaveChanges(); } result = true; } } catch (Exception e) { erros.Add(e.ToString()); LogHelper.Error(e.ToString()); } return result; } #endregion #region 企业微信 /// /// 获取微信合规信息列表 /// /// /// /// /// public List GetQWList(ref Laypage pager, Hg_Qw_Message_Query param, ref ValidationErrors erros) { List list = new List(); try { using (var db = new zxdContext()) { var query = db.Hg_Qw_Message.AsQueryable(); if (param.id.HasValue) { query = query.Where(m => m.id == param.id); } if (param.stime.HasValue)//时间 { query = query.Where(m => m.ctime > param.stime.Value); } if (param.etime.HasValue)//时间 { param.etime = param.etime.Value.AddDays(1); query = query.Where(m => m.ctime < param.etime.Value); } if (!string.IsNullOrEmpty(param.deptcodes))//部门 { if (param.deptcodes.IndexOf(",") > -1) { var deptcode = param.deptcodes.Split(','); query = query.Where(m => deptcode.Contains(m.detpcode)); } else query = query.Where(m => m.detpcode == param.deptcodes); } if (param.hgstatus.HasValue)//处理状态 { query = query.Where(m => m.hgstatus == param.hgstatus.Value); } if (param.iswg.HasValue)//违规状态 { query = query.Where(m => m.iswg == param.iswg.Value); } if (!string.IsNullOrEmpty(param.kehuuserid))//工作微信username { query = query.Where(m => m.tolist == param.kehuuserid); } if (!string.IsNullOrEmpty(param.jbouserid))//客户username { query = query.Where(m => m.fromer == param.jbouserid); } if (!string.IsNullOrEmpty(param.corpid)) { query = query.Where(m => m.corpid == param.corpid); } query = query.OrderByDescending(m => m.ctime); PagerUtil.SetPager(ref query, ref pager); list = query.ToList(); } } catch (Exception e) { erros.Add(e.ToString()); LogHelper.Error(e.ToString()); } return list; } public bool ReadQWComplete(int[] ids, ref ValidationErrors erros) { bool result = false; try { using (var db = new zxdContext()) { foreach (var item in ids) { var entry = db.Hg_Qw_Message.FirstOrDefault(m => m.id == item); if (entry == null) { erros.Add($"{item}错误!"); } entry.hgstatus = 1; entry.hgtime = DateTime.Now; db.SaveChanges(); } } } catch (Exception e) { erros.Add(e.ToString()); LogHelper.Error(e.ToString()); } return result; } public bool QWViolationAdd(string ids, string hgdetail, string hgresult, string hgtype, string hgsubtype, ref ValidationErrors erros) { bool result = false; try { var idlist = ids.Split(','); using (var db = new zxdContext()) { foreach (var item in idlist) { int id = Convert.ToInt32(item); var entry = db.Hg_Qw_Message.FirstOrDefault(m => m.id == id); if (entry == null) { erros.Add($"{item}数据找不到"); return false; } Hg_Violation model = new Hg_Violation() { hgid = entry.id, pkid = entry.seq, action = entry.issend.ToString(), content = entry.content, detpcode = entry.detpcode, corpid = entry.corpid, cusname = entry.cusname,//客户昵称 eid = entry.eid ?? 0, fromer = entry.fromer, hgdetail = hgdetail, hgresult = hgresult, hgsubtype = hgsubtype, hgtime = DateTime.Now, hgtype = hgtype, kefuname = entry.kehuname, msgid = entry.msgid, msgtype = entry.msgtype.Replace("text", "文本").Replace("phone", "企微通话").Replace("voice", "语音"), touser = entry.tolist, type = "QW", uname = "", voiceUrl = entry.msgtype == "phone" ? entry.nfile : entry.voiceUrl, word = entry.word }; db.Hg_Violation.Add(model); entry.hgstatus = 1; entry.hgtime = DateTime.Now; entry.iswg = 1; db.SaveChanges(); } result = true; } } catch (Exception e) { erros.Add(e.ToString()); LogHelper.Error(e.ToString()); } return result; } #endregion #region 电话录音 /// /// 电话录音 /// /// /// /// /// public List GetRecordList(ref Laypage pager, Hg_ReCord_Query param, ref ValidationErrors erros) { List list = new List(); try { using (var db = new zxdContext()) { var query = db.Hg_Record_Message.AsQueryable(); if (param.id.HasValue) { query = query.Where(m => m.id == param.id); } if (param.stime.HasValue)//时间 { query = query.Where(m => m.ctime > param.stime.Value); } if (param.etime.HasValue)//时间 { param.etime = param.etime.Value.AddDays(1); query = query.Where(m => m.ctime < param.etime.Value); } if (!string.IsNullOrEmpty(param.deptcodes))//部门 { if (param.deptcodes.IndexOf(",") > -1) { var deptcode = param.deptcodes.Split(','); query = query.Where(m => deptcode.Contains(m.detpcode)); } else query = query.Where(m => m.detpcode == param.deptcodes); } if (param.hgstatus.HasValue)//处理状态 { query = query.Where(m => m.hgstatus == param.hgstatus.Value); } if (param.iswg.HasValue)//违规状态 { query = query.Where(m => m.iswg == param.iswg.Value); } if (param.eid.HasValue)//工作微信username { query = query.Where(m => m.saleseid == param.eid.Value); } if (!string.IsNullOrEmpty(param.customername))//客户username { query = query.Where(m => m.customername == param.customername); } if (!string.IsNullOrEmpty(param.resid)) { query = query.Where(m => m.resid == param.resid); } query = query.OrderByDescending(m => m.ctime); PagerUtil.SetPager(ref query, ref pager); list = query.ToList(); } } catch (Exception e) { erros.Add(e.ToString()); LogHelper.Error(e.ToString()); } return list; } public bool ReadRecordComplete(int[] ids, ref ValidationErrors erros) { bool result = false; try { using (var db = new zxdContext()) { foreach (var item in ids) { var entry = db.Hg_Record_Message.FirstOrDefault(m => m.id == item); if (entry == null) { erros.Add($"{item}错误!"); } entry.hgstatus = 1; entry.hgtime = DateTime.Now; db.SaveChanges(); } } } catch (Exception e) { erros.Add(e.ToString()); LogHelper.Error(e.ToString()); } return result; } public bool RecordViolationAdd(string ids, string hgdetail, string hgresult, string hgtype, string hgsubtype, ref ValidationErrors erros) { bool result = false; try { var idlist = ids.Split(','); using (var db = new zxdContext()) { foreach (var item in idlist) { int id = Convert.ToInt32(item); var entry = db.Hg_Record_Message.FirstOrDefault(m => m.id == id); if (entry == null) { erros.Add($"{item}数据找不到"); return false; } Hg_Violation model = new Hg_Violation() { hgid = entry.id, pkid = entry.pkid, content = entry.transcontent, detpcode = entry.detpcode, corpid = null, cusname = entry.customername,//客户昵称 eid = entry.saleseid, resid = entry.resid, hgdetail = hgdetail, hgresult = hgresult, hgsubtype = hgsubtype, hgtime = DateTime.Now, hgtype = hgtype, kefuname = entry.salename, msgtype = "电话录音", type = "PHONE", uname = "", voiceUrl = entry.voiceurl, word = entry.word }; db.Hg_Violation.Add(model); entry.hgstatus = 1; entry.hgtime = DateTime.Now; entry.iswg = 1; db.SaveChanges(); } result = true; } } catch (Exception e) { erros.Add(e.ToString()); LogHelper.Error(e.ToString()); } return result; } #endregion #region 违规记录 /// /// 电话录音 /// /// /// /// /// public List GetViolationList(ref Laypage pager, Hg_Violation_Query param, ref ValidationErrors erros) { List list = new List(); try { using (var db = new zxdContext()) { var query = db.Hg_Violation.AsQueryable(); if (param.stime.HasValue)//时间 { query = query.Where(m => m.hgtime > param.stime.Value); } if (param.etime.HasValue)//时间 { param.etime = param.etime.Value.AddDays(1); query = query.Where(m => m.hgtime < param.etime.Value); } if (!string.IsNullOrEmpty(param.deptcodes))//部门 { if (param.deptcodes.IndexOf(",") > -1) { var deptcode = param.deptcodes.Split(','); query = query.Where(m => deptcode.Contains(m.detpcode)); } else query = query.Where(m => m.detpcode == param.deptcodes); } if (param.eid.HasValue)//工作微信username { query = query.Where(m => m.eid == param.eid.Value); } if (!string.IsNullOrEmpty(param.touser))//客户username { query = query.Where(m => m.touser.Contains(param.touser) || m.cusname.Contains(param.touser) || m.resid.Contains(param.touser)); } if (!string.IsNullOrEmpty(param.fromuser))//客服 { query = query.Where(m => m.fromer.Contains(param.fromuser) || m.kefuname.Contains(param.fromuser)); } if (!string.IsNullOrEmpty(param.type)) { query = query.Where(m => m.type == param.type); } if (!string.IsNullOrEmpty(param.hgtype)) { query = query.Where(m => m.hgtype == param.hgtype); } if (!string.IsNullOrEmpty(param.hgsubtype)) { query = query.Where(m => m.hgsubtype == param.hgsubtype); } query = query.OrderByDescending(m => m.id); PagerUtil.SetPager(ref query, ref pager); list = query.ToList(); } } catch (Exception e) { erros.Add(e.ToString()); LogHelper.Error(e.ToString()); } return list; } public bool ViolationDelete(int id, ref ValidationErrors erros) { bool result = false; try { using (var db = new zxdContext()) { var entry = db.Hg_Violation.FirstOrDefault(m => m.id == id); if (entry == null) { erros.Add($"参数错误!"); } if (entry.type == "WX") { var wx = db.Hg_Wx_Message.FirstOrDefault(m => m.id == entry.hgid); if (wx != null) { wx.iswg = 0; db.SaveChanges(); } } else if (entry.type == "QW") { var qw = db.Hg_Qw_Message.FirstOrDefault(m => m.id == entry.hgid); if (qw != null) { qw.iswg = 0; db.SaveChanges(); } } else if (entry.type == "PHONE") { var phone = db.Hg_Record_Message.FirstOrDefault(m => m.id == entry.hgid); if (phone != null) { phone.iswg = 0; db.SaveChanges(); } } db.Hg_Violation.Remove(entry); db.SaveChanges(); } } catch (Exception e) { erros.Add(e.ToString()); LogHelper.Error(e.ToString()); } return result; } #endregion } }