/// <summary> /// 更新回答选项统计() /// </summary> /// <param name="voteID"></param> /// <param name="voteEntryID"></param> /// <param name="voteEntryText"></param> /// <param name="sum">加几票</param> #region bool UpdateVoteAnswerStat(string voteID,string voteEntryID,string voteEntryText,int sum) protected bool UpdateVoteAnswerStat(string voteID, string voteEntryID, string voteEntryText, int sum) { try { Criteria criteria = new Criteria(CriteriaType.Equals, "VoteID", voteID); criteria.Add(CriteriaType.Equals, "VoteEntryID", voteEntryID); List <VoteAnswerStat> listAnswerStats = Assistant.List <VoteAnswerStat>(criteria, null); VoteEntry entry = GetVoteEntryByEntryID(voteEntryID); if (listAnswerStats != null && listAnswerStats.Count > 0) { //进行更新 listAnswerStats[0].VoteEntrySum += sum; Assistant.Update(listAnswerStats[0]); } else { //新增一个 VoteAnswerStat voteAnswerStat = new VoteAnswerStat(); voteAnswerStat.ID = We7Helper.CreateNewID(); voteAnswerStat.VoteEntryID = voteEntryID; voteAnswerStat.VoteID = voteID; voteAnswerStat.VoteEntrySum = sum; voteAnswerStat.VoteEntryText = voteEntryText; voteAnswerStat.OrderID = entry.OrderID; Assistant.Insert(voteAnswerStat); } return(true); } catch (Exception ex) { return(false); } }
/// <summary> /// 获取某一期投票的选项统计 /// </summary> /// <param name="voteID"></param> #region List<VoteAnswerStat> GetVoteAnswerStatsByID(string voteID) public List <VoteAnswerStat> GetVoteAnswerStatsByID(string voteID) { List <VoteEntry> listEntrys = GetVoteEntrysByID(voteID); if (listEntrys == null) { return(null); } List <Order> listOrder = new List <Order>(); listOrder.Add(new Order("OrderID", OrderMode.Asc)); Criteria criteria = new Criteria(CriteriaType.Equals, "VoteID", voteID); List <VoteAnswerStat> listAnswerStats = Assistant.List <VoteAnswerStat>(criteria, listOrder.ToArray()); int total = 0; //查漏 for (int i = 0; i < listEntrys.Count; i++) { VoteEntry entry = listEntrys[i]; VoteAnswerStat stat = listAnswerStats.Find(p => p.VoteEntryID == entry.ID); if (stat == null) { VoteAnswerStat statNew = new VoteAnswerStat(); statNew.VoteEntryID = entry.ID; statNew.VoteID = entry.VoteID; statNew.VoteEntrySum = 0; statNew.VoteEntryText = entry.EntryText; listAnswerStats.Insert(i, statNew); } } //统计总值 foreach (VoteAnswerStat stat in listAnswerStats) { total += stat.VoteEntrySum; } for (int i = 0; i < listAnswerStats.Count; i++) { if (total > 0) { listAnswerStats[i].VoteEntrySumPercent = (int)Math.Round((decimal)listAnswerStats[i].VoteEntrySum / (decimal)total * 170, 0); //百分比 } else { listAnswerStats[i].VoteEntrySumPercent = 0; } } return(listAnswerStats); }