コード例 #1
0
        /// <summary>
        /// 带事务的Update
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="trans">The trans.</param>
        /// <returns></returns>
        /// <remarks>2016/2/22 16:35:20</remarks>
        public bool Update(MailInfoEntity entity, DbTransaction trans = null)
        {
            var       database       = new SqlDatabase(this.ConnectionString);
            DbCommand commandWrapper = database.GetStoredProcCommand("dbo.P_MailInfo_Update");

            database.AddInParameter(commandWrapper, "@Idx", DbType.Int32, entity.Idx);
            database.AddInParameter(commandWrapper, "@ManagerId", DbType.Guid, entity.ManagerId);
            database.AddInParameter(commandWrapper, "@MailType", DbType.Int32, entity.MailType);
            database.AddInParameter(commandWrapper, "@ContentString", DbType.String, entity.ContentString);
            database.AddInParameter(commandWrapper, "@Attachment", DbType.Binary, entity.Attachment);
            database.AddInParameter(commandWrapper, "@HasAttach", DbType.Boolean, entity.HasAttach);
            database.AddInParameter(commandWrapper, "@IsRead", DbType.Boolean, entity.IsRead);
            database.AddInParameter(commandWrapper, "@Status", DbType.Int32, entity.Status);
            database.AddInParameter(commandWrapper, "@RowTime", DbType.DateTime, entity.RowTime);
            database.AddInParameter(commandWrapper, "@ExpiredTime", DbType.DateTime, entity.ExpiredTime);


            int results = 0;

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

            entity.Idx = (System.Int32)database.GetParameterValue(commandWrapper, "@Idx");

            return(Convert.ToBoolean(results));
        }
コード例 #2
0
 /// <summary>
 /// 发奖
 /// </summary>
 private void GiveReward(string zoneId)
 {
     try
     {
         List <GambleRankEntity> list = GambleRankMgr.GetRank(10, zoneId);
         for (int i = 0, count = list.Count; i < count; i++)
         {
             if (list[i].Status == 1)
             {
                 continue;//已经发过奖了
             }
             //TODO=======邮件发送奖励
             int cardLib = 0;
             int rank    = list[i].RankIndex;
             if (rank == 1)
             {
                 cardLib = 9;
             }
             else if (rank == 2)
             {
                 cardLib = 8;
             }
             else if (rank >= 3 && rank <= 10)
             {
                 cardLib = 10;
             }
             if (cardLib > 0)
             {
                 var itemCode = CacheFactory.LotteryCache.LotteryByLib(cardLib);
                 if (itemCode > 0)
                 {
                     MailInfoEntity mailInfo = new MailInfoEntity();
                     mailInfo.MailType       = (int)EnumMailType.AdminSend;
                     mailInfo.ManagerId      = list[i].ManagerId;
                     mailInfo.IsRead         = false;
                     mailInfo.Status         = 0;
                     mailInfo.RowTime        = DateTime.Now;
                     mailInfo.ExpiredTime    = MailCore.Instance.GetExpiredTime(true, DateTime.Now);
                     mailInfo.ContentString  = "竞猜排名奖励|恭喜你竞猜盈利排名第" + rank + ",获得奖励,请查收附件.";
                     mailInfo.MailAttachment = new MailAttachmentEntity();
                     mailInfo.MailAttachment.AddAttachment(1, itemCode, false, 0);
                     mailInfo.Attachment = SerializationHelper.ToByte(mailInfo.MailAttachment);
                     mailInfo.HasAttach  = true;
                     MailInfoMgr.Insert(mailInfo, null, zoneId);
                 }
             }
             //======已经发奖,改变status标记==============
             list[i].Status = 1;
             GambleRankMgr.Update(list[i], null, zoneId);
         }
     }
     catch (Exception ex)
     {
         SystemlogMgr.Error("GambleCore.GiveReward", ex);
     }
 }
コード例 #3
0
        /// <summary>
        /// 将IDataReader的当前记录读取到MailInfoEntity 对象
        /// </summary>
        /// <param name="reader"></param>
        /// <returns></returns>
        public MailInfoEntity LoadSingleRow(IDataReader reader)
        {
            var obj = new MailInfoEntity();

            obj.Idx           = (System.Int32)reader["Idx"];
            obj.ManagerId     = (System.Guid)reader["ManagerId"];
            obj.MailType      = (System.Int32)reader["MailType"];
            obj.ContentString = (System.String)reader["ContentString"];
            obj.Attachment    = (System.Byte[])reader["Attachment"];
            obj.HasAttach     = (System.Boolean)reader["HasAttach"];
            obj.IsRead        = (System.Boolean)reader["IsRead"];
            obj.Status        = (System.Int32)reader["Status"];
            obj.RowTime       = (System.DateTime)reader["RowTime"];
            obj.ExpiredTime   = (System.DateTime)reader["ExpiredTime"];

            return(obj);
        }
コード例 #4
0
        /// <summary>
        /// GetById
        /// </summary>
        /// <param name="idx">idx</param>
        /// <returns>MailInfoEntity</returns>
        /// <remarks>2016/2/22 16:35:19</remarks>
        public MailInfoEntity GetById(System.Int32 idx)
        {
            var database = new SqlDatabase(this.ConnectionString);

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

            database.AddInParameter(commandWrapper, "@Idx", DbType.Int32, idx);


            MailInfoEntity obj = null;

            using (IDataReader reader = database.ExecuteReader(commandWrapper))
            {
                if (reader.Read())
                {
                    obj = LoadSingleRow(reader);
                }
            }
            return(obj);
        }
コード例 #5
0
 public MailBuilder()
 {
     _mail = new MailInfoEntity();
 }
コード例 #6
0
ファイル: MailInfoMgrAuto.cs プロジェクト: cool8868/H5Nball
        public static bool Insert(MailInfoEntity mailInfoEntity, DbTransaction trans = null, string zoneId = "")
        {
            var provider = new MailInfoProvider(zoneId);

            return(provider.Insert(mailInfoEntity, trans));
        }
コード例 #7
0
ファイル: MailCore.cs プロジェクト: cool8868/H5Nball
        MessageCode BuilReceiveAttachmentData(MailInfoEntity mail, ref NbManagerEntity manager, ref ItemPackageFrame package, ref int addCoin, ref int addSophisticate, ref int addPoint, ref int addPrestige, ref int addBindPoint, ref int addGoldBar, ref int addluckyCoin, ref int addGameCoin)
        {
            var attachments = SerializationHelper.FromByte <MailAttachmentEntity>(mail.Attachment);

            var         managerId = mail.ManagerId;
            MessageCode code      = MessageCode.Success;

            foreach (var attachment in attachments.Attachments)
            {
                #region build Attachment
                switch (attachment.AttachmentType)
                {
                case (int)EnumAttachmentType.Coin:
                    if (manager == null)
                    {
                        manager = ManagerCore.Instance.GetManager(managerId);
                    }
                    addCoin += attachment.Count;
                    break;

                case (int)EnumAttachmentType.Sophisticate:
                    if (manager == null)
                    {
                        manager = ManagerCore.Instance.GetManager(managerId);
                    }
                    addSophisticate += attachment.Count;
                    break;

                case (int)EnumAttachmentType.Point:
                    if (manager == null)
                    {
                        manager = ManagerCore.Instance.GetManager(managerId);
                    }
                    addPoint += attachment.Count;
                    break;

                case (int)EnumAttachmentType.Prestige:
                    if (manager == null)
                    {
                        manager = ManagerCore.Instance.GetManager(managerId);
                    }
                    addPrestige += attachment.Count;
                    break;

                case (int)EnumAttachmentType.NewItem:
                    var attachmentItemEntity = attachment as AttachmentItemEntity;
                    if (attachmentItemEntity == null)
                    {
                        return(MessageCode.NbParameterError);
                    }
                    if (package == null)
                    {
                        package = ItemCore.Instance.GetPackage(managerId, _mailTransactionTypeDic[mail.MailType]);
                    }
                    code = package.AddItems(attachmentItemEntity.ItemCode, attachmentItemEntity.Count,
                                            attachmentItemEntity.Strength, attachmentItemEntity.IsBinding, attachmentItemEntity.IsDeal);
                    if (code != MessageCode.Success)
                    {
                        return(code);
                    }
                    break;

                case (int)EnumAttachmentType.UsedPlayerCard:
                    if (package == null)
                    {
                        package = ItemCore.Instance.GetPackage(managerId, _mailTransactionTypeDic[mail.MailType]);
                    }
                    var usedPlayerCard = attachment as AttachmentUsedItemEntity;
                    if (usedPlayerCard == null)
                    {
                        return(MessageCode.NbParameterError);
                    }
                    code = package.AddUsedItem(usedPlayerCard.ItemProperty as PlayerCardUsedEntity);
                    if (code != MessageCode.Success)
                    {
                        return(code);
                    }
                    break;

                case (int)EnumAttachmentType.UsedEquipment:
                    if (package == null)
                    {
                        package = ItemCore.Instance.GetPackage(managerId, _mailTransactionTypeDic[mail.MailType]);
                    }
                    var usedEquipment = attachment as AttachmentUsedItemEntity;
                    if (usedEquipment == null)
                    {
                        return(MessageCode.NbParameterError);
                    }
                    code = package.AddUsedItem(usedEquipment.ItemProperty as EquipmentUsedEntity);
                    if (code != MessageCode.Success)
                    {
                        return(code);
                    }
                    break;

                case (int)EnumAttachmentType.UsedMallItem:
                //if (package == null)
                //    package = ItemCore.Instance.GetPackage(managerId, _mailTransactionTypeDic[mail.MailType]);
                //var usedMallItem = attachment as AttachmentUsedItemEntity;
                //if (usedMallItem == null)
                //    return MessageCode.NbParameterError;
                //var itemProperty = usedMallItem.ItemProperty as MallItemUsedEntity;

                //code = package.AddUsedItem(itemProperty);
                //if (code != MessageCode.Success)
                //{
                //    return code;
                //}
                //break;

                case (int)EnumAttachmentType.Equipment:
                    if (package == null)
                    {
                        package = ItemCore.Instance.GetPackage(managerId, _mailTransactionTypeDic[mail.MailType]);
                    }
                    var equipment = attachment as AttachmentEquipmentEntity;
                    if (equipment == null)
                    {
                        return(MessageCode.NbParameterError);
                    }
                    code = package.AddEquipment(equipment.ItemCode, equipment.IsBinding, equipment.IsDeal, equipment.EquipmentProperty);
                    if (code != MessageCode.Success)
                    {
                        return(code);
                    }
                    break;

                case (int)EnumAttachmentType.BindPoint:
                    if (manager == null)
                    {
                        manager = ManagerCore.Instance.GetManager(managerId);
                    }
                    addBindPoint += attachment.Count;
                    break;

                case (int)EnumAttachmentType.GoldBar:
                    addGoldBar += attachment.Count;
                    break;

                case (int)EnumAttachmentType.LuckyCoin:
                    addluckyCoin += attachment.Count;
                    break;

                case (int)EnumAttachmentType.GameCoin:
                    addGameCoin += attachment.Count;
                    break;

                default:
                    return(MessageCode.NbParameterError);
                }
                #endregion
            }
            mail.IsRead      = true;
            mail.HasAttach   = false;
            mail.ExpiredTime = GetExpiredTime(false, DateTime.Now);
            return(MessageCode.Success);
        }