1160 lines
55 KiB
C#
1160 lines
55 KiB
C#
using CRM.Core.DTO;
|
|
using CRM.Core.DTO.Ord;
|
|
using Ninject;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Web.Mvc;
|
|
using WX.CRM.BLL.Base;
|
|
using WX.CRM.BLL.Res;
|
|
using WX.CRM.BLL.Util;
|
|
using WX.CRM.Common;
|
|
using WX.CRM.IBLL.Csvr;
|
|
using WX.CRM.IBLL.Ord;
|
|
using WX.CRM.IBLL.Qc;
|
|
using WX.CRM.IBLL.Quality;
|
|
using WX.CRM.IBLL.Res;
|
|
using WX.CRM.IBLL.Util;
|
|
using WX.CRM.IBLL.Wx;
|
|
using WX.CRM.Model.Entity;
|
|
using WX.CRM.Model.Enum;
|
|
using WX.CRM.Model.MAP;
|
|
using WX.CRM.Model.QueryMap;
|
|
using WX.CRM.WebHelper;
|
|
|
|
namespace WX.CRM.WEB.Controllers.Quality
|
|
{
|
|
public class ComplainCustomerController : BaseController
|
|
{
|
|
ValidationErrors errors = new ValidationErrors();
|
|
|
|
[Inject]
|
|
public IQC_COMPLAIN_SERVICEMEMO qc_Complain_ServiceMemo_BL { get; set; }
|
|
|
|
[Inject]
|
|
public IORD_MEMO_Q ord_memo_Q { get; set; }
|
|
[Inject]
|
|
public ICSVR_CALLRECORD CallRecord_BL { get; set; }
|
|
[Inject]
|
|
public ISecurityHelper sHelper { get; set; }
|
|
[Inject]
|
|
public IRES_CUSTOMERDETAIL _customerDetail { get; set; }
|
|
|
|
private readonly IQC_CUSTOMERCOMPLAIN complain;
|
|
private readonly IQC_CUSTOMERCOMPLAIN_Q complain_Q;
|
|
private readonly ICACHE_Q cache_Q_bll;
|
|
private readonly IQC_COMPLAINTDICT_Q _qc_complaintDict_Q;
|
|
private readonly IRES_CUSTOMER_Q res_Customer_Q_BL;
|
|
private readonly IORD_SERVICEMEMO_Q serviceMemoBiz_Q;
|
|
private readonly IQC_COMPLAIN_NOTICE _complainNotice;
|
|
private readonly IWX_SZZYORDER _order;
|
|
private RES_RESOURCEMOBILE_BL res_ResourceMobile_BL = new RES_RESOURCEMOBILE_BL();
|
|
public ComplainCustomerController(IQC_CUSTOMERCOMPLAIN _complain, IQC_CUSTOMERCOMPLAIN_Q _complain_Q, ICACHE_Q _cache_Q_bll, IQC_COMPLAINTDICT_Q qc_complaintDict_Q, IRES_CUSTOMER_Q res_Customer_Q_BL, IORD_SERVICEMEMO_Q serviceMemoBiz_Q, IQC_COMPLAIN_NOTICE complainNotice, IWX_SZZYORDER order)
|
|
{
|
|
this.complain = _complain;
|
|
this.complain_Q = _complain_Q;
|
|
this.cache_Q_bll = _cache_Q_bll;
|
|
_qc_complaintDict_Q = qc_complaintDict_Q;
|
|
this.res_Customer_Q_BL = res_Customer_Q_BL;
|
|
this.serviceMemoBiz_Q = serviceMemoBiz_Q;
|
|
this._complainNotice = complainNotice;
|
|
this._order = order;
|
|
}
|
|
|
|
#region 首页
|
|
[AuthorizeRedirect(Roles = InitRights.CONST_投诉客户列表)]
|
|
public ActionResult Index()
|
|
{
|
|
ToolBar tool = new ToolBar();
|
|
//tool.AllowButton("Other1");
|
|
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.投诉客户列表, userRightId);
|
|
tool.AllowButton(toolbtn);
|
|
tool.AddOtherButton("Other2", "标记处理", "icon-add", "btnFlag_Click", true);
|
|
tool.AddOtherButton("Other3", "审核", "icon-check", "btnCheck_Click", true);
|
|
tool.AddOtherButton("Other5", "提交处理过程", "icon-edit", "btnUpdate_Click", true);
|
|
tool.AddOtherButton("Other4", "删除", "icon-remove", "btnDelete_Click", true);
|
|
tool.AddOtherButton("Other1", "导出", "icon-export", "btnExport_Click", false);
|
|
ViewBag.ToolBar = tool;
|
|
|
|
var pager = new Pager() { page = 1, rows = 10 };
|
|
var tableId = "tablist";
|
|
var tab = new Table(tableId);
|
|
tab.AddHiddenHeadCol("PKID", "PKID");
|
|
tab.AddHeadCol("RESID", "", "客户ID ");
|
|
tab.AddHeadCol("CUSTOMERNAME", "", "客户姓名");
|
|
tab.AddHeadCol("REASON", "", "投诉内容");
|
|
tab.AddHeadCol("LEVELNAME", "", "投诉级别");
|
|
tab.AddHeadCol("FROMTYPENAME", "", "投诉来源");
|
|
tab.AddHeadCol("STATUSNAME", "", "状态");
|
|
tab.AddHeadCol("GROUPNAME", "", "组别");
|
|
tab.AddHeadCol("SALESUSER", "", "申请人");
|
|
tab.AddHeadCol("CTIME", "", "投诉时间");
|
|
tab.AddHeadRow();
|
|
|
|
ViewBag.List = tab.GetTable() + Pagination.GetPage(pager, tableId, "5,8,10,15");
|
|
|
|
ViewBag.inneruserid = UserId;
|
|
ViewBag.userGroupId = userGroupId;
|
|
ViewBag.saleDeptId = saleDeptId;
|
|
ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
|
|
return View();
|
|
}
|
|
#endregion
|
|
|
|
#region 列表
|
|
[HttpPost]
|
|
[AuthorizeRedirect(Roles = InitRights.CONST_投诉客户列表)]
|
|
public JsonResult GetHtmlList(Pager pg, string columns,QueryUserComboDto usercomboDto)
|
|
{
|
|
string resid = Request["ResId"];
|
|
string stime = Request["STime"];
|
|
string etime = Request["ETime"];
|
|
string fromType = Request["ComplainFromType"];
|
|
string level = Request["ComplainLevel"];
|
|
string groupId = Request["groupId"];
|
|
decimal userId = Request["userId"].GetDecimal(0);
|
|
decimal? status = null;
|
|
if (!string.IsNullOrEmpty(Request["status"]))
|
|
{
|
|
status = decimal.Parse(Request["status"]);
|
|
}
|
|
|
|
DateTime? time1 = null;
|
|
DateTime? time2 = null;
|
|
|
|
if (!string.IsNullOrWhiteSpace(stime))
|
|
time1 = Convert.ToDateTime(stime);
|
|
if (!string.IsNullOrWhiteSpace(etime))
|
|
time2 = Convert.ToDateTime(etime).AddDays(1);
|
|
|
|
try
|
|
{
|
|
var list = complain_Q.GetList_CustomerComplain(ref pg, resid, fromType, level, status, time1, time2, usercomboDto);
|
|
Table tb = new Table(columns, true);
|
|
tb.gridPager = pg;
|
|
|
|
foreach (var model in list)
|
|
{
|
|
tb.AddHiddenCol(model.customerComplain.map_PKID);
|
|
var resid_Link = string.Format("<a href=\"javascript:parent.ChildAddTab('{0}', '{1}', '')\">{2}</a>"
|
|
, "客户详细"
|
|
, "/Csvr/CustomerInfo/CustomerDetail?resid=" + model.customerComplain.map_RESID
|
|
, model.customerComplain.map_RESID);
|
|
tb.AddCol(resid_Link);
|
|
tb.AddCol(model.CUSTOMERNAME);
|
|
tb.AddCol(model.customerComplain.map_REASON);
|
|
tb.AddCol(model.LEVELNAME);
|
|
tb.AddCol(model.FROMTYPENAME == "1" ? "电话投诉" : "微信投诉");
|
|
tb.AddCol(GetComplainStatus(model.customerComplain.map_STATUS));
|
|
tb.AddCol(InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(model.customerComplain.map_SALESID)));
|
|
tb.AddCol(InnerUserHelper.Instance.GetEidAndTrueName(model.customerComplain.map_SALESID));
|
|
tb.AddCol(model.customerComplain.map_CTIME);
|
|
tb.AddRow();
|
|
}
|
|
var json = new
|
|
{
|
|
totalPages = pg.totalPages,
|
|
totalRows = pg.totalRows,
|
|
rowsList = tb.GetRows()
|
|
};
|
|
return Json(json, JsonRequestBehavior.AllowGet);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error("ComplainCustomerController【GetHtmlList】:" + ex.Message + ex.StackTrace);
|
|
return JsonHandler.ManageMessage(ex.Message, false);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 添加
|
|
[AuthorizeRedirect(Roles = InitRights.CONST_投诉客户列表)]
|
|
public ActionResult Add(string resid)
|
|
{
|
|
QC_CUSTOMERCOMPLAIN_Extend extend = new QC_CUSTOMERCOMPLAIN_Extend();
|
|
QC_CUSTOMERCOMPLAIN model = new QC_CUSTOMERCOMPLAIN();
|
|
|
|
if (!string.IsNullOrWhiteSpace(resid))
|
|
model.map_RESID = resid;
|
|
|
|
extend.customerComplain = model;
|
|
return View(extend);
|
|
}
|
|
|
|
[AuthorizeRedirect(Roles = InitRights.CONST_投诉客户列表)]
|
|
[HttpPost]
|
|
public JsonResult Add(QC_CUSTOMERCOMPLAIN_Extend model, decimal? recordId, string userIds)
|
|
{
|
|
if (ModelState.IsValid)
|
|
{
|
|
//LogHelper.Info("model:" + model.ToJson());
|
|
//LogHelper.Info("recordid:" + recordId.Value);
|
|
//return JsonHandler.ManageMessage("提交成功", true);
|
|
var complaintDict = _qc_complaintDict_Q.GetList_ComplaintDict().First(p => p.DICTVALUE == model.customerComplain.COMPLAINLEVEL);
|
|
if (complaintDict == null)
|
|
{
|
|
errors.Add("参数错误,请稍后再试!");
|
|
return JsonHandler.InsertMessage(errors, false);
|
|
}
|
|
|
|
var now = DateTime.Now;
|
|
model.customerComplain.PKID = new SEQUENCES_BL().Seq_base_get();
|
|
model.customerComplain.map_SALESID = UserId;
|
|
model.customerComplain.map_CTIME = now;
|
|
model.customerComplain.map_STATUS = -1;
|
|
model.customerComplain.UNHANDLEWARNTIME = now.AddHours(complaintDict.UNHANDLEWARN);
|
|
model.customerComplain.HANDLEWARNTIME = now.AddHours(complaintDict.HANDLEWARN);
|
|
model.customerComplain.COMPANYCODE = companyCode;
|
|
model.customerComplain.map_RECORDID = recordId;
|
|
|
|
var dto = new ComplainDto
|
|
{
|
|
pkid = model.customerComplain.PKID,
|
|
resid = model.customerComplain.RESID,
|
|
salesid = model.customerComplain.SALESID,
|
|
reason = model.customerComplain.REASON,
|
|
status = model.customerComplain.STATUS,
|
|
fromtype = model.customerComplain.FROMTYPE,
|
|
complainlevel = model.customerComplain.COMPLAINLEVEL,
|
|
ctime = model.customerComplain.CTIME,
|
|
utime = model.customerComplain.UTIME,
|
|
serverid = model.customerComplain.SERVERID,
|
|
filename = model.customerComplain.FILENAME,
|
|
recordid = model.customerComplain.RECORDID,
|
|
recorddate = model.customerComplain.RECORDDATE,
|
|
tradecode = model.customerComplain.TRADECODE,
|
|
deptauditpkid = model.customerComplain.DEPTAUDITPKID,
|
|
complianguid = model.customerComplain.COMPLIANGUID,
|
|
unhandlewarntime = model.customerComplain.UNHANDLEWARNTIME,
|
|
handlewarntime = model.customerComplain.HANDLEWARNTIME,
|
|
companycode = model.customerComplain.COMPANYCODE,
|
|
};
|
|
var url = cache_Q_bll.GetValue_Parameter(Parameter.Core_ZxdService_ComplainAdd);
|
|
var json = sHelper.createSignEncodingStr(dto.ToJson(), SecurityHelper.OrderClientIdKey);
|
|
|
|
var retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8);
|
|
|
|
var retmessage = WebHelper.JsonHelper.JsonDivertToObj<retMsg>(retmsg);
|
|
if (retmessage.result)
|
|
{
|
|
try
|
|
{
|
|
var ret = complain.Create(ref errors, model.customerComplain);
|
|
|
|
#region
|
|
var data = new List<QC_COMPLAIN_NOTICE>();
|
|
|
|
if (string.IsNullOrEmpty(userIds))
|
|
{
|
|
//先获取订单
|
|
var orderList = _order.GetList(p => p.RESID == model.customerComplain.RESID).OrderByDescending(p => p.ORDERID);
|
|
var order = orderList.FirstOrDefault();
|
|
if (order != null)
|
|
{
|
|
//获取下单人(下单人可能就是责任人,加入提醒)
|
|
data.Add(new QC_COMPLAIN_NOTICE()
|
|
{
|
|
PKID = new SEQUENCES_BL().Seq_base_get(),
|
|
INNERUSERID = order.INNERUSERID.Value,
|
|
EID = InnerUserHelper.Instance.GetEidByUserId(order.INNERUSERID.Value).Value,
|
|
TYPE = 1,
|
|
CONTENT = "有您的投诉信息,请尽快处理!",
|
|
CTIME = DateTime.Now,
|
|
ISLOOK = 0,
|
|
LOOKTIME = null,
|
|
COMPLAINID = model.customerComplain.PKID
|
|
});
|
|
|
|
//经理提醒
|
|
var gId = InnerUserHelper.Instance.GetGroupId(order.INNERUSERID);
|
|
var leader = cache_Q_bll.GetGroupleaders();
|
|
var group = leader.Where(p => p.INNERGROUPID == gId);
|
|
foreach (var item in group)
|
|
{
|
|
data.Add(new QC_COMPLAIN_NOTICE()
|
|
{
|
|
PKID = new SEQUENCES_BL().Seq_base_get(),
|
|
INNERUSERID = item.INNERUSERID,
|
|
EID = InnerUserHelper.Instance.GetEidByUserId(item.INNERUSERID).Value,
|
|
TYPE = 2,
|
|
CONTENT = "有投诉信息,点击查看",
|
|
CTIME = DateTime.Now,
|
|
ISLOOK = 0,
|
|
LOOKTIME = null,
|
|
COMPLAINID = model.customerComplain.PKID
|
|
});
|
|
}
|
|
|
|
//部门经理
|
|
var deptManageId = cache_Q_bll.GetDeptManager(gId);
|
|
if (deptManageId > 0)
|
|
{
|
|
data.Add(new QC_COMPLAIN_NOTICE()
|
|
{
|
|
PKID = new SEQUENCES_BL().Seq_base_get(),
|
|
INNERUSERID = deptManageId,
|
|
EID = InnerUserHelper.Instance.GetEidByUserId(deptManageId).Value,
|
|
TYPE = 3,
|
|
CONTENT = "客服提交了投诉信息,点击查看",
|
|
CTIME = DateTime.Now,
|
|
ISLOOK = 0,
|
|
LOOKTIME = null,
|
|
COMPLAINID = model.customerComplain.PKID
|
|
});
|
|
}
|
|
}
|
|
//通知合规人员
|
|
var users = cache_Q_bll.GetValue_Parameter(Model.Enum.Parameter.Sys_HG_Users);
|
|
if (!string.IsNullOrEmpty(users))
|
|
{
|
|
var userArr = users.Split(',');
|
|
foreach (var item in userArr)
|
|
{
|
|
data.Add(new QC_COMPLAIN_NOTICE()
|
|
{
|
|
PKID = new SEQUENCES_BL().Seq_base_get(),
|
|
INNERUSERID = decimal.Parse(item),
|
|
EID = InnerUserHelper.Instance.GetEidByUserId(decimal.Parse(item)).Value,
|
|
TYPE = 4,
|
|
CONTENT = "客服提交了投诉信息,点击查看",
|
|
CTIME = DateTime.Now,
|
|
ISLOOK = 0,
|
|
LOOKTIME = null,
|
|
COMPLAINID = model.customerComplain.PKID
|
|
});
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//如果选了要通知的员工
|
|
var userList = userIds.Split(',');
|
|
foreach (var item in userList)
|
|
{
|
|
data.Add(new QC_COMPLAIN_NOTICE()
|
|
{
|
|
PKID = new SEQUENCES_BL().Seq_base_get(),
|
|
INNERUSERID = decimal.Parse(item),
|
|
EID = InnerUserHelper.Instance.GetEidByUserId(decimal.Parse(item)).Value,
|
|
TYPE = 4,
|
|
CONTENT = "客服提交了投诉信息,点击查看",
|
|
CTIME = DateTime.Now,
|
|
ISLOOK = 0,
|
|
LOOKTIME = null,
|
|
COMPLAINID = model.customerComplain.PKID
|
|
});
|
|
}
|
|
}
|
|
|
|
_complainNotice.AddList(data);
|
|
#endregion
|
|
|
|
#region 打标签
|
|
//var mobile = res_ResourceMobile_BL.GetNumberByResId(model.customerComplain.RESID);
|
|
//if (!string.IsNullOrEmpty(mobile))
|
|
//{
|
|
// var userEnterUrl = cache_Q_bll.GetValue_Parameter("userEnterUrl");
|
|
// if (!string.IsNullOrEmpty(userEnterUrl))
|
|
// {
|
|
// var rsp = Utility.PostAjaxData(userEnterUrl, new { mobile }.ToJson(), Encoding.UTF8);
|
|
// LogHelper.Info("rsp:" + rsp);
|
|
// var obj = JsonConvert.DeserializeAnonymousType(rsp, new { ret = -1, message = string.Empty });
|
|
// if (obj.ret == 0)
|
|
// {
|
|
// LogHelper.Info("调用成功,开始调用写标签接口");
|
|
// var handelLabelUrl = cache_Q_bll.GetValue_Parameter("handelLabelUrl");
|
|
// if (!string.IsNullOrEmpty(handelLabelUrl))
|
|
// {
|
|
// var para2 = new { tags = 0, appuserid = mobile };
|
|
// var rsp2 = Utility.PostAjaxData(handelLabelUrl, para2.ToJson(), Encoding.UTF8);
|
|
// var obj2 = JsonConvert.DeserializeAnonymousType(rsp2, new { ret = -1, message = string.Empty });
|
|
// LogHelper.Info(obj2.ToJson());
|
|
// }
|
|
// }
|
|
// else
|
|
// {
|
|
// return Json(new { ret = false, message = "已经注册过了!" }, JsonRequestBehavior.AllowGet);
|
|
// }
|
|
// }
|
|
//}
|
|
#endregion
|
|
}
|
|
catch (Exception xx)
|
|
{
|
|
LogHelper.Error("投诉记录添加到本地库异常:" + xx.ToString());
|
|
}
|
|
return JsonHandler.ManageMessage("提交成功", true);
|
|
}
|
|
else
|
|
return JsonHandler.ManageMessage("提交失败,请稍后重试或者联系管理员!", false);
|
|
}
|
|
else
|
|
{
|
|
return JsonHandler.ValidateFailMessage();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 编辑
|
|
[AuthorizeRedirect(Roles = InitRights.CONST_投诉客户列表)]
|
|
public ActionResult Edit(string id, string tag, string resid)
|
|
{
|
|
QC_CUSTOMERCOMPLAIN_Extend extend = new QC_CUSTOMERCOMPLAIN_Extend();
|
|
QC_CUSTOMERCOMPLAIN model = new QC_CUSTOMERCOMPLAIN();
|
|
if (tag != "Add")
|
|
{
|
|
model = complain_Q.GetModel_CustomerComplain(Convert.ToDecimal(id));
|
|
var tableId = "tablist";
|
|
var tab = new Table(tableId);
|
|
tab.AddHeadCol("MEMOID", "", "工单Id ", false);
|
|
tab.AddHeadCol("RECOMPLAINLEVEL", "", "处理后等级", false);
|
|
tab.AddHeadCol("MEMO", "", "处理结果 ", false);
|
|
tab.AddHeadCol("INNERUSERID", "", "客服 ", false);
|
|
tab.AddHeadCol("CTIME", "", "时间 ", false);
|
|
tab.AddHeadCol("RECORDID", "", "录音ID", false);
|
|
tab.AddHeadRow();
|
|
Pager pager = new Pager { page = 1, rows = int.MaxValue };
|
|
var list = qc_Complain_ServiceMemo_BL.GetList(ref pager, model.PKID);
|
|
foreach (var item in list)
|
|
{
|
|
tab.AddCol(item.serviceMemo.MEMOID);
|
|
tab.AddCol(item.ComplainLevelName);
|
|
tab.AddCol(item.serviceMemo.MEMO);
|
|
tab.AddCol(InnerUserHelper.Instance.GetEidAndTrueName(item.serviceMemo.INNERUSERID));
|
|
tab.AddCol(item.serviceMemo.CTIME);
|
|
tab.AddCol(item.serviceMemo.RECORDID);
|
|
tab.AddRow();
|
|
}
|
|
ViewBag.complainServiceMemoList = tab.GetTable();
|
|
ViewBag.memoList = list.FirstOrDefault() != null ? list.FirstOrDefault().serviceMemo.MEMOID : string.Empty;
|
|
ViewBag.recordList = list.FirstOrDefault() != null ? list.FirstOrDefault().serviceMemo.RECORDID : string.Empty;
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(resid))
|
|
model.map_RESID = resid;
|
|
|
|
extend.customerComplain = model;
|
|
return View(extend);
|
|
}
|
|
|
|
[AuthorizeRedirect(Roles = InitRights.CONST_投诉客户列表)]
|
|
[HttpPost]
|
|
public JsonResult Edit(QC_CUSTOMERCOMPLAIN_Extend model, string memoId, string recordId, string reComplainLevel, string memo)
|
|
{
|
|
if (ModelState.IsValid)
|
|
{
|
|
var tag = Request.Form["hid_tag"];
|
|
if (tag == "Add")
|
|
{
|
|
var complaintDict = _qc_complaintDict_Q.GetList_ComplaintDict().First(p => p.DICTVALUE == model.customerComplain.COMPLAINLEVEL);
|
|
if (complaintDict == null)
|
|
{
|
|
errors.Add("参数错误,请稍后再试!");
|
|
return JsonHandler.InsertMessage(errors, false);
|
|
}
|
|
|
|
var now = DateTime.Now;
|
|
model.customerComplain.PKID = new SEQUENCES_BL().Seq_base_get();
|
|
model.customerComplain.map_SALESID = UserId;
|
|
model.customerComplain.map_CTIME = now;
|
|
model.customerComplain.map_STATUS = -1;
|
|
model.customerComplain.UNHANDLEWARNTIME = now.AddHours(complaintDict.UNHANDLEWARN);
|
|
model.customerComplain.HANDLEWARNTIME = now.AddHours(complaintDict.HANDLEWARN);
|
|
model.customerComplain.COMPANYCODE = Utility.GetSettingByKey("DataClientCode");
|
|
|
|
var dto = new ComplainDto
|
|
{
|
|
pkid = model.customerComplain.PKID,
|
|
resid = model.customerComplain.RESID,
|
|
salesid = model.customerComplain.SALESID,
|
|
reason = model.customerComplain.REASON,
|
|
status = model.customerComplain.STATUS,
|
|
fromtype = model.customerComplain.FROMTYPE,
|
|
complainlevel = model.customerComplain.COMPLAINLEVEL,
|
|
ctime = model.customerComplain.CTIME,
|
|
utime = model.customerComplain.UTIME,
|
|
serverid = model.customerComplain.SERVERID,
|
|
filename = model.customerComplain.FILENAME,
|
|
recordid = model.customerComplain.RECORDID,
|
|
recorddate = model.customerComplain.RECORDDATE,
|
|
tradecode = model.customerComplain.TRADECODE,
|
|
deptauditpkid = model.customerComplain.DEPTAUDITPKID,
|
|
complianguid = model.customerComplain.COMPLIANGUID,
|
|
unhandlewarntime = model.customerComplain.UNHANDLEWARNTIME,
|
|
handlewarntime = model.customerComplain.HANDLEWARNTIME,
|
|
companycode = model.customerComplain.COMPANYCODE,
|
|
};
|
|
var url = cache_Q_bll.GetValue_Parameter(Parameter.Core_ZxdService_ComplainAdd);
|
|
var json = sHelper.createSignEncodingStr(dto.ToJson(), SecurityHelper.OrderClientIdKey);
|
|
|
|
var retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8);
|
|
|
|
var retmessage = WebHelper.JsonHelper.JsonDivertToObj<retMsg>(retmsg);
|
|
if (retmessage.result)
|
|
{
|
|
try
|
|
{
|
|
var ret = complain.Create(ref errors, model.customerComplain);
|
|
|
|
#region
|
|
var data = new List<QC_COMPLAIN_NOTICE>();
|
|
var leader = cache_Q_bll.GetGroupleaders();
|
|
var group = leader.Where(p => p.INNERGROUPID == userGroupId);
|
|
foreach (var item in group)
|
|
{
|
|
data.Add(new QC_COMPLAIN_NOTICE()
|
|
{
|
|
PKID = new SEQUENCES_BL().Seq_base_get(),
|
|
INNERUSERID = item.INNERUSERID,
|
|
EID = InnerUserHelper.Instance.GetEidByUserId(item.INNERUSERID).Value,
|
|
TYPE = 0,
|
|
CONTENT = "您的组员提交了投诉信息,请跟踪",
|
|
CTIME = DateTime.Now,
|
|
ISLOOK = 0,
|
|
LOOKTIME = null,
|
|
COMPLAINID = model.customerComplain.PKID
|
|
});
|
|
}
|
|
|
|
//查询是否需要通知合规人员
|
|
if (complaintDict.HGWARN == 1)
|
|
{
|
|
var users = cache_Q_bll.GetValue_Parameter(Model.Enum.Parameter.Sys_HG_Users);
|
|
if (!string.IsNullOrEmpty(users))
|
|
{
|
|
var userArr = users.Split(',');
|
|
foreach (var item in userArr)
|
|
{
|
|
data.Add(new QC_COMPLAIN_NOTICE()
|
|
{
|
|
PKID = new SEQUENCES_BL().Seq_base_get(),
|
|
INNERUSERID = decimal.Parse(item),
|
|
EID = InnerUserHelper.Instance.GetEidByUserId(decimal.Parse(item)).Value,
|
|
TYPE = 0,
|
|
CONTENT = "客服提交了投诉信息,请跟踪",
|
|
CTIME = DateTime.Now,
|
|
ISLOOK = 0,
|
|
LOOKTIME = null,
|
|
COMPLAINID = model.customerComplain.PKID
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
_complainNotice.AddList(data);
|
|
#endregion
|
|
}
|
|
catch (Exception xx)
|
|
{
|
|
LogHelper.Error("投诉记录添加到本地库异常:" + xx.ToString());
|
|
}
|
|
return JsonHandler.ManageMessage("提交成功", true);
|
|
}
|
|
else
|
|
return JsonHandler.ManageMessage("提交失败,请稍后重试或者联系管理员!", false);
|
|
|
|
}
|
|
//审核
|
|
else if (tag == "flow")
|
|
{
|
|
var serviceMemo = new QC_COMPLAIN_SERVICEMEMO
|
|
{
|
|
PKID = new SEQUENCES_BL().Seq_base_get(),
|
|
COMPLAINID = model.customerComplain.PKID,
|
|
CTIME = DateTime.Now,
|
|
INNERUSERID = UserId,
|
|
MEMO = memo,
|
|
MEMOID = memoId,
|
|
RECOMPLAINLEVEL = reComplainLevel,
|
|
RECORDID = recordId
|
|
};
|
|
|
|
var dto = new ComplainDetialDto
|
|
{
|
|
pkid = serviceMemo.PKID,
|
|
complainid = serviceMemo.COMPLAINID,
|
|
memoid = serviceMemo.MEMOID,
|
|
recomplainlevel = serviceMemo.RECOMPLAINLEVEL,
|
|
inneruserid = serviceMemo.INNERUSERID,
|
|
memo = serviceMemo.MEMO,
|
|
ctime = serviceMemo.CTIME,
|
|
recordid = serviceMemo.RECORDID
|
|
};
|
|
var url = cache_Q_bll.GetValue_Parameter(Parameter.Core_ZxdService_ComplainFlow);
|
|
var json = sHelper.createSignEncodingStr(dto.ToJson(), SecurityHelper.OrderClientIdKey);
|
|
|
|
var retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8);
|
|
var retmessage = WebHelper.JsonHelper.JsonDivertToObj<retMsg>(retmsg);
|
|
if (retmessage.result)
|
|
{
|
|
try
|
|
{
|
|
qc_Complain_ServiceMemo_BL.Add(serviceMemo);
|
|
model.customerComplain.map_UTIME = DateTime.Now;
|
|
complain.Check(ref errors, model.customerComplain);
|
|
|
|
//if(model.customerComplain.COMPLAINLEVEL != reComplainLevel)
|
|
//{
|
|
// //处理之后的等级不一样了,才重新打标签
|
|
// #region 打标签
|
|
// var mobile = res_ResourceMobile_BL.GetNumberByResId(model.customerComplain.RESID);
|
|
// if (!string.IsNullOrEmpty(mobile))
|
|
// {
|
|
// var handelLabelUrl = cache_Q_bll.GetValue_Parameter("handelLabelUrl");
|
|
// if (!string.IsNullOrEmpty(handelLabelUrl))
|
|
// {
|
|
// var rsp2 = Utility.HttpPostData(handelLabelUrl, "tags=0&deleteTags=0&appuserid=" + mobile, Encoding.UTF8);
|
|
// var obj2 = JsonConvert.DeserializeAnonymousType(rsp2, new { ret = -1, message = string.Empty });
|
|
// LogHelper.Info(obj2.ToJson());
|
|
// }
|
|
// }
|
|
// #endregion
|
|
//}
|
|
}
|
|
catch (Exception xx)
|
|
{
|
|
LogHelper.Error("投诉过程记录添加到本地库异常:" + xx.ToString());
|
|
}
|
|
return JsonHandler.ManageMessage("提交成功", true);
|
|
}
|
|
else
|
|
return JsonHandler.ManageMessage("提交失败,请稍后重试或者联系管理员!", false);
|
|
}
|
|
else
|
|
{
|
|
return JsonHandler.ManageMessage("参数错误!", false);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return JsonHandler.ValidateFailMessage();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 修改状态
|
|
[AuthorizeRedirect(Roles = InitRights.CONST_投诉客户列表)]
|
|
[HttpPost]
|
|
public JsonResult FlagStatus(decimal id, decimal? status)
|
|
{
|
|
var cp = complain_Q.GetModel_CustomerComplain(id);
|
|
if (cp == null)
|
|
{
|
|
return JsonHandler.ManageMessage("未找到数据,请重试!", false);
|
|
}
|
|
if (cp.STATUS == 1)
|
|
{
|
|
return JsonHandler.ManageMessage("该投诉已经解决,请确认!", false);
|
|
}
|
|
if (status.HasValue)
|
|
{
|
|
if (status.Value == 1)
|
|
{
|
|
var flow = qc_Complain_ServiceMemo_BL.Get(p => p.COMPLAINID == cp.PKID);
|
|
if (flow == null)
|
|
return JsonHandler.ManageMessage("客服还没提交投诉过程,不能确认!", false);
|
|
}
|
|
}
|
|
cp.STATUS = 0;
|
|
if (status.HasValue)
|
|
{
|
|
cp.STATUS = status.Value;
|
|
}
|
|
|
|
var dto = new ComplainStatusDto
|
|
{
|
|
pkid = id,
|
|
status = cp.STATUS
|
|
};
|
|
var url = cache_Q_bll.GetValue_Parameter(Parameter.Core_ZxdService_ComplainStatus);
|
|
var json = sHelper.createSignEncodingStr(dto.ToJson(), SecurityHelper.OrderClientIdKey);
|
|
|
|
var retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8);
|
|
var retmessage = WebHelper.JsonHelper.JsonDivertToObj<retMsg>(retmsg);
|
|
if (retmessage.result)
|
|
{
|
|
try
|
|
{
|
|
complain.Update(ref errors, cp);
|
|
}
|
|
catch (Exception xx)
|
|
{
|
|
LogHelper.Error("投诉更新状态到本地库异常:" + xx.ToString());
|
|
}
|
|
return JsonHandler.ManageMessage("操作成功", true);
|
|
}
|
|
else
|
|
return JsonHandler.ManageMessage("提交失败,请稍后重试或者联系管理员!", false);
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 审核
|
|
[HttpGet]
|
|
public ActionResult Check(decimal id)
|
|
{
|
|
var model = new QC_CustomerComplain_Check_View();
|
|
|
|
var customerComplain = complain_Q.GetModel_CustomerComplain(id);
|
|
model.CustomerComplain = customerComplain;
|
|
|
|
var serviceMemoView = new QC_COMPLAIN_SERVICEMEMO_VIEW
|
|
{
|
|
MemoList = new List<ORD_MemoQuery>(),
|
|
RecordList = new List<CSVR_CALLRECORD>()
|
|
};
|
|
if (customerComplain.STATUS != -1)
|
|
{
|
|
var serviceMemo = qc_Complain_ServiceMemo_BL.Get(p => p.COMPLAINID.Value == customerComplain.PKID);
|
|
|
|
if (serviceMemo != null)
|
|
{
|
|
serviceMemoView.PKID = serviceMemo.PKID;
|
|
serviceMemoView.COMPLAINID = serviceMemo.COMPLAINID;
|
|
serviceMemoView.MEMOID = serviceMemo.MEMOID;
|
|
serviceMemoView.RECOMPLAINLEVEL = serviceMemo.RECOMPLAINLEVEL;
|
|
serviceMemoView.INNERUSERID = serviceMemo.INNERUSERID;
|
|
serviceMemoView.MEMO = serviceMemo.MEMO;
|
|
serviceMemoView.CTIME = serviceMemo.CTIME;
|
|
serviceMemoView.RECORDID = serviceMemo.RECORDID;
|
|
|
|
Pager pager = new Pager() { page = 1, rows = int.MaxValue };
|
|
var memoList = serviceMemoBiz_Q.GetList(ref pager, serviceMemo.MEMOID, null, null,null, 0, 0, null, new QueryUserComboDto(null, null, null, null));
|
|
serviceMemoView.MemoList = memoList;
|
|
|
|
var recordArr = serviceMemo.RECORDID.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(decimal.Parse).ToList();
|
|
var recordList = CallRecord_BL.GetList(p => recordArr.Contains(p.RECORDID.Value)).ToList();
|
|
|
|
serviceMemoView.RecordList = recordList;
|
|
}
|
|
}
|
|
|
|
model.ServiceMemo = serviceMemoView;
|
|
|
|
return View(model);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 删除
|
|
/// <summary>
|
|
/// 删除数据
|
|
/// </summary>
|
|
/// <param name="pkid"></param>
|
|
/// <returns></returns>
|
|
[AuthorizeRedirect(InitRights.CONST_投诉客户列表)]
|
|
public JsonResult Delete(string pkid)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(pkid))
|
|
return JsonHandler.ManageMessage("参数错误", false);
|
|
bool result = complain.Delete(ref errors, Convert.ToDecimal(pkid));
|
|
return JsonHandler.DeleteMessage(errors, result);
|
|
}
|
|
#endregion
|
|
|
|
#region 导出
|
|
//[AuthorizeToolBar(InitRights.CONST_客户列表, InitToolBar.CONST_Other1)]
|
|
[AuthorizeRedirect(Roles = InitRights.CONST_投诉客户列表)]
|
|
public FileResult Export( QueryUserComboDto usercomboDto)
|
|
{
|
|
string resid = Request["ResId"];
|
|
string stime = Request["STime"];
|
|
string etime = Request["ETime"];
|
|
string fromType = Request["ComplainFromType"];
|
|
string level = Request["ComplainLevel"];
|
|
string groupId = Request["groupId"];
|
|
decimal userId = Request["userId"].GetDecimal(0);
|
|
decimal? status = null;
|
|
if (!string.IsNullOrEmpty(Request["status"]))
|
|
{
|
|
status = decimal.Parse(Request["status"]);
|
|
}
|
|
|
|
DateTime? time1 = null;
|
|
DateTime? time2 = null;
|
|
|
|
if (!string.IsNullOrWhiteSpace(stime))
|
|
time1 = Convert.ToDateTime(stime);
|
|
if (!string.IsNullOrWhiteSpace(etime))
|
|
time2 = Convert.ToDateTime(etime).AddDays(1);
|
|
|
|
Pager pg = new Pager() { rows = int.MaxValue, page = 1 };
|
|
string checkedFilds = PageRequest.GetQueryString("checkedFilds");
|
|
string checkedTitle = PageRequest.GetQueryString("checkedTitles");
|
|
var list = complain_Q.GetList_CustomerComplain(ref pg, resid, fromType, level, status, time1, time2, usercomboDto);
|
|
foreach (var model in list)
|
|
{
|
|
if (model.customerComplain.SALESID > 0)
|
|
{
|
|
model.GROUPNAME = InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(model.customerComplain.SALESID));
|
|
model.SALESUSER = InnerUserHelper.Instance.GetEidAndTrueName(model.customerComplain.SALESID);
|
|
}
|
|
model.STATUSNAME = model.customerComplain.STATUS == 1 ? "已审核" : "未审核";
|
|
}
|
|
return File(ExcelHelper.ExportListModelToExcel<QC_CUSTOMERCOMPLAIN_Extend>(list, "投诉客户列表", 60000, checkedFilds, checkedTitle, null), "application/ms-excel", PageRequest.GetDlownLoadName("投诉客户列表.xls"));
|
|
}
|
|
#endregion
|
|
|
|
#region 客户详细页跳转投诉明细查询
|
|
public ActionResult Detail(string customerId)
|
|
{
|
|
var pager = new Pager() { page = 1, rows = 10 };
|
|
var tableId = "tablist";
|
|
var tab = new Table(tableId);
|
|
tab.AddHeadCol("RESID", "", "客户ID");
|
|
tab.AddHeadCol("CUSTOMERNAME", "", "客户姓名");
|
|
tab.AddHeadCol("TRADECODE", "", "交易商代码 ");
|
|
tab.AddHeadCol("REASON", "", "投诉内容");
|
|
tab.AddHeadCol("LEVELNAME", "", "投诉级别", true);
|
|
tab.AddHeadCol("FROMTYPENAME", "", "投诉来源", true);
|
|
tab.AddHeadCol("STATUSNAME", "", "状态");
|
|
tab.AddHeadCol("SALESUSER", "", "申请人");
|
|
tab.AddHeadCol("CTIME", "", "投诉时间", true);
|
|
tab.AddHeadRow();
|
|
|
|
ViewBag.List = tab.GetTable() + Pagination.GetPage(pager, tableId, "5,8,10,15");
|
|
ViewBag.CustomerId = customerId;
|
|
return View();
|
|
}
|
|
|
|
public JsonResult GetDetailHtmlList(Pager pg, string columns)
|
|
{
|
|
string customerId = Request["customerId"];
|
|
|
|
try
|
|
{
|
|
var list = complain_Q.GetList_CustomerComplainByCustomerId(ref pg, customerId);
|
|
Table tb = new Table(columns, true);
|
|
tb.gridPager = pg;
|
|
|
|
foreach (var model in list)
|
|
{
|
|
tb.AddCol(model.customerComplain.map_RESID);
|
|
tb.AddCol(model.CUSTOMERNAME);
|
|
tb.AddCol(model.customerComplain.map_TRADECODE);
|
|
tb.AddCol(model.customerComplain.map_REASON);
|
|
tb.AddCol(model.LEVELNAME);
|
|
tb.AddCol(model.FROMTYPENAME);
|
|
tb.AddCol(model.customerComplain.map_STATUS == 1 ? "已审核" : "未审核");
|
|
tb.AddCol(InnerUserHelper.Instance.GetEidAndTrueName(model.customerComplain.map_SALESID));
|
|
tb.AddCol(model.customerComplain.map_CTIME);
|
|
tb.AddRow();
|
|
}
|
|
var json = new
|
|
{
|
|
totalPages = pg.totalPages,
|
|
totalRows = pg.totalRows,
|
|
rowsList = tb.GetRows()
|
|
};
|
|
return Json(json, JsonRequestBehavior.AllowGet);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error("ComplainCustomerController【GetDetailHtmlList】:" + ex.Message + ex.StackTrace);
|
|
return JsonHandler.ManageMessage(ex.Message, false);
|
|
}
|
|
}
|
|
|
|
public FileResult ExportDetail()
|
|
{
|
|
string customerId = Request.QueryString["customerId"];
|
|
|
|
Pager pg = new Pager() { rows = int.MaxValue, page = 1 };
|
|
string checkedFilds = PageRequest.GetQueryString("checkedFilds");
|
|
string checkedTitle = PageRequest.GetQueryString("checkedTitles");
|
|
var list = complain_Q.GetList_CustomerComplainByCustomerId(ref pg, customerId);
|
|
foreach (var model in list)
|
|
{
|
|
if (model.customerComplain.SALESID > 0)
|
|
model.SALESUSER = InnerUserHelper.Instance.GetEidAndTrueName(model.customerComplain.SALESID);
|
|
model.STATUSNAME = model.customerComplain.STATUS == 1 ? "已审核" : "未审核";
|
|
}
|
|
return File(ExcelHelper.ExportListModelToExcel<QC_CUSTOMERCOMPLAIN_Extend>(list, "客户投诉明细", 60000, checkedFilds, checkedTitle, null), "application/ms-excel", PageRequest.GetDlownLoadName("客户投诉明细.xls"));
|
|
}
|
|
#endregion
|
|
|
|
#region 选择服务工单
|
|
public ActionResult ResServiceMemoIndex()
|
|
{
|
|
return View();
|
|
}
|
|
public JsonResult GetResServiceMemoList(Pager pager, string columns, string ResId, string MemoType, decimal? pageType, string IsValid)
|
|
{
|
|
List<ORD_MemoQuery> list = new List<ORD_MemoQuery>();
|
|
#region 获取数据
|
|
switch (Convert.ToInt32(MemoType))
|
|
{
|
|
case (int)WX.CRM.Model.Enum.EnumMemoType.服务工单:
|
|
list = ord_memo_Q.GetMemoListByResId(ref pager, ResId, WX.CRM.Model.Enum.EnumMemoType.服务工单, IsValid);
|
|
break;
|
|
case (int)WX.CRM.Model.Enum.EnumMemoType.特殊订单:
|
|
list = ord_memo_Q.GetMemoListByResId(ref pager, ResId, WX.CRM.Model.Enum.EnumMemoType.特殊订单, IsValid);
|
|
break;
|
|
case (int)WX.CRM.Model.Enum.EnumMemoType.销售工单:
|
|
list = ord_memo_Q.GetMemoListByResId(ref pager, ResId, WX.CRM.Model.Enum.EnumMemoType.销售工单, IsValid);
|
|
break;
|
|
case (int)WX.CRM.Model.Enum.EnumMemoType.意向工单:
|
|
list = ord_memo_Q.GetMemoListByResId(ref pager, ResId, WX.CRM.Model.Enum.EnumMemoType.意向工单, IsValid);
|
|
break;
|
|
case 7:
|
|
list = ord_memo_Q.GetAllMemoListByResId(int.MaxValue, ResId, IsValid);//获取所有工单
|
|
//list = redisFactory.LoadMemo(ResId, IsValid);
|
|
break;
|
|
}
|
|
#endregion
|
|
|
|
ICACHE_Q ui = DataCacheHelper.GetCache();
|
|
List<ORD_MEMOTYPE> memoTypeList = ui.GetList_MemoType(0);//缓存读取 工单大类数据
|
|
List<ORD_MEMOSUBTYPE> memoSubTypeList = ui.GetList_MemoSubType(0);//缓存读取 获取所有工单小类数据
|
|
List<ORD_MEMOSTYLE> styleList = DataCacheHelper.GetCache().GetList_MemoStyle();
|
|
|
|
Dictionary<int, string> Memo_Type = OperationUtil.GetDicFromEnum<WX.CRM.Model.Enum.EnumMemoType>();
|
|
ORD_MEMOTYPE memotype = null;
|
|
ORD_MEMOSUBTYPE memosubType = null;
|
|
|
|
var data = new List<ORD_MemoView>();
|
|
foreach (var item in list)
|
|
{
|
|
memotype = memoTypeList.FirstOrDefault(m => m.TYPEID == item.MEMOTYPEID);
|
|
memosubType = memoSubTypeList.FirstOrDefault(m => m.SUBTYPEID == item.MEMOSUBTYPEID);
|
|
var memo = new ORD_MemoView(item.MEMOID, memotype == null ? string.Empty : memotype.TYPENAME, memosubType == null ? string.Empty : memosubType.TYPENAME, item.STRCONTENT, InnerUserHelper.Instance.EidAndName(item.INNERUSERID), item.CTIME.Value.ToString());
|
|
data.Add(memo);
|
|
}
|
|
var json = new
|
|
{
|
|
total = pager.totalRows,
|
|
rows = data
|
|
};
|
|
return Json(json, JsonRequestBehavior.AllowGet);
|
|
}
|
|
#endregion
|
|
|
|
#region 投诉记录对应的服务工单列表
|
|
public ActionResult ComplainServiceDetail(decimal complainId)
|
|
{
|
|
var tableId = "tablist";
|
|
var tab = new Table(tableId);
|
|
tab.AddHeadCol("MEMOID", "", "工单Id ", false);
|
|
tab.AddHeadCol("RECOMPLAINLEVEL", "", "处理后等级", false);
|
|
tab.AddHeadCol("MEMO", "", "处理结果 ", false);
|
|
tab.AddHeadCol("INNERUSERID", "", "客服 ", false);
|
|
tab.AddHeadCol("CTIME", "", "时间 ", false);
|
|
tab.AddHeadCol("RECORDID", "", "录音ID", false);
|
|
tab.AddHeadRow();
|
|
Pager pager = new Pager();
|
|
pager.page = 1;
|
|
pager.rows = 500;
|
|
var list = qc_Complain_ServiceMemo_BL.GetList(ref pager, complainId);
|
|
foreach (var item in list)
|
|
{
|
|
tab.AddCol(item.serviceMemo.MEMOID);
|
|
tab.AddCol(item.ComplainLevelName);
|
|
tab.AddCol(item.serviceMemo.MEMO);
|
|
tab.AddCol(InnerUserHelper.Instance.GetEidAndTrueName(item.serviceMemo.INNERUSERID));
|
|
tab.AddCol(item.serviceMemo.CTIME);
|
|
tab.AddCol(item.serviceMemo.RECORDID);
|
|
tab.AddRow();
|
|
}
|
|
ViewBag.complainServiceMemoList = tab.GetTable();
|
|
return View();
|
|
}
|
|
#endregion
|
|
|
|
#region 选择录音
|
|
public ActionResult HgRecord(string resid)
|
|
{
|
|
ViewBag.resid = resid;
|
|
//Table tab = new WebHelper.Table("tablist");
|
|
//tab.isCheckbox = true;
|
|
//tab.AddHeadCol("RECORDID", "", "编号");
|
|
//tab.AddHeadCol("RESID", "", "客户ID");
|
|
//tab.AddHeadCol("CALLTYPE", "", "呼叫类型");
|
|
//tab.AddHeadCol("SERVICENUMBER", "", "主叫号码");
|
|
//tab.AddHeadCol("TELNUMBERLAST4", "", "被叫号码");
|
|
//tab.AddHeadCol("TIMELENGTH", "", "时长(秒)");
|
|
//tab.AddHeadCol("TIMESTART", "", "开始时间");
|
|
//tab.AddHeadCol("SALESEID", "", "受理人");
|
|
//tab.AddHeadRow();
|
|
|
|
//ViewBag.gridTable = tab.GetHead();
|
|
return View();
|
|
}
|
|
public JsonResult GetCsvrRecordList(string resid, string columns)
|
|
{
|
|
var resids = new List<string>();
|
|
var reslist = res_Customer_Q_BL.GetListByResId(resid);
|
|
if (reslist != null)
|
|
{
|
|
resids = reslist.Select(m => m.RESID).ToList();
|
|
}
|
|
|
|
var data = new List<ComplainView>();
|
|
var list = CallRecord_BL.GetListByResIds(resids);
|
|
if (list != null)
|
|
{
|
|
foreach (var item in list)
|
|
{
|
|
var strIsTran = "";
|
|
if (item.ISTRAN.ToString() == "1")
|
|
{
|
|
strIsTran = "(转接)";
|
|
}
|
|
var callType = string.Empty;
|
|
var serviceNumber = string.Empty;
|
|
var telnumberLast4 = string.Empty;
|
|
if (item.CALLTYPE == 1)
|
|
{
|
|
callType = "呼出" + strIsTran;
|
|
serviceNumber = item.SERVICENUMBER;
|
|
telnumberLast4 = item.TELNUMBERLAST4;
|
|
}
|
|
else
|
|
{
|
|
callType = "呼入" + strIsTran;
|
|
serviceNumber = item.TELNUMBERLAST4;
|
|
telnumberLast4 = item.SERVICENUMBER;
|
|
}
|
|
|
|
data.Add(new ComplainView(item.RECORDID.ToString(), item.RESID, callType, serviceNumber, telnumberLast4, item.TIMELENGTH.ToString(), item.TIMESTART.ToString(), InnerUserHelper.Instance.GetEidAndTrueName(InnerUserHelper.Instance.GetUserIdByEid(item.SALESEID))));
|
|
}
|
|
}
|
|
var json = new
|
|
{
|
|
rows = data
|
|
};
|
|
return Json(json, JsonRequestBehavior.AllowGet);
|
|
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region
|
|
//public JsonResult SetTag(string evt, string resid)
|
|
//{
|
|
// if (string.IsNullOrEmpty(evt) && string.IsNullOrEmpty(resid))
|
|
// {
|
|
// return Json(new { ret = false, message = "参数错误!" }, JsonRequestBehavior.AllowGet);
|
|
// }
|
|
// var mobile = res_ResourceMobile_BL.GetNumberByResId(resid);
|
|
// if (string.IsNullOrEmpty(mobile))
|
|
// {
|
|
// return Json(new { ret = false, message = "参数错误!" }, JsonRequestBehavior.AllowGet);
|
|
// }
|
|
// if (evt == "add")
|
|
// {
|
|
// //var userEnterUrl = cache_Q_bll.GetValue_Parameter("userEnterUrl");
|
|
// //if (string.IsNullOrEmpty(userEnterUrl))
|
|
// //{
|
|
// // return Json(new { ret = false, message = "参数错误!" }, JsonRequestBehavior.AllowGet);
|
|
// //}
|
|
// //LogHelper.Info("url:" + userEnterUrl);
|
|
// //var rsp = Utility.HttpPostData(userEnterUrl, "mobile=" + mobile, Encoding.UTF8);
|
|
// //LogHelper.Info("rsp:" + rsp);
|
|
// //var obj = JsonConvert.DeserializeAnonymousType(rsp, new { ret = -1, message = string.Empty });
|
|
// //if (obj.ret == 0)
|
|
// //{
|
|
// // LogHelper.Info("调用成功,开始调用写标签接口");
|
|
// // var handelLabelUrl = cache_Q_bll.GetValue_Parameter("handelLabelUrl");
|
|
// // if (string.IsNullOrEmpty(handelLabelUrl))
|
|
// // {
|
|
// // return Json(new { ret = false, message = "参数错误!" }, JsonRequestBehavior.AllowGet);
|
|
// // }
|
|
|
|
// // var rsp2 = Utility.HttpPostData(handelLabelUrl, "tags=0&appuserid=" + mobile, Encoding.UTF8);
|
|
// // var obj2 = JsonConvert.DeserializeAnonymousType(rsp2, new { ret = -1, message = string.Empty });
|
|
// // if (obj2.ret == 0)
|
|
// // {
|
|
// var customerDetail = _customerDetail.Get(p => p.RESID == resid);
|
|
// if (customerDetail != null)
|
|
// {
|
|
// customerDetail.SPECIALMEMO = "风险";
|
|
// _customerDetail.Update(customerDetail);
|
|
// }
|
|
// // }
|
|
// // else
|
|
// // {
|
|
// // return Json(new { ret = false, message = "打标签失败!" }, JsonRequestBehavior.AllowGet);
|
|
// // }
|
|
// //}
|
|
// //else
|
|
// //{
|
|
// // return Json(new { ret = false, message = "已经注册过了!" }, JsonRequestBehavior.AllowGet);
|
|
// //}
|
|
// }
|
|
// else if (evt == "delete")
|
|
// {
|
|
// //var handelLabelUrl = cache_Q_bll.GetValue_Parameter("handelLabelUrl");
|
|
// //if (string.IsNullOrEmpty(handelLabelUrl))
|
|
// //{
|
|
// // return Json(new { ret = false, message = "参数错误!" }, JsonRequestBehavior.AllowGet);
|
|
// //}
|
|
|
|
// //var rsp2 = Utility.HttpPostData(handelLabelUrl, "deleteTags=0&appuserid=" + mobile, Encoding.UTF8);
|
|
// //var obj2 = JsonConvert.DeserializeAnonymousType(rsp2, new { ret = -1, message = string.Empty });
|
|
// //if (obj2.ret == 0)
|
|
// //{
|
|
// var customerDetail = _customerDetail.Get(p => p.RESID == resid);
|
|
// if (customerDetail != null)
|
|
// {
|
|
// customerDetail.SPECIALMEMO = null;
|
|
// _customerDetail.Update(customerDetail);
|
|
// }
|
|
// //}
|
|
// //else
|
|
// //{
|
|
// // return Json(new { ret = false, message = "打标签失败!" }, JsonRequestBehavior.AllowGet);
|
|
// //}
|
|
// }
|
|
// else
|
|
// {
|
|
// return Json(new { ret = false, message = "参数错误!" }, JsonRequestBehavior.AllowGet);
|
|
// }
|
|
// return Json(new { ret = true, message = "success" }, JsonRequestBehavior.AllowGet);
|
|
//}
|
|
#endregion
|
|
|
|
private string GetComplainStatus(decimal status)
|
|
{
|
|
if (status == -1)
|
|
return "未处理";
|
|
else if (status == 0)
|
|
return "处理中";
|
|
else if (status == 1)
|
|
return "已处理";
|
|
else return "未知";
|
|
}
|
|
|
|
public class ComplainView
|
|
{
|
|
public ComplainView(string rECORDID, string rESID, string cALLTYPE, string sERVICENUMBER, string tELNUMBERLAST4, string tIMELENGTH, string tIMESTART, string sALESEID)
|
|
{
|
|
RECORDID = rECORDID;
|
|
RESID = rESID;
|
|
CALLTYPE = cALLTYPE;
|
|
SERVICENUMBER = sERVICENUMBER;
|
|
TELNUMBERLAST4 = tELNUMBERLAST4;
|
|
TIMELENGTH = tIMELENGTH;
|
|
TIMESTART = tIMESTART;
|
|
SALESEID = sALESEID;
|
|
}
|
|
|
|
public string RECORDID { get; set; }
|
|
public string RESID { get; set; }
|
|
public string CALLTYPE { get; set; }
|
|
public string SERVICENUMBER { get; set; }
|
|
public string TELNUMBERLAST4 { get; set; }
|
|
public string TIMELENGTH { get; set; }
|
|
public string TIMESTART { get; set; }
|
|
public string SALESEID { get; set; }
|
|
}
|
|
|
|
public class Tag
|
|
{
|
|
public int tagid { get; set; }
|
|
public string starttime { get; set; }
|
|
public string endtime { get; set; }
|
|
}
|
|
|
|
}
|
|
}
|