483 lines
21 KiB
C#
483 lines
21 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web.Mvc;
|
|
using WX.CRM.BLL.Base;
|
|
using WX.CRM.Common;
|
|
using WX.CRM.IBLL.QH;
|
|
using WX.CRM.Model.Entity;
|
|
using WX.CRM.WebHelper;
|
|
|
|
namespace WX.CRM.WEB.Controllers.QH
|
|
{
|
|
public class CustomerSaleUserController : BaseController
|
|
{
|
|
//
|
|
// GET: /CstomerSaleUser/
|
|
private IQH_CUSTOMER_SALEUSER _iqh_CustomerSaleUser;
|
|
private IQH_CUSTOMER_SALEUSER_LOG _iqh_Customer_SaleUser_Log;
|
|
public CustomerSaleUserController(IQH_CUSTOMER_SALEUSER iQH_CUSTOMER_SALEUSER, IQH_CUSTOMER_SALEUSER_LOG iQH_CUSTOMER_SALEUSER_LOG)
|
|
{
|
|
this._iqh_CustomerSaleUser = iQH_CUSTOMER_SALEUSER;
|
|
this._iqh_Customer_SaleUser_Log = iQH_CUSTOMER_SALEUSER_LOG;
|
|
}
|
|
[AuthorizeRedirect(Roles = InitRights.CONST_期货客服分配)]
|
|
|
|
#region 首页
|
|
public ActionResult Index()
|
|
{
|
|
var tool = new ToolBar();
|
|
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.期货客服分配, userRightId);
|
|
tool.AllowButton(toolbtn);
|
|
tool.AddOtherButton("Other1", "提交", "icon-flag", "Save_Click", true);
|
|
tool.AddOtherButton("Other2", "重新绑定", "icon-flag", "Bind_Click", true);
|
|
tool.AddOtherButton("Other3", "批量重新绑定", "icon-flag", "BatchBind_Click", true);
|
|
tool.AddOtherButton("Other4", "回收", "icon-export", "Recover_Click", true);
|
|
tool.AddOtherButton("Other5", "导出", "icon-export", "export_Click", true);
|
|
ViewBag.ToolBar = tool;
|
|
|
|
Pager pager = new Pager() { page = 1, rows = 10 };
|
|
string tableId = "tablist";
|
|
Table tab = new Table(tableId);
|
|
tab.AddHiddenHeadCol("PKID", "PKID");
|
|
tab.AddHeadCol("USERACCOUNT", "", "资金账号");
|
|
tab.AddHeadCol("CTIME", "", "分配时间");
|
|
tab.AddHeadCol("GID", "", "所属客服组");
|
|
tab.AddHeadCol("INNERUSERNAME", "", "客服");
|
|
tab.AddHeadCol("INNERUSERID", "", "操作");
|
|
tab.AddHeadRow();
|
|
ViewBag.List = tab.GetTable() + Pagination.GetPage(pager, tableId, "5,8,10,15");
|
|
return View();
|
|
}
|
|
public JsonResult GetHtml(Pager pager, string userAccount, decimal? userId, decimal bindType, string columns)
|
|
{
|
|
try
|
|
{
|
|
decimal? innerUserId = null;
|
|
if (userId.HasValue)
|
|
{
|
|
innerUserId = InnerUserHelper.Instance.GetUserIdByEid(userId);
|
|
}
|
|
List<QH_CUSTOMER_SALEUSER> list = _iqh_CustomerSaleUser.GetList(ref pager, userAccount, innerUserId, bindType);
|
|
Table table = new Table(columns, true);
|
|
table.gridPager = pager;
|
|
foreach (QH_CUSTOMER_SALEUSER model in list)
|
|
{
|
|
string groupname = InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(model.INNERUSERID));
|
|
table.AddHiddenCol(model.PKID);
|
|
table.AddCol(model.USERACCOUNT);
|
|
table.AddCol(model.CTIME > Convert.ToDateTime("1900-01-01") ? model.CTIME.ToString("yyyy-MM-dd HH:mm:ss") : "");
|
|
table.AddCol(groupname);
|
|
table.AddCol(InnerUserHelper.Instance.EidAndName(model.INNERUSERID));
|
|
table.AddCol(model.INNERUSERID == 0 ? string.Format("客服工号:<input type='text' name='CustomerSaleUser' oldTUser='{2}' useraccount='{1}' value='{0}' style='width:100px;'/>", "", model.USERACCOUNT, "") : InnerUserHelper.Instance.GetEid(model.INNERUSERID));
|
|
table.AddRow();
|
|
|
|
}
|
|
var json = new
|
|
{
|
|
totalPages = pager.totalPages,
|
|
totalRows = pager.totalRows,
|
|
rowsList = table.GetRows()
|
|
};
|
|
return Json(json, JsonRequestBehavior.AllowGet);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex.ToString());
|
|
return JsonHandler.ManageMessage(ex.Message, false);
|
|
}
|
|
}
|
|
#endregion
|
|
#region 重新绑定
|
|
[HttpGet]
|
|
[AuthorizeRedirect(Roles = InitRights.CONST_期货客服分配)]
|
|
public ActionResult Bind(string userAccount)
|
|
{
|
|
QH_CUSTOMER_SALEUSER model = _iqh_CustomerSaleUser.Get(p => p.USERACCOUNT == userAccount);
|
|
if (model != null)
|
|
{
|
|
List<QH_CUSTOMER_SALEUSER_LOG> list = _iqh_Customer_SaleUser_Log.GetList(p => p.USERACCOUNT == userAccount).OrderByDescending(p => p.CTIME).ToList();
|
|
if (list.Count > 0)
|
|
{
|
|
string tableId = "tablist";
|
|
Table tab = new Table(tableId);
|
|
tab.AddHeadCol("USERACCOUNT", "", "资金账号");
|
|
tab.AddHeadCol("OLDEID", "", "旧客服工号");
|
|
tab.AddHeadCol("NEWEID", "", "新客服工号");
|
|
tab.AddHeadCol("STARTDATE", "", "分配时间");
|
|
tab.AddHeadCol("OPERATORID", "", "操作人");
|
|
tab.AddHeadRow();
|
|
foreach (var item in list)
|
|
{
|
|
tab.AddCol(item.USERACCOUNT);
|
|
tab.AddCol(item.OLDEID);
|
|
tab.AddCol(item.NEWEID);
|
|
tab.AddCol(item.STARTDATE.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
tab.AddCol(InnerUserHelper.Instance.GetUsername(item.OPERATORID));
|
|
tab.AddRow();
|
|
}
|
|
ViewBag.gridTable = tab.GetTable();
|
|
ViewBag.Eid = InnerUserHelper.Instance.GetEid(list.FirstOrDefault().NEWINNERUSERID);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
model = new QH_CUSTOMER_SALEUSER();
|
|
}
|
|
|
|
return View(model);
|
|
}
|
|
public JsonResult Bind(string eid, string startDate, string USERACCOUNT, decimal? oldeid)
|
|
{
|
|
var result = false;
|
|
var message = "更新失败";
|
|
decimal decEid;
|
|
decimal oldid;
|
|
if (!decimal.TryParse(eid, out decEid))
|
|
{
|
|
return JsonHandler.ManageMessage("员工工号格式输入有误!", result);
|
|
}
|
|
oldid = InnerUserHelper.Instance.GetUserIdByEid(oldeid);
|
|
var innerUserId = InnerUserHelper.Instance.GetUserIdByEid(decEid);
|
|
if (innerUserId <= 1)
|
|
{
|
|
return JsonHandler.ManageMessage("找不到该员工工号记录!", result);
|
|
}
|
|
if (Convert.ToDateTime(startDate) > DateTime.Now.Date)
|
|
{
|
|
return JsonHandler.ManageMessage("开始日期,不能大于当日日期!", result);
|
|
}
|
|
var qhsu = _iqh_CustomerSaleUser.Get(m => m.USERACCOUNT == USERACCOUNT);
|
|
if (qhsu == null)
|
|
{
|
|
return JsonHandler.ManageMessage("选择的绑定记录不存在!", result);
|
|
}
|
|
var qhsu_log = new QH_CUSTOMER_SALEUSER_LOG()
|
|
{
|
|
PKID = new SEQUENCES_BL().Seq_base_get(),
|
|
OLDEID = oldeid.Value,
|
|
OLDINNERUSERID = oldid,
|
|
OLDGID = InnerUserHelper.Instance.GetGroupId(oldid),
|
|
USERACCOUNT = USERACCOUNT,
|
|
STARTDATE = Convert.ToDateTime(startDate),
|
|
ENDDATE = Convert.ToDateTime("2100-01-01"),
|
|
NEWEID = decEid,
|
|
NEWINNERUSERID = innerUserId,
|
|
NEWGID = InnerUserHelper.Instance.GetGroupId(innerUserId),
|
|
OPERATORID = UserId,
|
|
CTIME = DateTime.Now
|
|
};
|
|
_iqh_Customer_SaleUser_Log.Add(qhsu_log);
|
|
qhsu.INNERUSERID = innerUserId;
|
|
qhsu.EID = decEid;
|
|
qhsu.GID = InnerUserHelper.Instance.GetGroupId(innerUserId);
|
|
qhsu.CTIME = DateTime.Now;
|
|
result = _iqh_CustomerSaleUser.Update(qhsu);
|
|
|
|
if (result)
|
|
{
|
|
message = "绑定成功";
|
|
|
|
}
|
|
return JsonHandler.ManageMessage(message, result);
|
|
}
|
|
#endregion
|
|
#region 批量重新绑定
|
|
[HttpGet]
|
|
[AuthorizeToolBar(InitRights.CONST_期货客服分配, InitToolBar.CONST_Other3)]
|
|
public ActionResult BatchBind()
|
|
{
|
|
Pager pager = new Pager() { page = 1, rows = 500 };
|
|
string tableId = "tablist";
|
|
Table tab = new Table(tableId);
|
|
tab.isCheckbox = true;
|
|
tab.AddHiddenHeadCol("pkid", "PKID");
|
|
tab.AddHeadCol("USERACCOUNT", "", "资金账号");
|
|
tab.AddHeadCol("GID", "", "所属客服组");
|
|
tab.AddHeadCol("INNERUSERNAME", "", "客服");
|
|
tab.AddHeadRow();
|
|
ViewBag.gridTable = tab.GetHead() + Pagination.GetPage(pager, tableId, "50,100");
|
|
|
|
Table tab2 = new Table("tablis2");
|
|
tab2.isCheckbox = true;
|
|
tab2.AddHiddenHeadCol("pkid", "PKID");
|
|
tab2.AddHeadCol("USERACCOUNT", "", "资金账号");
|
|
tab2.AddHeadCol("INNERUSERNAME", "", "客服");
|
|
tab2.AddHeadRow();
|
|
|
|
//添加分割线
|
|
tab2.AddTHeadAndTbodySplit();
|
|
|
|
ViewBag.gridTable2 = tab2.GetTable();
|
|
|
|
return View();
|
|
}
|
|
[HttpPost]
|
|
[AuthorizeToolBar(InitRights.CONST_期货客服分配, InitToolBar.CONST_Other3)]
|
|
public JsonResult BatchBindGetHtmlList(Pager pager, decimal? eID, string columns)
|
|
{
|
|
try
|
|
{
|
|
decimal? innerUserId = null;
|
|
if (eID.HasValue)
|
|
{
|
|
innerUserId = InnerUserHelper.Instance.GetUserIdByEid(eID);
|
|
}
|
|
List<QH_CUSTOMER_SALEUSER> list = _iqh_CustomerSaleUser.GetList(ref pager, null, innerUserId, 1);
|
|
Table table = new Table(columns, true);
|
|
//table.gridPager = pager;
|
|
table.isCheckbox = true;
|
|
foreach (QH_CUSTOMER_SALEUSER model in list)
|
|
{
|
|
string groupname = InnerUserHelper.Instance.GetGroupName(model.GID);
|
|
table.AddHiddenCol(model.PKID);
|
|
table.AddCol(model.USERACCOUNT);
|
|
table.AddCol(groupname);
|
|
table.AddCol(InnerUserHelper.Instance.EidAndName(model.INNERUSERID));
|
|
table.AddRow();
|
|
}
|
|
var json = new
|
|
{
|
|
totalPages = pager.totalPages,
|
|
totalRows = pager.totalRows,
|
|
rowsList = table.GetRows()
|
|
};
|
|
return Json(json, JsonRequestBehavior.AllowGet);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex.ToString());
|
|
return JsonHandler.ManageMessage(ex.Message, false);
|
|
}
|
|
}
|
|
public ActionResult BatchBind(string userAccount, decimal? newEid)
|
|
{
|
|
decimal innerUserId;
|
|
if (!newEid.HasValue)
|
|
{
|
|
return JsonHandler.ManageMessage("客服工号不存在!", false);
|
|
}
|
|
innerUserId = InnerUserHelper.Instance.GetUserIdByEid(newEid);
|
|
if (innerUserId == 1)
|
|
{
|
|
return JsonHandler.ManageMessage("客服工号不存在!", false);
|
|
}
|
|
try
|
|
{
|
|
string[] userAccountArr = userAccount.Split(',');
|
|
if (userAccountArr != null && userAccountArr.Length > 0)
|
|
{
|
|
foreach (var r in userAccountArr)
|
|
{
|
|
var qhus = _iqh_CustomerSaleUser.Get(p => p.USERACCOUNT == r);
|
|
if (qhus != null)
|
|
{
|
|
var qhus_log = new QH_CUSTOMER_SALEUSER_LOG()
|
|
{
|
|
PKID = new SEQUENCES_BL().Seq_base_get(),
|
|
USERACCOUNT = r,
|
|
OLDINNERUSERID = qhus.INNERUSERID,
|
|
OLDEID = qhus.EID,
|
|
OLDGID = qhus.GID,
|
|
NEWINNERUSERID = innerUserId,
|
|
NEWEID = newEid.Value,
|
|
NEWGID = InnerUserHelper.Instance.GetGroupId(innerUserId),
|
|
STARTDATE = DateTime.Now,
|
|
ENDDATE = Convert.ToDateTime("2100-01-01"),
|
|
OPERATORID = UserId,
|
|
CTIME = DateTime.Now
|
|
};
|
|
_iqh_Customer_SaleUser_Log.Add(qhus_log);
|
|
|
|
qhus.INNERUSERID = innerUserId;
|
|
qhus.EID = newEid.Value;
|
|
qhus.GID = InnerUserHelper.Instance.GetGroupId(innerUserId);
|
|
qhus.CTIME = DateTime.Now;
|
|
_iqh_CustomerSaleUser.Update(qhus);
|
|
}
|
|
}
|
|
}
|
|
return JsonHandler.ManageMessage("更新成功!", true);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex);
|
|
return JsonHandler.ManageMessage("更新失败!", false);
|
|
}
|
|
}
|
|
#endregion
|
|
public JsonResult Recover(string userAccount)
|
|
{
|
|
|
|
var result = false;
|
|
var message = "回收失败";
|
|
decimal innerUserId = InnerUserHelper.Instance.GetUserIdByEid(9999);
|
|
var qhsu = _iqh_CustomerSaleUser.Get(m => m.USERACCOUNT == userAccount);
|
|
if (qhsu == null)
|
|
{
|
|
return JsonHandler.ManageMessage("选择的回收记录不存在!", result);
|
|
}
|
|
var qhsu_log = new QH_CUSTOMER_SALEUSER_LOG()
|
|
{
|
|
PKID = new SEQUENCES_BL().Seq_base_get(),
|
|
OLDEID = qhsu.EID,
|
|
OLDINNERUSERID = qhsu.INNERUSERID,
|
|
OLDGID = qhsu.GID,
|
|
USERACCOUNT = userAccount,
|
|
STARTDATE = DateTime.Now,
|
|
ENDDATE = Convert.ToDateTime("2100-01-01"),
|
|
NEWEID = 9999,
|
|
NEWINNERUSERID = innerUserId,
|
|
NEWGID = InnerUserHelper.Instance.GetGroupId(innerUserId),
|
|
OPERATORID = UserId,
|
|
CTIME = DateTime.Now
|
|
};
|
|
_iqh_Customer_SaleUser_Log.Add(qhsu_log);
|
|
qhsu.INNERUSERID = innerUserId;
|
|
qhsu.EID = 9999;
|
|
qhsu.GID = InnerUserHelper.Instance.GetGroupId(innerUserId);
|
|
qhsu.CTIME = DateTime.Now;
|
|
result = _iqh_CustomerSaleUser.Update(qhsu);
|
|
|
|
if (result)
|
|
{
|
|
message = "回收成功";
|
|
|
|
}
|
|
return JsonHandler.ManageMessage(message, result);
|
|
}
|
|
public JsonResult Save(string data)
|
|
{
|
|
try
|
|
{
|
|
var list = new List<CustomerSaleUserCommit>();
|
|
if (!string.IsNullOrEmpty(data))
|
|
{
|
|
var traderlist = JsonHelper.JsonDivertToObj<List<CustomerSaleUserCommit>>(data);
|
|
foreach (var item in traderlist)
|
|
{
|
|
if (item.NewUserId.HasValue)
|
|
{
|
|
decimal eid;
|
|
if (decimal.TryParse(item.NewUserId.ToString(), out eid))
|
|
{
|
|
decimal newUserId = InnerUserHelper.Instance.GetUserIdByEid(eid);
|
|
if (newUserId > 1)
|
|
{
|
|
CustomerSaleUserCommit info = new CustomerSaleUserCommit
|
|
{
|
|
UserAccount = item.UserAccount,
|
|
NewUserId = newUserId,
|
|
OldUserId = item.OldUserId,
|
|
};
|
|
list.Add(info);
|
|
}
|
|
else
|
|
{
|
|
ModelState.AddModelError(item.NewUserId.Value.ToString(), "工号不存在");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
ModelState.AddModelError(item.NewUserId.ToString(), "工号不正确");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!ModelState.IsValid)
|
|
{
|
|
return JsonHandler.JsonResultSerialize(ModelState);
|
|
}
|
|
List<QH_CUSTOMER_SALEUSER> model = new List<QH_CUSTOMER_SALEUSER>();
|
|
foreach (var item in list)
|
|
{
|
|
if (item.NewUserId != item.OldUserId)
|
|
{
|
|
QH_CUSTOMER_SALEUSER qhcs = new QH_CUSTOMER_SALEUSER()
|
|
{
|
|
PKID = new SEQUENCES_BL().Seq_base_get(),
|
|
USERACCOUNT = item.UserAccount,
|
|
INNERUSERID = item.NewUserId.Value,
|
|
EID = Convert.ToDecimal(InnerUserHelper.Instance.GetEid(item.NewUserId.Value)),
|
|
GID = InnerUserHelper.Instance.GetGroupId(item.NewUserId),
|
|
CTIME = DateTime.Now
|
|
|
|
};
|
|
model.Add(qhcs);
|
|
}
|
|
}
|
|
_iqh_CustomerSaleUser.AddList(model);
|
|
foreach (var item in list)
|
|
{
|
|
if (item.NewUserId.HasValue)
|
|
{
|
|
QH_CUSTOMER_SALEUSER_LOG qhcs_log = new QH_CUSTOMER_SALEUSER_LOG()
|
|
{
|
|
PKID = new SEQUENCES_BL().Seq_base_get(),
|
|
USERACCOUNT = item.UserAccount,
|
|
NEWINNERUSERID = item.NewUserId.Value,
|
|
NEWEID = Convert.ToDecimal(InnerUserHelper.Instance.GetEid(item.NewUserId.Value)),
|
|
NEWGID = InnerUserHelper.Instance.GetGroupId(item.NewUserId),
|
|
STARTDATE = DateTime.Now,
|
|
ENDDATE = Convert.ToDateTime("2050-1-1"),
|
|
OPERATORID = UserId,
|
|
CTIME = DateTime.Now
|
|
};
|
|
_iqh_Customer_SaleUser_Log.Add(qhcs_log);
|
|
|
|
}
|
|
}
|
|
return JsonHandler.ManageMessage("修改成功", true);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex.ToString());
|
|
return JsonHandler.ManageMessage(ex.Message, false);
|
|
}
|
|
}
|
|
|
|
|
|
#region 期货客服分配导出
|
|
public FileResult Export(string userAccount, decimal? userId, decimal bindType)
|
|
{
|
|
decimal? innerUserId = null;
|
|
if (userId.HasValue)
|
|
{
|
|
innerUserId = InnerUserHelper.Instance.GetUserIdByEid(userId);
|
|
}
|
|
string checkedFilds = PageRequest.GetQueryString("checkedFilds");
|
|
checkedFilds = checkedFilds.Replace("[]", "");
|
|
string checkedTitles = PageRequest.GetQueryString("checkedTitles");
|
|
Pager pager = new Pager() { page = 1, rows = int.MaxValue };
|
|
List<QH_CUSTOMER_SALEUSER> list = _iqh_CustomerSaleUser.GetList(ref pager, userAccount, innerUserId, bindType);
|
|
list.ForEach(p => p.INNERUSERNAME = InnerUserHelper.Instance.EidAndName(p.INNERUSERID));
|
|
return File(ExcelHelper.ExportListModelToExcel<QH_CUSTOMER_SALEUSER>(list, "期货客服分配", 10000, checkedFilds, checkedTitles, DataFormart), "application/ms-excel", PageRequest.GetDlownLoadName("期货客服分配.xls"));
|
|
}
|
|
//用作委托传递
|
|
public string DataFormart(string key, object value)
|
|
{
|
|
string formartValue = string.Empty;
|
|
switch (key)
|
|
{
|
|
case "CTIME":
|
|
formartValue = Convert.ToDateTime(value) > Convert.ToDateTime("1900-01-01") ? Convert.ToDateTime(value).ToString("yyyy-MM-dd HH:mm:ss") : "";
|
|
break;
|
|
case "GID":
|
|
formartValue = InnerUserHelper.Instance.GetGroupName(Convert.ToDecimal(value));
|
|
break;
|
|
case "INNERUSERID":
|
|
formartValue = value.ToString() == "0" ? "" : InnerUserHelper.Instance.GetEid(Convert.ToDecimal(value)); break;
|
|
default: formartValue = string.Format("{0}", value); break;
|
|
}
|
|
return formartValue;
|
|
}
|
|
#endregion
|
|
public class CustomerSaleUserCommit
|
|
{
|
|
public string UserAccount { get; set; }
|
|
public int? OldUserId { get; set; }
|
|
public decimal? NewUserId { get; set; }
|
|
}
|
|
}
|
|
}
|