using Ninject;
using System;
using System.Collections.Generic;
using System.Linq;
using WX.CRM.BLL.Ww;
using WX.CRM.Common;
using WX.CRM.IBLL.Ww;
using WX.CRM.Model.crmModel;
using WX.CRM.WebHelper.UtilityModel;
namespace WX.CRM.WebHelper.DoItems
{
///
/// 企微暂停提醒
///
public sealed class QiWeForbidMessage : IPopupMessage
{
private IWw_huser _WxuserService;
#region 单例
private static volatile QiWeForbidMessage instance = null;
private QiWeForbidMessage()
{
_WxuserService = Infrastructure.NinjectControllerFactory.ninjectKernel.Get();
}
// Lock对象,线程安全所用
private static object locked = new Object();
public static QiWeForbidMessage Instance
{
get
{
if (instance == null)
{
lock (locked)
{
if (instance == null)
instance = new QiWeForbidMessage();
}
}
return instance;
}
}
#endregion
#region 私有数据
//private Boolean NeedRefresh = true;
//private DateTime LastLoadTime = DateTime.Now;
private Dictionary UserRes = new Dictionary();
///
/// 获取数据锁
///
private void LoadResource(decimal UserId)
{
UserRes.Clear();
var lists = _WxuserService.GetWxStatusNotice(4);
UserFilter.AddRange(lists.Select(n => n.UserId).ToList());
var groupList = lists.GroupBy(n => n.InnerUserId).Select(n => new { n.Key, count = n.Count() });
foreach(var user in groupList)
{
if (!UserRes.ContainsKey(user.Key))
{
UserRes.Add(user.Key, user.count);
}
else
{
UserRes[user.Key] = user.count;
}
}
}
#endregion
public string GetUrl()
{
if (UserFilter.Count > 0)
{
UserFilter = UserFilter.Distinct().ToList();
var filter = string.Join(";", UserFilter);
return @"../Ww/MyWork/index?isExe=0&&assignStatus=4&&filteruserId=" + filter;// 高级分配资源提醒
}
return @"../Ww/MyWork/index?isExe=0&&assignStatus=4";// 高级分配资源提醒
}
private List UserFilter = new List();
public void SetView(decimal UserId, string pkid)
{
if (!UserRes.ContainsKey(UserId))
return;
}
public string GetMessage(decimal UserId)
{
LoadResource(UserId);
if (!UserRes.ContainsKey(UserId))
return string.Empty;
var ResInfo = UserRes[UserId];
return string.Format("{0}", ResInfo);
}
}
}