private void genGiftCode(ParamGenGiftCode codeParam, DateTime now)
    {
        int i = 0, j = 0;
        List <Dictionary <string, object> > docList = new List <Dictionary <string, object> >();

        int serverId = DBMgr.getInstance().getDbId(codeParam.m_dbServerIP);

        if (serverId == -1)
        {
            return;
        }

        for (i = 0; i < codeParam.m_codeList.Count; i++)
        {
            GiftCodeInfo info = codeParam.m_codeList[i];

            for (j = 0; j < info.m_count; j++)
            {
                Dictionary <string, object> ret = createOneCode(info.m_giftId, info.m_plat, now);
                docList.Add(ret);

                if (docList.Count > 5000)
                {
                    DBMgr.getInstance().insertData(TableName.GIFT_CODE, docList, serverId, DbName.DB_ACCOUNT);
                    docList.Clear();
                }
            }
        }

        if (docList.Count > 0)
        {
            DBMgr.getInstance().insertData(TableName.GIFT_CODE, docList, serverId, DbName.DB_ACCOUNT);
        }
    }
Example #2
0
 /// <summary>
 /// 通过giftid获取礼包数据
 /// </summary>
 private GiftCodeInfo GetGiftCodeInfo(string giftid)
 {
     lock (_lockConfig)
     {
         GiftCodeInfo info = null;
         _GiftCodeCfgAwards.TryGetValue(giftid, out info);
         return(info);
     }
 }
        private GiftCodeInfo GetGiftCodeInfo(string giftid)
        {
            GiftCodeInfo result;

            lock (this._lockConfig)
            {
                GiftCodeInfo info = null;
                GiftCodeNewManager._GiftCodeCfgAwards.TryGetValue(giftid, out info);
                result = info;
            }
            return(result);
        }
 private void SendAward(GameClient client, GiftCodeAwardData ItemData)
 {
     if (null != ItemData)
     {
         try
         {
             GiftCodeInfo gift = this.GetGiftCodeInfo(ItemData.GiftId);
             if (null == gift)
             {
                 this.AddLogEvent(ItemData, -2);
             }
             else if (null != gift.GoodsList)
             {
                 int index             = 0;
                 List <GoodsData> lTmp = new List <GoodsData>();
                 foreach (GoodsData item in gift.GoodsList)
                 {
                     index++;
                     lTmp.Add(item);
                     if (index % 5 == 0)
                     {
                         this.SendMailForGiftCode(lTmp, ItemData, gift.GiftCodeName, gift.Description);
                         lTmp.Clear();
                     }
                 }
                 if (lTmp.Count > 0)
                 {
                     this.SendMailForGiftCode(lTmp, ItemData, gift.GiftCodeName, gift.Description);
                     lTmp.Clear();
                 }
                 if (null != client)
                 {
                     client.ClientData.AddAwardRecord(RoleAwardMsg.LiPinDuiHuan, gift.GoodsList, false);
                     GameManager.ClientMgr.NotifyGetAwardMsg(client, RoleAwardMsg.LiPinDuiHuan, "");
                 }
             }
         }
         catch (Exception ex)
         {
             this.AddLogEvent(ItemData, -4);
             DataHelper.WriteFormatExceptionLog(ex, "[GiftCodeNew]SendAward error", false, false);
         }
     }
 }
Example #5
0
        /// <summary>
        /// 发送奖励
        /// </summary>
        void SendAward(GiftCodeAwardData ItemData)
        {
            if (null == ItemData)
            {
                return;
            }
            try
            {
                GiftCodeInfo gift = GetGiftCodeInfo(ItemData.GiftId);
                if (null == gift)
                {
                    AddLogEvent(ItemData, (int)GiftCodeResultType.EAware);
                    return;
                }

                if (null != gift.GoodsList)
                {
                    int index             = 0;
                    List <GoodsData> lTmp = new List <GoodsData>();
                    foreach (var item in gift.GoodsList)
                    {
                        index++;
                        lTmp.Add(item);
                        if (index % 5 == 0)
                        {
                            SendMailForGiftCode(lTmp, ItemData);
                            lTmp.Clear();
                        }
                    }
                    if (lTmp.Count > 0)
                    {
                        SendMailForGiftCode(lTmp, ItemData);
                        lTmp.Clear();
                    }
                }
            }
            catch (Exception ex)
            {
                AddLogEvent(ItemData, (int)GiftCodeResultType.Exception);
                DataHelper.WriteFormatExceptionLog(ex, "[GiftCodeNew]SendAward error", false);
            }
        }
        public bool initGiftCode()
        {
            bool   success  = true;
            string fileName = "";

            lock (this._lockConfig)
            {
                try
                {
                    GiftCodeNewManager._GiftCodeCfgAwards.Clear();
                    Dictionary <string, GiftCodeInfo> newDic = new Dictionary <string, GiftCodeInfo>();
                    fileName = Global.GameResPath("Config/GiftCodeNew.xml");
                    XElement xml = CheckHelper.LoadXml(fileName, true);
                    if (null == xml)
                    {
                        return(false);
                    }
                    IEnumerable <XElement> xmlItems = xml.Elements();
                    foreach (XElement xmlItem in xmlItems)
                    {
                        if (xmlItem != null)
                        {
                            GiftCodeInfo info = new GiftCodeInfo();
                            info.GiftCodeTypeID = Global.GetDefAttributeStr(xmlItem, "TypeID", "");
                            info.GiftCodeName   = Global.GetDefAttributeStr(xmlItem, "TypeName", "");
                            info.Description    = Global.GetDefAttributeStr(xmlItem, "Description", "");
                            info.ChannelList.Clear();
                            string[] channel = Global.GetDefAttributeStr(xmlItem, "Channel", "").Split(new char[]
                            {
                                '|'
                            });
                            foreach (string p in channel)
                            {
                                if (!string.IsNullOrEmpty(p))
                                {
                                    info.ChannelList.Add(p);
                                }
                            }
                            info.PlatformList.Clear();
                            string[] platform = Global.GetDefAttributeStr(xmlItem, "Platform", "").Split(new char[]
                            {
                                '|'
                            });
                            foreach (string p in platform)
                            {
                                if (!string.IsNullOrEmpty(p))
                                {
                                    info.PlatformList.Add(Global.SafeConvertToInt32(p));
                                }
                            }
                            string timeBegin = Global.GetDefAttributeStr(xmlItem, "TimeBegin", "");
                            string timeEnd   = Global.GetDefAttributeStr(xmlItem, "TimeEnd", "");
                            if (!string.IsNullOrEmpty(timeBegin))
                            {
                                info.TimeBegin = DateTime.Parse(timeBegin);
                            }
                            if (!string.IsNullOrEmpty(timeEnd))
                            {
                                info.TimeEnd = DateTime.Parse(timeEnd);
                            }
                            info.ZoneList.Clear();
                            string[] zone = Global.GetDefAttributeStr(xmlItem, "Zone", "").Split(new char[]
                            {
                                '|'
                            });
                            foreach (string p in zone)
                            {
                                if (!string.IsNullOrEmpty(p))
                                {
                                    info.ZoneList.Add(Global.SafeConvertToInt32(p));
                                }
                            }
                            info.UserType = (GiftCodeUserType)Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "UserType", "0"));
                            info.UseCount = Convert.ToInt32(Global.GetDefAttributeStr(xmlItem, "UseCount", "0"));
                            string goods = Global.GetSafeAttributeStr(xmlItem, "GoodsOne");
                            if (!string.IsNullOrEmpty(goods))
                            {
                                string[] fields = goods.Split(new char[]
                                {
                                    '|'
                                });
                                if (fields.Length > 0)
                                {
                                    info.GoodsList = GoodsHelper.ParseGoodsDataList(fields, fileName);
                                }
                            }
                            goods = Global.GetSafeAttributeStr(xmlItem, "GoodsTwo");
                            if (!string.IsNullOrEmpty(goods))
                            {
                                string[] fields = goods.Split(new char[]
                                {
                                    '|'
                                });
                                if (fields.Length > 0)
                                {
                                    info.ProGoodsList = GoodsHelper.ParseGoodsDataList(fields, fileName);
                                }
                            }
                            newDic.Add(info.GiftCodeTypeID, info);
                        }
                    }
                    GiftCodeNewManager._GiftCodeCfgAwards = newDic;
                }
                catch (Exception ex)
                {
                    success = false;
                    LogManager.WriteLog(LogTypes.Fatal, string.Format("[GiftCodeNew]加载xml配置文件:{0}, 失败。", fileName), ex, true);
                }
            }
            return(success);
        }