217 lines
7.7 KiB
C#
217 lines
7.7 KiB
C#
using Ninject;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Web.Mvc;
|
|
using WX.CRM.Common;
|
|
using WX.CRM.IBLL.WeWork;
|
|
using WX.CRM.WebHelper;
|
|
|
|
namespace WX.CRM.WEB.Controllers.WeWork
|
|
{
|
|
public class ExtUserController : BaseController
|
|
{
|
|
[Inject]
|
|
public IWW_EXTUSER extUser_BL { get; set; }
|
|
|
|
[HttpGet]
|
|
[AuthorizeRedirect(InitRights.CONST_企业微信资源日报表)]
|
|
public ActionResult DayReport()
|
|
{
|
|
string tableId = "tablist";
|
|
Table tab = new Table(tableId);
|
|
|
|
tab.AddHeadCol("DayTime", "", "日期");
|
|
|
|
tab.AddHeadCol("ResourceCount", "", "资源数");
|
|
tab.AddHeadCol("DistinctResourceCount", "", "去重资源数");
|
|
|
|
tab.AddHeadRow();
|
|
ViewBag.gridTable = tab.GetTable();
|
|
return View();
|
|
}
|
|
|
|
[HttpPost]
|
|
public JsonResult DayReportHtml(string columns, string sdCTime, string edCTime)
|
|
{
|
|
try
|
|
{
|
|
if (string.IsNullOrEmpty(sdCTime) || string.IsNullOrEmpty(edCTime))
|
|
{
|
|
return JsonHandler.ManageMessage("参数有误,请确认!", false);
|
|
}
|
|
DateTime? sTime = null;
|
|
DateTime? eTime = null;
|
|
DateTime stTime;
|
|
DateTime etTime;
|
|
DateTime.TryParse(sdCTime, out stTime);
|
|
sTime = stTime;
|
|
DateTime.TryParse(edCTime, out etTime);
|
|
eTime = etTime.AddDays(1);
|
|
Table table = new Table(columns, true);
|
|
var dt = extUser_BL.CountByDayReport(sTime, eTime);
|
|
var list = new List<decimal>();
|
|
|
|
foreach (DataRow model in dt.Rows)
|
|
{
|
|
|
|
if (string.IsNullOrEmpty(model["DayTime"].ToString()))
|
|
{
|
|
table.AddCol("合计:");
|
|
table.AddCol(model["ResourceCount"].ToString());
|
|
table.AddCol(list.Sum());
|
|
|
|
}
|
|
else
|
|
{
|
|
|
|
var i = getDistinctWeWordFriendCountFromCache(model["dayTime"].ToString());
|
|
list.Add(i);
|
|
var linkUrl = string.Format("<a href=\"javascript:parent.ChildAddTab('{0}', '{1}', '')\">{2}</a>", "企业微信日资源汇总", "/WeWork/ExtUser/UserDayReport?datetime=" + model["DayTime"], model["ResourceCount"]);
|
|
table.AddCol(model["dayTime"].ToString());
|
|
table.AddCol(linkUrl);
|
|
table.AddCol(i);
|
|
}
|
|
table.AddRow();
|
|
}
|
|
|
|
var json = new { rowsList = table.GetRows() };
|
|
return Json(json, JsonRequestBehavior.AllowGet);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error("ExtUserController:" + ex.Message + ex.StackTrace);
|
|
return JsonHandler.ManageMessage(ex.Message, false);
|
|
}
|
|
}
|
|
|
|
private decimal getDistinctWeWordFriendCountFromCache(string day)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(day))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
int days = 1;//默认是一天前
|
|
if (DateTime.Now.Date > Convert.ToDateTime(day).AddDays(days - 1))
|
|
{
|
|
var cacheKey = "cache_GetDistinctWeWorkFriendCount_" + day;
|
|
if (CacheHelper.Exists(cacheKey))
|
|
{
|
|
return CacheHelper.Get<decimal>(cacheKey);
|
|
}
|
|
else
|
|
{
|
|
var val = extUser_BL.GetDistinctWeWorkFriendCount(day);
|
|
CacheHelper.Set<decimal>(cacheKey, val, DateTime.Now.AddDays(1));
|
|
return val;
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
return extUser_BL.GetDistinctWeWorkFriendCount(day);
|
|
}
|
|
|
|
}
|
|
|
|
[HttpGet]
|
|
[AuthorizeRedirect(InitRights.CONST_企业微信资源日报表)]
|
|
public ViewResult UserDayReport(DateTime datetime, decimal? type)
|
|
{
|
|
string tableId = "tablist";
|
|
Table tab = new Table(tableId);
|
|
//Pager pager = new Pager() { page = 1, rows = int.MaxValue };
|
|
tab.AddHeadCol("uname", "", "员工");
|
|
tab.AddHeadCol("userid", "", "工作微信号");
|
|
tab.AddHeadCol("ResourceCount", "", "资源数");
|
|
|
|
tab.AddHeadRow();
|
|
ViewBag.gridTable = tab.GetTable();
|
|
return View();
|
|
}
|
|
|
|
public JsonResult UserDayReportHtml(string columns, DateTime datetime)
|
|
{
|
|
Table table = new Table(columns, true);
|
|
try
|
|
{
|
|
DateTime eTime = datetime.AddDays(1);
|
|
|
|
var dt = extUser_BL.CountByUserAndDay(datetime, eTime);
|
|
foreach (DataRow item in dt.Rows)
|
|
{
|
|
var linkUrl = string.Format("<a href=\"javascript:parent.ChildAddTab('{0}', '{1}', '')\">{2}</a>", "企业微信员工日资源详细", "/WeWork/ExtUser/BeiJiaResource?userId=" + item["userid"] + "&day=" + datetime.ToString("yyyy-MM-dd"), item["ResourceCount"]);
|
|
table.AddCol(item["uname"]);
|
|
table.AddCol(item["userid"]);
|
|
table.AddCol(linkUrl);
|
|
table.AddRow();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error("ExtUserController:" + ex.Message + ex.StackTrace);
|
|
return JsonHandler.ManageMessage(ex.Message, false);
|
|
}
|
|
var json = new { rowsList = table.GetRows() };
|
|
return Json(json, JsonRequestBehavior.AllowGet);
|
|
}
|
|
|
|
|
|
[HttpGet]
|
|
[AuthorizeRedirect(InitRights.CONST_企业微信资源日报表)]
|
|
public ActionResult BeiJiaResource(string day, string userId)
|
|
{
|
|
string tableId = "tablist";
|
|
Table tab = new Table(tableId);
|
|
tab.AddHeadCol("userid", "", "ID");
|
|
tab.AddHeadCol("name", "", "昵称");
|
|
tab.AddHeadCol("avatar", "", "头像");
|
|
tab.AddHeadCol("ctime", "", "添加时间");
|
|
tab.AddHeadRow();
|
|
ViewBag.gridTable = tab.GetTable();
|
|
ViewBag.day = day;
|
|
ViewBag.userId = userId;
|
|
return View();
|
|
}
|
|
|
|
|
|
[HttpPost]
|
|
public JsonResult BeiJiaResourceHtml(string columns)
|
|
{
|
|
try
|
|
{
|
|
var day = Request["day"];
|
|
var userId = Request["userId"];
|
|
DateTime? time = null;
|
|
if (!string.IsNullOrEmpty(day))
|
|
{
|
|
DateTime t;
|
|
DateTime.TryParse(day, out t);
|
|
time = t;
|
|
}
|
|
Table table = new Table(columns, true);
|
|
|
|
var list = extUser_BL.GetList(userId, time);
|
|
foreach (var item in list)
|
|
{
|
|
table.AddCol(item.WW_ExtUser.USERID);
|
|
table.AddCol(item.WW_ExtUser.NAME);
|
|
table.AddCol(string.Format("<img src='{0}' width='50' height='50'/>", item.WW_ExtUser.AVATAR));
|
|
table.AddCol(item.WW_ExtUser.CTIME);
|
|
table.AddRow();
|
|
}
|
|
|
|
var json = new { rowsList = table.GetRows() };
|
|
return Json(json, JsonRequestBehavior.AllowGet);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error("BeiJiaResourceHtml:" + ex.Message + ex.StackTrace);
|
|
return JsonHandler.ManageMessage(ex.Message, false);
|
|
}
|
|
}
|
|
}
|
|
}
|