824 lines
35 KiB
C#
824 lines
35 KiB
C#
using Ninject;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
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.Common;
|
|
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
|
|
{
|
|
/// <summary>
|
|
/// 客服部分配
|
|
/// </summary>
|
|
public class AllocateKFBController : BaseController
|
|
{
|
|
[Inject]
|
|
public CACHE_BL cache_BL { get; set; }
|
|
[Inject]
|
|
public IWX_SZZYMIDPRODUCT _midProduct { get; set; }
|
|
[Inject]
|
|
public IWX_AFTERSALES2 _aftersales { get; set; }
|
|
[Inject]
|
|
public IWX_AFTERSALES2_LOG wx_AfterSales_Log_BL { get; set; }
|
|
[Inject]
|
|
public IRES_MYALLOCATERES _resMyAllocateRes { get; set; }
|
|
#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, QueryUserComboDto usercomboDto)
|
|
{
|
|
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.GetKFBSeniorDistribution(ref pager, query, usercomboDto);
|
|
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_AFTERSALES2();
|
|
}
|
|
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(m => m.RESID == afterSales.RESID).ToList();
|
|
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_AFTERSALES2_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,
|
|
OLDINNERUSERID = 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(m => m.RESID == r).ToList();
|
|
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_AFTERSALES2_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,
|
|
OLDINNERUSERID = 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;
|
|
}
|
|
}
|
|
/// <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_AFTERSALES2>();
|
|
foreach (var item in list)
|
|
{
|
|
if (item.UserId.HasValue)
|
|
{
|
|
var info = new WX_AFTERSALES2()
|
|
{
|
|
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_AFTERSALES2_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);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex.ToString());
|
|
return JsonHandler.ManageMessage(ex.Message, false);
|
|
}
|
|
}
|
|
|
|
#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, QueryUserComboDto usercomboDto)
|
|
{
|
|
try
|
|
{
|
|
if (query.openEndTime.HasValue)
|
|
query.openEndTime = query.openEndTime.Value.AddDays(1);
|
|
var list = _resMyAllocateRes.GetKFBMySeniorDistribution(ref pager, query,usercomboDto);
|
|
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, QueryUserComboDto usercomboDto)
|
|
{
|
|
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.GetKFBMySeniorDistribution(ref pager, query, usercomboDto);
|
|
|
|
var data = new List<MySeniorResExport>();
|
|
var ZJL = cache_BL.GetList_SubComType(ComType.CustomerZJL);
|
|
foreach (var item in list)
|
|
{
|
|
var info = 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)
|
|
{
|
|
info.AmountTypeid = "【未知】";
|
|
}
|
|
else
|
|
{
|
|
info.AmountTypeid = am.SUBTYPENAME;
|
|
}
|
|
data.Add(info);
|
|
}
|
|
//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
|
|
|
|
[Inject]
|
|
public IWX_SZZYPRODUCT wx_SzzyProduct_BL { get; set; }
|
|
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; }
|
|
}
|
|
}
|
|
}
|