You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

740 lines
29 KiB

using Sog;
using System;
using System.Collections.Generic;
using ProtoCSStruct;
using System.Linq;
using StackExchange.Redis;
namespace DB
{
public partial class RedisDBOperator : DBOperator
{
public RedisDB m_redisDB;
public RedisDBOperator(string dbname, string ip, string user, string password)
{
m_redisDB = new RedisDB(dbname, ip, password);
}
public override void Dispose()
{
if (m_redisDB != null)
{
m_redisDB.Dispose();
m_redisDB = null;
}
}
public override void KeepAlive()
{
var latency = m_redisDB.Ping();
TraceLog.Trace("RedisDBOperator.KeepAlive exec at {0} latency {1}ms", DateTime.Now, latency.Milliseconds);
}
//================================================================================ tbaccount
private string GetAccount_StringKey(int accountType, string accountID)
{
return m_redisDB.CreateKey("string:tbaccount:account", accountType.ToString(), accountID);
}
public override tbAccount QueryAccount(int accountType, string accountID)
{
TraceLog.Trace("RedisDBOperator.QueryAccount type {0} accountid {1}", accountType, accountID);
return m_redisDB.StringGet<tbAccount>(GetAccount_StringKey(accountType, accountID));
}
public override bool UpdateAccountLastLoginRealm(int accountType, string accountID, tbAccount accountRecord, int lastLoginRealm)
{
accountRecord.LastLoginRealm = lastLoginRealm;
bool ret = m_redisDB.StringSet<tbAccount>(GetAccount_StringKey(accountType, accountID), accountRecord);
if (ret)
{
TraceLog.Trace("RedisDBOperator.UpdateAccountLastLoginRealm type {0} accountid {1} succ", accountType, accountID);
}
else
{
TraceLog.Error("RedisDBOperator.UpdateAccountLastLoginRealm type {0} accountid {1} fail", accountType, accountID);
}
return ret;
}
public override bool UpdateAccountGrade(int accountType, string accountID, tbAccount accountRecord, int Grade)
{
accountRecord.Grade = Grade;
bool ret = m_redisDB.StringSet<tbAccount>(GetAccount_StringKey(accountType, accountID), accountRecord);
if (ret)
{
TraceLog.Trace("RedisDBOperator.UpdateAccountComment type {0} accountid {1} succ", accountType, accountID);
}
else
{
TraceLog.Error("RedisDBOperator.UpdateAccountComment type {0} accountid {1} fail", accountType, accountID);
}
return ret;
}
public override bool UpdateAccountExData(int accountType, string accountID, tbAccount accountRecord, ref DBAccountExData exdata)
{
accountRecord.exData = StructMessageParseUtils.ToByteArray<DBAccountExData>(ref exdata);
bool ret = m_redisDB.StringSet<tbAccount>(GetAccount_StringKey(accountType, accountID), accountRecord);
if (ret)
{
TraceLog.Trace("RedisDBOperator.UpdateAccountExData type {0} accountid {1} succ", accountType, accountID);
}
else
{
TraceLog.Error("RedisDBOperator.UpdateAccountExData type {0} accountid {1} fail", accountType, accountID);
}
return ret;
}
public override bool InsertAccount(int accountType, string accountID, string accountToken, long createTime,
string deviceId, uint ipAddr, string nick, int gender, string icon, int grade, ref DBAccountExData exData)
{
var accountRecord = new tbAccount
{
AccountType = accountType,
AccountID = accountID,
AccountToken = accountToken,
CreateTime = createTime,
CreateDeviceID = deviceId,
CreateIpAddr = ipAddr,
Nick = nick,
Gender = gender,
Icon = icon,
Grade = grade,
exData = StructMessageParseUtils.ToByteArray<DBAccountExData>(ref exData),
};
bool result = m_redisDB.StringSet(GetAccount_StringKey(accountType, accountID), accountRecord);
if (result)
{
TraceLog.Trace("RedisDBOperator.InsertAccount type {0} accountid {1} succ", accountType, accountID);
}
else
{
TraceLog.Error("RedisDBOperator.InsertAccount type {0} accountid {1} fail", accountType, accountID);
}
return result;
}
//================================================================================ tbuid
private string GetUid_StringKey(int accountTableIndex)
{
return m_redisDB.CreateKey("string:tbuid:account", accountTableIndex.ToString());
}
private bool GetLastGameId(int accountTableIndex, out long lastUid)
{
lastUid = 0;
string uidStr = m_redisDB.StringGet<string>(GetUid_StringKey(accountTableIndex));
if (string.IsNullOrEmpty(uidStr))
{
return false;
}
lastUid = long.Parse(uidStr);
return true;
}
private bool SetNewGameId(int accountTableIndex, long newUid)
{
if (!m_redisDB.StringSet(GetUid_StringKey(accountTableIndex), newUid.ToString()))
{
TraceLog.Error("RedisDBOperator.SetnewUid insert to tbuid failed, subIndex {0}", accountTableIndex);
return false;
}
return true;
}
public override long GenNewGameID(int accountTableIndex)
{
long newUid = 0;
string lastUidStr = m_redisDB.StringGet<string>(GetUid_StringKey(accountTableIndex));
if (string.IsNullOrEmpty(lastUidStr))
{
newUid = 100000 + accountTableIndex;
}
else
{
var lastUid = long.Parse(lastUidStr);
newUid = lastUid + TableIndexCalc.AccountTableCount;
}
if (!m_redisDB.StringSet(GetUid_StringKey(accountTableIndex), newUid.ToString()))
{
TraceLog.Error("RedisDBOperator.GenNewGameID insert to tbuid failed, subIndex {0}", accountTableIndex);
return 0;
}
TraceLog.Trace("RedisDBOperator.GenNewGameID update tbuid {0} succ", newUid);
return newUid;
}
//================================================================================ tbacc_realmuid_link
// ["tbacc_realmuid_link:UID{0}"] = tbacc_realmuid_link
private string GetUid2AccRealmuidLink_StringKey<T>(T uid)
{
return m_redisDB.CreateKey("string:tbacc_realmuid_link:uid", uid.ToString());
}
// ["tbacc_realmuid_link:{0}:{1}"] = [realmId] = uid // todo : u2一个区只有一个uid 可以这样,其他游戏多角色可以改数组
private string GetAccRealmuidLink_HashKey(int accountType, string accountID)
{
return m_redisDB.CreateKey("hash:tbacc_realmuid_link:account", accountType.ToString(), accountID);
}
public override List<tbacc_realmuid_link> QueryAccountUid(int accountType, string accountID, int realmId)
{
if (realmId == 0)
{
return QueryAccountUidAll(accountType, accountID);
}
else
{
return QueryAccountUidOneRealm(accountType, accountID, realmId);
}
}
private List<tbacc_realmuid_link> QueryAccountUidAll(int accountType, string accountID)
{
TraceLog.Trace("RedisDBOperator.QueryAccountUidAll accountType {0} accountId {1}", accountType, accountID);
List<tbacc_realmuid_link> accountUids = new List<tbacc_realmuid_link>();
var realmToUids = m_redisDB.HashGetAll(GetAccRealmuidLink_HashKey(accountType, accountID));
foreach (var item in realmToUids)
{
var tmp = m_redisDB.StringGet<tbacc_realmuid_link>(GetUid2AccRealmuidLink_StringKey(item.Value));
if (tmp == null)
{
TraceLog.Error("RedisDBOperator.QueryAccountUidAll accountType {0} accountID {1} realmId {2} uid {3} fail"
, accountType, accountID, item.Name, item.Value);
continue;
}
accountUids.Add(tmp);
}
return accountUids;
}
private List<tbacc_realmuid_link> QueryAccountUidOneRealm(int accountType, string accountID, int realmId)
{
TraceLog.Trace("RedisDBOperator.QueryAccountUidOneRealm accountType {0} accountId {1} realmId {2}", accountType, accountID, realmId);
var uidStr = (string)m_redisDB.HashGet<string>(GetAccRealmuidLink_HashKey(accountType, accountID), realmId.ToString());
if (uidStr == null)
{
TraceLog.Error("RedisDBOperator.QueryAccountUid accountType {0} accountID {1} realmId {2} fail"
, accountType, accountID, realmId);
return null;
}
var tmp = m_redisDB.StringGet<tbacc_realmuid_link>(GetUid2AccRealmuidLink_StringKey(uidStr));
if (tmp == null)
{
TraceLog.Error("RedisDBOperator.QueryAccountUidAll accountType {0} accountID {1} realmId {2} uid {3} fail"
, accountType, accountID, realmId, uidStr);
return null;
}
return new List<tbacc_realmuid_link> { tmp };
}
public override bool InsertAccRealmUidLink(int accountType, string accountId, int realmId, long uid)
{
long lNow = DBServerUtils.GetTimeSecond();
tbacc_realmuid_link accountData = new tbacc_realmuid_link
{
accountType = accountType,
accountId = accountId,
realmId = realmId,
uid = uid,
lastLoginTime = lNow
};
bool resStr = m_redisDB.StringSet<tbacc_realmuid_link>(GetUid2AccRealmuidLink_StringKey(uid), accountData);
if (!resStr)
{
TraceLog.Error("RedisDBOperator.InsertAccRealmUidLink type {0} accountid {1} realm {2} uid {3} fail"
, accountType, accountId, realmId, uid);
return false;
}
bool resHash = m_redisDB.HashSet(GetAccRealmuidLink_HashKey(accountType, accountId), realmId.ToString(), uid);
if (!resHash)
{
TraceLog.Error("RedisDBOperator.InsertAccRealmUidLink type {0} accountid {1} realm {2} uid {3} fail"
, accountType, accountId, realmId, uid);
return false;
}
TraceLog.Trace("RedisDBOperator.InsertAccRealmUidLink type {0} accountid {1} realm {2} uid {3} succ"
, accountType, accountId, realmId, uid);
return true;
}
public override bool UpdateAccRealmUidLink(int accountType, string accountID, ref CSRoleBrief roleBrief)
{
long uid = roleBrief.Uid;
string Nick = roleBrief.Nick.GetString();
string Icon = roleBrief.Icon.GetString();
int Level = roleBrief.Level;
int IconFramId = roleBrief.IconFrameId;
long lastLoginTime = roleBrief.LastLoginTime;
var realmToUids = m_redisDB.HashGetAll(GetAccRealmuidLink_HashKey(accountType, accountID));
foreach (var item in realmToUids)
{
if (long.Parse(item.Value) == uid)
{
var record = m_redisDB.StringGet<tbacc_realmuid_link>(GetUid2AccRealmuidLink_StringKey(uid));
if (record == null)
{
TraceLog.Error("RedisDBOperator.UpdateAccRealmUidLink type {0} accountid {1} uid {2} no record",
accountType, accountID, uid);
return false;
}
record.nick = Nick;
record.icon = Icon;
record.level = Level;
record.iconFrameId = IconFramId;
record.lastLoginTime = lastLoginTime;
var res = m_redisDB.StringSet<tbacc_realmuid_link>(GetUid2AccRealmuidLink_StringKey(uid), record);
if (! res)
{
TraceLog.Error("RedisDBOperator.UpdateAccRealmUidLink type {0} accountid {1} fail"
, accountType, accountID);
return false;
}
TraceLog.Trace("RedisDBOperator.UpdateAccRealmUidLink type {0} accountid {1} succ", accountType, accountID);
return true;
}
}
return false;
}
public override bool UpdateAccRealmLinkUid(int accountType, string accountID, int realmId, long newUid)
{
var oldUid = m_redisDB.HashGet<long>(GetAccRealmuidLink_HashKey(accountType, accountID), realmId.ToString());
if (oldUid == 0)
{
TraceLog.Error("RedisDBOperator.UpdateAccRealmUidLink type {0} accountid {1} get realm_uid fail", accountType, accountID);
return false;
}
if (oldUid == newUid)
{
return true;
}
var accountUidInfo = m_redisDB.StringGet<tbacc_realmuid_link>(GetUid2AccRealmuidLink_StringKey(oldUid));
if (accountUidInfo == null)
{
TraceLog.Error("RedisDBOperator.UpdateAccRealmUidLink type {0} accountid {1} add newUid fail", accountType, accountID);
return false;
}
accountUidInfo.uid = newUid;
var resAdd = m_redisDB.StringSet<tbacc_realmuid_link>(GetUid2AccRealmuidLink_StringKey(newUid), accountUidInfo);
if (!resAdd)
{
TraceLog.Error("RedisDBOperator.UpdateAccRealmUidLink type {0} accountid {1} add newUid fail", accountType, accountID);
return false;
}
var resHashAdd = m_redisDB.HashSet<long>(GetAccRealmuidLink_HashKey(accountType, accountID), realmId.ToString(), newUid);
if (!resHashAdd)
{
TraceLog.Error("RedisDBOperator.UpdateAccRealmUidLink type {0} accountid {1} realmId {2} add newUid {3} hash fail",
accountType, accountID, realmId, newUid);
return false;
}
bool delOldStr = m_redisDB.KeyDelete(GetUid2AccRealmuidLink_StringKey(oldUid));
if (!delOldStr)
{
TraceLog.Error("RedisDBOperator.UpdateAccRealmUidLink type {0} accountid {1} realm {2} uid {3} del olduid fail"
, accountType, accountID, realmId, newUid);
}
TraceLog.Trace("RedisDBOperator.UpdateAccRealmLinkUid type {0} accountid {1} new uid {2} succ"
, accountType, accountID, newUid);
return true;
}
public override void QueryRealmUidData(int realmId, ref SSQueryRealmUidDataRes res)
{
//todo 支持redis
res.Ret = 0;
res.RealmId = realmId;
}
public override int SaveRealmUidData(ref SSSaveRealmUidDataReq req)
{
//todo 支持redis
return 0;
}
public override void QueryRealmDBData(ref SSRealmDBQueryRes res)
{
TraceLog.Trace("RedisDBOperator.QueryRealmDBData All realm");
res.Ret = 0;
}
public override int UpdateRealmPlayerNum(int realmId, int regNum)
{
return 0;
}
public override int UpdateRealmDBData(ref SSRealmDBSaveReq req, ref SSRealmDBSaveRes res)
{
return 0;
}
//public override bool UpdateAccRealmUidLinkLogoutTime(int accountType, string accountID,
// int realmId, long uid, int lastLogoutTime)
//{
// var record = m_redisDB.StringGet<tbacc_realmuid_link>(GetUid2AccRealmuidLink_StringKey(uid));
// if (record == null)
// {
// TraceLog.Error("RedisDBOperator.UpdateAccRealmUidLinkLogoutTime uid {0} no record", uid);
// return false;
// }
// record.lastLogoutTime = lastLogoutTime;
// var res = m_redisDB.StringSet(GetUid2AccRealmuidLink_StringKey(uid), record);
// if (! res)
// {
// TraceLog.Error("RedisDBOperator.UpdateAccRealmUidLinkLogoutTime uid {0} fail", uid);
// return false;
// }
// TraceLog.Trace("RedisDBOperator.UpdateAccRealmUidLinkLogoutTime uid {0} lastLogoutTime {1} succ", uid, lastLogoutTime);
// return true;
//}
public override tbacc_realmuid_link QueryAccountUidbyUid(int uid, int realmId)
{
var accountUidInfo = m_redisDB.StringGet<tbacc_realmuid_link>(GetUid2AccRealmuidLink_StringKey(uid));
if (accountUidInfo == null)
{
TraceLog.Error("RedisDBOperator.QueryAccountUidbyUid uid {0} fail", uid);
return null;
}
return accountUidInfo;
}
//================================================================================ tbpay
private string GetPay_OrderId_StringKey(string orderId)
{
return m_redisDB.CreateKey("string:tbpay:orderId", orderId);
}
private string GetPay_uidStatus2OrderId_ListKey(long uid, int status = 1)
{
return m_redisDB.CreateKey("list:tbpay:uidStatus2OrderId", uid.ToString(), status.ToString());
}
private void Delete_UidStatus2OrderId_List(long uid, int status, string orderId)
{
if (status != 1)
{
return;
}
var removeCount = m_redisDB.ListRemove(GetPay_uidStatus2OrderId_ListKey(uid, status), orderId);
TraceLog.Debug("RedisDBOperator.Delete_UidStatus2OrderId_List delete list uid {0} status {1} orderId {2} removeCount {3}",
uid, status, orderId, removeCount);
}
private void Insert_UidStatus2OrderId_List(long uid, int status, string orderId)
{
if (status != 1)
{
return;
}
m_redisDB.ListLeftPush(GetPay_uidStatus2OrderId_ListKey(uid, status), orderId);
TraceLog.Debug("RedisDBOperator.Insert_UidStatus2OrderId_List insert list uid {0} status {1} orderId {2}", uid, status, orderId);
}
private void UpdatePay_UidStatus2OrderId_List(tbpay record, int oldStatus)
{
if (oldStatus == record.Status)
{
return;
}
Delete_UidStatus2OrderId_List(record.Uid, oldStatus, record.OrderID);
Insert_UidStatus2OrderId_List(record.Uid, record.Status, record.OrderID);
}
private bool InsertPay(tbpay record)
{
Insert_UidStatus2OrderId_List(record.Uid, record.Status, record.OrderID);
bool ret = m_redisDB.StringSet<tbpay>(GetPay_OrderId_StringKey(record.OrderID), record);
if (!ret)
{
return false;
}
return true;
}
public override bool InsertPayReq(ref SSPayGoogleReq payReq)
{
tbpay record = new tbpay()
{
OrderID = payReq.OrderId.GetString(),
PayType = payReq.PayType,
ProductID = payReq.ItemID,
PayTime3rd = DBServerUtils.GetTimeSecond(),
Uid = payReq.Uid,
Money = payReq.Money
};
if (!InsertPay(record))
{
TraceLog.Error("RedisDBOperator.InsertPayReq uid {0} orderid {1} insert fail", payReq.Uid, payReq.OrderId);
return false;
}
return true;
}
public override tbpay SelectPayRecord(long uid, string orderId)
{
tbpay tbRecord = m_redisDB.StringGet<tbpay>(GetPay_OrderId_StringKey(orderId));
if (tbRecord == null)
{
TraceLog.Error("RedisDBOperator.SelectPayRecord no record orderid {0}", orderId);
return null;
}
TraceLog.Trace("RedisDBOperator.SelectPayRecord query success uid {0} status {1} money {2} payType {3} orderId3rd {4} isTestPay {5}"
, tbRecord.Uid, tbRecord.Status, tbRecord.Money, tbRecord.PayType
, tbRecord.OrderId3rd, tbRecord.IsTestPay);
return tbRecord;
}
public override List<tbpay> SelectPaySuccRecord(long uid)
{
// 以防万一, 只返回前10条记录, 应该不会出现连充10笔订单没有到账还继续充的人吧
var payList = m_redisDB.ListRange(GetPay_uidStatus2OrderId_ListKey(uid, 1), 0, 10);
if (payList.Count() <= 0)
{
return null;
}
var resultList = new List<tbpay>();
foreach (var orderId in payList)
{
var record = m_redisDB.StringGet<tbpay>(GetPay_OrderId_StringKey(orderId));
if (record == null)
{
TraceLog.Error("RedisDBOperator.SelectPaySuccRecord get orderId {0} fail!", orderId);
continue;
}
resultList.Add(record);
}
return resultList;
}
public override tbpay SelectPayRecordByOrderId3rd(long uid, string orderId3rd)
{
throw new NotImplementedException();
}
public override bool UpdatePayProductId(long uid, string orderId, int productId)
{
return false;
}
public override bool UpdatePayStatus(long uid, string orderId, int newStatus, uint amountExchange, uint diamondExchange, int newItemId, uint money)
{
tbpay pay = m_redisDB.StringGet<tbpay>(GetPay_OrderId_StringKey(orderId));
if (pay == null)
{
return false;
}
int oldStatus = pay.Status;
pay.Status = newStatus;
pay.AmountExchange = amountExchange;
pay.DiamondExchange = diamondExchange;
pay.Money = money;
if (newItemId != 0)
{
pay.ProductID = newItemId;
}
UpdatePay_UidStatus2OrderId_List(pay, oldStatus);
bool ret = m_redisDB.StringSet<tbpay>(GetPay_OrderId_StringKey(orderId), pay);
if (!ret)
{
TraceLog.Error("RedisDBOperator.UpdatePayStatus uid {0} orderid {1} insert fail", uid, orderId);
return false;
}
TraceLog.Debug("RedisDBOperator.UpdatePayStatus orderid {0} status {1} to table success", orderId, newStatus);
return true;
}
public override bool UpdatePayStatus(long uid, string orderId, int newStatus, string orderId3rd, long lTime,
uint amount, bool isTestPay, string currency, int subPayType)
{
tbpay record = m_redisDB.StringGet<tbpay>(GetPay_OrderId_StringKey(orderId));
if (record == null)
{
return false;
}
int oldStatus = record.Status;
record.Status = newStatus;
record.PayTime3rd = lTime;
record.Amount = amount;
record.IsTestPay = (isTestPay ? 1 : 0);
record.OrderId3rd = orderId3rd;
record.Currency = currency;
record.SubPayType = subPayType;
UpdatePay_UidStatus2OrderId_List(record, oldStatus);
bool ret = m_redisDB.StringSet<tbpay>(GetPay_OrderId_StringKey(orderId), record);
if (!ret)
{
TraceLog.Error("RedisDBOperator.UpdatePayStatus newStatus {0} orderid {1} insert fail", newStatus, orderId);
return false;
}
TraceLog.Debug("RedisDBOperator.UpdatePayStatus orderid {0} status {1} to table success", orderId, newStatus);
return true;
}
public override bool SetRefundTime(long uid, string orderId, string orderId3rd, long refundTime)
{
tbpay tbRecord = m_redisDB.StringGet<tbpay>(GetPay_OrderId_StringKey(orderId));
if (tbRecord == null)
{
TraceLog.Error("RedisDBOperator.SetRefundTime no record orderid {0}", orderId);
return false;
}
if (tbRecord.OrderId3rd != orderId3rd)
{
TraceLog.Error("RedisDBOperator.SetRefundTime record orderId3rd not equal orderId {0} orderId3rd {1}", orderId, orderId3rd);
return false;
}
tbRecord.RefundTime = refundTime;
bool ret = m_redisDB.StringSet<tbpay>(GetPay_OrderId_StringKey(orderId), tbRecord);
if (!ret)
{
TraceLog.Error("RedisDBOperator.SetRefundTime orderid {1} fail", orderId);
return false;
}
TraceLog.Trace("RedisDBOperator.SetRefundTime orderid {0} success", orderId);
return true;
}
public override Tuple<int, List<SSUserPayRecordOne>> SelectAllPayRecords(SSGmQueryUserPayRecordReq req)
{
throw new NotImplementedException();
}
//================================================================================ tbpay_http
private string GetPayHttp_StringKey(string orderId)
{
return m_redisDB.CreateKey("string:tbpay_http:orderId", orderId);
}
private string GetPayHttp_ListKey()
{
return m_redisDB.CreateKey("list:tbpay_http");
}
public override bool ReplacePayHttpContent(ref SSPayHeroSaveHttpContentReq req)
{
string orderId = req.Http.OrderId.GetString();
tbpay_http patHttp = new tbpay_http
{
OrderId = orderId,
Uid = req.Http.Uid,
IsTestPay = req.Http.IsTestPay,
Method = req.Http.Method,
Url = req.Http.Url.GetString(),
Content = req.Http.Content.GetString(),
};
bool setResult = m_redisDB.StringSet<tbpay_http>(GetPayHttp_StringKey(orderId), patHttp);
if (!setResult)
{
TraceLog.Error("RedisDBOperator.ReplacePayHttpContent orderId {0} ret {1}", orderId, setResult);
return false;
}
TraceLog.Trace("RedisDBOperator.ReplacePayHttpContent orderId {0} ret {1}", orderId, setResult);
// 尝试移除list中的订单查找表
try
{
m_redisDB.ListRemove(GetPayHttp_ListKey(), orderId, 1);
m_redisDB.ListLeftPush(GetPayHttp_ListKey(), orderId);
}
catch (Exception ex)
{
TraceLog.Exception(ex);
TraceLog.Exception(ex.InnerException);
}
return true;
}
public override void SelectPayHttpContent(ref SSPayHeroSelectHttpContentRes res)
{
var orders = m_redisDB.ListRange(GetPayHttp_ListKey(), 0, 10);
if (orders.Count() <= 0)
{
return;
}
foreach (var orderId in orders)
{
var payHttp = m_redisDB.StringGet<tbpay_http>(GetPayHttp_StringKey(orderId));
if (payHttp == null)
{
TraceLog.Error("RedisDBOperator.SelectPayHttpContent get orderId {0} fail!", orderId);
continue;
}
var http = new SSHttpRequest();
http.Method = payHttp.Method;
http.IsTestPay = payHttp.IsTestPay;
http.Uid = payHttp.Uid;
http.OrderId.SetString(orderId);
http.Url.SetString(payHttp.Url);
http.Content.SetString(payHttp.Content);
res.Http.Add(ref http);
TraceLog.Trace("RedisDBOperator.SelectPayHttpContent orderId {0}", orderId);
}
}
public override void DeletePayHttpContent(ref SSPayHeroDeleteHttpContentNotify notify)
{
string orderId = notify.OrderId.GetString();
bool ret = m_redisDB.KeyDelete(GetPayHttp_StringKey(orderId));
var rm = m_redisDB.ListRemove(GetPayHttp_ListKey(), orderId);
if (!ret)
{
TraceLog.Error("RedisDBOperator.DeletePayHttpContent orderId {0} ret {1} rm list {2}", orderId, ret, rm);
}
else
{
TraceLog.Debug("RedisDBOperator.DeletePayHttpContent orderId {0} ret {1} rm list {2}", orderId, ret, rm);
}
}
}
}