예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
 /// <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);
 }
예제 #4
0
        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("");
        }