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; } } }