364 lines
12 KiB
C#
364 lines
12 KiB
C#
using Ninject;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using WX.CRM.Common;
|
||
using WX.CRM.IBLL.Csvr;
|
||
using WX.CRM.WebHelper.UtilityModel;
|
||
|
||
namespace WX.CRM.WebHelper.DoItems
|
||
{
|
||
public sealed class ToDoItemMessage : IPopupMessage
|
||
{
|
||
private ICSVR_TODOITEM_Q _todoItem;
|
||
#region 单例
|
||
private static volatile ToDoItemMessage instance = null;
|
||
private ToDoItemMessage()
|
||
{
|
||
_todoItem = Infrastructure.NinjectControllerFactory.ninjectKernel.Get<ICSVR_TODOITEM_Q>();
|
||
}
|
||
// Lock对象,线程安全所用
|
||
private static object locked = new Object();
|
||
public static ToDoItemMessage Instance
|
||
{
|
||
get
|
||
{
|
||
if (instance == null)
|
||
{
|
||
lock (locked)
|
||
{
|
||
if (instance == null)
|
||
instance = new ToDoItemMessage();
|
||
}
|
||
}
|
||
|
||
return instance;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 私有数据
|
||
//private Boolean NeedRefresh = true;
|
||
//private DateTime LastLoadTime = DateTime.Now;
|
||
Dictionary<decimal, UserResourceCount> UserRes = new Dictionary<decimal, UserResourceCount>();
|
||
private void LoadResource()
|
||
{
|
||
//lock (this)
|
||
{
|
||
//if (!NeedRefresh)
|
||
// return;
|
||
//重新加载未查看分配资源到UserRes
|
||
UserRes.Clear();
|
||
//查数据库
|
||
var lists = _todoItem.GetToDoItemsByDateNow();
|
||
|
||
var queryList = from a in lists group a by a.RECEIVEDUSERID into g select new { g.Key, time = g.Max(p => p.STARTTIME) };
|
||
|
||
var tipUser = new List<decimal>();
|
||
foreach (var item in queryList)
|
||
{
|
||
if (item.time.HasValue)
|
||
{
|
||
var spanTime = DateTime.Now - item.time.Value;
|
||
if (spanTime.TotalSeconds < 31)
|
||
{
|
||
tipUser.Add(item.Key);
|
||
}
|
||
}
|
||
}
|
||
|
||
lists = lists.Where(p => tipUser.Contains(p.RECEIVEDUSERID)).ToList();
|
||
|
||
foreach (var list in lists)
|
||
{
|
||
UserResourceCount resinfo = null;
|
||
if (!UserRes.ContainsKey(list.RECEIVEDUSERID))
|
||
{
|
||
resinfo = new UserResourceCount();
|
||
resinfo.SalesId = list.RECEIVEDUSERID;
|
||
UserRes.Add(list.RECEIVEDUSERID, resinfo);
|
||
}
|
||
else
|
||
{
|
||
resinfo = UserRes[list.RECEIVEDUSERID];
|
||
}
|
||
resinfo.Add(list.PKID.ToString());
|
||
}
|
||
|
||
//把NeedRefresh置为false
|
||
//NeedRefresh = false;
|
||
//LastLoadTime = DateTime.Now;
|
||
}
|
||
}
|
||
#endregion
|
||
public string GetUrl()
|
||
{
|
||
return @"../Csvr/ToDoItem/Index";// 个人代办事项列表
|
||
}
|
||
//public void SetNeedRefresh()
|
||
//{
|
||
// NeedRefresh = true;
|
||
//}
|
||
public void SetView(decimal UserId, string pkid)
|
||
{
|
||
if (!UserRes.ContainsKey(UserId))
|
||
return;
|
||
var ResInfo = UserRes[UserId];
|
||
if (ResInfo == null)
|
||
return;
|
||
ResInfo.Remove(pkid);
|
||
}
|
||
|
||
public string GetMessage(decimal UserId)
|
||
{
|
||
//if (((TimeSpan)(DateTime.Now - LastLoadTime)).TotalMinutes >= 10)
|
||
// SetNeedRefresh();
|
||
//if (NeedRefresh)
|
||
LoadResource();
|
||
if (!UserRes.ContainsKey(UserId))
|
||
return string.Empty;
|
||
var ResInfo = UserRes[UserId];
|
||
if (ResInfo == null || ResInfo.Count == 0)
|
||
return string.Empty;
|
||
//return string.Format("查看待办事项:{0}个", ResInfo.Count);
|
||
return string.Format("{0}", ResInfo.Count);
|
||
}
|
||
}
|
||
|
||
public sealed class SoftLoginMessage : IPopupMessage
|
||
{
|
||
private ICSVR_TODOITEM_Q _todoItem;
|
||
#region 单例
|
||
private static volatile SoftLoginMessage instance = null;
|
||
private SoftLoginMessage()
|
||
{
|
||
_todoItem = Infrastructure.NinjectControllerFactory.ninjectKernel.Get<ICSVR_TODOITEM_Q>();
|
||
}
|
||
// Lock对象,线程安全所用
|
||
private static object locked = new Object();
|
||
public static SoftLoginMessage Instance
|
||
{
|
||
get
|
||
{
|
||
if (instance == null)
|
||
{
|
||
lock (locked)
|
||
{
|
||
if (instance == null)
|
||
instance = new SoftLoginMessage();
|
||
}
|
||
}
|
||
|
||
return instance;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 私有数据
|
||
//private Boolean NeedRefresh = true;
|
||
//private DateTime LastLoadTime = DateTime.Now;
|
||
Dictionary<decimal, UserResourceCount> UserRes = new Dictionary<decimal, UserResourceCount>();
|
||
private void LoadResource()
|
||
{
|
||
//lock (this)
|
||
{
|
||
//if (!NeedRefresh)
|
||
// return;
|
||
//重新加载未查看分配资源到UserRes
|
||
UserRes.Clear();
|
||
//查数据库
|
||
var lists = _todoItem.GetToDoItemSoftLogin();
|
||
|
||
var queryList = from a in lists group a by a.RECEIVEDUSERID into g select new { g.Key, time = g.Max(p => p.STARTTIME) };
|
||
|
||
var tipUser = new List<decimal>();
|
||
foreach (var item in queryList)
|
||
{
|
||
if (item.time.HasValue)
|
||
{
|
||
var spanTime = DateTime.Now - item.time.Value;
|
||
if (spanTime.TotalSeconds < 31)
|
||
{
|
||
tipUser.Add(item.Key);
|
||
}
|
||
}
|
||
}
|
||
|
||
lists = lists.Where(p => tipUser.Contains(p.RECEIVEDUSERID)).ToList();
|
||
|
||
foreach (var list in lists)
|
||
{
|
||
UserResourceCount resinfo = null;
|
||
if (!UserRes.ContainsKey(list.RECEIVEDUSERID))
|
||
{
|
||
resinfo = new UserResourceCount
|
||
{
|
||
SalesId = list.RECEIVEDUSERID
|
||
};
|
||
UserRes.Add(list.RECEIVEDUSERID, resinfo);
|
||
}
|
||
else
|
||
{
|
||
resinfo = UserRes[list.RECEIVEDUSERID];
|
||
}
|
||
resinfo.Add(list.PKID.ToString());
|
||
}
|
||
|
||
//把NeedRefresh置为false
|
||
//NeedRefresh = false;
|
||
//LastLoadTime = DateTime.Now;
|
||
}
|
||
}
|
||
#endregion
|
||
public string GetUrl()
|
||
{
|
||
return @"../Csvr/ToDoItem/Index?resourcetag=softlogin";
|
||
}
|
||
public void SetNeedRefresh()
|
||
{
|
||
//NeedRefresh = true;
|
||
}
|
||
public void SetView(decimal UserId, string pkid)
|
||
{
|
||
if (!UserRes.ContainsKey(UserId))
|
||
return;
|
||
var ResInfo = UserRes[UserId];
|
||
if (ResInfo == null)
|
||
return;
|
||
ResInfo.Remove(pkid);
|
||
}
|
||
|
||
public string GetMessage(decimal UserId)
|
||
{
|
||
//if (((TimeSpan)(DateTime.Now - LastLoadTime)).TotalMinutes >= 10)
|
||
// SetNeedRefresh();
|
||
//if (NeedRefresh)
|
||
LoadResource();
|
||
if (!UserRes.ContainsKey(UserId))
|
||
return string.Empty;
|
||
var ResInfo = UserRes[UserId];
|
||
if (ResInfo == null || ResInfo.Count == 0)
|
||
return string.Empty;
|
||
return string.Format("{0}", ResInfo.Count);
|
||
}
|
||
}
|
||
|
||
public sealed class RFMMessage : IPopupMessage
|
||
{
|
||
private ICSVR_TODOITEM_Q _todoItem;
|
||
#region 单例
|
||
private static volatile RFMMessage instance = null;
|
||
private RFMMessage()
|
||
{
|
||
_todoItem = Infrastructure.NinjectControllerFactory.ninjectKernel.Get<ICSVR_TODOITEM_Q>();
|
||
}
|
||
// Lock对象,线程安全所用
|
||
private static object locked = new Object();
|
||
public static RFMMessage Instance
|
||
{
|
||
get
|
||
{
|
||
if (instance == null)
|
||
{
|
||
lock (locked)
|
||
{
|
||
if (instance == null)
|
||
instance = new RFMMessage();
|
||
}
|
||
}
|
||
|
||
return instance;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 私有数据
|
||
//private Boolean NeedRefresh = true;
|
||
//private DateTime LastLoadTime = DateTime.Now;
|
||
Dictionary<decimal, UserResourceCount> UserRes = new Dictionary<decimal, UserResourceCount>();
|
||
private void LoadResource()
|
||
{
|
||
//lock (this)
|
||
{
|
||
//if (!NeedRefresh)
|
||
// return;
|
||
//重新加载未查看分配资源到UserRes
|
||
UserRes.Clear();
|
||
//查数据库
|
||
var lists = _todoItem.GetToDoItemRFM();
|
||
|
||
var queryList = from a in lists group a by a.RECEIVEDUSERID into g select new { g.Key, time = g.Max(p => p.STARTTIME) };
|
||
|
||
var tipUser = new List<decimal>();
|
||
foreach (var item in queryList)
|
||
{
|
||
if (item.time.HasValue)
|
||
{
|
||
var spanTime = DateTime.Now - item.time.Value;
|
||
if (spanTime.TotalSeconds < 31)
|
||
{
|
||
tipUser.Add(item.Key);
|
||
}
|
||
}
|
||
}
|
||
|
||
lists = lists.Where(p => tipUser.Contains(p.RECEIVEDUSERID)).ToList();
|
||
|
||
foreach (var list in lists)
|
||
{
|
||
UserResourceCount resinfo = null;
|
||
if (!UserRes.ContainsKey(list.RECEIVEDUSERID))
|
||
{
|
||
resinfo = new UserResourceCount
|
||
{
|
||
SalesId = list.RECEIVEDUSERID
|
||
};
|
||
UserRes.Add(list.RECEIVEDUSERID, resinfo);
|
||
}
|
||
else
|
||
{
|
||
resinfo = UserRes[list.RECEIVEDUSERID];
|
||
}
|
||
resinfo.Add(list.PKID.ToString());
|
||
}
|
||
|
||
//把NeedRefresh置为false
|
||
//NeedRefresh = false;
|
||
//LastLoadTime = DateTime.Now;
|
||
}
|
||
}
|
||
#endregion
|
||
public string GetUrl()
|
||
{
|
||
return @"../Csvr/ToDoItem/Index?resourcetag=RFM";
|
||
}
|
||
//public void SetNeedRefresh()
|
||
//{
|
||
// NeedRefresh = true;
|
||
//}
|
||
public void SetView(decimal UserId, string pkid)
|
||
{
|
||
if (!UserRes.ContainsKey(UserId))
|
||
return;
|
||
var ResInfo = UserRes[UserId];
|
||
if (ResInfo == null)
|
||
return;
|
||
ResInfo.Remove(pkid);
|
||
}
|
||
|
||
public string GetMessage(decimal UserId)
|
||
{
|
||
//if (((TimeSpan)(DateTime.Now - LastLoadTime)).TotalMinutes >= 10)
|
||
// SetNeedRefresh();
|
||
//if (NeedRefresh)
|
||
LoadResource();
|
||
if (!UserRes.ContainsKey(UserId))
|
||
return string.Empty;
|
||
var ResInfo = UserRes[UserId];
|
||
if (ResInfo == null || ResInfo.Count == 0)
|
||
return string.Empty;
|
||
return string.Format("{0}", ResInfo.Count);
|
||
}
|
||
}
|
||
}
|