696 lines
28 KiB
C#
696 lines
28 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web.Mvc;
|
|
using WX.CRM.BLL;
|
|
using WX.CRM.Common;
|
|
using WX.CRM.IBLL.Base;
|
|
using WX.CRM.IBLL.Cache;
|
|
using WX.CRM.IBLL.Csvr;
|
|
using WX.CRM.IBLL.Ord;
|
|
using WX.CRM.IBLL.Res;
|
|
using WX.CRM.IBLL.Util;
|
|
using WX.CRM.Model.Entity;
|
|
using WX.CRM.Model.MAP;
|
|
using WX.CRM.WebHelper;
|
|
|
|
namespace WX.CRM.WEB.Controllers.Csvr
|
|
{
|
|
public class FavoriteCustomerController : BaseController
|
|
{
|
|
//
|
|
// GET: /FavoriteCustomer/
|
|
private ICSVR_FAVORITECUSTOMER _favoriteItem;
|
|
|
|
private ICSVR_FAVORITECUSTOMER_Q _favoriteItemQ;
|
|
|
|
private ICACHE_Q _cache;
|
|
private readonly IRES_SHAREDPOOL _sharedPool;
|
|
private readonly IBAS_PARAMETER _parameter;
|
|
private readonly IRES_DISTRIBUTE_DETAIL _resDistributeDetail;
|
|
private readonly ICSVR_FAVORITECUSTOMER_HIS _favCustomerHis;
|
|
private readonly icache_ord_memo_bl _cacheOrdMemo;
|
|
private readonly IORD_MEMOCONTENT_Q _ordMemoContentQ;
|
|
private readonly IRES_SENIORSHAREDPOOL _seniorSharedPool;
|
|
|
|
public FavoriteCustomerController(ICSVR_FAVORITECUSTOMER favoriteItem
|
|
, ICSVR_FAVORITECUSTOMER_Q favoriteItemQ
|
|
, ICACHE_Q cache
|
|
, IRES_SHAREDPOOL sharedPool
|
|
, IBAS_PARAMETER parameter
|
|
, IRES_DISTRIBUTE_DETAIL resDistributeDetail
|
|
, ICSVR_FAVORITECUSTOMER_HIS favCustomerHis
|
|
, icache_ord_memo_bl cacheOrdMemo
|
|
, IORD_MEMOCONTENT_Q ordMemoContentQ
|
|
, IRES_SENIORSHAREDPOOL seniorSharedPool
|
|
)
|
|
{
|
|
this._favoriteItem = favoriteItem;
|
|
this._favoriteItemQ = favoriteItemQ;
|
|
this._cache = cache;
|
|
this._sharedPool = sharedPool;
|
|
this._parameter = parameter;
|
|
this._resDistributeDetail = resDistributeDetail;
|
|
this._favCustomerHis = favCustomerHis;
|
|
this._cacheOrdMemo = cacheOrdMemo;
|
|
this._ordMemoContentQ = ordMemoContentQ;
|
|
this._seniorSharedPool = seniorSharedPool;
|
|
}
|
|
|
|
|
|
ValidationErrors errors = new ValidationErrors();
|
|
|
|
[AuthorizeRedirect(Roles = InitRights.CONST_收藏客户列表)]
|
|
public ActionResult Index()
|
|
{
|
|
//var tool = new ToolBar();
|
|
//tool.AllowButton("Create", "Edit", "Details", "Delete");
|
|
//ViewBag.ToolBar = tool;
|
|
ToolBar tool = new ToolBar();
|
|
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.收藏客户列表, userRightId);
|
|
tool.AllowButton(toolbtn);
|
|
tool.AddOtherButton("Other1", "收藏调整", "icon-settings", "a", true);
|
|
tool.AddOtherButton("Other2", "设置", "icon-settings", "a", true);
|
|
ViewBag.ToolBar = tool;
|
|
|
|
var pager = new Pager() { page = 1, rows = 10 };
|
|
var tableId = "tablist";
|
|
var tab = new Table(tableId);
|
|
tab.isCheckbox = true;
|
|
tab.AddHiddenHeadCol("PKID", "");
|
|
tab.AddHeadCol("RESID", "", "客户ID");
|
|
tab.AddHeadCol("Name", "", "姓名");
|
|
tab.AddHeadCol("PARAKEY", "", "收藏类型");
|
|
tab.AddHeadCol("MEMO", "300px", "备注");
|
|
tab.AddHeadCol("GD", "", "工单");
|
|
tab.AddHeadCol("SALESID", "", "客服");
|
|
tab.AddHeadCol("CTIME", "", "收藏时间", true);
|
|
tab.AddHeadCol("recyleTime", "", "回收时间", true);
|
|
//tab.AddHeadCol("LASTACTIVETIME", "", "最后工单时间");
|
|
//tab.AddHeadCol("LASTCALLTIME", "", "最后通话时间");
|
|
//tab.AddHeadCol("LastTime", "", "最后联系时间");
|
|
|
|
tab.AddHeadRow();
|
|
|
|
ViewBag.inneruserid = UserId;
|
|
ViewBag.userGroupId = userGroupId;
|
|
ViewBag.saleDeptId = saleDeptId;
|
|
ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
|
|
|
|
ViewBag.List = tab.GetTable() + Pagination.GetPage(pager, tableId, "10,20,50");
|
|
|
|
ViewBag.FavCustomerEnableCanCall = _cache.GetValue_Parameter("FavCustomerEnableCanCall");
|
|
ViewBag.FavCustomerEnableCanCallManager = _cache.GetValue_Parameter("FavCustomerEnableCanCall_Manager");
|
|
ViewBag.FavCustomerEnableCanCallGrouper = _cache.GetValue_Parameter("FavCustomerEnableCanCall_Grouper");
|
|
ViewBag.FavCustomerEnableCanCallUser = _cache.GetValue_Parameter("FavCustomerEnableCanCall_User");
|
|
ViewBag.FavCustomerEnableCanCallDept = _cache.GetValue_Parameter("FavCustomerEnableCanCall_Dept");
|
|
|
|
return View();
|
|
}
|
|
|
|
|
|
[HttpPost]
|
|
public JsonResult GetHtmlList(Pager pager, string columns, string hasOrder, decimal? eid, decimal? IsFx, QueryUserComboDto usercomboDto)
|
|
{
|
|
//var groupId = Request["groupId"];
|
|
//var innerUserId = Request["userId"].GetDecimal(0);
|
|
string ctime = Request["STime"];
|
|
string etime = Request["ETime"];
|
|
string remark = Request["remark"];
|
|
var resId = Request["resId"];
|
|
|
|
//if (innerUserId == 0)
|
|
//{
|
|
// var users = _cache.GetUserList();
|
|
// if (eid.HasValue)
|
|
// {
|
|
// var user = users.FirstOrDefault(p => p.EID == eid.Value);
|
|
// if(user!= null)
|
|
// {
|
|
// innerUserId = user.PKID;
|
|
// }
|
|
// }
|
|
//}
|
|
|
|
string typeId;
|
|
//DateTime.TryParse(Request["STime"], out ctime);
|
|
//DateTime.TryParse(Request["ETime"], out etime);
|
|
|
|
//if (!DateTime.TryParse(Request.QueryString["STime"], out ctime)) ctime = DateTime.Now.AddDays(-30);
|
|
//if (!DateTime.TryParse(Request.QueryString["ETime"], out etime)) etime = DateTime.Now.AddDays(30);
|
|
List<BAS_SUBCOMTYPE> comTypeList = DataCacheHelper.GetCache().GetList_SubComType(WX.CRM.Model.Enum.ComType.FavoritesCustType);
|
|
|
|
typeId = Request.Form["subcomgroupId"];
|
|
|
|
var favCustomerRecycleTime = _cache.GetValue_Parameter("FavCustomerRecycleTime");
|
|
if (string.IsNullOrEmpty(favCustomerRecycleTime))
|
|
{
|
|
favCustomerRecycleTime = "30";
|
|
}
|
|
|
|
var table = new Table(columns, true);
|
|
table.isCheckbox = true;
|
|
var list = _favoriteItemQ.GetList(ref pager, typeId, ctime, etime, remark, resId, string.IsNullOrEmpty(hasOrder) ? (bool?)null : (hasOrder == "1" ? true : false), IsFx.HasValue ? (IsFx == 1 ? true : false) : (bool?)null, usercomboDto);
|
|
|
|
var memoList = _cacheOrdMemo.GetLastMemoByResIds(list.Select(p => p.RESID));
|
|
var contentList = _ordMemoContentQ.GetOrdMemoContent(memoList.Select(p => p.MEMOCONTENTID.Value));
|
|
|
|
table.gridPager = pager;
|
|
foreach (var model in list)
|
|
{
|
|
var ts = new TimeSpan();
|
|
//广州收藏客户回收时间提醒
|
|
if (companyCode == "DNZZ")
|
|
{
|
|
ts = model.CTIME.AddDays(int.Parse(favCustomerRecycleTime)) - DateTime.Now;
|
|
}
|
|
else
|
|
{
|
|
//北京收藏客户回收时间提醒
|
|
//if (model.LastTime.HasValue)
|
|
// LogHelper.Info("lastTime:" + model.LastTime.Value.ToString());
|
|
//else
|
|
// LogHelper.Info("lastTime is null");
|
|
|
|
var lastTime = model.LastTime.HasValue ? model.LastTime.Value : model.CTIME;
|
|
//var lastTime = model.CTIME;
|
|
//if (model.LASTCALLTIME.HasValue)
|
|
//{
|
|
// LogHelper.Info("LASTCALLTIME:" + model.LASTCALLTIME.Value.ToString());
|
|
// lastTime = model.LASTCALLTIME.Value > lastTime ? model.LASTCALLTIME.Value : lastTime;
|
|
//}
|
|
//if (model.LASTACTIVETIME.HasValue)
|
|
//{
|
|
// LogHelper.Info("LASTACTIVETIME:" + model.LASTACTIVETIME.Value.ToString());
|
|
// lastTime = model.LASTACTIVETIME.Value > lastTime ? model.LASTACTIVETIME.Value : lastTime;
|
|
//}
|
|
|
|
ts = lastTime.AddDays(int.Parse(favCustomerRecycleTime)) - DateTime.Now;
|
|
}
|
|
|
|
|
|
table.AddHiddenCol(model.PKID);
|
|
|
|
var resid = string.Format("<a href=\"javascript:parent.ChildAddTab('{0}', '{1}', '')\">{2}</a>", "客户详细", "/Csvr/CustomerInfo/CustomerDetail?resid=" + model.RESID, model.RESID);
|
|
if (model.IsFx)
|
|
{
|
|
resid += string.Format("<span style=\"background-color:red; padding:2px 5px; margin-left:10px; color:#fff\">风险</span>");
|
|
}
|
|
table.AddCol(resid);
|
|
table.AddCol(model.Name);
|
|
table.AddCol(comTypeList.SingleOrDefault(P => P.map_SUBTYPECODE == model.PARAKEY).map_SUBTYPENAME);
|
|
table.AddCol(model.MEMO);
|
|
|
|
var lastMemo = memoList.FirstOrDefault(p => p.RESID == model.RESID);
|
|
if (lastMemo != null)
|
|
{
|
|
var content = contentList.FirstOrDefault(p => p.CONTENTID == lastMemo.MEMOCONTENTID);
|
|
if (content != null)
|
|
{
|
|
table.AddCol(content.STRCONTENT);
|
|
}
|
|
else
|
|
{
|
|
table.AddCol("");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
table.AddCol("");
|
|
}
|
|
|
|
table.AddCol(InnerUserHelper.Instance.EidAndName(model.SALESID));
|
|
table.AddCol(model.CTIME);
|
|
if (model.HASORDER)
|
|
{
|
|
table.AddCol("已成交");
|
|
}
|
|
else
|
|
{
|
|
if (ts.Ticks > 0)
|
|
table.AddCol(ts.Days + "天" + ts.Hours + "小时");
|
|
else
|
|
table.AddCol("即将被回收");
|
|
}
|
|
//table.AddCol(model.LASTACTIVETIME);
|
|
//table.AddCol(model.LASTCALLTIME);
|
|
//table.AddCol(model.LastTime);
|
|
|
|
table.AddRow();
|
|
|
|
}
|
|
var json = new
|
|
{
|
|
totalPages = pager.totalPages,
|
|
totalRows = pager.totalRows,
|
|
rowsList = table.GetRows()
|
|
};
|
|
return Json(json, JsonRequestBehavior.AllowGet);
|
|
}
|
|
|
|
public FileResult ExportFavoriteCustomer(string hasOrder, decimal? eid, decimal? IsFx, QueryUserComboDto usercomboDto)
|
|
{
|
|
//var groupId = Request["groupId"];
|
|
//var innerUserId = Request["userId"].GetDecimal(0);
|
|
var ctime = Request["STime"];
|
|
var etime = Request["ETime"];
|
|
var remark = Request["remark"];
|
|
var resId = Request["resId"];
|
|
//if (innerUserId == 0)
|
|
//{
|
|
// var users = _cache.GetUserList();
|
|
// if (eid.HasValue)
|
|
// {
|
|
// var user = users.FirstOrDefault(p => p.EID == eid.Value);
|
|
// if (user != null)
|
|
// {
|
|
// innerUserId = user.PKID;
|
|
// }
|
|
// }
|
|
//}
|
|
var typeId = Request.Form["subcomgroupId"];
|
|
List<BAS_SUBCOMTYPE> comTypeList = DataCacheHelper.GetCache().GetList_SubComType(WX.CRM.Model.Enum.ComType.FavoritesCustType);
|
|
Pager pager = new Pager() { page = 1, rows = int.MaxValue };
|
|
var checkFilds = "[RESID][Name][PARAKEY][MEMO][SALESID][CTIME]";
|
|
var checkTitles = "客户ID,姓名,标签,备注,客服,收藏时间";
|
|
var list = _favoriteItemQ.GetList(ref pager, typeId, ctime, etime,remark, resId, string.IsNullOrEmpty(hasOrder) ? (bool?)null : (hasOrder == "1" ? true : false), IsFx.HasValue ? (IsFx == 1 ? true : false) : (bool?)null, usercomboDto);
|
|
|
|
//var memoList = _cacheOrdMemo.GetLastMemoByResIds(list.Select(p => p.RESID));
|
|
//var contentList = _ordMemoContentQ.GetOrdMemoContent(memoList.Select(p => p.MEMOCONTENTID.Value));
|
|
|
|
//foreach (var item in list)
|
|
//{
|
|
// var lastMemo = memoList.FirstOrDefault(p => p.RESID == item.RESID);
|
|
// if (lastMemo != null)
|
|
// {
|
|
// var content = contentList.FirstOrDefault(p => p.CONTENTID == lastMemo.MEMOCONTENTID);
|
|
// if (content != null)
|
|
// {
|
|
// item.GD = content.STRCONTENT;
|
|
// }
|
|
// }
|
|
//}
|
|
|
|
string contentType = "application/ms-excel";
|
|
System.IO.Stream stream = ExcelHelper.ExportListModelToExcel<CSVR_FAVORITECUSTOMER_extend>(list, "收藏客户", 50000, checkFilds, checkTitles, DataFormart);
|
|
string fileName = PageRequest.GetDlownLoadName("收藏客户导出" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ".xls");
|
|
return File(stream, contentType, fileName);
|
|
|
|
}
|
|
|
|
|
|
#region 删除
|
|
public JsonResult Delete(string id)
|
|
{
|
|
if (!string.IsNullOrEmpty(id))
|
|
{
|
|
var arr = id.Split(',');
|
|
foreach (var item in arr)
|
|
{
|
|
_favoriteItem.Delete(ref errors, Convert.ToDecimal(item), Eid, UserId);
|
|
}
|
|
return JsonHandler.DeleteMessage(errors, true);
|
|
}
|
|
else
|
|
{
|
|
return JsonHandler.ManageMessage("删除失败!", false);
|
|
}
|
|
}
|
|
|
|
public JsonResult GiveUp(string id)
|
|
{
|
|
if (!string.IsNullOrEmpty(id))
|
|
{
|
|
var arr = id.Split(',');
|
|
foreach (var item in arr)
|
|
{
|
|
_favoriteItem.GiveUp(ref errors, Convert.ToDecimal(item), Eid, UserId);
|
|
}
|
|
return JsonHandler.ManageMessage("操作成功!", true);
|
|
}
|
|
else
|
|
{
|
|
return JsonHandler.ManageMessage("删除失败!", false);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 详细
|
|
public ActionResult Details(string id)
|
|
{
|
|
CSVR_FAVORITECUSTOMER model = id != null ? _favoriteItemQ.GetModel_FavoriteCustomer(Convert.ToDecimal(id)) : new CSVR_FAVORITECUSTOMER();
|
|
return View(model);
|
|
}
|
|
#endregion
|
|
|
|
#region 编辑
|
|
[HttpGet]
|
|
public ActionResult Edit(string resid)
|
|
{
|
|
CSVR_FAVORITECUSTOMER_extend model = null;
|
|
if (string.IsNullOrEmpty(resid))
|
|
{
|
|
model = new CSVR_FAVORITECUSTOMER_extend();
|
|
model.RESID = Request.QueryString["resid"];
|
|
}
|
|
else
|
|
{
|
|
//model = _favoriteItemQ.GetModel_FavoriteCustomer(gid);
|
|
model = _favoriteItemQ.GetModel_FavoriteCustomer(resid, UserId);
|
|
if (model == null)
|
|
{
|
|
model = new CSVR_FAVORITECUSTOMER_extend();
|
|
model.RESID = resid;
|
|
}
|
|
|
|
}
|
|
|
|
return View(model);
|
|
}
|
|
|
|
[HttpPost]
|
|
public ActionResult Edit(WX.CRM.Model.Entity.CSVR_FAVORITECUSTOMER_extend model)
|
|
{
|
|
CSVR_FAVORITECUSTOMER favCustomer = new CSVR_FAVORITECUSTOMER();
|
|
|
|
if (model.PKID == 0)
|
|
{
|
|
var roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
|
|
|
|
var favMaxNumStr = _cache.GetValue_Parameter("favMaxNum");
|
|
var favMangerMaxNumStr = _cache.GetValue_Parameter("favManagerMaxNum");
|
|
var favAdvMaxNumStr = _cache.GetValue_Parameter("favAdvMaxNum");
|
|
var favMaxNum = string.IsNullOrEmpty(favMaxNumStr) ? 200 : int.Parse(favMaxNumStr);
|
|
if (roleCodes.Contains("GJSSJKF"))
|
|
{
|
|
//升级手只能添加3个
|
|
favMaxNum = string.IsNullOrEmpty(favAdvMaxNumStr) ? 3 : int.Parse(favAdvMaxNumStr);
|
|
}
|
|
if (roleCodes.Contains("GJSGJKF") || roleCodes.Contains("BMZG") || roleCodes.Contains("ZJZL"))
|
|
{
|
|
//管理人员可以添加600个
|
|
favMaxNum = string.IsNullOrEmpty(favMangerMaxNumStr) ? 600 : int.Parse(favMangerMaxNumStr);
|
|
}
|
|
|
|
var favCount = _favoriteItemQ.GetCount(UserId, roleCodes);
|
|
if (favCount >= favMaxNum)
|
|
{
|
|
errors.Add("您的收藏数已经超过设置上限!");
|
|
return JsonHandler.InsertMessage(errors, false);
|
|
}
|
|
|
|
favCustomer.MEMO = model.MEMO;
|
|
favCustomer.PARAKEY = model.PARAKEY;
|
|
favCustomer.RESID = model.RESID;
|
|
favCustomer.SALESID = UserId;
|
|
|
|
bool result = _favoriteItem.Create(ref errors, favCustomer, Eid, UserId);
|
|
|
|
return JsonHandler.InsertMessage(errors, result);
|
|
}
|
|
else
|
|
{
|
|
bool result = _favoriteItem.Update(ref errors, model, Eid, UserId);
|
|
|
|
return JsonHandler.UpdateMessage(errors, result);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 收藏客户禁止他人外呼设置
|
|
[HttpPost]
|
|
public JsonResult FavCustomerEnableCanCall(string enable)
|
|
{
|
|
try
|
|
{
|
|
_parameter.Update_ParameterValueByKey("FavCustomerEnableCanCall", enable);
|
|
CacheHelper.Remove("cache_Parameter_getList");
|
|
|
|
return JsonHandler.ManageMessage("设置成功!", true);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex.ToString());
|
|
return JsonHandler.ManageMessage("出错了,请重试!", false);
|
|
}
|
|
}
|
|
|
|
public JsonResult FavCustomerEnableCanCallManager(string enable)
|
|
{
|
|
try
|
|
{
|
|
_parameter.Update_ParameterValueByKey("FavCustomerEnableCanCall_Manager", enable);
|
|
CacheHelper.Remove("cache_Parameter_getList");
|
|
|
|
return JsonHandler.ManageMessage("设置成功!", true);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex.ToString());
|
|
return JsonHandler.ManageMessage("出错了,请重试!", false);
|
|
}
|
|
}
|
|
|
|
public JsonResult FavCustomerEnableCanCallGrouper(string enable)
|
|
{
|
|
try
|
|
{
|
|
_parameter.Update_ParameterValueByKey("FavCustomerEnableCanCall_Grouper", enable);
|
|
CacheHelper.Remove("cache_Parameter_getList");
|
|
|
|
return JsonHandler.ManageMessage("设置成功!", true);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex.ToString());
|
|
return JsonHandler.ManageMessage("出错了,请重试!", false);
|
|
}
|
|
}
|
|
|
|
public JsonResult FavCustomerEnableCanCallUser(string enable)
|
|
{
|
|
try
|
|
{
|
|
_parameter.Update_ParameterValueByKey("FavCustomerEnableCanCall_User", enable);
|
|
CacheHelper.Remove("cache_Parameter_getList");
|
|
|
|
return JsonHandler.ManageMessage("设置成功!", true);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex.ToString());
|
|
return JsonHandler.ManageMessage("出错了,请重试!", false);
|
|
}
|
|
}
|
|
|
|
public JsonResult FavCustomerEnableCanCallDept(string enable)
|
|
{
|
|
try
|
|
{
|
|
_parameter.Update_ParameterValueByKey("FavCustomerEnableCanCall_Dept", enable);
|
|
CacheHelper.Remove("cache_Parameter_getList");
|
|
|
|
return JsonHandler.ManageMessage("设置成功!", true);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex.ToString());
|
|
return JsonHandler.ManageMessage("出错了,请重试!", false);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 转移收藏客户
|
|
[HttpPost]
|
|
public JsonResult Change(string id, decimal eid, string paraKey)
|
|
{
|
|
if (string.IsNullOrEmpty(id) || eid <= 0)
|
|
{
|
|
return JsonHandler.ManageMessage("参数错误!", false);
|
|
}
|
|
|
|
var inneruserId = InnerUserHelper.Instance.GetUserIdByEid(eid);
|
|
if (inneruserId <= 0)
|
|
{
|
|
return JsonHandler.ManageMessage("填写的工号不存在,请确认!", false);
|
|
}
|
|
|
|
_favoriteItem.Change(id, inneruserId, eid, Eid, UserId, paraKey);
|
|
return JsonHandler.ManageMessage("操作成功!", true);
|
|
}
|
|
#endregion
|
|
|
|
#region 查看历史记录
|
|
[HttpGet]
|
|
[AuthorizeRedirect(Roles = InitRights.CONST_收藏客户历史查询)]
|
|
public ActionResult His()
|
|
{
|
|
Pager pager = new Pager() { page = 1, rows = 20 };
|
|
string tableId = "tablist";
|
|
Table tab = new Table(tableId);
|
|
tab.AddHiddenHeadCol("PKID", "PKID");
|
|
tab.AddHeadCol("RESID", "", "客户ID");
|
|
tab.AddHeadCol("Name", "", "姓名");
|
|
tab.AddHeadCol("PARAKEY", "", "标签");
|
|
tab.AddHeadCol("SALESID", "", "客服");
|
|
tab.AddHeadCol("MEMO", "", "备注");
|
|
tab.AddHeadCol("CTIME", "", "收藏时间");
|
|
tab.AddHeadCol("OPERATOR", "", "操作人");
|
|
tab.AddHeadCol("ACTIONTIME", "", "操作时间");
|
|
tab.AddHeadCol("REMARK", "", "操作说明");
|
|
tab.AddHeadRow();
|
|
|
|
ViewBag.inneruserid = UserId;
|
|
ViewBag.userGroupId = userGroupId;
|
|
ViewBag.saleDeptId = saleDeptId;
|
|
ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
|
|
|
|
ViewBag.List = tab.GetHead() + Pagination.GetPage(pager, tableId, "20,50,100");
|
|
return View();
|
|
}
|
|
|
|
[HttpPost]
|
|
[AuthorizeRedirect(Roles = InitRights.CONST_收藏客户历史查询)]
|
|
public JsonResult His(Pager pager, string columns, string groupId, decimal? userId, string subcomgroupId, string resId)
|
|
{
|
|
var where = PredicateExtensionses.True<CSVR_FAVORITECUSTOMER_HIS>();
|
|
|
|
if (userId.HasValue)
|
|
{
|
|
where = where.And(p => p.SALESID == userId);
|
|
}
|
|
else if (!string.IsNullOrEmpty(groupId))
|
|
{
|
|
decimal[] _groupids = OperationUtil.ConvertToDecimal(groupId.Split(','));
|
|
var group = _cache.GetList_InnerUserGroup();
|
|
var uIds = group.Where(p => _groupids.Contains(p.GID.Value)).Select(p => p.INNERUSERID);
|
|
where = where.And(m => uIds.Contains(m.SALESID));
|
|
}
|
|
if (!string.IsNullOrEmpty(subcomgroupId) && subcomgroupId != "0")
|
|
{
|
|
where = where.And(p => p.PARAKEY == subcomgroupId);
|
|
}
|
|
if (!string.IsNullOrEmpty(resId))
|
|
{
|
|
where = where.And(p => p.RESID == resId);
|
|
}
|
|
|
|
var list = _favCustomerHis.GetList(where, p => p.PKID, pager).ToList();
|
|
|
|
var comTypeList = DataCacheHelper.GetCache().GetList_SubComType(WX.CRM.Model.Enum.ComType.FavoritesCustType);
|
|
|
|
Table table = new Table(columns, true);
|
|
foreach (var model in list)
|
|
{
|
|
table.AddHiddenCol(model.PKID);
|
|
table.AddCol(model.RESID);
|
|
table.AddCol(model.NAME);
|
|
table.AddCol(comTypeList.SingleOrDefault(P => P.map_SUBTYPECODE == model.PARAKEY).map_SUBTYPENAME);
|
|
table.AddCol(InnerUserHelper.Instance.EidAndName(model.SALESID));
|
|
table.AddCol(model.MEMO);
|
|
table.AddCol(model.CTIME);
|
|
table.AddCol(InnerUserHelper.Instance.EidAndName(model.OPERATOR));
|
|
table.AddCol(model.ACTIONTIME);
|
|
table.AddCol(model.REMARK);
|
|
|
|
table.AddRow();
|
|
}
|
|
var json = new
|
|
{
|
|
totalPages = pager.totalPages,
|
|
totalRows = pager.totalRows,
|
|
rowsList = table.GetRows()
|
|
};
|
|
return Json(json, JsonRequestBehavior.AllowGet);
|
|
}
|
|
|
|
public FileResult ExportFavoriteCustomerHis(string groupId, decimal? userId, string subcomgroupId, string resId)
|
|
{
|
|
List<BAS_SUBCOMTYPE> comTypeList = DataCacheHelper.GetCache().GetList_SubComType(WX.CRM.Model.Enum.ComType.FavoritesCustType);
|
|
Pager pager = new Pager() { page = 1, rows = int.MaxValue };
|
|
var checkFilds = "[RESID][Name][PARAKEY][SALESID][MEMO][CTIME][OPERATOR][ACTIONTIME][REMARK]";
|
|
var checkTitles = "客户ID,姓名,标签,客服,备注,收藏时间,操作人,操作时间,操作说明";
|
|
var where = PredicateExtensionses.True<CSVR_FAVORITECUSTOMER_HIS>();
|
|
|
|
if (userId.HasValue)
|
|
{
|
|
where = where.And(p => p.SALESID == userId);
|
|
}
|
|
else if (!string.IsNullOrEmpty(groupId))
|
|
{
|
|
decimal[] _groupids = OperationUtil.ConvertToDecimal(groupId.Split(','));
|
|
var group = _cache.GetList_InnerUserGroup();
|
|
var uIds = group.Where(p => _groupids.Contains(p.GID.Value)).Select(p => p.INNERUSERID);
|
|
where = where.And(m => uIds.Contains(m.SALESID));
|
|
}
|
|
if (!string.IsNullOrEmpty(subcomgroupId) && subcomgroupId != "0")
|
|
{
|
|
where = where.And(p => p.PARAKEY == subcomgroupId);
|
|
}
|
|
if (!string.IsNullOrEmpty(resId))
|
|
{
|
|
where = where.And(p => p.RESID == resId);
|
|
}
|
|
|
|
var list = _favCustomerHis.GetList(where, p => p.PKID, pager).ToList();
|
|
|
|
string contentType = "application/ms-excel";
|
|
System.IO.Stream stream = ExcelHelper.ExportListModelToExcel<CSVR_FAVORITECUSTOMER_HIS>(list, "收藏客户历史", 50000, checkFilds, checkTitles, DataFormart);
|
|
string fileName = PageRequest.GetDlownLoadName("收藏客户历史导出" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ".xls");
|
|
return File(stream, contentType, fileName);
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
protected string DataFormart(string key, object value)
|
|
{
|
|
string nvalue = "";
|
|
switch (key)
|
|
{
|
|
case "PARAKEY":
|
|
nvalue = DataCacheHelper.GetCache().GetList_SubComType(WX.CRM.Model.Enum.ComType.FavoritesCustType).FirstOrDefault(p => p.SUBTYPECODE == value.ToString()).SUBTYPENAME;
|
|
break;
|
|
case "SALESID":
|
|
nvalue = InnerUserHelper.Instance.EidAndName(Convert.ToDecimal(value));
|
|
break;
|
|
case "OPERATOR":
|
|
nvalue = InnerUserHelper.Instance.EidAndName(Convert.ToDecimal(value));
|
|
break;
|
|
default: return Convert.ToString(value);
|
|
}
|
|
return nvalue;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 显示某一资源的 收藏人、归属人
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public ActionResult FavoriteAndMyRes(string resid)
|
|
{
|
|
List<CSVR_FAVORITECUSTOMER_AndMyRes> list = _favoriteItemQ.GetFavAndMyResList(resid);
|
|
foreach (CSVR_FAVORITECUSTOMER_AndMyRes item in list)
|
|
{
|
|
item.myuserStr = InnerUserHelper.Instance.EidAndName(item.myresuserid);
|
|
item.fauserStr = "";
|
|
string gmy = "";
|
|
if (item.favuserid != null && item.favuserid.Length > 0)
|
|
{
|
|
foreach (decimal f in item.favuserid)
|
|
{
|
|
if (string.IsNullOrEmpty(gmy))
|
|
gmy += InnerUserHelper.Instance.EidAndName(f);
|
|
else
|
|
gmy += ";" + InnerUserHelper.Instance.EidAndName(f);
|
|
}
|
|
item.fauserStr = gmy;
|
|
}
|
|
}
|
|
var xs = list.RemoveAll(m => m.fauserStr == "" && m.myuserStr == "");
|
|
ViewBag.DataList = list;
|
|
return View();
|
|
}
|
|
}
|
|
}
|