/// <summary>
        /// 带事务的Update
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="trans">The trans.</param>
        /// <returns></returns>
        /// <remarks>2016/5/29 17:51:29</remarks>
        public bool Update(ManagerMonthcardEntity entity, DbTransaction trans = null)
        {
            var       database       = new SqlDatabase(this.ConnectionString);
            DbCommand commandWrapper = database.GetStoredProcCommand("dbo.P_ManagerMonthcard_Update");

            database.AddInParameter(commandWrapper, "@ManagerId", DbType.Guid, entity.ManagerId);
            database.AddInParameter(commandWrapper, "@BuyNumber", DbType.Int32, entity.BuyNumber);
            database.AddInParameter(commandWrapper, "@BuyTime", DbType.DateTime, entity.BuyTime);
            database.AddInParameter(commandWrapper, "@DueToTime", DbType.DateTime, entity.DueToTime);
            database.AddInParameter(commandWrapper, "@PrizeDate", DbType.Date, entity.PrizeDate);
            database.AddInParameter(commandWrapper, "@UpdateTime", DbType.DateTime, entity.UpdateTime);
            database.AddInParameter(commandWrapper, "@RowTime", DbType.DateTime, entity.RowTime);


            int results = 0;

            if (trans != null)
            {
                results = database.ExecuteNonQuery(commandWrapper, trans);
            }
            else
            {
                results = database.ExecuteNonQuery(commandWrapper);
            }

            entity.ManagerId = (System.Guid)database.GetParameterValue(commandWrapper, "@ManagerId");

            return(Convert.ToBoolean(results));
        }
Пример #2
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);
        }
        /// <summary>
        /// 将IDataReader的当前记录读取到ManagerMonthcardEntity 对象
        /// </summary>
        /// <param name="reader"></param>
        /// <returns></returns>
        public ManagerMonthcardEntity LoadSingleRow(IDataReader reader)
        {
            var obj = new ManagerMonthcardEntity();

            obj.ManagerId  = (System.Guid)reader["ManagerId"];
            obj.BuyNumber  = (System.Int32)reader["BuyNumber"];
            obj.BuyTime    = (System.DateTime)reader["BuyTime"];
            obj.DueToTime  = (System.DateTime)reader["DueToTime"];
            obj.PrizeDate  = (System.DateTime)reader["PrizeDate"];
            obj.UpdateTime = (System.DateTime)reader["UpdateTime"];
            obj.RowTime    = (System.DateTime)reader["RowTime"];

            return(obj);
        }
        /// <summary>
        /// GetById
        /// </summary>
        /// <param name="managerId">managerId</param>
        /// <returns>ManagerMonthcardEntity</returns>
        /// <remarks>2016/5/29 17:51:27</remarks>
        public ManagerMonthcardEntity GetById(System.Guid managerId)
        {
            var database = new SqlDatabase(this.ConnectionString);

            DbCommand commandWrapper = database.GetStoredProcCommand("P_ManagerMonthcard_GetById");

            database.AddInParameter(commandWrapper, "@ManagerId", DbType.Guid, managerId);


            ManagerMonthcardEntity obj = null;

            using (IDataReader reader = database.ExecuteReader(commandWrapper))
            {
                if (reader.Read())
                {
                    obj = LoadSingleRow(reader);
                }
            }
            return(obj);
        }
Пример #5
0
        public static bool Update(ManagerMonthcardEntity managerMonthcardEntity, DbTransaction trans = null, string zoneId = "")
        {
            var provider = new ManagerMonthcardProvider(zoneId);

            return(provider.Update(managerMonthcardEntity, trans));
        }
Пример #6
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("");
        }
Пример #7
0
        public string TxBuyPointShipments(Guid managerId, string orderId, int mallCode, string zoneId)
        {
            try
            {
                var manager = NbManagerMgr.GetById(managerId, zoneId);
                if (manager == null)
                {
                    return("找不到经理信息");
                }
                var mallConfig = DicMallitemMgr.GetById(mallCode);
                //var mallConfig = CacheFactory.MallCache.GetMallEntityWithoutPoint(mallCode);
                if (mallConfig == null ||
                    (mallConfig.MallType != (int)EnumMallType.QP && mallConfig.MallType != (int)EnumMallType.Mystery))
                {
                    return("请输入正确的商城ID");
                }

                ManagerMonthcardEntity monthcardEntity = null;
                DateTime date       = DateTime.Now;
                int      bonus      = 0;
                var      recordList = ManagerChargenumberMgr.GetManagerIdList(managerId, zoneId);
                ManagerChargenumberEntity buyRecord = null;
                bool isFirst = false;
                if (recordList.Count > 0)
                {
                    buyRecord = recordList.Find(r => r.MallCode == mallCode);
                }
                else
                {
                    isFirst = true;
                }
                if (buyRecord == null)
                {
                    buyRecord = new ManagerChargenumberEntity(0, managerId, mallCode, 1, date, date);
                }
                else
                {
                    buyRecord.BuyNumber++;
                }
                MailBuilder mail = null;
                List <ConfigMallgiftbagEntity> prizeList = null;
                EnumMailType mailType = EnumMailType.ChargeSuccess;
                int          point    = mallConfig.CurrencyCount;
                if (mallConfig.EffectType == (int)EnumMallEffectType.MonthCard) //月卡
                {
                    MonthcardShipments(managerId, ref monthcardEntity, zoneId);
                }
                else if (mallConfig.MallType == (int)EnumMallType.Mystery)
                {
                    if (mallConfig.EffectType == (int)EnumMallEffectType.GiftBag)
                    {
                        //if (!IsHaveBuyWeekGiftBag(buyRecord, DateTime.Now))
                        //{
                        //    mailType = EnumMailType.ChargeSuccess;
                        //    point = mallConfig.EffectValue * 10;
                        //}
                        //else
                        //{
                        prizeList = GetGiftBag(mallCode);
                        if (prizeList.Count <= 0)
                        {
                            return("获取配置失败");
                        }
                        mailType = EnumMailType.GiftBagSuccess;
                        //}
                    }
                    else if (mallConfig.EffectType == (int)EnumMallEffectType.WeeklyGiftBag)
                    {
                        //if (!IsHaveBuyWeekGiftBag(buyRecord))
                        //{
                        //    mailType = EnumMailType.ChargeSuccess;
                        //    point = mallConfig.EffectValue * 10;
                        //}
                        //else
                        //{
                        prizeList = GetGiftBag(mallCode);
                        if (prizeList.Count <= 0)
                        {
                            return("获取配置失败");
                        }
                        mailType = EnumMailType.GiftBagSuccess;
                        //}
                    }
                    //else if (buyRecord.Idx > 0)
                    //{
                    //    mailType = EnumMailType.ChargeSuccess;
                    //    point = mallConfig.EffectValue * 10;
                    //}
                    else
                    {
                        prizeList = GetGiftBag(mallCode);
                        if (prizeList.Count <= 0)
                        {
                            return("获取配置失败");
                        }
                        mailType = EnumMailType.GiftBagSuccess;
                    }
                }
                prizeList = GetGiftBag(mallCode);


                var payEntity = new PayChargehistoryEntity();
                payEntity.Idx        = orderId;
                payEntity.Account    = _account.Account;
                payEntity.BillingId  = orderId;
                payEntity.Bonus      = bonus;
                payEntity.Cash       = 0;
                payEntity.IsFirst    = isFirst;
                payEntity.MallCode   = mallCode;
                payEntity.Point      = point;
                payEntity.RowTime    = DateTime.Now;
                payEntity.SourceType = (int)EnumChargeSourceType.GmCharge;
                payEntity.States     = 2;
                payEntity.UpdateTime = DateTime.Now;
                //邮件发货
                mail = new MailBuilder(managerId, mallConfig.Name, point + bonus, prizeList, mailType, 0,
                                       0);
                buyRecord.UpdateTiem = DateTime.Now;
                payEntity.Bonus      = bonus;
                var code = SaveBuyPointShipmentsTx(manager, point, bonus, payEntity,
                                                   monthcardEntity, mail,
                                                   buyRecord, mallConfig, zoneId);
                return(code);
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("充值发货", ex);
                return(ex.Message);
            }
        }