MessageCode SaveDailycup() { try { DailyCupCompetitorsDataSet.DailyCup_CompetitorsDataTable competitorsData = new DailyCupCompetitorsDataSet.DailyCup_CompetitorsDataTable(); foreach (var entity in _Competitors) { var row = competitorsData.NewRow(); row["Idx"] = entity.Idx; row["DailyCupId"] = entity.DailyCupId; row["ManagerId"] = entity.ManagerId; row["ManagerName"] = entity.ManagerName; row["Logo"] = entity.Logo; row["MaxRound"] = entity.MaxRound; row["WinCount"] = entity.WinCount; row["Rank"] = entity.Rank; row["PrizeScore"] = entity.PrizeScore; row["PrizeSophisticate"] = entity.PrizeSophisticate; row["PrizeCoin"] = entity.PrizeCoin; row["Status"] = entity.Status; row["RowTime"] = entity.RowTime; competitorsData.Rows.Add(row); } DailycupSqlHelper.SaveCompetitorsFight(competitorsData); DailycupMatchDataSet.DailyCup_MatchDataTable matchData = new DailycupMatchDataSet.DailyCup_MatchDataTable(); foreach (var matchList in _matches) { foreach (var entity in matchList) { var row = matchData.NewRow(); row["DailyCupId"] = entity.DailyCupId; row["HomeManager"] = entity.HomeManager; row["HomeName"] = entity.HomeName; row["HomeLogo"] = entity.HomeLogo; row["AwayLogo"] = entity.AwayLogo; row["Idx"] = entity.Idx; row["Round"] = entity.Round; row["ChipInCount"] = entity.ChipInCount; row["RowTime"] = entity.RowTime; row["Status"] = entity.Status; row["HomeLevel"] = entity.HomeLevel; row["HomePower"] = entity.HomePower; row["HomeWorldScore"] = entity.HomeWorldScore; row["AwayManager"] = entity.AwayManager; row["AwayName"] = entity.AwayName; row["AwayLevel"] = entity.AwayLevel; row["AwayPower"] = entity.AwayPower; row["AwayWorldScore"] = entity.AwayWorldScore; row["AwayScore"] = entity.AwayScore; row["HomeScore"] = entity.HomeScore; matchData.Rows.Add(row); } } DailycupSqlHelper.SaveDailycupMatchBulk(matchData); return(MessageCode.Success); } catch (Exception ex) { SystemlogMgr.Error("SaveDailycup", ex); return(MessageCode.Exception); } }
public MessageCode SendPrize(DailycupInfoEntity dailycup) { if (0 == Interlocked.Exchange(ref _syncSendPrize, 1)) { try { if (dailycup == null) { return(MessageCode.DailycupNotExists); } if (dailycup.Status != (int)EnumDailycupStatus.End) //只能计算已打完的杯赛 { return(MessageCode.DailycupStatusNotEnd); } var beginRound = dailycup.Round; //获取已开奖的轮数 var endRound = DailycupCore.Instance.NowGambleOpenRound(dailycup.Round, DateTime.Now); if (beginRound > endRound) { return(MessageCode.DailycupNotimetoSendPrize); } dailycup.Status = (int)EnumDailycupStatus.StartSend; dailycup.UpdateTime = DateTime.Now; DailycupInfoMgr.Update(dailycup); var competitorsList = DailycupCompetitorsMgr.GetByDailycupId(dailycup.Idx); if (competitorsList == null) { return(MessageCode.DailycupNoCompetitors); } List <MailBuilder> mailList = new List <MailBuilder>(competitorsList.Count); List <NbManagerhonorEntity> honorList = new List <NbManagerhonorEntity>(2); foreach (var entity in competitorsList) { mailList.Add(CalPrize(entity)); ManagerCore.Instance.DeleteCache(entity.ManagerId); if (entity.Rank == -1) { honorList.Add(new NbManagerhonorEntity() { ManagerId = entity.ManagerId, MatchType = (int)EnumMatchType.Dailycup, PeriodId = entity.DailyCupId, Rank = 1, SubType = 0, Rowtime = DateTime.Now }); } else if (entity.Rank == 1) { honorList.Add(new NbManagerhonorEntity() { ManagerId = entity.ManagerId, MatchType = (int)EnumMatchType.Dailycup, PeriodId = entity.DailyCupId, Rank = 2, SubType = 0, Rowtime = DateTime.Now }); } } DailycupSqlHelper.SaveCompetitorsPrize(competitorsList); MailCore.SaveMailBulk(mailList); dailycup.Status = (int)EnumDailycupStatus.Finish; dailycup.UpdateTime = DateTime.Now; DailycupInfoMgr.Update(dailycup); foreach (var entity in honorList) { NbManagerhonorMgr.Add(entity.ManagerId, entity.MatchType, entity.SubType, entity.PeriodId, entity.Rank); } return(MessageCode.Success); } catch (Exception ex) { SystemlogMgr.Error("Dailycup SendPrize", ex); return(MessageCode.Exception); } finally { Interlocked.Exchange(ref _syncSendPrize, 0); } } else { return(MessageCode.SystemBusy); } }