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.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 static readonly object sync = new object();
public SharedPoolController(IRES_SHAREDPOOL sharedPool, IRES_SHAREDPOOL_ONE sharedPoolOne, IRES_SHAREDPOOL_HIS sharedPoolHis)
{
this._sharedPool = sharedPool;
this._sharedPoolOne = sharedPoolOne;
this._sharedPoolHis = sharedPoolHis;
}
[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("{2}"
// , "客户详细"
// , "/Csvr/CustomerInfo/CustomerDetail?resid=" + model.ResId
// , model.ResId);
//table.AddCol(linkUrl);
table.AddCol(string.Format("{1}", 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(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("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");
return View();
}
[HttpPost]
public JsonResult Log(Pager pager, string columns, DateTime sTime, DateTime eTime, string resId, QueryUserComboDto usercomboDto)
{
var list = _sharedPoolHis.List(ref pager, sTime, eTime, resId, usercomboDto);
Table table = new Table(columns, true)
{
gridPager = pager
};
foreach (var model in list)
{
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, 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, usercomboDto);
System.IO.Stream strem = ExcelHelper.ExportListModelToExcel(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;
}
}
}