1762 lines
78 KiB
C#
1762 lines
78 KiB
C#
using Ninject;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Data;
|
||
using System.Data.SqlClient;
|
||
using System.Linq;
|
||
using System.Web.Mvc;
|
||
using WX.CRM.BLL;
|
||
using WX.CRM.BLL.Base;
|
||
using WX.CRM.BLL.Util;
|
||
using WX.CRM.BLL.Wx;
|
||
using WX.CRM.Common;
|
||
using WX.CRM.Common.Layui;
|
||
using WX.CRM.IBLL.Base;
|
||
using WX.CRM.IBLL.Res;
|
||
using WX.CRM.IBLL.Wx;
|
||
using WX.CRM.Model.DTO;
|
||
using WX.CRM.Model.Entity;
|
||
using WX.CRM.Model.Enum;
|
||
using WX.CRM.Model.MAP;
|
||
using WX.CRM.WebHelper;
|
||
|
||
namespace WX.CRM.WEB.Controllers.Res
|
||
{
|
||
public class AllocateController : BaseController
|
||
{
|
||
private IRES_RESOURCETYPE_Q resourceTypeBiz_Q;
|
||
private IRES_ACTIVITY_Q activeBiz_Q;
|
||
private IRES_ALLOCATESTRATEGY_Q allocateQ;
|
||
private WX_SZZYPRODUCT_BL _wx_SZZYPRODUCT_BL;
|
||
private IBAS_GROUPLEADER_Q _bas_GroupLeader_Q;
|
||
[Inject]
|
||
public IBAS_INNERGROUP_Q _INNERGROUP_Q { get; set; }
|
||
[Inject]
|
||
public IBAS_INNERUSER_Q inneruserBiz_Q { get; set; }
|
||
[Inject]
|
||
public IBAS_INNERUSERGROUP_Q inneruserGroupBiz_Q { get; set; }
|
||
[Inject]
|
||
public IRES_DISTRIBUTE res_distribute { get; set; }
|
||
[Inject]
|
||
public CACHE_BL cache_BL { get; set; }
|
||
[Inject]
|
||
public IRES_ALLOCATE res_allocate { get; set; }
|
||
//[Inject]
|
||
//public IRES_MYVALIDRES _ResMyvalidres { get; set; }
|
||
[Inject]
|
||
public IRES_CUSTOMERDETAIL _res_customerdetail { get; set; }
|
||
[Inject]
|
||
public IRES_ALLCOTE_USER _resAllcoteUser { get; set; }
|
||
[Inject]
|
||
public IWX_SZZYPRODUCT wx_SzzyProduct_BL { get; set; }
|
||
[Inject]
|
||
public IWX_SZZYMIDPRODUCT _midProduct { get; set; }
|
||
[Inject]
|
||
public IRES_MYALLOCATERES _resMyAllocateRes { get; set; }
|
||
[Inject]
|
||
public IWX_AFTERSALES3 _aftersales { get; set; }
|
||
[Inject]
|
||
public IWX_AFTERSALES3_LOG wx_AfterSales_Log_BL { get; set; }
|
||
public AllocateController(IRES_RESOURCETYPE_Q _resourceTypeBiz_Q, IRES_ACTIVITY_Q _activeBiz_Q, IRES_ALLOCATESTRATEGY_Q _allocateQ, WX_SZZYPRODUCT_BL wX_SZZYPRODUCT_BL, IBAS_GROUPLEADER_Q iBAS_GROUPLEADER_Q)
|
||
{
|
||
this.resourceTypeBiz_Q = _resourceTypeBiz_Q;
|
||
this.activeBiz_Q = _activeBiz_Q;
|
||
this.allocateQ = _allocateQ;
|
||
this._wx_SZZYPRODUCT_BL = wX_SZZYPRODUCT_BL;
|
||
this._bas_GroupLeader_Q = iBAS_GROUPLEADER_Q;
|
||
}
|
||
|
||
#region 我的资源分配 列表
|
||
public ActionResult MyAllocatedRes()
|
||
{
|
||
var resourceType = Request["resourcetype"];
|
||
|
||
//table
|
||
Pager pager = new Pager() { page = 1, rows = 10 };
|
||
string tableId = "tablist";
|
||
Table tab = new Table(tableId);
|
||
tab.AddHeadCol("RESID", "", "客户ID");
|
||
tab.AddHeadCol("SALESID", "", "客服");
|
||
tab.AddHeadCol("CUSTOMERCATEGORY", "", "分类");
|
||
tab.AddHeadCol("ResourceTypeName", "", "资源类型");
|
||
tab.AddHeadCol("ActivityName", "", "活动名称");
|
||
tab.AddHeadCol("LASTACTIVETIME", "", "工单最后时间");
|
||
tab.AddHeadCol("LASTCALLTIME", "", "录音最后时间");
|
||
tab.AddHeadCol("DISUSERID", "", "分配人");
|
||
tab.AddHeadCol("DISTIME", "", "分配时间");
|
||
tab.AddHeadCol("ISBOUND", "", "加好友");
|
||
tab.AddHeadRow();
|
||
ViewBag.gridTable = tab.GetTable() + Pagination.GetPage(pager, tableId, "10,20,50");
|
||
|
||
List<SelectListItem> lis = new List<SelectListItem>();
|
||
var rlis = resourceTypeBiz_Q.GetList();
|
||
lis.Add(new SelectListItem() { Value = "", Text = "-请选择-" });
|
||
foreach (var obj in rlis)
|
||
{
|
||
if (!string.IsNullOrEmpty(resourceType))
|
||
{
|
||
decimal resourceTypeId = 0;
|
||
decimal.TryParse(resourceType, out resourceTypeId);
|
||
if (resourceTypeId == obj.RESTYPEID)
|
||
{
|
||
lis.Add(new SelectListItem() { Value = string.Format("{0}", obj.RESTYPEID), Text = obj.TYPENAME, Selected = true });
|
||
}
|
||
else
|
||
{
|
||
lis.Add(new SelectListItem() { Value = string.Format("{0}", obj.RESTYPEID), Text = obj.TYPENAME });
|
||
}
|
||
}
|
||
else
|
||
{
|
||
lis.Add(new SelectListItem() { Value = string.Format("{0}", obj.RESTYPEID), Text = obj.TYPENAME });
|
||
}
|
||
}
|
||
|
||
ViewData["ResourctType1"] = lis;
|
||
ViewBag.inneruserid = UserId;
|
||
ViewBag.userGroupId = userGroupId;
|
||
ViewBag.saleDeptId = saleDeptId;
|
||
ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
|
||
|
||
var category = cache_BL.GetList_SubComType(ComType.CustomerCategory).Select(item => new SelectListItem() { Text = item.SUBTYPENAME, Value = item.SUBTYPENAME }).ToList();
|
||
|
||
category.Insert(0, new SelectListItem() { Text = string.Empty, Value = string.Empty });
|
||
|
||
ViewBag.category = category;
|
||
|
||
return View();
|
||
}
|
||
|
||
[HttpPost]
|
||
public JsonResult GetHtmlList(Pager pager, string columns, QueryUserComboDto usercomboDto, string resid, DateTime? AllocateTime1, DateTime? AllocateTime2, decimal? HidResourceId, string HidRESOURCETAG, string category, decimal? disEid, decimal? IsFx, decimal? IsBound)
|
||
{
|
||
if (!string.IsNullOrWhiteSpace(resid))
|
||
resid = resid.Trim();
|
||
if (disEid.HasValue)
|
||
{
|
||
disEid = InnerUserHelper.Instance.GetUserIdByEid(disEid.Value);
|
||
}
|
||
|
||
var list = res_allocate.GetList(ref pager, usercomboDto, AllocateTime1, AllocateTime2, resid, HidResourceId, HidRESOURCETAG, category, disEid, IsFx.HasValue ? (IsFx == 1 ? true : false) : (bool?)null, IsBound);
|
||
Table table = new Table(columns, true);
|
||
table.gridPager = pager;
|
||
foreach (var model in list)
|
||
{
|
||
var color = string.Empty;
|
||
if (model.LASTACTIVETIME > model.DISTIME || model.LASTCALLTIME > model.DISTIME)
|
||
color = "style =\"color:green\"";
|
||
var a = string.Format("<a href=\"javascript:parent.parent.ChildAddTab('{0}', '{1}', '')\" " + color + ">{2}</a>", "客户详细", "/Csvr/CustomerInfo/CustomerDetail?resid=" + model.ResId, model.ResId);
|
||
|
||
table.AddCol(a);
|
||
table.AddCol(InnerUserHelper.Instance.EidAndName(model.SALESID));
|
||
table.AddCol(model.CUSTOMERCATEGORY);
|
||
table.AddCol(model.ResourceTypeName);
|
||
table.AddCol(model.ActivityName);
|
||
table.AddCol(model.LASTACTIVETIME);
|
||
table.AddCol(model.LASTCALLTIME);
|
||
table.AddCol(InnerUserHelper.Instance.EidAndName(model.DISUSERID));
|
||
table.AddCol(model.DISTIME);
|
||
if (model.IsBound.HasValue && model.IsBound.Value == 1)
|
||
{
|
||
table.AddCol("是");
|
||
}
|
||
else
|
||
{
|
||
table.AddCol("否");
|
||
}
|
||
table.AddRow();
|
||
}
|
||
var json = new
|
||
{
|
||
totalPages = pager.totalPages,
|
||
totalRows = pager.totalRows,
|
||
rowsList = table.GetRows()
|
||
};
|
||
return Json(json, JsonRequestBehavior.AllowGet);
|
||
}
|
||
|
||
#region 导出
|
||
//[AuthorizeToolBar(InitRights.CONST_导入分配资源, InitToolBar.CONST_Other1)]
|
||
public FileResult Export(QueryUserComboDto usercomboDto, string resid, DateTime? AllocateTime1, DateTime? AllocateTime2, decimal? HidResourceId, string HidRESOURCETAG, string category, decimal? disEid, decimal? IsFx, decimal? Isbound)
|
||
{
|
||
try
|
||
{
|
||
var contentType = "application/ms-excel";
|
||
var downloadName = PageRequest.GetDlownLoadName("分配资源列表" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ".xls");
|
||
var checkFilds = "[RESID][SALESID][CUSTOMERCATEGORY][ResourceTypeName][ActivityName][LASTACTIVETIME][LASTCALLTIME][DISUSERID][DisTime][IsBound]";
|
||
var checkTitles = "客户ID,客服,分类,资源类型,活动名称,工单最后时间,录音最后时间,分配人,分配时间,加好友";
|
||
|
||
var pager = new Pager() { page = 1, rows = int.MaxValue };
|
||
if (!string.IsNullOrWhiteSpace(resid))
|
||
resid = resid.Trim();
|
||
if (disEid.HasValue)
|
||
{
|
||
disEid = InnerUserHelper.Instance.GetUserIdByEid(disEid.Value);
|
||
}
|
||
|
||
var list = res_allocate.GetList(ref pager, usercomboDto, AllocateTime1, AllocateTime2, resid, HidResourceId, HidRESOURCETAG, category, disEid, IsFx.HasValue ? (IsFx == 1 ? true : false) : (bool?)null, Isbound);
|
||
System.IO.Stream strem = ExcelHelper.ExportListModelToExcel(list, "分配资源列表", 50000, checkFilds, checkTitles, DataFormart);
|
||
return File(strem, contentType, downloadName);
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error(ex.ToString());
|
||
}
|
||
return null;
|
||
}
|
||
|
||
protected string DataFormart(string key, object value)
|
||
{
|
||
string nvalue = "";
|
||
switch (key)
|
||
{
|
||
case "SALESID":
|
||
nvalue = InnerUserHelper.Instance.EidAndName(Convert.ToDecimal(value));
|
||
break;
|
||
case "DISUSERID":
|
||
nvalue = InnerUserHelper.Instance.EidAndName(Convert.ToDecimal(value));
|
||
break;
|
||
case "IsBound":
|
||
if (value != null)
|
||
{
|
||
var xx = Convert.ToDecimal(value);
|
||
if (xx == 1)
|
||
{
|
||
nvalue = "是";
|
||
}
|
||
else
|
||
{
|
||
nvalue = "否";
|
||
}
|
||
}
|
||
else
|
||
{
|
||
nvalue = "否";
|
||
}
|
||
break;
|
||
default: return Convert.ToString(value);
|
||
}
|
||
return nvalue;
|
||
}
|
||
#endregion
|
||
#endregion
|
||
|
||
#region 高级分配列表
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_高级客服)]
|
||
public ActionResult MySeniorRes()
|
||
{
|
||
Pager pager = new Pager() { page = 1, rows = 20 };
|
||
string tableId = "tablist";
|
||
Table tab = new Table(tableId);
|
||
|
||
tab.AddHeadCol("RESID", "", "客户ID");
|
||
tab.AddHeadCol("INNERUSERID", "", "归属客服");
|
||
tab.AddHeadCol("GroupName", "", "归属组别");
|
||
tab.AddHeadCol("ORDERID", "", "订单ID");
|
||
tab.AddHeadCol("CNAME", "", "客户姓名");
|
||
tab.AddHeadCol("AmountTypeid", "", "资金量");
|
||
tab.AddHeadCol("OrderUserId", "", "下单客服");
|
||
tab.AddHeadCol("OrderGroupName", "", "下单客服组别");
|
||
tab.AddHeadCol("ORDERTYPE", "", "订单类型");
|
||
tab.AddHeadCol("ORDERSTATUS", "", "订单状态");
|
||
tab.AddHeadCol("SUBPRODUCTNAME", "", "产品");
|
||
tab.AddHeadCol("ARRIVALPAY", "", "到账金额");
|
||
tab.AddHeadCol("OTIME", "", "开通时间");
|
||
tab.AddHeadCol("ENDTIME", "", "到期时间");
|
||
tab.AddHeadCol("GiftTime", "", "赠送到期");
|
||
//tab.AddHeadCol("AfterSale", "", "客服部");
|
||
|
||
tab.AddHeadRow();
|
||
ViewBag.gridTable = tab.GetHead() + Pagination.GetPage(pager, tableId, "10,20");
|
||
|
||
ViewBag.inneruserid = UserId;
|
||
ViewBag.userGroupId = userGroupId;
|
||
ViewBag.saleDeptId = saleDeptId;
|
||
ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
|
||
|
||
//var category = cache_BL.GetList_SubComType(ComType.CustomerCategory).Select(item => new SelectListItem() { Text = item.SUBTYPENAME, Value = item.SUBTYPENAME }).ToList();
|
||
|
||
//category.Insert(0, new SelectListItem() { Text = string.Empty, Value = string.Empty });
|
||
|
||
//ViewBag.category = category;
|
||
|
||
ViewBag.midproductList = GetMidProductList();
|
||
var ZJL = cache_BL.GetList_SubComType(ComType.CustomerZJL).Select(item => new SelectListItem() { Text = item.SUBTYPENAME, Value = item.SUBTYPECODE }).ToList();
|
||
ViewBag.ZJL = ZJL;
|
||
return View();
|
||
}
|
||
[HttpPost]
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_高级客服)]
|
||
public JsonResult MySeniorRes(Pager pager, string columns, MySeniorDistributionQuery query)
|
||
{
|
||
try
|
||
{
|
||
if (query.openEndTime.HasValue)
|
||
query.openEndTime = query.openEndTime.Value.AddDays(1);
|
||
var list = _resMyAllocateRes.GetMySeniorDistribution(ref pager, query);
|
||
var table = new Table(columns, true)
|
||
{
|
||
gridPager = pager
|
||
};
|
||
var ZJL = cache_BL.GetList_SubComType(ComType.CustomerZJL);
|
||
foreach (var model in list)
|
||
{
|
||
var linkUrl = string.Format("<a href=\"javascript:parent.ChildAddTab('{0}', '{1}', '')\">{2}</a>"
|
||
, "客户详细"
|
||
, "/Csvr/CustomerInfo/CustomerDetail?resid=" + model.ResId
|
||
, model.ResId);
|
||
|
||
table.AddCol(linkUrl);
|
||
table.AddCol(InnerUserHelper.Instance.GetEidAndTrueName(model.InnerUserId));
|
||
table.AddCol(InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(model.InnerUserId)));
|
||
table.AddCol(model.OrderId);
|
||
table.AddCol(model.CName);
|
||
var am = ZJL.FirstOrDefault(m => m.SUBTYPECODE == model.amounttypeid);
|
||
if (am == null)
|
||
{
|
||
table.AddCol("【未知】");
|
||
}
|
||
else
|
||
{
|
||
table.AddCol(am.SUBTYPENAME);
|
||
}
|
||
table.AddCol(InnerUserHelper.Instance.GetEidAndTrueName(model.OrderUserId));
|
||
table.AddCol(InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(model.OrderUserId)));
|
||
table.AddCol(GetOrderTypeName(model.OrderType));
|
||
table.AddCol(model.OrderStatusName);
|
||
table.AddCol(model.SubProductName);
|
||
table.AddCol(model.ArrivalPay);
|
||
table.AddCol(model.OTime);
|
||
table.AddCol(model.EndTime);
|
||
table.AddCol(model.GiftTime);
|
||
//table.AddCol(model.AfterSale);
|
||
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 null;
|
||
}
|
||
}
|
||
|
||
public FileResult MySeniorResExport(string columns, MySeniorDistributionQuery query)
|
||
{
|
||
try
|
||
{
|
||
if (query.openEndTime.HasValue)
|
||
query.openEndTime = query.openEndTime.Value.AddDays(1);
|
||
|
||
var pager = new Pager() { page = 1, rows = int.MaxValue };
|
||
var contentType = "application/ms-excel";
|
||
var downloadName = PageRequest.GetDlownLoadName("资源导出" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ".xls");
|
||
|
||
var list = _resMyAllocateRes.GetMySeniorDistribution(ref pager, query);
|
||
|
||
var data = new List<MySeniorResExport>();
|
||
var ZJL = cache_BL.GetList_SubComType(ComType.CustomerZJL);
|
||
foreach (var item in list)
|
||
{
|
||
var model = new MySeniorResExport()
|
||
{
|
||
ResId = item.ResId,
|
||
InnerUserid = InnerUserHelper.Instance.GetEidAndTrueName(item.InnerUserId),
|
||
GroupName = InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(item.InnerUserId)),
|
||
OrderId = item.OrderId,
|
||
CName = item.CName,
|
||
OrderUserId = InnerUserHelper.Instance.GetEidAndTrueName(item.OrderUserId),
|
||
OrderGroupName = InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(item.OrderUserId)),
|
||
OrderTypeName = GetOrderTypeName(item.OrderType),
|
||
OrderStatusName = item.OrderStatusName,
|
||
SubProductName = item.SubProductName,
|
||
ArrivalPay = item.ArrivalPay,
|
||
OTime = item.OTime,
|
||
EndTime = item.EndTime,
|
||
GiftTime = item.GiftTime,
|
||
//AfterSale = item.AfterSale
|
||
};
|
||
var am = ZJL.FirstOrDefault(m => m.SUBTYPECODE == item.amounttypeid);
|
||
if (am == null)
|
||
{
|
||
model.AmountTypeid = "【未知】";
|
||
}
|
||
else
|
||
{
|
||
model.AmountTypeid = am.SUBTYPENAME;
|
||
}
|
||
data.Add(model);
|
||
|
||
}
|
||
//LogHelper.Info(data.Count.ToString());
|
||
System.IO.Stream strem = ExcelHelper.ExportListModelToExcel<MySeniorResExport>(data, "资源列表", 50000, null);
|
||
|
||
return File(strem, contentType, downloadName);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error("查询异常:" + ex.ToString());
|
||
return null;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 主管资源分配2
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_主管资源分配)]
|
||
public ActionResult ChargeAllocatedRes2()
|
||
{
|
||
ToolBar tool = new ToolBar();
|
||
|
||
tool.AllowButton("Other2");
|
||
tool.AddOtherButton("Other2", "资源分配", "icon-details", "AllocateRes_Click", true);
|
||
ViewBag.ToolBar = tool;
|
||
|
||
//table
|
||
Pager pager = new Pager() { page = 1, rows = 50 };
|
||
string tableId = "tablist";
|
||
Table tab = new Table(tableId);
|
||
tab.isCheckbox = true;
|
||
tab.AddHiddenHeadCol("PKID", "PKID");
|
||
tab.AddHeadCol("ResId", "15%", "客户ID");
|
||
tab.AddHeadCol("Cname", "", "客户姓名");
|
||
tab.AddHeadCol("INNERUSERID", "", "员工");
|
||
tab.AddHeadCol("ResourceTypeName", "", "资源类型");
|
||
tab.AddHeadCol("ActivityName", "", "活动名称");
|
||
//tab.AddHeadCol("extxml", "", "活动备注");
|
||
tab.AddHeadCol("CustomerCategory", "", "客户类型");
|
||
//tab.AddHeadCol("SubProductName", "", "产品名称");
|
||
//tab.AddHeadCol("hasOrder", "", "是否付费");
|
||
tab.AddHeadCol("hasWX", "", "加好友");
|
||
tab.AddHeadCol("OTime", "", "最后登录时间");
|
||
tab.AddHeadCol("timestart", "", "最后通话时间");
|
||
tab.AddHeadCol("memotime", "", "最后工单时间");
|
||
tab.AddHeadCol("regtime", "", "创建时间");
|
||
tab.AddHeadCol("distime", "", "分配时间");
|
||
|
||
tab.AddHeadRow();
|
||
ViewBag.gridTable = tab.GetHead() + Pagination.GetPage(pager, tableId, "50");
|
||
|
||
List<SelectListItem> lis = new List<SelectListItem>();
|
||
var rlis = resourceTypeBiz_Q.GetList();
|
||
lis.Add(new SelectListItem() { Value = "0", Text = "-请选择-" });
|
||
foreach (var obj in rlis)
|
||
{
|
||
lis.Add(new SelectListItem() { Value = string.Format("{0}", obj.RESTYPEID), Text = obj.TYPENAME });
|
||
}
|
||
//List<SelectListItem> productType = new List<SelectListItem>
|
||
//{
|
||
// new SelectListItem() { Text = "【全部】", Value = "" }
|
||
//};
|
||
//productType.AddRange(_wx_SZZYPRODUCT_BL.GetList(p => p.ISVALID == 1).Select(p => new SelectListItem() { Text = "【" + p.PRODUCTNAME + "】", Value = p.PRODUCTID.ToString() }).ToList());
|
||
|
||
var category = cache_BL.GetList_SubComType(ComType.CustomerCategory).Select(item => new SelectListItem() { Text = item.SUBTYPENAME, Value = item.SUBTYPENAME }).ToList();
|
||
category.Insert(0, new SelectListItem() { Text = "全部", Value = string.Empty });
|
||
category.Insert(1, new SelectListItem() { Text = "未知", Value = "unknown" });
|
||
ViewData["ResourctType1"] = lis;
|
||
ViewBag.inneruserid = UserId;
|
||
ViewBag.userGroupId = userGroupId;
|
||
ViewBag.saleDeptId = saleDeptId;
|
||
ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
|
||
ViewBag.category = category;
|
||
//ViewBag.productType = productType;
|
||
//ViewBag.productList = getAllProductList();
|
||
//ViewBag.midproductList = GetMidProductList();
|
||
|
||
var isAllocateQueryAll = cache_BL.GetValue_Parameter("IsAllocateQueryAll");
|
||
if (string.IsNullOrEmpty(isAllocateQueryAll) || isAllocateQueryAll == "0")
|
||
{
|
||
ViewBag.IsAllocateQueryAll = false;
|
||
}
|
||
else
|
||
{
|
||
ViewBag.IsAllocateQueryAll = true;
|
||
}
|
||
|
||
return View();
|
||
}
|
||
|
||
[HttpPost]
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_主管资源分配)]
|
||
public JsonResult ChargeAllocatedResGetHtmlList2(Pager pager, string columns, QueryUserComboDto usercomboDto, decimal? hasTH, decimal? hasGD, string extxml, decimal? midproductid)
|
||
{
|
||
decimal isview = Request.Form["isView"].GetDecimal(-1);
|
||
decimal isnew = 0;
|
||
string resid = Request.Form["resId"];
|
||
DateTime? stime = Request.Form["AllocateTime1"].GetDateTime();
|
||
DateTime? etime = Request.Form["AllocateTime2"].GetDateTime();
|
||
string resourcetag = Request.Form["HidRESOURCETAG"];
|
||
decimal resourcetypeid = Request.Form["HidResourceId"].GetDecimal(0);
|
||
decimal activityid = Request.Form["HidACTIVITYID"].GetDecimal(0);
|
||
|
||
var category = Request["category"];
|
||
DateTime? stimeTH = Request["stimeTH"].GetDateTime();
|
||
DateTime? etimeTH = Request["etimeTH"].GetDateTime();
|
||
DateTime? stimeGD = Request["stimeGD"].GetDateTime();
|
||
DateTime? etimeGD = Request["etimeGD"].GetDateTime();
|
||
var productId = Request["productId"].GetDecimal();
|
||
var subproductId = Request["subproductId"].GetDecimal();
|
||
DateTime? stimeKT = Request["stimeKT"].GetDateTime();
|
||
DateTime? etimeKT = Request["etimeKT"].GetDateTime();
|
||
DateTime? stimeFP = Request["stimeFP"].GetDateTime();
|
||
DateTime? etimeFP = Request["etimeFP"].GetDateTime();
|
||
|
||
etime = etime.HasValue ? etime.Value.AddDays(1) : etime;
|
||
//etimeTH = etimeTH.HasValue ? etimeTH.Value.AddDays(1) : etimeTH;
|
||
//etimeGD = etimeGD.HasValue ? etimeGD.Value.AddDays(1) : etimeGD;
|
||
//etimeKT = etimeKT.HasValue ? etimeKT.Value.AddDays(1) : etimeKT;
|
||
etimeFP = etimeFP.HasValue ? etimeFP.Value.AddDays(1) : etimeFP;
|
||
|
||
if (!string.IsNullOrWhiteSpace(resid))
|
||
resid = resid.Trim();
|
||
|
||
var list = allocateQ.GetMyAllocateResList2(ref pager, resid, usercomboDto, resourcetag, resourcetypeid, isview, isnew, stime, etime, productId, subproductId, stimeTH, etimeTH, null, category, stimeGD, etimeGD, stimeKT, etimeKT, stimeFP, etimeFP, hasTH, hasGD, 0, extxml, midproductid);
|
||
Table table = new Table(columns, true);
|
||
table.gridPager = pager;
|
||
table.isCheckbox = true;
|
||
foreach (var model in list)
|
||
{
|
||
table.AddHiddenCol(model.PKID);
|
||
var linkUrl = string.Format("<a href=\"javascript:parent.ChildAddTab('{0}', '{1}', '')\">{2}</a>"
|
||
, "客户详细"
|
||
, "/Csvr/CustomerInfo/CustomerDetail?resid=" + model.ResId
|
||
, model.ResId);
|
||
|
||
table.AddCol(linkUrl);
|
||
table.AddCol(model.CName);
|
||
table.AddCol(InnerUserHelper.Instance.GetEidAndTrueName(model.INNERUSERID));
|
||
table.AddCol(model.ResourceTypeName);
|
||
table.AddCol(model.ActivityName);
|
||
//table.AddCol(model.extxml);
|
||
table.AddCol(model.CustomerCategory);
|
||
//table.AddCol(model.SubProductName);
|
||
//table.AddCol(string.IsNullOrEmpty(model.hasOrder) ? "否" : "是");
|
||
table.AddCol(model.hasWX == 1 ? "是" : "否");
|
||
table.AddCol(model.hasOtime);
|
||
table.AddCol(model.timestart);
|
||
table.AddCol(model.memotime);
|
||
table.AddCol(model.regtime);
|
||
table.AddCol(model.distime);
|
||
|
||
table.AddRow();
|
||
}
|
||
var json = new
|
||
{
|
||
totalPages = pager.totalPages,
|
||
totalRows = pager.totalRows,
|
||
rowsList = table.GetRows()
|
||
};
|
||
return Json(json, JsonRequestBehavior.AllowGet);
|
||
}
|
||
|
||
public ActionResult Distbute2(string resid, string HidRESOURCETAG, decimal? HidResourceId, decimal isView, decimal isNew, DateTime? AllocateTime1, DateTime? AllocateTime2, string pkids, string category, DateTime? stimeTH, DateTime? etimeTH, DateTime? stimeGD, DateTime? etimeGD, decimal? productId, decimal? subproductId, DateTime? stimeKT, DateTime? etimeKT, DateTime? stimeFP, DateTime? etimeFP, decimal? hasTH, decimal? hasGD, string extxml, decimal? midproductid, QueryUserComboDto usercomboDto)
|
||
{
|
||
Pager pager = new Pager() { page = 1, rows = 1 };
|
||
HidResourceId = HidResourceId.HasValue ? HidResourceId.Value : 0;
|
||
if (string.IsNullOrWhiteSpace(pkids))
|
||
pkids = null;
|
||
|
||
AllocateTime2 = AllocateTime2.HasValue ? AllocateTime2.Value.AddDays(1) : AllocateTime2;
|
||
//etimeTH = etimeTH.HasValue ? etimeTH.Value.AddDays(1) : etimeTH;
|
||
//etimeGD = etimeGD.HasValue ? etimeGD.Value.AddDays(1) : etimeGD;
|
||
//etimeKT = etimeKT.HasValue ? etimeKT.Value.AddDays(1) : etimeKT;
|
||
etimeFP = etimeFP.HasValue ? etimeFP.Value.AddDays(1) : etimeFP;
|
||
|
||
var list = allocateQ.GetMyAllocateResList2(ref pager, resid, usercomboDto, HidRESOURCETAG, HidResourceId.Value, isView, isNew, AllocateTime1, AllocateTime2, productId, subproductId, stimeTH, etimeTH, pkids, category, stimeGD, etimeGD, stimeKT, etimeKT, stimeFP, etimeFP, hasTH, hasGD, 0, extxml, midproductid);
|
||
|
||
var glist = _INNERGROUP_Q.GetList().OrderBy(p => p.SORT).ToList();
|
||
var ulist = inneruserBiz_Q.GetList();
|
||
var uglist = inneruserGroupBiz_Q.GetList();
|
||
|
||
var roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
|
||
if (roleCodes.Contains("[GJSGJKF]") && !roleCodes.Contains("[ZJZL]") && userOnGroupId != null)
|
||
{
|
||
glist = glist.Where(m => userOnGroupId.Contains(m.GID)).ToList();
|
||
}
|
||
if (roleCodes.Contains("[BMZG]") && !roleCodes.Contains("[ZJZL]"))
|
||
{
|
||
glist = glist.Where(m => m.SALEDEPTID == saleDeptId).ToList();
|
||
}
|
||
|
||
var ug = from t1 in uglist
|
||
join t2 in ulist on t1.INNERUSERID equals t2.PKID
|
||
join t3 in glist on t1.GID equals t3.GID
|
||
where t2.ISDISMISS == 0
|
||
select new { PKID = t2.PKID, UNAME = t2.UNAME, map_GID = t1.GID, DEPTID = t3.SALEDEPTID };
|
||
if (roleCodes.Contains("[GJSGJKF]") && !roleCodes.Contains("[ZJZL]") && userOnGroupId != null)
|
||
{
|
||
ug = ug.Where(p => userOnGroupId.Contains(p.map_GID.Value));
|
||
}
|
||
if (roleCodes.Contains("[BMZG]") && !roleCodes.Contains("[ZJZL]"))
|
||
{
|
||
ug = ug.Where(p => p.DEPTID == saleDeptId);
|
||
}
|
||
var ugView = from t1 in ug select new BAS_INNERUSER() { PKID = t1.PKID, UNAME = t1.UNAME, map_GID = t1.map_GID };
|
||
|
||
ViewData["ULIST"] = ugView;
|
||
ViewData["GLIST"] = glist;
|
||
ViewData["TOTAL"] = pager.totalRows;
|
||
ViewBag.pkids = pkids;
|
||
return View();
|
||
}
|
||
public ActionResult DistbuteSubmit2(QueryUserComboDto usercomboDto, string distbuteData, string resid, string HidRESOURCETAG, decimal? HidResourceId, decimal isView, decimal isNew, DateTime? AllocateTime1, DateTime? AllocateTime2, string pkids, string category, DateTime? stimeTH, DateTime? etimeTH, DateTime? stimeGD, DateTime? etimeGD, decimal? productId, decimal? subproductId, DateTime? stimeKT, DateTime? etimeKT, DateTime? stimeFP, DateTime? etimeFP, decimal? hasTH, decimal? hasGD, string extxml, decimal? midproductid)
|
||
{
|
||
try
|
||
{
|
||
if (distbuteData != null)
|
||
{
|
||
var disarray = distbuteData.Split(',');
|
||
var list = new List<RES_ALLCOTE_USER>();
|
||
|
||
var pici = new SEQUENCES_BL().Seq_base_get();
|
||
|
||
foreach (var item in disarray)
|
||
{
|
||
var disitemarr = item.Split(':');
|
||
if (disitemarr.Length != 3)
|
||
continue;
|
||
var num = Convert.ToInt32(string.IsNullOrEmpty(disitemarr[1]) ? "0" : disitemarr[1]);
|
||
|
||
var info = new RES_ALLCOTE_USER()
|
||
{
|
||
ID = new SEQUENCES_BL().Seq_base_get(),
|
||
INNERUSERID = Convert.ToDecimal(disitemarr[0]),
|
||
EID = InnerUserHelper.Instance.GetEidByUserId(Convert.ToDecimal(disitemarr[0])).Value,
|
||
NUM = num,
|
||
CTIME = DateTime.Now,
|
||
PICI = pici,
|
||
RESID = null,
|
||
TYPE = 0
|
||
};
|
||
list.Add(info);
|
||
}
|
||
_resAllcoteUser.AddList(list);
|
||
|
||
Pager pager = new Pager() { page = 1, rows = int.MaxValue };
|
||
HidResourceId = HidResourceId.HasValue ? HidResourceId.Value : 0;
|
||
if (string.IsNullOrWhiteSpace(pkids))
|
||
pkids = null;
|
||
|
||
AllocateTime2 = AllocateTime2.HasValue ? AllocateTime2.Value.AddDays(1) : AllocateTime2;
|
||
//etimeTH = etimeTH.HasValue ? etimeTH.Value.AddDays(1) : etimeTH;
|
||
//etimeGD = etimeGD.HasValue ? etimeGD.Value.AddDays(1) : etimeGD;
|
||
//etimeKT = etimeKT.HasValue ? etimeKT.Value.AddDays(1) : etimeKT;
|
||
etimeFP = etimeFP.HasValue ? etimeFP.Value.AddDays(1) : etimeFP;
|
||
|
||
res_allocate.HandlerMyAllocate(ref pager, usercomboDto, resid, HidRESOURCETAG, HidResourceId.Value, isView, isNew, AllocateTime1, AllocateTime2, productId, subproductId, stimeTH, etimeTH, pkids, category, stimeGD, etimeGD, stimeKT, etimeKT, stimeFP, etimeFP, hasTH, hasGD, UserId, pici, extxml, midproductid);
|
||
}
|
||
else
|
||
{
|
||
return Json(new { Success = false, Message = "分配客服数据不能为空!" }, JsonRequestBehavior.AllowGet);
|
||
}
|
||
return Json(new { Success = true, Message = "分配成功" }, JsonRequestBehavior.AllowGet);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error("AllocateController/DistbuteSubmit2" + ex);
|
||
return Json(new { Success = false, Message = "分配失败" }, JsonRequestBehavior.AllowGet);
|
||
}
|
||
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 软件三分配
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_主管资源分配)]
|
||
[HttpGet]
|
||
public ActionResult AllocateRes3()
|
||
{
|
||
return View();
|
||
}
|
||
|
||
[HttpPost]
|
||
public JsonResult AllocateRes3(AllocateRes3Para dto)
|
||
{
|
||
//LogHelper.Info("dto:" + dto.ToJson());
|
||
|
||
var total = 0;
|
||
var list = _resMyAllocateRes.GetAllocateRes3List(dto, ref total);
|
||
|
||
var data = new LayuiData<AllocateRes3View>()
|
||
{
|
||
msg = "数据加载成功!",
|
||
count = total,
|
||
code = 0,
|
||
data = list
|
||
};
|
||
return Json(data, JsonRequestBehavior.AllowGet);
|
||
}
|
||
|
||
[HttpGet]
|
||
public ActionResult Distbute3(AllocateRes3Para dto, int? length)
|
||
{
|
||
var total = 0;
|
||
|
||
if (length.HasValue)
|
||
{
|
||
total = length.Value;
|
||
}
|
||
else
|
||
{
|
||
_resMyAllocateRes.GetAllocateRes3List(dto, ref total);
|
||
}
|
||
|
||
var glist = _INNERGROUP_Q.GetList().OrderBy(p => p.SORT).ToList();
|
||
var ulist = inneruserBiz_Q.GetList();
|
||
var uglist = inneruserGroupBiz_Q.GetList();
|
||
|
||
var roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
|
||
if (roleCodes.Contains("[GJSGJKF]") && !roleCodes.Contains("[ZJZL]") && userOnGroupId != null)
|
||
{
|
||
glist = glist.Where(m => userOnGroupId.Contains(m.GID)).ToList();
|
||
}
|
||
if (roleCodes.Contains("[BMZG]") && !roleCodes.Contains("[ZJZL]"))
|
||
{
|
||
glist = glist.Where(m => m.SALEDEPTID == saleDeptId).ToList();
|
||
}
|
||
|
||
var ug = from t1 in uglist
|
||
join t2 in ulist on t1.INNERUSERID equals t2.PKID
|
||
join t3 in glist on t1.GID equals t3.GID
|
||
where t2.ISDISMISS == 0
|
||
select new { PKID = t2.PKID, UNAME = t2.UNAME, map_GID = t1.GID, DEPTID = t3.SALEDEPTID };
|
||
if (roleCodes.Contains("[GJSGJKF]") && !roleCodes.Contains("[ZJZL]") && userOnGroupId != null)
|
||
{
|
||
ug = ug.Where(p => userOnGroupId.Contains(p.map_GID.Value));
|
||
}
|
||
if (roleCodes.Contains("[BMZG]") && !roleCodes.Contains("[ZJZL]"))
|
||
{
|
||
ug = ug.Where(p => p.DEPTID == saleDeptId);
|
||
}
|
||
var ugView = from t1 in ug select new BAS_INNERUSER() { PKID = t1.PKID, UNAME = t1.UNAME, map_GID = t1.map_GID };
|
||
|
||
ViewData["ULIST"] = ugView;
|
||
ViewData["GLIST"] = glist;
|
||
ViewData["TOTAL"] = total;
|
||
//ViewBag.pkids = pkids;
|
||
return View();
|
||
}
|
||
|
||
[HttpPost]
|
||
public JsonResult Distbute3Save(AllocateRes3Para dto, string resids, string distbuteData)
|
||
{
|
||
try
|
||
{
|
||
//LogHelper.Info("distbuteData:" + distbuteData);
|
||
//LogHelper.Info("dto:" + dto.ToJson());
|
||
//LogHelper.Info("resids:" + resids);
|
||
if (distbuteData != null)
|
||
{
|
||
var total = 0;
|
||
var disarray = distbuteData.Split(',');
|
||
var list = new List<RES_ALLCOTE_USER>();
|
||
|
||
var queue = new Queue<string>();
|
||
|
||
if (!string.IsNullOrEmpty(resids))
|
||
{
|
||
var arr = resids.Split(',');
|
||
foreach (var item in arr.Distinct())
|
||
{
|
||
queue.Enqueue(item);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
var data = _resMyAllocateRes.GetAllocateRes3List(dto, ref total).Select(p => p.ResId).Distinct();
|
||
foreach (var item in data)
|
||
{
|
||
queue.Enqueue(item);
|
||
}
|
||
}
|
||
|
||
var pici = new SEQUENCES_BL().Seq_base_get();
|
||
|
||
foreach (var item in disarray)
|
||
{
|
||
var disitemarr = item.Split(':');
|
||
if (disitemarr.Length != 3)
|
||
continue;
|
||
var num = Convert.ToInt32(string.IsNullOrEmpty(disitemarr[1]) ? "0" : disitemarr[1]);
|
||
|
||
for (int i = 0; i < num; i++)
|
||
{
|
||
var resid = string.Empty;
|
||
if (queue.Count > 0)
|
||
{
|
||
resid = queue.Dequeue();
|
||
}
|
||
var info = new RES_ALLCOTE_USER()
|
||
{
|
||
ID = new SEQUENCES_BL().Seq_base_get(),
|
||
INNERUSERID = Convert.ToDecimal(disitemarr[0]),
|
||
EID = InnerUserHelper.Instance.GetEidByUserId(Convert.ToDecimal(disitemarr[0])).Value,
|
||
NUM = 1,
|
||
CTIME = DateTime.Now,
|
||
PICI = pici,
|
||
RESID = resid,
|
||
TYPE = 1
|
||
};
|
||
list.Add(info);
|
||
}
|
||
}
|
||
_resAllcoteUser.AddList(list);
|
||
|
||
_resMyAllocateRes.ExeSeniorDistributeByResId(UserId, pici, "手工分配");
|
||
|
||
}
|
||
else
|
||
{
|
||
return Json(new { Success = false, Message = "分配客服数据不能为空!" }, JsonRequestBehavior.AllowGet);
|
||
}
|
||
return Json(new { Success = true, Message = "分配成功" }, JsonRequestBehavior.AllowGet);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error("AllocateController/DistbuteSubmit2" + ex);
|
||
return Json(new { Success = false, Message = "分配失败" }, JsonRequestBehavior.AllowGet);
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 高级分配
|
||
/// <summary>
|
||
/// 高级分配界面
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_高级分配)]
|
||
public ActionResult SeniorDistribution()
|
||
{
|
||
//ToolBar tool = new ToolBar();
|
||
|
||
//tool.AllowButton("Other2");
|
||
//tool.AddOtherButton("Other2", "资源分配", "icon-details", "AllocateRes_Click", true);
|
||
|
||
|
||
ToolBar tool = new ToolBar();
|
||
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.高级分配, userRightId);
|
||
tool.AllowButton(toolbtn);
|
||
// tool.AllowButton("Create", "Edit", "Other1", "Details", "Delete", "Export", "Other2");
|
||
tool.AddOtherButton("Other1", "提交", "icon-details", "Save_Click", true);
|
||
tool.AddOtherButton("Other2", "重新绑定", "icon-details", "ReBind_Click", true);
|
||
tool.AddOtherButton("Other3", "批量重新绑定", "icon-details", "ReBindAll_Click", true);
|
||
tool.AddOtherButton("Other4", "导出", "icon-export", "Export_Click", true);
|
||
ViewBag.ToolBar = tool;
|
||
|
||
//table
|
||
Pager pager = new Pager() { page = 1, rows = 50 };
|
||
string tableId = "tablist";
|
||
Table tab = new Table(tableId)
|
||
{
|
||
//isCheckbox = true
|
||
};
|
||
tab.AddHiddenHeadCol("OrderId", "订单ID");
|
||
tab.AddHiddenHeadCol("Res", "客户ID");
|
||
tab.AddHeadCol("ResId", "15%", "客户ID");
|
||
tab.AddHeadCol("Cname", "", "客户姓名");
|
||
tab.AddHeadCol("AmountTypeid", "", "资金量");
|
||
tab.AddHeadCol("SubProductName", "", "产品");
|
||
tab.AddHeadCol("ArrivalPay", "", "到账金额");
|
||
tab.AddHeadCol("OTime", "", "开通时间");
|
||
tab.AddHeadCol("DisTime", "", "分配时间");
|
||
tab.AddHeadCol("SaleuserId", "", "主分成人");
|
||
tab.AddHeadCol("SaleGroupName", "", "主分成人组名");
|
||
tab.AddHeadCol("InnerUserid", "", "所属员工");
|
||
tab.AddHeadCol("InnerGroupName", "", "组别");
|
||
tab.AddHeadCol("operation", "", "操作");
|
||
|
||
tab.AddHeadRow();
|
||
ViewBag.gridTable = tab.GetHead() + Pagination.GetPage(pager, tableId, "50");
|
||
|
||
var category = cache_BL.GetList_SubComType(ComType.CustomerCategory).Select(item => new SelectListItem() { Text = item.SUBTYPENAME, Value = item.SUBTYPENAME }).ToList();
|
||
category.Insert(0, new SelectListItem() { Text = "全部", Value = string.Empty });
|
||
|
||
ViewBag.inneruserid = UserId;
|
||
ViewBag.userGroupId = userGroupId;
|
||
ViewBag.saleDeptId = saleDeptId;
|
||
ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
|
||
ViewBag.midproductList = GetMidProductList();
|
||
var ZJL = cache_BL.GetList_SubComType(ComType.CustomerZJL).Select(item => new SelectListItem() { Text = item.SUBTYPENAME, Value = item.SUBTYPECODE }).ToList();
|
||
ViewBag.ZJL = ZJL;
|
||
return View();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 高级分配获取数据
|
||
/// </summary>
|
||
/// <param name="pager"></param>
|
||
/// <param name="columns"></param>
|
||
/// <param name="query"></param>
|
||
/// <returns></returns>
|
||
[HttpPost]
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_高级分配)]
|
||
public JsonResult SeniorDistribution(Pager pager, string columns, SeniorDistributionQuery query)
|
||
{
|
||
try
|
||
{
|
||
if (query.openEndTime.HasValue)
|
||
query.openEndTime = query.openEndTime.Value.AddDays(1);
|
||
if (query.eid.HasValue)
|
||
query.eid = InnerUserHelper.Instance.GetUserIdByEid(query.eid.Value);
|
||
//if (query.openEndTime.HasValue)
|
||
// query.openEndTime = query.openEndTime.Value.AddDays(1);
|
||
if (query.fenpeiETime.HasValue)
|
||
query.fenpeiETime = query.fenpeiETime.Value.AddDays(1);
|
||
if (query.groupId == "0")
|
||
{
|
||
query.groupId = null;
|
||
}
|
||
if (query.subProductId.HasValue && query.subProductId.Value == 0)
|
||
{
|
||
query.subProductId = null;
|
||
}
|
||
if (query.midproductId.HasValue && query.midproductId.Value == 0)
|
||
{
|
||
query.midproductId = null;
|
||
}
|
||
var list = _resMyAllocateRes.GetSeniorDistribution(ref pager, query);
|
||
var table = new Table(columns, true)
|
||
{
|
||
gridPager = pager,
|
||
//isCheckbox = true
|
||
};
|
||
var ZJL = cache_BL.GetList_SubComType(ComType.CustomerZJL);
|
||
foreach (var model in list)
|
||
{
|
||
var linkUrl = string.Format("<a href=\"javascript:parent.ChildAddTab('{0}', '{1}', '')\">{2}</a>"
|
||
, "客户详细"
|
||
, "/Csvr/CustomerInfo/CustomerDetail?resid=" + model.ResId
|
||
, model.ResId);
|
||
table.AddHiddenCol(model.OrderId);
|
||
table.AddHiddenCol(model.ResId);
|
||
table.AddCol(linkUrl);
|
||
table.AddCol(model.CName);
|
||
var am = ZJL.FirstOrDefault(m => m.SUBTYPECODE == model.amounttypeid);
|
||
if (am == null)
|
||
{
|
||
table.AddCol("【未知】");
|
||
}
|
||
else
|
||
{
|
||
table.AddCol(am.SUBTYPENAME);
|
||
}
|
||
table.AddCol(model.SubProductName);
|
||
table.AddCol(model.ArrivalPay);
|
||
table.AddCol(model.OTime);
|
||
table.AddCol(model.DisTime);
|
||
table.AddCol(InnerUserHelper.Instance.GetEidAndTrueName(model.SaleUserId));
|
||
table.AddCol(InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(model.SaleUserId)));
|
||
//if (query.isDistribute == 1)
|
||
//{
|
||
table.AddCol(InnerUserHelper.Instance.GetEidAndTrueName(model.InnerUserid));
|
||
table.AddCol(InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(model.InnerUserid)));
|
||
//}
|
||
//else
|
||
//{
|
||
// table.AddCol("");
|
||
// table.AddCol("");
|
||
//}
|
||
table.AddCol((query.isDistribute.HasValue && query.isDistribute == 0) ? string.Format("工号:<input type='text' name='sales' resid='{0}' style='width:50px;'/>", model.ResId) : 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());
|
||
var json = new
|
||
{
|
||
errorMessag = ex.ToString()
|
||
};
|
||
return Json(json, JsonRequestBehavior.AllowGet);
|
||
}
|
||
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 重新绑定
|
||
/// </summary>
|
||
/// <param name="resId"></param>
|
||
/// <returns></returns>
|
||
[HttpGet]
|
||
[AuthorizeToolBar(InitRights.CONST_高级分配, InitToolBar.CONST_Other2)]
|
||
public ActionResult SeniordistributeBind(string resId)
|
||
{
|
||
var model = _aftersales.Get(m => m.RESID == resId);
|
||
if (model != null)
|
||
{
|
||
var list = wx_AfterSales_Log_BL.GetList(m => m.RESID == resId).OrderByDescending(m => m.CTIME).ToList();
|
||
if (list != null && list.Count > 0)
|
||
{
|
||
string tableId = "tablist";
|
||
Table tab = new Table(tableId);
|
||
tab.AddHeadCol("EID", "", "高级客服");
|
||
tab.AddHeadCol("STARTDATE", "", "开始时间");
|
||
tab.AddHeadCol("ENDDATE", "", "结束时间");
|
||
tab.AddHeadCol("CTIME", "", "创建时间");
|
||
tab.AddHeadRow();
|
||
foreach (var item in list)
|
||
{
|
||
tab.AddCol(InnerUserHelper.Instance.GetEidAndTrueName(item.INNERUSERID));
|
||
tab.AddCol(item.STARTDATE);
|
||
tab.AddCol(item.ENDDATE);
|
||
tab.AddCol(item.CTIME);
|
||
tab.AddRow();
|
||
}
|
||
ViewBag.gridTable = tab.GetTable();
|
||
ViewBag.Eid = InnerUserHelper.Instance.GetEid(list.FirstOrDefault().INNERUSERID);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
model = new WX_AFTERSALES3();
|
||
}
|
||
return View(model);
|
||
}
|
||
/// <summary>
|
||
/// 重新绑定
|
||
/// </summary>
|
||
/// <param name="eid"></param>
|
||
/// <param name="startDate"></param>
|
||
/// <param name="RESID"></param>
|
||
/// <returns></returns>
|
||
[HttpPost]
|
||
[AuthorizeToolBar(InitRights.CONST_高级分配, InitToolBar.CONST_Other2)]
|
||
public JsonResult SeniordistributeBindSave(string eid, string startDate, string RESID)
|
||
{
|
||
var result = false;
|
||
var message = "更新失败";
|
||
decimal decEid;
|
||
if (!decimal.TryParse(eid, out decEid))
|
||
{
|
||
return JsonHandler.ManageMessage("员工工号格式输入有误!", result);
|
||
}
|
||
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 afterSales = _aftersales.Get(m => m.RESID == RESID);
|
||
if (afterSales == null)
|
||
{
|
||
return JsonHandler.ManageMessage("选择的绑定记录不存在!", result);
|
||
}
|
||
|
||
var list = wx_AfterSales_Log_BL.GetList(afterSales.RESID);
|
||
if (list != null && list.Count > 0)
|
||
{
|
||
var model = list.FirstOrDefault();
|
||
model.ENDDATE = Convert.ToDateTime(startDate).Date;
|
||
wx_AfterSales_Log_BL.Update(model);
|
||
}
|
||
var afterSalesLog = new WX_AFTERSALES3_LOG()
|
||
{
|
||
PKID = new SEQUENCES_BL().Seq_base_get(),
|
||
RESID = RESID,
|
||
INNERUSERID = innerUserId,
|
||
STARTDATE = Convert.ToDateTime(startDate).Date,
|
||
ENDDATE = Convert.ToDateTime("2050-1-1").Date,
|
||
OPERATORID = UserId,
|
||
CTIME = DateTime.Now,
|
||
OLD_INNERUSERID = afterSales.INNERUSERID//旧数据的ID
|
||
|
||
};
|
||
wx_AfterSales_Log_BL.Add(afterSalesLog);
|
||
|
||
afterSales.INNERUSERID = innerUserId;//设置id
|
||
afterSales.EID = decEid;//设置工号
|
||
afterSales.CTIME = DateTime.Now;
|
||
result = _aftersales.Update(afterSales);
|
||
if (result)
|
||
{
|
||
message = "绑定成功";
|
||
}
|
||
return JsonHandler.ManageMessage(message, result);
|
||
}
|
||
|
||
|
||
|
||
[Inject]
|
||
public WX.CRM.IBLL.Base.IBAS_INNERUSER_Q innerUser_BL { get; set; }
|
||
|
||
/// <summary>
|
||
/// 高级分配,批量分配
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
[HttpGet]
|
||
[AuthorizeToolBar(InitRights.CONST_高级分配, InitToolBar.CONST_Other3)]
|
||
public ActionResult SeniordistributeBatchBind()
|
||
{
|
||
Pager pager = new Pager() { page = 1, rows = 500 };
|
||
string tableId = "tablist";
|
||
Table tab = new Table(tableId);
|
||
tab.isCheckbox = true;
|
||
tab.AddHiddenHeadCol("pkid", "ID");//影藏列
|
||
tab.AddHeadCol("resid", "", "客户ID");
|
||
tab.AddHeadCol("subProductName", "", "产品");
|
||
tab.AddHeadCol("finalPay", "", "实付金额");
|
||
tab.AddHeadCol("saleGroup", "", "高级客服组名");
|
||
tab.AddHeadCol("mainTraderUser", "", "所属客服");
|
||
tab.AddHeadRow();
|
||
ViewBag.gridTable = tab.GetHead() + Pagination.GetPage(pager, tableId, "50,100");
|
||
|
||
|
||
|
||
Table tab2 = new Table("tablis2");
|
||
tab2.isCheckbox = true;
|
||
tab2.AddHiddenHeadCol("pkid", "ID");//影藏列
|
||
tab2.AddHeadCol("resid", "", "客户ID");
|
||
tab2.AddHeadCol("subProductName", "", "产品");
|
||
tab2.AddHeadRow();
|
||
|
||
//添加分割线
|
||
tab2.AddTHeadAndTbodySplit();
|
||
|
||
ViewBag.gridTable2 = tab2.GetTable();
|
||
|
||
return View();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 高级分配,批量分配
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
[HttpPost]
|
||
[AuthorizeToolBar(InitRights.CONST_高级分配, InitToolBar.CONST_Other3)]
|
||
public ActionResult SeniordistributeBatchBindSave(string resIds, decimal? newEid)
|
||
{
|
||
decimal innerUserId;
|
||
if (!newEid.HasValue)
|
||
{
|
||
return JsonHandler.ManageMessage("高级客服工号不存在!", false);
|
||
}
|
||
var user = innerUser_BL.getInnerUserByEid(newEid.Value);
|
||
if (user == null)
|
||
{
|
||
return JsonHandler.ManageMessage("高级客服工号不存在!", false);
|
||
}
|
||
innerUserId = user.PKID;
|
||
try
|
||
{
|
||
string[] resIdArr = resIds.Split(',');
|
||
if (resIdArr != null && resIdArr.Length > 0)
|
||
{
|
||
foreach (var r in resIdArr)
|
||
{
|
||
var list = wx_AfterSales_Log_BL.GetList(r);
|
||
if (list != null && list.Count > 0)
|
||
{
|
||
var model = list.FirstOrDefault();
|
||
model.ENDDATE = DateTime.Now.Date;
|
||
wx_AfterSales_Log_BL.Update(model);
|
||
}
|
||
var afterSales = _aftersales.Get(m => m.RESID == r);
|
||
var afterSalesLog = new WX_AFTERSALES3_LOG()
|
||
{
|
||
PKID = new SEQUENCES_BL().Seq_base_get(),
|
||
RESID = r,
|
||
INNERUSERID = innerUserId,
|
||
STARTDATE = DateTime.Now.Date,
|
||
ENDDATE = Convert.ToDateTime("2050-1-1").Date,
|
||
OPERATORID = UserId,
|
||
OLD_INNERUSERID = afterSales.INNERUSERID,
|
||
CTIME = DateTime.Now
|
||
};
|
||
wx_AfterSales_Log_BL.Add(afterSalesLog);
|
||
if (afterSales != null)
|
||
{
|
||
afterSales.INNERUSERID = innerUserId;
|
||
afterSales.CTIME = DateTime.Now;
|
||
afterSales.EID = user.EID;
|
||
_aftersales.Update(afterSales);
|
||
}
|
||
}
|
||
}
|
||
return JsonHandler.ManageMessage("更新成功!", true);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error(ex);
|
||
return JsonHandler.ManageMessage("更新失败!", false);
|
||
}
|
||
}
|
||
|
||
|
||
[HttpPost]
|
||
[AuthorizeToolBar(InitRights.CONST_高级分配, InitToolBar.CONST_Other3)]
|
||
public JsonResult SeniordistributeBatchBindGetHtmlList(Pager pg, decimal? eID, string columns)
|
||
{
|
||
try
|
||
{
|
||
Table tb = new Table(columns, true) { gridPager = pg };
|
||
decimal? innerUserId = null;
|
||
if (eID.HasValue)
|
||
{
|
||
innerUserId = InnerUserHelper.Instance.GetUserIdByEid(eID);
|
||
}
|
||
var list = _aftersales.GetAfterSaleAssignViews(ref pg, null, innerUserId, 1);
|
||
tb.isCheckbox = true;
|
||
foreach (var model in list)
|
||
{
|
||
tb.AddHiddenCol(model.RESID);
|
||
tb.AddCol(model.RESID);
|
||
tb.AddCol(model.SUBPRODUCTNAME);
|
||
tb.AddCol(model.FINALPAY);
|
||
tb.AddCol(InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(model.INNERUSERID)));
|
||
tb.AddCol(InnerUserHelper.Instance.EidAndName(model.INNERUSERID));
|
||
tb.AddRow();
|
||
}
|
||
var json = new
|
||
{
|
||
totalPages = pg.totalPages,
|
||
totalRows = pg.totalRows,
|
||
rowsList = tb.GetRows()
|
||
};
|
||
return Json(json, JsonRequestBehavior.AllowGet);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error(ex.ToString());
|
||
return JsonHandler.ManageMessage(ex.Message, false);
|
||
}
|
||
}
|
||
|
||
public FileResult SeniorDistributionExport(string columns, SeniorDistributionQuery query)
|
||
{
|
||
try
|
||
{
|
||
if (query.openEndTime.HasValue)
|
||
query.openEndTime = query.openEndTime.Value.AddDays(1);
|
||
if (query.eid.HasValue)
|
||
query.eid = InnerUserHelper.Instance.GetUserIdByEid(query.eid.Value);
|
||
|
||
if (query.fenpeiETime.HasValue)
|
||
query.fenpeiETime = query.fenpeiETime.Value.AddDays(1);
|
||
if (query.groupId == "0")
|
||
{
|
||
query.groupId = null;
|
||
}
|
||
if (query.subProductId.HasValue && query.subProductId.Value == 0)
|
||
{
|
||
query.subProductId = null;
|
||
}
|
||
if (query.midproductId.HasValue && query.midproductId.Value == 0)
|
||
{
|
||
query.midproductId = null;
|
||
}
|
||
|
||
var pager = new Pager() { page = 1, rows = int.MaxValue };
|
||
var contentType = "application/ms-excel";
|
||
var downloadName = PageRequest.GetDlownLoadName("资源导出" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ".xls");
|
||
|
||
var list = _resMyAllocateRes.GetSeniorDistribution(ref pager, query).ToList();
|
||
|
||
var data = new List<SeniorDistributionExport>();
|
||
var ZJL = cache_BL.GetList_SubComType(ComType.CustomerZJL);
|
||
foreach (var item in list)
|
||
{
|
||
var info = new SeniorDistributionExport()
|
||
{
|
||
ResId = item.ResId,
|
||
CName = item.CName,
|
||
SubProductName = item.SubProductName,
|
||
ArrivalPay = item.ArrivalPay,
|
||
OTime = item.OTime,
|
||
DisTime = item.DisTime,
|
||
SaleuserId = InnerUserHelper.Instance.GetEidAndTrueName(item.SaleUserId),
|
||
SaleGroupName = InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(item.SaleUserId)),
|
||
//AfterSale = item.AfterSale
|
||
};
|
||
|
||
//if (query.isDistribute == 1)
|
||
//{
|
||
info.InnerUserid = InnerUserHelper.Instance.GetEidAndTrueName(item.InnerUserid);
|
||
info.InnerGroupName = InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(item.InnerUserid));
|
||
//}
|
||
var am = ZJL.FirstOrDefault(m => m.SUBTYPECODE == item.amounttypeid);
|
||
if (am == null)
|
||
{
|
||
info.AmountTypeid = "【未知】";
|
||
}
|
||
else
|
||
{
|
||
info.AmountTypeid = am.SUBTYPENAME;
|
||
}
|
||
data.Add(info);
|
||
}
|
||
|
||
System.IO.Stream strem = ExcelHelper.ExportListModelToExcel<SeniorDistributionExport>(data, "资源列表", 50000, null);
|
||
|
||
return File(strem, contentType, downloadName);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error("查询异常:" + ex.ToString());
|
||
return null;
|
||
}
|
||
}
|
||
|
||
#region 高级资源分配(传统界面分配 弃用)
|
||
//[AuthorizeRedirect(Roles = InitRights.CONST_高级分配)]
|
||
//public ActionResult Seniordistribute(SeniorDistributionQuery query)
|
||
//{
|
||
// var pager = new Pager() { page = 1, rows = 1 };
|
||
|
||
// if (query.openEndTime.HasValue)
|
||
// query.openEndTime = query.openEndTime.Value.AddDays(1);
|
||
// if (query.eid.HasValue)
|
||
// query.eid = InnerUserHelper.Instance.GetUserIdByEid(query.eid.Value);
|
||
|
||
// if (query.fenpeiETime.HasValue)
|
||
// query.fenpeiETime = query.fenpeiETime.Value.AddDays(1);
|
||
// if (query.groupId == "0")
|
||
// {
|
||
// query.groupId = null;
|
||
// }
|
||
// if (query.subProductId.HasValue && query.subProductId.Value == 0)
|
||
// {
|
||
// query.subProductId = null;
|
||
// }
|
||
// if (query.midproductId.HasValue && query.midproductId.Value == 0)
|
||
// {
|
||
// query.midproductId = null;
|
||
// }
|
||
|
||
// var list = _resMyAllocateRes.GetSeniorDistribution(ref pager, query);
|
||
|
||
// var glist = _INNERGROUP_Q.GetList().OrderBy(p => p.SORT).ToList();
|
||
// var ulist = inneruserBiz_Q.GetList();
|
||
// var uglist = inneruserGroupBiz_Q.GetList();
|
||
|
||
// var roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
|
||
// if (roleCodes.Contains("[GJSGJKF]") && !roleCodes.Contains("[ZJZL]") && userOnGroupId != null)
|
||
// {
|
||
// glist = glist.Where(m => userOnGroupId.Contains(m.GID)).ToList();
|
||
// }
|
||
// if (roleCodes.Contains("[BMZG]") && !roleCodes.Contains("[ZJZL]"))
|
||
// {
|
||
// glist = glist.Where(m => m.SALEDEPTID == saleDeptId).ToList();
|
||
// }
|
||
|
||
// var ug = from t1 in uglist
|
||
// join t2 in ulist on t1.INNERUSERID equals t2.PKID
|
||
// join t3 in glist on t1.GID equals t3.GID
|
||
// where t2.ISDISMISS == 0
|
||
// select new { PKID = t2.PKID, UNAME = t2.UNAME, map_GID = t1.GID, DEPTID = t3.SALEDEPTID };
|
||
// if (roleCodes.Contains("[GJSGJKF]") && !roleCodes.Contains("[ZJZL]") && userOnGroupId != null)
|
||
// {
|
||
// ug = ug.Where(p => userOnGroupId.Contains(p.map_GID.Value));
|
||
// }
|
||
// if (roleCodes.Contains("[BMZG]") && !roleCodes.Contains("[ZJZL]"))
|
||
// {
|
||
// ug = ug.Where(p => p.DEPTID == saleDeptId);
|
||
// }
|
||
// var ugView = from t1 in ug select new BAS_INNERUSER() { PKID = t1.PKID, UNAME = t1.UNAME, map_GID = t1.map_GID };
|
||
|
||
// ViewData["ULIST"] = ugView;
|
||
// ViewData["GLIST"] = glist;
|
||
// ViewData["TOTAL"] = pager.totalRows;
|
||
// return View();
|
||
//}
|
||
|
||
//[HttpPost]
|
||
//[AuthorizeRedirect(Roles = InitRights.CONST_高级分配)]
|
||
//public JsonResult ExeSeniordistribute(string distbuteData, SeniorDistributionQuery query)
|
||
//{
|
||
// try
|
||
// {
|
||
// if (distbuteData != null)
|
||
// {
|
||
// var disarray = distbuteData.Split(',');
|
||
// var list = new List<RES_ALLCOTE_USER>();
|
||
|
||
// var pici = new SEQUENCES_BL().Seq_base_get();
|
||
|
||
// foreach (var item in disarray)
|
||
// {
|
||
// var disitemarr = item.Split(':');
|
||
// if (disitemarr.Length != 3)
|
||
// continue;
|
||
// var num = Convert.ToInt32(string.IsNullOrEmpty(disitemarr[1]) ? "0" : disitemarr[1]);
|
||
|
||
// var info = new RES_ALLCOTE_USER()
|
||
// {
|
||
// ID = new SEQUENCES_BL().Seq_base_get(),
|
||
// INNERUSERID = Convert.ToDecimal(disitemarr[0]),
|
||
// EID = InnerUserHelper.Instance.GetEidByUserId(Convert.ToDecimal(disitemarr[0])).Value,
|
||
// NUM = num,
|
||
// CTIME = DateTime.Now,
|
||
// PICI = pici,
|
||
// RESID = null,
|
||
// TYPE = 0
|
||
// };
|
||
// list.Add(info);
|
||
// }
|
||
// _resAllcoteUser.AddList(list);
|
||
|
||
// if (query.openEndTime.HasValue)
|
||
// query.openEndTime = query.openEndTime.Value.AddDays(1);
|
||
// if (query.eid.HasValue)
|
||
// query.eid = InnerUserHelper.Instance.GetUserIdByEid(query.eid.Value);
|
||
|
||
// if (query.fenpeiETime.HasValue)
|
||
// query.fenpeiETime = query.fenpeiETime.Value.AddDays(1);
|
||
// if (query.groupId == "0")
|
||
// {
|
||
// query.groupId = null;
|
||
// }
|
||
// if (query.subProductId.HasValue && query.subProductId.Value == 0)
|
||
// {
|
||
// query.subProductId = null;
|
||
// }
|
||
// if (query.midproductId.HasValue && query.midproductId.Value == 0)
|
||
// {
|
||
// query.midproductId = null;
|
||
// }
|
||
|
||
// query.pici = pici;
|
||
// query.fenpeiUser = UserId;
|
||
// //LogHelper.Info(query.ToJson());
|
||
// _resMyAllocateRes.ExeSeniorDistribute(query);
|
||
// }
|
||
// else
|
||
// {
|
||
// return Json(new { Success = false, Message = "分配客服数据不能为空!" }, JsonRequestBehavior.AllowGet);
|
||
// }
|
||
// return Json(new { Success = true, Message = "分配成功" }, JsonRequestBehavior.AllowGet);
|
||
// }
|
||
// catch (Exception ex)
|
||
// {
|
||
// LogHelper.Error("AllocateController/ExeSeniordistribute" + ex);
|
||
// return Json(new { Success = false, Message = "分配失败" }, JsonRequestBehavior.AllowGet);
|
||
// }
|
||
//}
|
||
|
||
#endregion
|
||
|
||
/// <summary>
|
||
/// 高级资源工号提交
|
||
/// </summary>
|
||
/// <param name="data"></param>
|
||
/// <returns></returns>
|
||
public JsonResult ExeSeniordistributeByResId(string data)
|
||
{
|
||
try
|
||
{
|
||
var list = new List<ResDistributionInfo>();
|
||
if (!string.IsNullOrEmpty(data))
|
||
{
|
||
var traderlist = JsonHelper.JsonDivertToObj<List<ResDistributionInfo>>(data);
|
||
foreach (var item in traderlist)
|
||
{
|
||
#region
|
||
if (item.UserId.HasValue)
|
||
{
|
||
decimal eid;
|
||
if (decimal.TryParse(item.UserId.ToString(), out eid))
|
||
{
|
||
decimal newUserId = InnerUserHelper.Instance.GetUserIdByEid(eid);
|
||
if (newUserId > 1)
|
||
{
|
||
var info = new ResDistributionInfo
|
||
{
|
||
UserId = newUserId,
|
||
ResId = item.ResId
|
||
};
|
||
list.Add(info);
|
||
}
|
||
else
|
||
{
|
||
ModelState.AddModelError(new Guid().ToString(), item.UserId.ToString() + "工号不存在");
|
||
}
|
||
}
|
||
else
|
||
{
|
||
ModelState.AddModelError(new Guid().ToString(), item.UserId.ToString() + "工号不正确");
|
||
}
|
||
}
|
||
#endregion
|
||
}
|
||
}
|
||
if (!ModelState.IsValid)
|
||
{
|
||
return JsonHandler.JsonResultSerialize(ModelState);
|
||
}
|
||
var afterSaleList = new List<WX_AFTERSALES3>();
|
||
foreach (var item in list)
|
||
{
|
||
if (item.UserId.HasValue)
|
||
{
|
||
var info = new WX_AFTERSALES3()
|
||
{
|
||
RESID = item.ResId,
|
||
INNERUSERID = item.UserId ?? 0
|
||
};
|
||
afterSaleList.Add(info);
|
||
}
|
||
}
|
||
_aftersales.SaveAfterSale(afterSaleList);
|
||
foreach (var item in list)
|
||
{
|
||
if (item.UserId.HasValue)
|
||
{
|
||
var afterSalesLog = new WX_AFTERSALES3_LOG();
|
||
afterSalesLog.PKID = new SEQUENCES_BL().Seq_base_get();
|
||
afterSalesLog.RESID = item.ResId;
|
||
afterSalesLog.INNERUSERID = item.UserId.Value;
|
||
afterSalesLog.STARTDATE = DateTime.Now.Date;
|
||
afterSalesLog.ENDDATE = Convert.ToDateTime("2050-1-1").Date;
|
||
afterSalesLog.OPERATORID = UserId;
|
||
afterSalesLog.CTIME = DateTime.Now;
|
||
//afterSalesLog.OLD_INNERUSERID = item.OldUserId;//旧员工
|
||
|
||
wx_AfterSales_Log_BL.Add(afterSalesLog);
|
||
}
|
||
|
||
}
|
||
return JsonHandler.ManageMessage("修改成功", true);
|
||
|
||
//var allocteUsers = new List<RES_ALLCOTE_USER>();
|
||
|
||
//var pici = new SEQUENCES_BL().Seq_base_get();
|
||
|
||
//foreach (var item in list)
|
||
//{
|
||
// var info = new RES_ALLCOTE_USER()
|
||
// {
|
||
// ID = new SEQUENCES_BL().Seq_base_get(),
|
||
// INNERUSERID = item.UserId.Value,
|
||
// EID = InnerUserHelper.Instance.GetEidByUserId(item.UserId.Value).Value,
|
||
// NUM = 1,
|
||
// CTIME = DateTime.Now,
|
||
// PICI = pici,
|
||
// RESID = item.ResId,
|
||
// TYPE = 1
|
||
// };
|
||
// allocteUsers.Add(info);
|
||
//}
|
||
|
||
//_resAllcoteUser.AddList(allocteUsers);
|
||
|
||
//_resMyAllocateRes.ExeSeniorDistributeByResId(UserId, pici, "升级分配");
|
||
|
||
//return JsonHandler.ManageMessage("修改成功", true);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error(ex.ToString());
|
||
return JsonHandler.ManageMessage(ex.Message, false);
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
|
||
|
||
#region 活动
|
||
public ActionResult ActiveList(decimal? id)
|
||
{
|
||
var lis = activeBiz_Q.GetList(id.GetValueOrDefault(0));
|
||
if (Request.IsAjaxRequest())
|
||
{
|
||
return Json(lis, JsonRequestBehavior.AllowGet);
|
||
}
|
||
else
|
||
{
|
||
return View("");
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 注册资源分配日志
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_注册资源分配日志)]
|
||
public ActionResult AllocateLog()
|
||
{
|
||
//table
|
||
Pager pager = new Pager() { page = 1, rows = 10 };
|
||
string tableId = "tablist";
|
||
Table tab = new Table(tableId);
|
||
tab.AddHeadCol("RESID", "", "客户ID");
|
||
tab.AddHeadCol("SALESID", "", "客服");
|
||
tab.AddHeadCol("GName", "", "组别");
|
||
//tab.AddHeadCol("CUSTOMERCATEGORY", "", "分类");
|
||
tab.AddHeadCol("ResourceTypeName", "", "资源类型");
|
||
tab.AddHeadCol("ActivityName", "", "活动名称");
|
||
tab.AddHeadCol("LASTACTIVETIME", "", "工单最后时间");
|
||
tab.AddHeadCol("LASTCALLTIME", "", "录音最后时间");
|
||
tab.AddHeadCol("RECYCLETIME", "", "回收时间");
|
||
tab.AddHeadCol("DISUSERID", "", "分配人");
|
||
tab.AddHeadCol("DISTIME", "", "分配时间");
|
||
tab.AddHeadRow();
|
||
ViewBag.gridTable = tab.GetTable() + Pagination.GetPage(pager, tableId, "10,20,50");
|
||
|
||
List<SelectListItem> lis = new List<SelectListItem>();
|
||
var rlis = resourceTypeBiz_Q.GetList();
|
||
lis.Add(new SelectListItem() { Value = "", Text = "-请选择-" });
|
||
foreach (var obj in rlis)
|
||
{
|
||
lis.Add(new SelectListItem() { Value = string.Format("{0}", obj.RESTYPEID), Text = obj.TYPENAME });
|
||
}
|
||
|
||
ViewData["ResourctType1"] = lis;
|
||
ViewBag.inneruserid = UserId;
|
||
ViewBag.userGroupId = userGroupId;
|
||
ViewBag.saleDeptId = saleDeptId;
|
||
ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
|
||
|
||
var category = cache_BL.GetList_SubComType(ComType.CustomerCategory).Select(item => new SelectListItem() { Text = item.SUBTYPENAME, Value = item.SUBTYPENAME }).ToList();
|
||
|
||
category.Insert(0, new SelectListItem() { Text = string.Empty, Value = string.Empty });
|
||
|
||
ViewBag.category = category;
|
||
|
||
return View();
|
||
}
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_注册资源分配日志)]
|
||
|
||
public JsonResult AllocateLogGetHtmlList(Pager pager, string columns, ResMyAllocateLogQuery query, QueryUserComboDto usercomboDto)
|
||
{
|
||
if (!string.IsNullOrWhiteSpace(query.resid))
|
||
query.resid = query.resid.Trim();
|
||
|
||
if (query.diseid.HasValue)
|
||
query.diseid = InnerUserHelper.Instance.GetUserIdByEid(query.diseid.Value);
|
||
|
||
var list = res_allocate.GetListByHis(ref pager, query, usercomboDto);
|
||
var table = new Table(columns, true)
|
||
{
|
||
gridPager = pager
|
||
};
|
||
foreach (var model in list)
|
||
{
|
||
var color = string.Empty;
|
||
if (model.LASTACTIVETIME > model.DISTIME || model.LASTCALLTIME > model.DISTIME)
|
||
color = "style =\"color:green\"";
|
||
if (model.RECYCLETIME.HasValue)
|
||
color = "style =\"color:red\"";
|
||
var a = string.Format("<a href=\"javascript:parent.parent.ChildAddTab('{0}', '{1}', '')\" " + color + ">{2}</a>", "客户详细", "/Csvr/CustomerInfo/CustomerDetail?resid=" + model.ResId, model.ResId);
|
||
|
||
table.AddCol(a);
|
||
table.AddCol(InnerUserHelper.Instance.EidAndName(model.SALESID));
|
||
table.AddCol(InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(model.SALESID)));
|
||
//table.AddCol(model.CUSTOMERCATEGORY);
|
||
table.AddCol(model.ResourceTypeName);
|
||
table.AddCol(model.ActivityName);
|
||
table.AddCol(model.LASTACTIVETIME);
|
||
table.AddCol(model.LASTCALLTIME);
|
||
table.AddCol(model.RECYCLETIME);
|
||
table.AddCol(InnerUserHelper.Instance.EidAndName(model.DISUSERID));
|
||
table.AddCol(model.DISTIME);
|
||
table.AddRow();
|
||
}
|
||
var json = new
|
||
{
|
||
totalPages = pager.totalPages,
|
||
totalRows = pager.totalRows,
|
||
rowsList = table.GetRows()
|
||
};
|
||
return Json(json, JsonRequestBehavior.AllowGet);
|
||
}
|
||
|
||
public FileResult AllocateLogExport(ResMyAllocateLogQuery query, QueryUserComboDto usercomboDto)
|
||
{
|
||
|
||
if (!string.IsNullOrWhiteSpace(query.resid))
|
||
query.resid = query.resid.Trim();
|
||
|
||
if (query.diseid.HasValue)
|
||
query.diseid = InnerUserHelper.Instance.GetUserIdByEid(query.diseid.Value);
|
||
|
||
var pager = new Pager() { page = 1, rows = int.MaxValue };
|
||
var contentType = "application/ms-excel";
|
||
var downloadName = PageRequest.GetDlownLoadName("分配资源导出" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ".xls");
|
||
|
||
var list = res_allocate.GetListByHis(ref pager, query, usercomboDto);
|
||
|
||
var data = new List<RES_MYALLOCATERES_Export>();
|
||
foreach (var item in list)
|
||
{
|
||
data.Add(new RES_MYALLOCATERES_Export()
|
||
{
|
||
ResId = item.ResId,
|
||
UName = InnerUserHelper.Instance.GetEidAndTrueName(item.SALESID),
|
||
GName = InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(item.SALESID)),
|
||
ResourceTypeName = item.ResourceTypeName,
|
||
ActivityName = item.ActivityName,
|
||
LASTACTIVETIME = item.LASTACTIVETIME,
|
||
LASTCALLTIME = item.LASTCALLTIME,
|
||
RECYCLETIME = item.RECYCLETIME,
|
||
DISUSERNAME = InnerUserHelper.Instance.GetEidAndTrueName(item.DISUSERID),
|
||
DISTIME = item.DISTIME
|
||
});
|
||
}
|
||
|
||
System.IO.Stream strem = ExcelHelper.ExportListModelToExcel<RES_MYALLOCATERES_Export>(data, "分配资源", 50000, null);
|
||
|
||
return File(strem, contentType, downloadName);
|
||
}
|
||
|
||
#endregion
|
||
|
||
private List<SelectListItem> getAllProductList()
|
||
{
|
||
List<SelectListItem> selectList = new List<SelectListItem>();
|
||
var where = PredicateExtensionses.True<WX_SZZYPRODUCT>();
|
||
Pager pager = new Pager() { page = 1, rows = int.MaxValue };
|
||
var list = wx_SzzyProduct_BL.GetList(where, m => m.PRODUCTID, pager, SortOrder.Ascending);
|
||
foreach (var szzyProduct in list)
|
||
{
|
||
selectList.Add(new SelectListItem() { Text = szzyProduct.PRODUCTNAME, Value = szzyProduct.PRODUCTID.ToString() });
|
||
}
|
||
return selectList;
|
||
}
|
||
|
||
private List<SelectListItem> GetMidProductList()
|
||
{
|
||
var data = new List<SelectListItem>();
|
||
var list = _midProduct.GetList();
|
||
foreach (var item in list)
|
||
{
|
||
data.Add(new SelectListItem() { Text = item.MIDPRODUCTNAME, Value = item.MIDPRODUCTID.ToString() });
|
||
}
|
||
return data;
|
||
}
|
||
|
||
private string GetOrderTypeName(decimal orderType)
|
||
{
|
||
var name = string.Empty;
|
||
switch (orderType)
|
||
{
|
||
case 1: name = "普通订单"; break;
|
||
case 2: name = "续费订单"; break;
|
||
case 3: name = "升级订单"; break;
|
||
}
|
||
return name;
|
||
}
|
||
|
||
public class ResDistributionInfo
|
||
{
|
||
public decimal? UserId { get; set; }
|
||
public string ResId { get; set; }
|
||
}
|
||
}
|
||
}
|