270 lines
11 KiB
C#
270 lines
11 KiB
C#
using System;
|
|
using System.Linq;
|
|
using System.Web.Mvc;
|
|
using WX.CRM.BLL.Base;
|
|
using WX.CRM.Common;
|
|
using WX.CRM.IBLL.Res;
|
|
using WX.CRM.IBLL.Util;
|
|
using WX.CRM.Model.DTO;
|
|
using WX.CRM.Model.MAP;
|
|
using WX.CRM.WebHelper;
|
|
|
|
namespace WX.CRM.WEB.Controllers.Res
|
|
{
|
|
public class SharedPoolController : BaseController
|
|
{
|
|
private readonly IRES_SHAREDPOOL _sharedPool;
|
|
private readonly IRES_SHAREDPOOL_ONE _sharedPoolOne;
|
|
private readonly IRES_SHAREDPOOL_HIS _sharedPoolHis;
|
|
private readonly ICACHE_Q _cache;
|
|
private static readonly object sync = new object();
|
|
|
|
public SharedPoolController(IRES_SHAREDPOOL sharedPool, IRES_SHAREDPOOL_ONE sharedPoolOne, IRES_SHAREDPOOL_HIS sharedPoolHis, ICACHE_Q cache)
|
|
{
|
|
this._sharedPool = sharedPool;
|
|
this._sharedPoolOne = sharedPoolOne;
|
|
this._sharedPoolHis = sharedPoolHis;
|
|
_cache = cache;
|
|
}
|
|
|
|
[HttpGet]
|
|
public ActionResult Index(string resTypeCode)
|
|
{
|
|
ViewBag.PoolCount = _sharedPool.GetCount(resTypeCode);
|
|
return View();
|
|
}
|
|
|
|
//[HttpPost]
|
|
//public JsonResult Index(int poolCount, int? isReg)
|
|
//{
|
|
// var rand = new Random();
|
|
// var index = rand.Next(1, poolCount + 1);
|
|
// Thread.Sleep(100);
|
|
// var pager = new Pager() { page = index, rows = 1 };
|
|
// var list = _sharedPool.GetList(ref pager, string.Empty, null, null, string.Empty, isReg);
|
|
// var model = list.FirstOrDefault();
|
|
// if(model != null)
|
|
// {
|
|
// _sharedPoolOne.Add(new Model.Entity.RES_SHAREDPOOL_ONE() { PKID = new SEQUENCES_BL().Seq_base_get(), RESID = model.ResId, SALESID = UserId, EID = Eid, CTIME = DateTime.Now });
|
|
// return Json(new { resid = model.ResId }, JsonRequestBehavior.AllowGet);
|
|
// }
|
|
// return Json(new { resid = string.Empty }, JsonRequestBehavior.AllowGet);
|
|
//}
|
|
|
|
[HttpPost]
|
|
public JsonResult Find(string resTypeCode)
|
|
{
|
|
var resid = string.Empty;
|
|
|
|
lock (sync)
|
|
{
|
|
resid = _sharedPool.FindSharedPoolRes(UserId, Eid, resTypeCode);
|
|
}
|
|
|
|
return Json(new { resid }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
|
|
[HttpGet]
|
|
[AuthorizeRedirect(Roles = InitRights.CONST_资源池列表)]
|
|
public ActionResult List()
|
|
{
|
|
Pager pager = new Pager() { page = 1, rows = 10, order = "FirstTime", sort = "desc" };
|
|
string tableId = "tablist";
|
|
Table tab = new Table(tableId);
|
|
tab.AddHeadCol("ResId", "", "客户ID");
|
|
tab.AddHeadCol("CName", "", "客户姓名");
|
|
tab.AddHeadCol("Type", "", "类型");
|
|
tab.AddHeadCol("LableName", "", "标签");
|
|
tab.AddHeadCol("LastLoginTime", "", "最后登陆时间", true);
|
|
tab.AddHeadCol("CTime", "", "回收时间", true);
|
|
tab.AddHeadCol("FirstTime", "", "创建时间", true, true);
|
|
tab.AddHeadRow();
|
|
ViewBag.gridTable = tab.GetTable() + Pagination.GetPage(pager, tableId, "10,20");
|
|
|
|
ViewBag.roleCodes = userRoleCodes;
|
|
|
|
ViewBag.DeptCode = Utility.GetSettingOrNullByKey("DataClientCode");
|
|
|
|
return View();
|
|
}
|
|
|
|
[HttpPost]
|
|
[AuthorizeRedirect(Roles = InitRights.CONST_资源池列表)]
|
|
public JsonResult List(Pager pager, string columns, string resId, string cName, string resTypeCode, DateTime? sTime, DateTime? eTime, DateTime? aTime, DateTime? bTime, string memo, string noContact, decimal? labeltype, DateTime? loginstime, DateTime? loginetime)
|
|
{
|
|
//LogHelper.Info("noContact:" + noContact);
|
|
//string wxMemo = null;
|
|
//string jjMemo = null;
|
|
//if (!string.IsNullOrEmpty(memo))
|
|
//{
|
|
// if (memo == "wxMemo")
|
|
// {
|
|
// wxMemo = memo;
|
|
// }
|
|
// if (memo == "jjMemo")
|
|
// {
|
|
// jjMemo = memo;
|
|
// }
|
|
//}
|
|
if (loginetime.HasValue)
|
|
{
|
|
loginetime = loginetime.Value.AddDays(1);
|
|
}
|
|
var list = _sharedPool.GetList(ref pager, resId, sTime, eTime.HasValue ? eTime.Value.AddDays(1) : eTime, aTime, bTime.HasValue ? bTime.Value.AddDays(1) : bTime, cName, resTypeCode, noContact, memo, labeltype, loginstime, loginetime);
|
|
|
|
Table table = new Table(columns, true)
|
|
{
|
|
gridPager = pager
|
|
};
|
|
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(string.Format("<a href=\"javascript:void(0)\" onclick=\"find('{0}')\">{1}</a>", model.ResId, model.ResId.Substring(0, 4) + "****" + model.ResId.Substring(14, 4)));
|
|
table.AddCol(model.CName);
|
|
table.AddCol(GetTypeName(model.Type));
|
|
table.AddCol(model.labelname);
|
|
table.AddCol(model.lastlogintime);
|
|
table.AddCol(model.CTime);
|
|
table.AddCol(model.FirstTime);
|
|
table.AddRow();
|
|
}
|
|
var json = new
|
|
{
|
|
totalPages = pager.totalPages,
|
|
totalRows = pager.totalRows,
|
|
rowsList = table.GetRows()
|
|
};
|
|
return Json(json, JsonRequestBehavior.AllowGet);
|
|
}
|
|
|
|
public FileResult Export(string resId, string cName, string resTypeCode, DateTime? sTime, DateTime? eTime, DateTime? aTime, DateTime? bTime, string memo, string noContact, decimal? labeltype, DateTime? loginstime, DateTime? loginetime)
|
|
{
|
|
//string wxMemo = null;
|
|
//string jjMemo = null;
|
|
//if (!string.IsNullOrEmpty(memo))
|
|
//{
|
|
// if (memo == "wxMemo")
|
|
// {
|
|
// wxMemo = memo;
|
|
// }
|
|
// if (memo == "jjMemo")
|
|
// {
|
|
// jjMemo = memo;
|
|
// }
|
|
//}
|
|
if (loginetime.HasValue)
|
|
{
|
|
loginetime = loginetime.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 = _sharedPool.GetList(ref pager, resId, sTime, eTime.HasValue ? eTime.Value.AddDays(1) : eTime, aTime, bTime.HasValue ? bTime.Value.AddDays(1) : bTime, cName, resTypeCode, noContact, memo, labeltype, loginstime, loginetime);
|
|
System.IO.Stream strem = ExcelHelper.ExportListModelToExcel<Res_SharedPool_View>(list, "资源列表", 50000, null);
|
|
return File(strem, contentType, downloadName);
|
|
}
|
|
|
|
[HttpPost]
|
|
public JsonResult Find2(string resid)
|
|
{
|
|
var time = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
|
|
var exists = _sharedPoolOne.GetList(p => p.RESID == resid && p.CTIME > time);
|
|
if (exists.Any())
|
|
{
|
|
return Json(new { result = false }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
else
|
|
{
|
|
_sharedPoolOne.Add(new Model.Entity.RES_SHAREDPOOL_ONE()
|
|
{
|
|
PKID = new SEQUENCES_BL().Seq_base_get(),
|
|
RESID = resid,
|
|
EID = Eid,
|
|
SALESID = UserId,
|
|
CTIME = DateTime.Now
|
|
});
|
|
return Json(new { result = true }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
|
|
[HttpGet]
|
|
public ActionResult Log()
|
|
{
|
|
Pager pager = new Pager() { page = 1, rows = 10 };
|
|
string tableId = "tablist";
|
|
Table tab = new Table(tableId);
|
|
tab.AddHeadCol("DeptName", "", "事业部");
|
|
tab.AddHeadCol("ResId", "", "客户ID");
|
|
tab.AddHeadCol("Eid", "", "工号");
|
|
tab.AddHeadCol("UName", "", "姓名");
|
|
tab.AddHeadCol("GName", "", "组别");
|
|
tab.AddHeadCol("CTime", "", "回收时间");
|
|
tab.AddHeadRow();
|
|
ViewBag.gridTable = tab.GetTable() + Pagination.GetPage(pager, tableId, "10,20,50");
|
|
|
|
var deptList = _cache.GetList_BusinessLines().ToList();
|
|
ViewBag.deptList = deptList;
|
|
|
|
return View();
|
|
}
|
|
|
|
[HttpPost]
|
|
public JsonResult Log(Pager pager, string columns, DateTime sTime, DateTime eTime, string resId,int? deptlineid, QueryUserComboDto usercomboDto)
|
|
{
|
|
var list = _sharedPoolHis.List(ref pager, sTime, eTime, resId, deptlineid, usercomboDto);
|
|
|
|
Table table = new Table(columns, true)
|
|
{
|
|
gridPager = pager
|
|
};
|
|
foreach (var model in list)
|
|
{
|
|
table.AddCol(model.DeptName);
|
|
table.AddCol(model.ResId);
|
|
table.AddCol(model.Eid);
|
|
table.AddCol(model.UName);
|
|
table.AddCol(model.GName);
|
|
table.AddCol(model.CTime);
|
|
table.AddRow();
|
|
}
|
|
var json = new
|
|
{
|
|
totalPages = pager.totalPages,
|
|
totalRows = pager.totalRows,
|
|
rowsList = table.GetRows()
|
|
};
|
|
return Json(json, JsonRequestBehavior.AllowGet);
|
|
}
|
|
|
|
public FileResult LogExport(DateTime sTime, DateTime eTime, string resId,int? deptlineid, QueryUserComboDto usercomboDto)
|
|
{
|
|
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 = _sharedPoolHis.List(ref pager, sTime, eTime, resId, deptlineid, usercomboDto);
|
|
|
|
System.IO.Stream strem = ExcelHelper.ExportListModelToExcel<ResSharedPoolHisView>(list, "回收资源", 50000, null);
|
|
|
|
return File(strem, contentType, downloadName);
|
|
}
|
|
|
|
private string GetTypeName(decimal type)
|
|
{
|
|
var typeName = "未知";
|
|
var nType = int.Parse(type.ToString());
|
|
switch (nType)
|
|
{
|
|
case 1: typeName = "注册资源"; break;
|
|
case 0: typeName = "非注册资源"; break;
|
|
}
|
|
return typeName;
|
|
}
|
|
|
|
}
|
|
}
|