public static void RecalcBangHuiNumLevel(DBManager dbMgr) { long ticks = DateTime.Now.Ticks; if (ticks - BangHuiNumLevelMgr.LastQueryTimeTicks >= BangHuiNumLevelMgr.MaxQueryTimeSlotTicks) { BangHuiNumLevelMgr.LastQueryTimeTicks = ticks; GameDBManager.BangHuiListMgr.RefreshBangHuiListData(dbMgr); BangHuiListData bangHuiListData = GameDBManager.BangHuiListMgr.GetBangHuiListData(dbMgr, -1, 0, 10000); if (bangHuiListData != null && null != bangHuiListData.BangHuiItemDataList) { List <BangHuiNumLevelItem> bangHuiNumLevelItemList = new List <BangHuiNumLevelItem>(); for (int i = 0; i < bangHuiListData.BangHuiItemDataList.Count; i++) { int totalNum; int totalLevel; long totalCombatforce; if (DBQuery.QueryBHMemberSumData(bangHuiListData.BangHuiItemDataList[i].BHID, out totalNum, out totalLevel, out totalCombatforce)) { bangHuiNumLevelItemList.Add(new BangHuiNumLevelItem { BHID = bangHuiListData.BangHuiItemDataList[i].BHID, TotalNum = totalNum, TotalLevel = totalLevel, TotalCombatForce = (int)Math.Min(totalCombatforce, 2147483647L) }); } } for (int i = 0; i < bangHuiNumLevelItemList.Count; i++) { DBWriter.UpdateBangHuiNumLevel(dbMgr, bangHuiNumLevelItemList[i].BHID, bangHuiNumLevelItemList[i].TotalNum, bangHuiNumLevelItemList[i].TotalLevel, bangHuiNumLevelItemList[i].TotalCombatForce); } } } }
public BangHuiListData GetBangHuiListData(DBManager DBMgr, int isVerify, int startIndex, int endIndex) { BangHuiListData BHListData = null; lock (this.BangHuiListMutex) { if (isVerify >= 0) { BHListData = new BangHuiListData(); BHListData.BangHuiItemDataList = new List <BangHuiItemData>(); foreach (BangHuiItemData data in this.BangHuiListCacheData.BangHuiItemDataList) { if (isVerify == data.IsVerfiy) { BHListData.BangHuiItemDataList.Add(data); BHListData.TotalBangHuiItemNum++; } } } else { BHListData = this.BangHuiListCacheData; } } return(BHListData); }
/// <summary> /// 重新计算帮会的人数 /// </summary> /// <param name="dbMgr"></param> public static void RecalcBangHuiNumLevel(DBManager dbMgr) { long ticks = DateTime.Now.Ticks; if (ticks - LastQueryTimeTicks < MaxQueryTimeSlotTicks) { return; //禁止频繁操作 } LastQueryTimeTicks = ticks; //获取帮会列表数据 BangHuiListData bangHuiListData = DBQuery.GetBangHuiItemDataList(dbMgr, -1, 0, 10000); if (null != bangHuiListData && null != bangHuiListData.BangHuiItemDataList) { List <BangHuiNumLevelItem> bangHuiNumLevelItemList = new List <BangHuiNumLevelItem>(); for (int i = 0; i < bangHuiListData.BangHuiItemDataList.Count; i++) { bangHuiNumLevelItemList.Add(new BangHuiNumLevelItem() { BHID = bangHuiListData.BangHuiItemDataList[i].BHID, TotalNum = DBQuery.QueryBHMemberNum(dbMgr, bangHuiListData.BangHuiItemDataList[i].BHID), TotalLevel = DBQuery.QueryBHMemberLevel(dbMgr, bangHuiListData.BangHuiItemDataList[i].BHID), TotalCombatForce = DBQuery.QueryBHMemberTotalCombatForce(dbMgr, bangHuiListData.BangHuiItemDataList[i].BHID), }); } for (int i = 0; i < bangHuiNumLevelItemList.Count; i++) { //更新帮会的人员个数和级别总和 DBWriter.UpdateBangHuiNumLevel(dbMgr, bangHuiNumLevelItemList[i].BHID, bangHuiNumLevelItemList[i].TotalNum, bangHuiNumLevelItemList[i].TotalLevel, bangHuiNumLevelItemList[i].TotalCombatForce); } } }