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); } }
/// <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); } } }
/// <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); }