/// <summary> /// 用户画像 /// </summary> /// <param name="areaid"></param> /// <param name="strat"></param> /// <param name="end"></param> /// <param name="type"></param> /// <param name="version"></param> /// <returns></returns> public UserPicModel GetUserPic(int areaid, DateTime start, DateTime end, int type, string version) { try { UserPicModel res = new UserPicModel(); string contition = $" and type={type} and version='{version}' and date between '{start}' and '{end}'"; if (string.IsNullOrEmpty(version)) { contition = $" and type={type} and date between '{start}' and '{end}'"; } //数据 //var unitData = _repository.GetActionData(areaid, contition);//从缓存取30天数据 List <UserActionModel> unitData = new List <UserActionModel>(); if (string.IsNullOrEmpty(version)) { unitData = _cache.GetRawDataForThirty(areaid.ToString(), start, end).ToList().Where(i => i.type == type && i.date >= start && i.date <= end).ToList(); } else { unitData = _cache.GetRawDataForThirty(areaid.ToString(), start, end).ToList().Where(i => i.type == type && i.version == version && i.date >= start && i.date <= end).ToList(); } Dictionary <int, string> plats = new Dictionary <int, string>(); plats = PlatFromEnumExt.GetEnumAllNameAndValue <PlatFromEnum>(); foreach (var item in plats) { string plat = item.Value; if (plat != "All") { res.legendData.Add(plat); seriesData aseries = new seriesData { name = plat, value = unitData.Where(i => i.platForm?.ToLower() == plat.ToLower() && i.uid != 0).GroupBy(i => i.uid).Count() }; seriesData rseries = new seriesData { name = plat, value = unitData.Where(i => i.platForm?.ToLower() == plat.ToLower() && i.uid == 0).Count() }; res.ActiveData.Add(aseries); res.RegisterData.Add(rseries); } } return(res); } catch (Exception e) { _logger.LogError($"GetUserPic:{e.Message}"); throw; } }
public JsonResult GetPieCharts(string pId) { int cntTask = 0; var _task = mongoDatabase.GetCollection<Task>("Task"); var _devBase = mongoDatabase.GetCollection<DevBase>("DevBase"); var _projects = mongoDatabase.GetCollection<Project>("Project"); ObjectId projectId; var isValid = ObjectId.TryParse(pId, out projectId); Project proj = new Project(); if (isValid) { var getQuery = Query<Project>.EQ(e => e.ProjectId, projectId); proj = _projects.FindOne(getQuery); } IList<seriesData> lstseriesData = new List<seriesData>(); var getTasks = _task.FindAs(typeof(Task), Query.Matches("ProjectId", new BsonRegularExpression(pId, "i"))); foreach (Task tsk in getTasks) { int ntaCnt = 0; var getDBase = _devBase.FindAs(typeof(DevBase), Query.Matches("TaskId", new BsonRegularExpression(tsk.TaskId.ToString(), "i"))); foreach (DevBase dbase in getDBase) { if (dbase.Status.Equals("Not Started")) { foreach (seriesData mtv in lstseriesData) { if (mtv.name == dbase.Status) { int cntl = lstseriesData.IndexOf(mtv); lstseriesData[cntl].y = ++(lstseriesData[cntl].y); ntaCnt++; } } } if (dbase.Status.Equals("In-Process")) { foreach (seriesData mtv in lstseriesData) { if (mtv.name == dbase.Status) { int cntl = lstseriesData.IndexOf(mtv); lstseriesData[cntl].y = ++(lstseriesData[cntl].y); ntaCnt++; } } } if (dbase.Status.Equals("Complete")) { foreach (seriesData mtv in lstseriesData) { if (mtv.name == dbase.Status) { int cntl = lstseriesData.IndexOf(mtv); lstseriesData[cntl].y = ++(lstseriesData[cntl].y); ntaCnt++; } } } if (dbase.Status.Equals("Waiting Approval")) { foreach (seriesData mtv in lstseriesData) { if (mtv.name == dbase.Status) { int cntl = lstseriesData.IndexOf(mtv); lstseriesData[cntl].y = ++(lstseriesData[cntl].y); ntaCnt++; } } } if (dbase.Status.Equals("On Hold")) { foreach (seriesData mtv in lstseriesData) { if (mtv.name == dbase.Status) { int cntl = lstseriesData.IndexOf(mtv); lstseriesData[cntl].y = ++(lstseriesData[cntl].y); ntaCnt++; } } } if (dbase.Status.Equals("Cancelled")) { foreach (seriesData mtv in lstseriesData) { if (mtv.name == dbase.Status) { int cntl = lstseriesData.IndexOf(mtv); lstseriesData[cntl].y = ++(lstseriesData[cntl].y); ntaCnt++; } } } if (ntaCnt <= 0) { seriesData mtv = new seriesData(); lstseriesData.Add(mtv); lstseriesData[cntTask].name = dbase.Status; lstseriesData[cntTask++].y = ++ntaCnt; } } } return Json(lstseriesData.ToList(), JsonRequestBehavior.AllowGet); }
public JsonResult GetPieCharts(string pId) { int cntTask = 0; var _task = mongoDatabase.GetCollection <Task>("Task"); var _devBase = mongoDatabase.GetCollection <DevBase>("DevBase"); var _projects = mongoDatabase.GetCollection <Project>("Project"); ObjectId projectId; var isValid = ObjectId.TryParse(pId, out projectId); Project proj = new Project(); if (isValid) { var getQuery = Query <Project> .EQ(e => e.ProjectId, projectId); proj = _projects.FindOne(getQuery); } IList <seriesData> lstseriesData = new List <seriesData>(); var getTasks = _task.FindAs(typeof(Task), Query.Matches("ProjectId", new BsonRegularExpression(pId, "i"))); foreach (Task tsk in getTasks) { int ntaCnt = 0; var getDBase = _devBase.FindAs(typeof(DevBase), Query.Matches("TaskId", new BsonRegularExpression(tsk.TaskId.ToString(), "i"))); foreach (DevBase dbase in getDBase) { if (dbase.Status.Equals("Not Started")) { foreach (seriesData mtv in lstseriesData) { if (mtv.name == dbase.Status) { int cntl = lstseriesData.IndexOf(mtv); lstseriesData[cntl].y = ++(lstseriesData[cntl].y); ntaCnt++; } } } if (dbase.Status.Equals("In-Process")) { foreach (seriesData mtv in lstseriesData) { if (mtv.name == dbase.Status) { int cntl = lstseriesData.IndexOf(mtv); lstseriesData[cntl].y = ++(lstseriesData[cntl].y); ntaCnt++; } } } if (dbase.Status.Equals("Complete")) { foreach (seriesData mtv in lstseriesData) { if (mtv.name == dbase.Status) { int cntl = lstseriesData.IndexOf(mtv); lstseriesData[cntl].y = ++(lstseriesData[cntl].y); ntaCnt++; } } } if (dbase.Status.Equals("Waiting Approval")) { foreach (seriesData mtv in lstseriesData) { if (mtv.name == dbase.Status) { int cntl = lstseriesData.IndexOf(mtv); lstseriesData[cntl].y = ++(lstseriesData[cntl].y); ntaCnt++; } } } if (dbase.Status.Equals("On Hold")) { foreach (seriesData mtv in lstseriesData) { if (mtv.name == dbase.Status) { int cntl = lstseriesData.IndexOf(mtv); lstseriesData[cntl].y = ++(lstseriesData[cntl].y); ntaCnt++; } } } if (dbase.Status.Equals("Cancelled")) { foreach (seriesData mtv in lstseriesData) { if (mtv.name == dbase.Status) { int cntl = lstseriesData.IndexOf(mtv); lstseriesData[cntl].y = ++(lstseriesData[cntl].y); ntaCnt++; } } } if (ntaCnt <= 0) { seriesData mtv = new seriesData(); lstseriesData.Add(mtv); lstseriesData[cntTask].name = dbase.Status; lstseriesData[cntTask++].y = ++ntaCnt; } } } return(Json(lstseriesData.ToList(), JsonRequestBehavior.AllowGet)); }