ComplianceServer/oldcode/WEB/Controllers/QH/CustomerSaleUserController.cs

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; }
}
}
}