using Ninject; using NPOI.SS.Formula.Functions; using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; using System.Web; using System.Web.Mvc; using System.Web.Security; using WX.CRM.BLL.Base; using WX.CRM.BLL.Wx; using WX.CRM.Common; using WX.CRM.IBLL.Base; using WX.CRM.IBLL.Util; using WX.CRM.IBLL.Wx; using WX.CRM.Model.DTO; using WX.CRM.Model.Entity; using WX.CRM.Model.MAP; using WX.CRM.WebHelper; using static WX.CRM.WEB.Controllers.WeiXin.JZOrderController; using static WX.CRM.WebHelper.ExcelHelper; namespace WX.CRM.WEB.Controllers.WeiXin { public class DealCustomerController : BaseController { private readonly IWX_DealCustomer _wx_dealCustomer; public IWX_SZZYMIDPRODUCT _midProduct { get; set; } [Inject] public ICACHE_Q _CacheQ { get; set; } [Inject] public IBAS_BUSINESSLINE_Q _BAS_BUSINESSLINE_Q { get; set; } [Inject] public IBAS_INNERGROUP_Q _BAS_INNERGROUP_Q { get; set; } public DealCustomerController(IWX_DealCustomer wX_DealCustomer, ICACHE_Q cacheQ, IWX_SZZYMIDPRODUCT midProduct, IBAS_BUSINESSLINE_Q BAS_BUSINESSLINE_Q, IBAS_INNERGROUP_Q BAS_INNERGROUP_Q) { this._wx_dealCustomer = wX_DealCustomer; this._CacheQ = cacheQ; this._midProduct = midProduct; this._BAS_BUSINESSLINE_Q = BAS_BUSINESSLINE_Q; this._BAS_INNERGROUP_Q = BAS_INNERGROUP_Q; } [HttpGet] [AuthorizeRedirect(Roles = InitRights.CONST_成交客户跟进列表)] public ActionResult List(DealCustomerDto dto) { IList dataList= new List(); string tableId = "tablist"; Table tab = new Table(tableId); tab.isFloatHead = true; Pager pager = new Pager() { page = 1, rows = 30 }; // tab.AddHeadCol("szzyorderid", "", "szzyorderid", true); tab.AddHeadCol("umid", "", "客户ID"); tab.AddHeadCol("name", "", "客户姓名"); tab.AddHeadCol("nickname", "", "企微昵称"); tab.AddHeadCol("amount_type", "", "资金量"); tab.AddHeadCol("overdateName", "", "在期状态"); tab.AddHeadCol("enddate", "", "过期时间", true); tab.AddHeadCol("subproductname", "", "最新订单产品"); tab.AddHeadCol("arrivalpay", "", "订单金额", true); tab.AddHeadCol("sumarrivalpay", "", "累计金额", true); tab.AddHeadCol("share_dept_name", "", "成交事业部"); tab.AddHeadCol("share_group_name", "", "成交组别"); tab.AddHeadCol("share_eid_name", "", "成交客服"); tab.AddHeadCol("last_follow_deptid", "", "最后跟进事业部"); tab.AddHeadCol("last_follow_groupid", "", "最后跟进组别"); tab.AddHeadCol("last_follow_eid", "", "最后跟进客服"); tab.AddHeadCol("is_follow", "", "跟进类型"); tab.AddHeadCol("last_follow_time", "", "最后跟进时间", true); tab.AddHeadRow(); ViewBag.gridTable = tab.GetHead() + Pagination.GetPage(pager, tableId, "30,50,1000"); var deptList = _CacheQ.GetList_BusinessLines(); var selectList = new List(); foreach (var item in deptList) { selectList.Add(new SelectListItem() { Text = item.BUSINESSNAME, Value = item.BUSINESSID.ToString() }); } ViewBag.DeptList = selectList; ViewBag.midproductList = GetMidProductList(); return View(); //dataList = //ViewBag.dataList = dataList; //return View(dto); } public JsonResult QueryList(QueryUserComboDto usercomboDto,DealCustomerDto dto, Pager pager,string columns) { try { var BusinessLine = _BAS_BUSINESSLINE_Q.GetBusinessLineByRoot(UserId); if (BusinessLine.Any()) { dto.order_share_deptids = string.Join(",", BusinessLine.Select(m => m.BUSINESSID)); } List newProductid = new List(); foreach (var item in dto.subproductids.Split(',')) { if (item == "0"|| string.IsNullOrEmpty(item) ) continue; newProductid.Add(item); } dto.subproductids = string.Join(",", newProductid); if (usercomboDto.eid.HasValue && usercomboDto.eid != 0) { dto.order_share_eids = usercomboDto.eid.ToString(); } else if(!string.IsNullOrEmpty(usercomboDto.groupIds)) { var innerGup = _BAS_INNERGROUP_Q.GetModel_InnerGroup(Convert.ToDecimal(usercomboDto.groupIds)); dto.order_share_groupids= innerGup?.DEPARTMENT_ID.ToString(); } // var list = _wx_dealCustomer.GetDealCustomerList(dto, pager); Table table = new Table(columns, true); table.gridPager = pager; foreach (var item in list) { var linkUrl = string.Format("{2}" , "客户详细" , "/Csvr/CustomerInfo/CustomerDetail?resid=" + item.umid , item.umid); table.AddCol($"{linkUrl}"); table.AddCol($"{item.name}"); table.AddCol($"{item.nickname}"); table.AddCol($"{item.amount_type}"); table.AddCol($"{item.overdateName}"); table.AddCol($"{item.enddate}"); table.AddCol($"{item.subproductname}"); table.AddCol($"{item.arrivalpay}"); table.AddCol($"{item.sumarrivalpay}"); table.AddCol($"{item.share_dept_name}"); table.AddCol($"{item.share_group_name}"); table.AddCol($"{item.share_eid_name}"); table.AddCol($"{item.last_follow_dept_name}"); table.AddCol($"{item.last_follow_group_name}"); table.AddCol($"{item.last_follow_employee_name}"); if (item.follow_type == "10") { table.AddCol($"坐席电话"); } else if (item.follow_type == "20") { table.AddCol($"微信互动"); } else { table.AddCol($"{item.follow_type}"); } table.AddCol($"{item.last_follow_time}"); table.AddRow(); } var json = new { totalPages = pager.totalPages, totalRows = pager.totalRows, rowsList = table.GetRows(), foot = table.GetFoot() }; return Json(json, JsonRequestBehavior.AllowGet); } catch (Exception ex) { LogHelper.Error("DealCustomerController:QueryList" + ex.Message + ex.StackTrace); return JsonHandler.ManageMessage(ex.Message, false); } } /// /// 汇总 /// /// /// public JsonResult DealStat(DealCustomerDto dto) { try { var BusinessLine = _BAS_BUSINESSLINE_Q.GetBusinessLineByRoot(UserId); if (BusinessLine.Any()) { dto.order_share_deptids = string.Join(",", BusinessLine.Select(m => m.BUSINESSID)); } var res = _wx_dealCustomer.GetDealCustomerStat(dto); return Json(new { s=true,d= res }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { LogHelper.Error("DealCustomerController:DealStat" + ex.Message + ex.StackTrace); return JsonHandler.ManageMessage(ex.Message, false); } } [AuthorizeRedirect(Roles = InitRights.CONST_订单列表)] public FileResult Export(DealCustomerDto dto, QueryUserComboDto usercomboDto) { string checkedFilds = PageRequest.GetQueryString("checkedFilds"); checkedFilds = checkedFilds.Replace("[]", ""); string checkedTitles = PageRequest.GetQueryString("checkedTitles"); Pager pager = new Pager() { page = 1, rows = int.MaxValue }; var BusinessLine = _BAS_BUSINESSLINE_Q.GetBusinessLineByRoot(UserId); if (BusinessLine.Any()) { dto.order_share_deptids = string.Join(",", BusinessLine.Select(m => m.BUSINESSID)); } List newProductid = new List(); foreach (var item in dto.subproductids.Split(',')) { if (item == "0" || string.IsNullOrEmpty(item)) continue; newProductid.Add(item); } dto.subproductids = string.Join(",", newProductid); if (usercomboDto.eid.HasValue && usercomboDto.eid != 0) { dto.order_share_eids = usercomboDto.eid.ToString(); } else if (!string.IsNullOrEmpty(usercomboDto.groupIds)) { var innerGup = _BAS_INNERGROUP_Q.GetModel_InnerGroup(Convert.ToDecimal(usercomboDto.groupIds)); dto.order_share_groupids = innerGup?.DEPARTMENT_ID.ToString(); } var list = _wx_dealCustomer.GetDealCustomerList(dto, pager); //var data = new List(); //foreach (var item in list) //{ //} return File(ExcelHelper.ExportListModelToExcel(list.ToList(), "成交客户跟进列表", 50000, checkedFilds, checkedTitles, DataFormart) , "application/ms-excel", PageRequest.GetDlownLoadName("成交客户跟进列表.xls")); } //用作委托传递 public string DataFormart(string key, object value) { string formartValue = string.Empty; switch (key) { default: formartValue = string.Format("{0}", value); break; } return formartValue; } private List GetMidProductList() { var data = new List(); var list = _midProduct.GetList(); foreach (var item in list) { data.Add(new SelectListItem() { Text = item.MIDPRODUCTNAME, Value = item.MIDPRODUCTID.ToString() }); } return data; } } }