diff --git a/src/GlobalVar.lua b/src/GlobalVar.lua index 33d7868..395cb64 100644 --- a/src/GlobalVar.lua +++ b/src/GlobalVar.lua @@ -18,6 +18,8 @@ START_RESET_TIME = START_RESET_TIME_BASE - TIME_ZONE * 3600 STRUCT_VERSION = 3 -- 数据结构版本 +IOS_SID = 4 -- 判断是不是ios设备 + MAX_ROLE_NUM = 1000000 -- 属性枚举 AttsEnum = { diff --git a/src/actions/GmAction.lua b/src/actions/GmAction.lua index d3c6b91..b6fdb83 100644 --- a/src/actions/GmAction.lua +++ b/src/actions/GmAction.lua @@ -669,6 +669,7 @@ end function _M.cz(role, pms) local id = tonum(pms.pm1) + local sid = tonum(pms.pm2) or 0 local csvData = csvdb["shop_rechargeCsv"][id] if not csvData then return "充值id错误, 查看shop_recharge.csv" @@ -678,6 +679,7 @@ function _M.cz(role, pms) transactionId = "GM", order = "GM", pay_time = skynet.timex(), + sid = sid == 1 and IOS_SID or 0, }) role:mylog("gm_action", {desc = "recharge", int1 = id, key1 = pms.sender}) return "指令成功" diff --git a/src/models/Order.lua b/src/models/Order.lua index 30b0b32..debd25a 100644 --- a/src/models/Order.lua +++ b/src/models/Order.lua @@ -12,6 +12,7 @@ Order.schema = { createTime = {"number", skynet.timex()}, -- 订单创建时间 finishTime = {"number", 0}, -- 服务端验证完成时间 status = {"string", "create"}, + sid = {"number",0}, -- 创建单号的设备的sid } Order.fields = { @@ -21,6 +22,7 @@ Order.fields = { createTime = true, finishTime = true, status = true, + sid = true, } return Order \ No newline at end of file diff --git a/src/models/Role.lua b/src/models/Role.lua index 5a28d68..c2805cd 100644 --- a/src/models/Role.lua +++ b/src/models/Role.lua @@ -59,8 +59,9 @@ Role.schema = { ignoreMt = {"number", 0}, -- 忽略维护拦截 sversion = {"number", STRUCT_VERSION or 0}, -- 重整数据版本 timeReset = {"table", {}}, --重置轮回记录 - diamond = {"number", 0}, - reDiamond = {"number", 0}, + diamond = {"number", 0}, -- 免费钻 + reDiamond = {"number", 0}, -- android充值钻 + reDiamondIos = {"number", 0}, -- ios充值钻 setting = {"table", {}}, --设置 codeStr = {"string", ""}, --已经领过的礼包码 -- roleInfo diff --git a/src/models/RolePlugin.lua b/src/models/RolePlugin.lua index d88f70a..fa61758 100644 --- a/src/models/RolePlugin.lua +++ b/src/models/RolePlugin.lua @@ -442,7 +442,8 @@ function RolePlugin.bind(Role) end function Role:getAllDiamond() - return self:getProperty("diamond") + self:getProperty("reDiamond") + local diamond = self:getProperty("sid") == IOS_SID and self:getProperty("reDiamondIos") or self:getProperty("reDiamond") + return self:getProperty("diamond") + diamond end function Role:gainDiamond(params) @@ -452,10 +453,14 @@ function RolePlugin.bind(Role) return false end local origind = self:getProperty("diamond") - local originr = self:getProperty("reDiamond") + local originr = self:getProperty("sid") == IOS_SID and self:getProperty("reDiamondIos") or self:getProperty("reDiamond") local origin = origind + originr if params.isRecharge then - self:incrProperty("reDiamond", count) + if params.sid == IOS_SID then + self:incrProperty("reDiamondIos", count) + else + self:incrProperty("reDiamond", count) + end else self:incrProperty("diamond", count) end @@ -486,8 +491,9 @@ function RolePlugin.bind(Role) if count <= 0 then return false end + local isIos = self:getProperty("sid") == IOS_SID local origind = self:getProperty("diamond") - local originr = self:getProperty("reDiamond") + local originr = isIos and self:getProperty("reDiamondIos") or self:getProperty("reDiamond") local origin = origind + originr if origin < 0 then @@ -497,9 +503,9 @@ function RolePlugin.bind(Role) return false end local last = count - local costFirst = {"diamond", "reDiamond"} + local costFirst = isIos and {"diamond", "reDiamondIos"} or {"diamond", "reDiamond"} if params.isRecharge then - costFirst = {"reDiamond", "diamond"} + costFirst = isIos and {"reDiamondIos", "diamond"} or {"reDiamond", "diamond"} end last = math.max(last - self:getProperty(costFirst[1]), 0) if last < count then @@ -1750,6 +1756,7 @@ function RolePlugin.bind(Role) rechargeId = rechargeId, createTime = skynet.timex(), transactionId = transactionId, + sid = role:getProperty("sid"), }) order:create() -- 正在进行中的订单 缓存 @@ -1780,6 +1787,7 @@ function RolePlugin.bind(Role) local rechargeId = orderObject:getProperty("rechargeId") local dataSet = csvdb["shop_rechargeCsv"][rechargeId] + local sid = orderObject:getProperty("sid") if orderObject:getProperty("finishTime") > 0 then skynet.error(string.format("[recharge] is a finish order cpOrder: %s, platformOrder : %s, hadPlatformOrder: %s, id: %s, overTime : %s", @@ -1817,7 +1825,7 @@ function RolePlugin.bind(Role) }) end - return true, rechargeId + return true, rechargeId, sid end -- 充值 -- @@ -1835,7 +1843,7 @@ function RolePlugin.bind(Role) local roleId = self:getProperty("id") local partnerOrderStr = params.order - local status, back = self:updatePurchaseOrder(partnerOrderStr, params.transactionId, "finsh") + local status, back, sid = self:updatePurchaseOrder(partnerOrderStr, params.transactionId, "finsh") if not status then if back == "finsh" then -- 订单已经处理 @@ -1857,6 +1865,7 @@ function RolePlugin.bind(Role) transactionId = params.transactionId, pay_time = params.pay_time, order = partnerOrderStr, + sid = sid, }) if not status then @@ -1893,7 +1902,7 @@ function RolePlugin.bind(Role) rechargeF[id] = 1 self:updateProperty({field = "rechargeF", value = rechargeF}) end - self:gainDiamond({count = diamondCount, isRecharge = true, log = {desc = "recharge", int1 = id}}) + self:gainDiamond({count = diamondCount, isRecharge = true, sid = params.sid, log = {desc = "recharge", int1 = id}}) elseif rechargeData.shop == 2 then --通行证商店 reward, _ = self:award(rechargeData.itemFirst, {isRecharge = true, log = {desc = "recharge", int1 = id}}) self.storeData:onBuyCard(rechargeData.type, rechargeData.time, rechargeData.id, rechargeData.activity_id) -- libgit2 0.21.2