protected void btnLadderPrize_Click(object sender, EventArgs e) { try { var zone = AdminMgr.GetSelectZoneId(HttpContext.Current, ddlZone); var curSeason = ConvertHelper.ConvertToInt(txtLadderSeason.Text); if (curSeason <= 0) { ShowMessage("天梯赛季不能小于1"); return; } ShowMessage("天梯发奖开始..."); var managers = LadderManagerhistoryMgr.GetPrizeManager(curSeason, zone); if (managers != null) { List <MailBuilder> mails = new List <MailBuilder>(managers.Count); foreach (var manager in managers) { LadderThread.Instance.SendPrize(manager, 0, ref mails); } var mailDataTable = MailCore.BuildMailBulkTable(mails); LadderSqlHelper.SaveManagerPrize(managers, mailDataTable, zone); } ShowMessage("天梯发奖成功。"); } catch (Exception ex) { LogHelper.Insert(ex); ShowMessage("local exception:" + ex.Message); } }
/// <summary> /// 合区所需的提前发放天梯赛奖励 /// </summary> /// <returns></returns> public MessageCode ScoreToHonorJobMergeZone() { var season = CacheFactory.SeasonCache.GetCurrentSeason(); if (season == null) { return(MessageCode.LadderNoSeason); } var curDate = DateTime.Today; if (season.Idx == 1 && curDate == season.Startdate) { return(MessageCode.LadderSeasonDonotNeedSend); } int isNewSeason = 1; int curSeason = season.Idx; if (season.Startdate == curDate && season.Idx > 1) { isNewSeason = 1; curSeason = curSeason - 1; } LadderInfoMgr.ScoreToHonorMergeZone(DateTime.Today, curSeason); if (isNewSeason == 1) { try { var curSeasonEntity = CacheFactory.SeasonCache.GetEntity(curSeason); var managers = LadderManagerhistoryMgr.GetPrizeManager(curSeason); if (managers != null) { List <MailBuilder> mails = new List <MailBuilder>(managers.Count); foreach (var manager in managers) { SendPrize(manager, curSeasonEntity.Status, ref mails); if (manager.Rank < 3) { NbManagerhonorMgr.Add(manager.ManagerId, (int)EnumMatchType.Ladder, 0, manager.Season, manager.Rank); } } var mailDataTable = MailCore.BuildMailBulkTable(mails); LadderSqlHelper.SaveManagerPrize(managers, mailDataTable); } } catch (Exception ex) { SystemlogMgr.Error("ScoreToHonorJob SendPrize", ex); return(MessageCode.Exception); } } return(MessageCode.Success); }
protected void btnSend_Click(object sender, EventArgs e) { try { var zoneId = ZoneId; if (string.IsNullOrEmpty(zoneId)) { ShowMessage("请选择区"); return; } var users = txtUserList.Text; if (string.IsNullOrEmpty(users)) { ShowMessage("请选择用户"); return; } var title = txtMailTitle.Text; if (string.IsNullOrEmpty(title)) { ShowMessage("请输入标题"); return; } var content = txtMailContent.Text; if (string.IsNullOrEmpty(content)) { ShowMessage("请输入内容"); return; } List <NbManagerEntity> managers = new List <NbManagerEntity>(); var ss = users.Split(','); foreach (var s in ss) { var manager = NbManagerMgr.GetByAccount(s, zoneId); if (manager == null || manager.Count < 1) { ShowMessage("未找到对应经理,账号:" + s); return; } managers.Add(manager[0]); } var mailType = ConvertHelper.ConvertToInt(dr_type.SelectedValue); var attachments = GetAttachments(); if (mailType == 1) { MailBuilder mail = new MailBuilder(title, content); if (attachments.Count > 0) { foreach (var entity in attachments) { switch (entity.Type) { case 1: mail.AddAttachment(EnumCurrencyType.Coin, entity.Count); break; case 2: mail.AddAttachment(EnumCurrencyType.Point, entity.Count); break; case 3: mail.AddAttachment(entity.Count, entity.ItemCode, entity.IsBinding, entity.Strength); break; case 4: //声望 mail.AddAttachment(EnumCurrencyType.Prestige, entity.Count); break; case 8: //绑劵 mail.AddAttachment(EnumCurrencyType.BindPoint, entity.Count); break; } } } List <MailInfoEntity> mailList = new List <MailInfoEntity>(managers.Count); var mailInfo = mail.MailInfo; foreach (var entity in managers) { var mailEntity = mailInfo.Clone(); mailEntity.ManagerId = entity.Idx; mailList.Add(mailEntity); } var mailTable = MailCore.BuildMailBulkTable(mailList); if (MailSqlHelper.SaveMailBulk(mailTable, ConnectionFactory.Instance.GetConnectionString(zoneId, "Main"))) { ShowMessage("发送成功"); datagrid1.DataSource = null; datagrid1.DataBind(); LocalAttachment = null; } else { ShowMessage("发送失败"); } } else if (mailType == 2) { //{ // MailShareBuilder mail = new MailShareBuilder(title, content); // if (attachments.Count > 0) // { // foreach (var entity in attachments) // { // switch (entity.Type) // { // case 1: // mail.AddAttachment(EnumCurrencyType.Coin, entity.Count); // break; // case 2: // mail.AddAttachment(EnumCurrencyType.Point, entity.Count); // break; // case 3: // mail.AddAttachment(entity.Count, entity.ItemCode, entity.IsBinding, entity.Strength); // break; // case 4://声望 // mail.AddAttachment(EnumCurrencyType.Prestige, entity.Count); // break; // case 8://绑劵 // mail.AddAttachment(EnumCurrencyType.BindPoint, entity.Count); // break; // } // } // } // MailshareInfoEntity mailList = new MailshareInfoEntity(); // var mailInfo = mail.MailInfo; // if (managers.Count > 1) // { // ShowMessage("只支持单个发送"); // return; // } // foreach (var entity in managers) // { // var mailEntity = mailInfo.Clone(); // mailEntity.Account = entity.Account; // } // if (mail.Save(zoneId)) // { // ShowMessage("发送成功"); // datagrid1.DataSource = null; // datagrid1.DataBind(); // LocalAttachment = null; // } // else // { // ShowMessage("发送失败"); // } //} ShowMessage("请选择邮件类型"); } } catch (Exception ex) { LogHelper.Insert(ex); ShowMessage("发送失败:" + ex.Message); } }
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); } }