/// <summary> /// 更新db /// </summary> public bool UpdateDb(int roleid, ESevenDayActType actType, int id, SevenDayItemData itemData, int serverId) { SevenDayUpdateDbData updateData = new SevenDayUpdateDbData(); updateData.RoleId = roleid; updateData.ActivityType = (int)actType; updateData.Id = id; updateData.Data = itemData; if (!Global.sendToDB <bool, SevenDayUpdateDbData>((int)TCPGameServerCmds.CMD_DB_UPDATE_SEVEN_DAY_ITEM_DATA, updateData, serverId)) { LogManager.WriteLog(LogTypes.Error, string.Format("七日活动更新玩家数据失败, roleid={0}, act={1}, id={2}", roleid, actType, id)); return(false); } return(true); }
private void HandleUpdate(GameServerClient client, int nID, byte[] cmdParams, int count) { bool bResult = false; try { SevenDayUpdateDbData data = DataHelper.BytesToObject <SevenDayUpdateDbData>(cmdParams, 0, count); DBRoleInfo dbRole = DBManager.getInstance().GetDBRoleInfo(ref data.RoleId); if (dbRole == null) { throw new Exception("SevenDayActivityManager.HandleUpdate not Find DBRoleInfo, roleid=" + data.RoleId); } string sql = string.Format("REPLACE INTO t_seven_day_act(roleid,act_type,id,award_flag,param1,param2) VALUES({0},{1},{2},{3},{4},{5})", new object[] { data.RoleId, data.ActivityType, data.Id, data.Data.AwardFlag, data.Data.Params1, data.Data.Params2 }); if (!this.ExecNonQuery(sql)) { throw new Exception("SevenDayActivityManager.HandleUpdate ExecSql Failed, sql= " + sql); } lock (dbRole.SevenDayActDict) { Dictionary <int, SevenDayItemData> itemDict = null; if (!dbRole.SevenDayActDict.TryGetValue(data.ActivityType, out itemDict)) { itemDict = new Dictionary <int, SevenDayItemData>(); dbRole.SevenDayActDict[data.ActivityType] = itemDict; } itemDict[data.Id] = data.Data; } bResult = true; } catch (Exception ex) { LogManager.WriteLog(LogTypes.Error, ex.Message, null, true); bResult = false; } client.sendCmd <bool>(nID, bResult); }