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 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("客服工号:", "", 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 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 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(); if (!string.IsNullOrEmpty(data)) { var traderlist = JsonHelper.JsonDivertToObj>(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 model = new List(); 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 list = _iqh_CustomerSaleUser.GetList(ref pager, userAccount, innerUserId, bindType); list.ForEach(p => p.INNERUSERNAME = InnerUserHelper.Instance.EidAndName(p.INNERUSERID)); return File(ExcelHelper.ExportListModelToExcel(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; } } } }