/// <summary> /// 购买月卡发货 /// </summary> /// <param name="managerId"></param> /// <param name="monthcardEntity"></param> /// <returns></returns> private MessageCode MonthcardShipments(Guid managerId, ref ManagerMonthcardEntity monthcardEntity, string zoneId) { DateTime date = DateTime.Now; monthcardEntity = ManagerMonthcardMgr.GetById(managerId, zoneId); if (monthcardEntity == null) { monthcardEntity = new ManagerMonthcardEntity(managerId, 1, date, date.AddDays(30), date.AddDays(-1), date, date); } else { monthcardEntity.BuyNumber++; if (monthcardEntity.DueToTime.Date < date.Date) //已过期 { monthcardEntity.BuyTime = date; monthcardEntity.DueToTime = date.AddDays(30); monthcardEntity.PrizeDate = date.AddDays(-1); monthcardEntity.UpdateTime = date; monthcardEntity.RowTime = date; } else //未过期 { monthcardEntity.DueToTime = monthcardEntity.DueToTime.AddDays(30); monthcardEntity.UpdateTime = date; } } return(MessageCode.Success); }
/// <summary> /// 每日押注次数核对(月卡2次,无月卡1次) /// </summary> /// <param name="gambleCount"></param> /// <param name="manager"></param> /// <param name="maxCount"></param> /// <returns></returns> bool CheckGambleCount(int gambleCount, NbManagerEntity manager, out int maxCount) { maxCount = CacheFactory.VipdicCache.GetEffectValue(manager.VipLevel, EnumVipEffect.DailycupGambleCount); //BuffPlusHelper.DailycupGambleCount(ref maxCount); var monthCard = ManagerMonthcardMgr.GetById(manager.Idx); if (monthCard != null && monthCard.DueToTime.Date >= DateTime.Now.Date) { maxCount++; } if (gambleCount >= maxCount) { return(false); } return(true); }
/// <summary> /// 月卡发奖 /// </summary> /// <returns></returns> public MessageCode MonthCardSendPrize() { try { DateTime date = DateTime.Now; var prizeList = ManagerMonthcardMgr.GetPrizeList(date.Date); foreach (var entity in prizeList) { try { if (entity.PrizeDate.Date >= date.Date)//已经发过奖励 { continue; } int overdueDay = (entity.DueToTime.Date - date.Date).Days; MailBuilder mail = null; if (overdueDay > 0) { mail = new MailBuilder(entity.ManagerId, EnumMailType.MonthCard, _monthCardPointNunber, overdueDay); } else { mail = new MailBuilder(entity.ManagerId, _monthCardPointNunber, EnumMailType.MonthCard1); } entity.PrizeDate = date; entity.UpdateTime = date; //if (ActivityExThread.Instance.IsActivity(Entity.Enums.Activity.EnumActivityExEffectType.EuropeCarnival, 0, 0)) //{ // var prizeCode = ActivityExThread.Instance.GetRandomDebris(); // if (prizeCode > 0) // mail.AddAttachment(1, prizeCode, false, 1); //} using (var transactionManager = new TransactionManager(Dal.ConnectionFactory.Instance.GetDefault())) { transactionManager.BeginTransaction(); var messageCode = MessageCode.NbUpdateFail; do { if (!ManagerMonthcardMgr.Update(entity, transactionManager.TransactionObject)) { break; } if (!mail.Save(transactionManager.TransactionObject)) { break; } messageCode = MessageCode.Success; } while (false); if (messageCode == MessageCode.Success) { transactionManager.Commit(); } else { transactionManager.Rollback(); } } } catch (Exception ex) { SystemlogMgr.Error("发送月卡奖励出错1", ex); return(MessageCode.NbParameterError); } } } catch (Exception ex) { SystemlogMgr.Error("发送月卡奖励出错", ex); } return(MessageCode.Success); }
private string SaveBuyPointShipmentsTx(NbManagerEntity manager, int point, int bonus, PayChargehistoryEntity payEntity, ManagerMonthcardEntity monthcardEntity, MailBuilder mail, ManagerChargenumberEntity buyRecord, DicMallitemEntity mallConfig, string zoneId) { if (point > 0 || bonus > 0) { var messCode1 = PayCore.Instance.AddPoint(payEntity.Account, point, bonus, EnumChargeSourceType.GmCharge, payEntity.BillingId, null, zoneId); if (messCode1 != MessageCode.Success) { return("增加钻石失败" + point + "," + bonus + "," + (int)messCode1); } PayChargehistoryMgr.Insert(payEntity, null, zoneId); } if (monthcardEntity != null) { if (monthcardEntity.BuyNumber == 1) { if (!ManagerMonthcardMgr.Insert(monthcardEntity, null, zoneId)) { return("月卡发送失败"); } } else { if (!ManagerMonthcardMgr.Update(monthcardEntity, null, zoneId)) { return("月卡发送失败"); } } } if (!mail.Save(zoneId)) { return("邮件发送失败"); } if (buyRecord.Idx == 0) { ManagerChargenumberMgr.Insert(buyRecord, null, zoneId); } else { ManagerChargenumberMgr.Update(buyRecord, null, zoneId); } try { if (manager != null) { var curScore = mallConfig.EffectValue * 10; var vipManager = VipManagerMgr.GetById(manager.Idx, zoneId); if (vipManager != null) { curScore += vipManager.VipExp; vipManager.VipExp = curScore; VipManagerMgr.Update(vipManager, null, zoneId); } else { vipManager = new VipManagerEntity(manager.Idx, curScore, DateTime.Now, DateTime.Now, DateTime.Now); VipManagerMgr.Insert(vipManager, null, zoneId); } var newlevel = CacheFactory.VipdicCache.GetVipLevel(curScore); if (newlevel > manager.VipLevel) { manager.VipLevel = newlevel; ManagerUtil.SaveManagerData(manager, null, null, zoneId); } } } catch (Exception ex) { SystemlogMgr.Error("ChargeUpVip", ex); return(ex.Message); } return(""); }