using Ninject;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web.Mvc;
using WX.CRM.Common;
using WX.CRM.IBLL.Base;
using WX.CRM.IBLL.Csvr;
using WX.CRM.IBLL.Ww;
using WX.CRM.IBLL.Wx;
using WX.CRM.Model.Ww;
using WX.CRM.WebHelper;
namespace WX.CRM.WEB.Controllers.WeiXin
{
public class MyIllegalRecordController : BaseController
{
IWX_MyIllegalRecord wx_myillegalrecord;
[Inject]
public IWw_huser hh_huser { get; set; }
[Inject]
public ICSVR_CALLRECORD_Q _CSVR_CALLRECORD_Q { get; set; }
[Inject]
public IBAS_PARAMETER_Q _BAS_PARAMETER_Q { get; set; }
public MyIllegalRecordController(IWX_MyIllegalRecord _wx_myillegalrecord)
{
this.wx_myillegalrecord = _wx_myillegalrecord;
}
#region 微信消息违规
//
// GET: /MyIllegalRecord/
[AuthorizeRedirect(Roles = InitRights.CONST_我的违规记录)]
//
public ActionResult MesageIllegal()
{
//ToolBar
ToolBar tool = new ToolBar();
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.我的违规记录, userRightId);
tool.AllowButton(toolbtn);
ViewBag.ToolBar = tool;
Pager pager = new Pager() { page = 1, rows = 10 };
string tableId = "tablist";
Table tab = new Table(tableId);
tab.AddHeadCol("JOBUSERNAME", "", "工作微信");
tab.AddHeadCol("alias", "", "工作微信号");
tab.AddHeadCol("USERNAME", "", "客户用户名");
tab.AddHeadCol("nickname", "", "昵称");
tab.AddHeadCol("conremark", "", "客户备注");
tab.AddHeadCol("MESSAGE", "40%", "消息");
tab.AddHeadCol("ORIGINALTIME", "", "消息时间");
tab.AddHeadCol("MSGSOURCE", "", "消息类型 ");
tab.AddHeadCol("REMARK", "", "违规细则 ");
tab.AddHeadCol("CTIME", "", "违规添加时间");
tab.AddHeadCol("BIGTYPE", "", "违规类型");
tab.AddHeadCol("PENALTY", "", "违规金额");
tab.AddHeadCol("RESULT", "", "处理结果");
tab.AddHeadRow();
ViewBag.gridTable = tab.GetHead() + Pagination.GetPage(pager, tableId, "10,20,50");
return View();
}
public ActionResult LookNotice(decimal type, DateTime? stime, DateTime? etime)
{
wx_myillegalrecord.UpadteNoticeLookStatus(UserId, type);
if (type == 1)
return Redirect("/WeiXin/Message/CountCompliance?stime=" + stime + "&etime=" + etime);
else if (type == 2)
return Redirect("/WeiXin/Message/ComplianceIndex?stime=" + stime + "&etime=" + etime);
else if (type == 3)
return Redirect("/WeiXin/MyIllegalRecord/MesageIllegal");
return View();
}
///
/// 按照条件获取数据
///
/// 分页信息
///
[AuthorizeRedirect(Roles = InitRights.CONST_我的违规记录)]
public JsonResult GetHtmlList(Pager pager, string columns, DateTime? stime, DateTime? etime, decimal ntype)
{
if (etime.HasValue)
{
etime = etime.Value.AddDays(1);
}
DataSet list = wx_myillegalrecord.GetMyIllegalRecord(ref pager, UserId, stime, etime, ntype);
Table table = new Table(columns, true);
table.gridPager = pager;
foreach (DataRow row in list.Tables[1].Rows)
{
table.AddCol(row["JOBUSERNAME"]);
table.AddCol(row["alias"]);
table.AddCol(row["USERNAME"]);
table.AddCol(row["nickname"]);
table.AddCol(row["conremark"]);
table.AddCol(row["MESSAGE"]);
if (row["ORIGINALTIME"] != DBNull.Value)
table.AddCol(Convert.ToDateTime(row["ORIGINALTIME"]).ToUnityString(2));
else
table.AddCol("");
table.AddCol(GetType(string.Format("{0}", row["MSGSOURCE"])));
table.AddCol(row["REMARK"]);
table.AddCol(Convert.ToDateTime(row["CTIME"]).ToUnityString(2));
table.AddCol(row["BIGTYPE"].ToString());
table.AddCol(row["PENALTY"]);
table.AddRow();
}
var json = new
{
totalPages = pager.totalPages,
totalRows = pager.totalRows,
rowsList = table.GetRows()
};
return Json(json, JsonRequestBehavior.AllowGet);
}
#endregion
#region 微信录音违规
//
// GET: /MyIllegalRecord/
[AuthorizeRedirect(Roles = InitRights.CONST_我的违规记录)]
//
public ActionResult RecodeIllegal()
{
//ToolBar
ToolBar tool = new ToolBar();
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.我的违规记录, userRightId);
tool.AllowButton(toolbtn);
ViewBag.ToolBar = tool;
Pager pager = new Pager() { page = 1, rows = 10 };
string tableId = "tablist";
Table tab = new Table(tableId);
tab.AddHeadCol("JOBUSERNAME", "", "录音ID");
tab.AddHeadCol("alias", "", "客户ID");
tab.AddHeadCol("ORIGINALTIME", "", "时间");
//tab.AddHeadCol("MSGSOURCE", "", "消息类型 ");
tab.AddHeadCol("REMARK", "", "违规备注 ");
tab.AddHeadCol("CTIME", "", "违规添加时间");
tab.AddHeadCol("BIGTYPE", "", "违规类型");
tab.AddHeadCol("PENALTY", "", "违规金额");
tab.AddHeadCol("bofang", "", "播放");
tab.AddHeadRow();
ViewBag.gridTable = tab.GetHead() + Pagination.GetPage(pager, tableId, "10,20,50");
return View();
}
///
/// 按照条件获取数据
///
/// 分页信息
///
[AuthorizeRedirect(Roles = InitRights.CONST_我的违规记录)]
public JsonResult RecodeGetHtmlList(Pager pager, string columns, DateTime? stime, DateTime? etime, decimal ntype)
{
if (etime.HasValue)
{
etime = etime.Value.AddDays(1);
}
DataSet list = wx_myillegalrecord.GetMyIllegalRecord(ref pager, UserId, stime, etime, ntype);
Table table = new Table(columns, true);
table.gridPager = pager;
foreach (DataRow row in list.Tables[1].Rows)
{
table.AddCol(row["RECORDID"]);
table.AddCol(row["RESID"]);
if (row["ORIGINALTIME"] != DBNull.Value)
table.AddCol(Convert.ToDateTime(row["ORIGINALTIME"]).ToUnityString(2));
else
table.AddCol("");
//table.AddCol(GetType(string.Format("{0}", row["MSGSOURCE"])));
table.AddCol(row["REMARK"]);
table.AddCol(Convert.ToDateTime(row["CTIME"]).ToUnityString(2));
table.AddCol(getBigTypeStr(row["BIGTYPE"].ToString()));
table.AddCol(row["PENALTY"]);
string cti;
string playurl = _getCallRecordUrl(row["ServerID"].ToString(), row["FileName"].ToString(), out cti);
var playcrl = string.Format("",
playurl, row["RECORDID"], cti == null ? "" : cti);
playcrl += string.Format("
", row["RECORDID"], playurl);
table.AddCol(playcrl);
table.AddRow();
}
var json = new
{
totalPages = pager.totalPages,
totalRows = pager.totalRows,
rowsList = table.GetRows()
};
return Json(json, JsonRequestBehavior.AllowGet);
}
///
/// 获取录音地址
///
///
private string _getCallRecordUrl(string _ServerID, string _FileName, out string cti)
{
var playurl = "";
cti = "";
var _IAD_localhostCallRecord = _BAS_PARAMETER_Q.GetModel_Patameter("ICSR_IAD_localhostCallRecord");
if (null != _IAD_localhostCallRecord)
{
var FuturesRecordServerUrl = _IAD_localhostCallRecord.PARAVALUE;
playurl = FuturesRecordServerUrl + "?serverID=" + _ServerID + "&file=" + _FileName.Replace("\\", "/");
cti = _CSVR_CALLRECORD_Q.Sys_Environment_CTI_VER();
if (cti != null && cti == ((int)WX.CRM.Model.Enum.CTI_VER.深海捷移动坐席).ToString())
{
playurl = FuturesRecordServerUrl + "?file=" + _FileName.Replace("\\", "/");
}
if (cti != null && cti == ((int)WX.CRM.Model.Enum.CTI_VER.深海捷固定坐席).ToString())
{
var shjctiinterface = Utility.GetSettingByKey("shj");
playurl = shjctiinterface + "?action=record_download&filename=/var/spool/asterisk/monitor/" + _FileName.Replace("\\", "/");
}
if (cti != null && cti == ((int)WX.CRM.Model.Enum.CTI_VER.和声).ToString())
{
playurl = FuturesRecordServerUrl + "?file=" + _FileName;
}
if (cti != null && cti == ((int)WX.CRM.Model.Enum.CTI_VER.艾讯).ToString())
{
playurl = FuturesRecordServerUrl + _FileName;
}
if (cti != null && cti == ((int)WX.CRM.Model.Enum.CTI_VER.艾讯new).ToString())
{
_IAD_localhostCallRecord = _BAS_PARAMETER_Q.GetModel_Patameter("ICSR_IAD_localhostCallRecord_AX");
var filename = _FileName;
if (null != _IAD_localhostCallRecord)
{
playurl = _IAD_localhostCallRecord.PARAVALUE + (filename.StartsWith("UP") ? "/home/" + filename : filename);
playurl = playurl.Replace("\\", "/");
}
}
}
return playurl;
}
#endregion
private string GetType(string ntype)
{
string typemsg = "";
if (string.IsNullOrEmpty(ntype))
return "";
if (ntype == "1")
typemsg = "私聊消息";
if (ntype == "2")
typemsg = "群发消息";
return typemsg;
}
private string getBigTypeStr(string bigType)
{
string str = "";
if (bigType == "MessageComplianceA")
{
str = "一类违规";
}
else if (bigType == "MessageComplianceB")
{
str = "二类违规";
}
else if (bigType == "MessageComplianceC")
{
str = "三类违规";
}
else if (bigType == "MessageComplianceD")
{
str = "四类违规";
}
return str;
}
#region 微信消息违规
//
// GET: /MyIllegalRecord/
[AuthorizeRedirect(Roles = InitRights.CONST_我的违规记录)]
//
public ActionResult QWllegal()
{
//ToolBar
ToolBar tool = new ToolBar();
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.我的违规记录, userRightId);
tool.AllowButton(toolbtn);
ViewBag.ToolBar = tool;
Pager pager = new Pager() { page = 1, rows = 10 };
string tableId = "tablist";
Table tab = new Table(tableId);
tab.AddHeadCol("corpid", "", "企业号");
tab.AddHeadCol("HHUSERID", "", "企微ID");
tab.AddHeadCol("HHUSERNAME", "", "名称");
tab.AddHeadCol("EXTUSERID", "10%", "客户ID");
tab.AddHeadCol("EXTNAME", "", "客户名称");
tab.AddHeadCol("MESSAGE", "25%", "消息");
tab.AddHeadCol("MSGTIME", "", "消息时间");
tab.AddHeadCol("REMARK", "", "违规细则 ");
tab.AddHeadCol("CTIME", "", "违规添加时间");
tab.AddHeadCol("BIGTYPE", "", "违规类型");
tab.AddHeadCol("PENALTY", "", "违规金额");
tab.AddHeadCol("RESULT", "", "处理结果");
tab.AddHeadRow();
ViewBag.gridTable = tab.GetHead() + Pagination.GetPage(pager, tableId, "10,20,50");
return View();
}
///
/// 按照条件获取数据
///
/// 分页信息
///
[AuthorizeRedirect(Roles = InitRights.CONST_我的违规记录)]
public JsonResult GetQWllegalHtmlList(Pager pager, string columns, DateTime? stime, DateTime? etime, decimal ntype)
{
if (etime.HasValue)
{
etime = etime.Value.AddDays(1);
}
DataSet list = wx_myillegalrecord.GetMyIllegalRecord(ref pager, UserId, stime, etime, ntype);
Table table = new Table(columns, true);
table.gridPager = pager;
List corlist = hh_huser.Corp_Get();//企业号
foreach (DataRow row in list.Tables[1].Rows)
{
string corpid = row["corpid"].ToString();
Ww_Corp corp = corlist.FirstOrDefault(m => m.corpid == corpid);
if (corp != null)
{
table.AddCol(corp.corpname);
}
else
{
table.AddCol("");
}
table.AddCol(row["HHUSERID"]);
table.AddCol(row["HHUSERNAME"]);
table.AddCol(row["EXTUSERID"]);
table.AddCol(row["EXTNAME"]);
table.AddCol(row["MESSAGE"]);
if (row["ORIGINALTIME"] != DBNull.Value)
table.AddCol(Convert.ToDateTime(row["ORIGINALTIME"]).ToUnityString(2));
else
table.AddCol("");
//table.AddCol(GetType(string.Format("{0}", row["MSGSOURCE"])));
table.AddCol(row["REMARK"]);
table.AddCol(Convert.ToDateTime(row["CTIME"]).ToUnityString(2));
table.AddCol(row["BIGTYPE"].ToString());
table.AddCol(row["PENALTY"]);
table.AddCol(row["RESULT"]);
table.AddRow();
}
var json = new
{
totalPages = pager.totalPages,
totalRows = pager.totalRows,
rowsList = table.GetRows()
};
return Json(json, JsonRequestBehavior.AllowGet);
}
#endregion
}
}