Commit e183e51b65f0ba19596f95963571cc413fa30d79

Authored by zhouhaihai
2 parents 30d18f6e 3a3a3ddf

Merge branch 'develop' into tr/ob

* develop:
  下单前检测商品限购次数
Showing 2 changed files with 19 additions and 6 deletions   Show diff stats
src/actions/StoreAction.lua
... ... @@ -3,7 +3,20 @@ local _M = {}
3 3 local serverId = tonumber(skynet.getenv("servId"))
4 4 local md5 = require "md5"
5 5  
6   -local function makeOrder(roleId, rechargeId)
  6 +local function makeOrder(role, rechargeId)
  7 + local roleId = role:getProperty("id")
  8 + local rechargeData = csvdb["shop_rechargeCsv"][rechargeId]
  9 + if not rechargeData then
  10 + skynet.error("recharge id not exist", rechargeId)
  11 + return ""
  12 + end
  13 + local limit = rechargeData.limit
  14 + local rechargeRecord = role:getProperty("payR") or {}
  15 + if limit ~= 0 and limit <= (rechargeRecord[rechargeId] or 0) then
  16 + skynet.error(string.format("recharge id:%d count over limit, user id:%d", rechargeId, roleId))
  17 + return ""
  18 + end
  19 +
7 20 local orderId = redisproxy:hincrby("autoincrement_set", "order", 1)
8 21 local partnerOrderId = string.format("%d_%d_%d", serverId, roleId, orderId)
9 22 local orderKey = string.format("order:%d:%d", roleId, orderId)
... ... @@ -29,7 +42,7 @@ function _M.rechargeRpc(agent , data)
29 42 local roleId = role:getProperty("id")
30 43  
31 44 --创建订单号
32   - local partnerOrderId = makeOrder(roleId, id)
  45 + local partnerOrderId = makeOrder(role, id)
33 46 SendPacket(actionCodes.Store_rechargeRpc, MsgPack.pack({ order = partnerOrderId }))
34 47  
35 48 -- 测试的 直接发奖励了
... ... @@ -77,7 +90,7 @@ function _M.googleRechargeRpc(agent, data)
77 90  
78 91 role.ignoreHeartbeat = true
79 92 --创建订单号
80   - local partnerOrderId = makeOrder(roleId, id)
  93 + local partnerOrderId = makeOrder(role, id)
81 94 -- 签名
82 95 local secret_key = "b7657fa7ccd44c16a35e3f454ac7a075"
83 96 local need = {
... ... @@ -104,7 +117,7 @@ function _M.myCardRechargeRpc(agent, data)
104 117  
105 118 role.ignoreHeartbeat = true
106 119 --创建订单号
107   - local partnerOrderId = makeOrder(roleId, id)
  120 + local partnerOrderId = makeOrder(role, id)
108 121 -- 签名
109 122 local secret_key = "48759e07540f46d9af17ec82669b4272"
110 123 local need = {
... ... @@ -130,7 +143,7 @@ function _M.iosRechargeRpc(agent, data)
130 143  
131 144 role.ignoreHeartbeat = true
132 145 --创建订单号
133   - local partnerOrderId = makeOrder(roleId, id)
  146 + local partnerOrderId = makeOrder(role, id)
134 147 -- 签名
135 148 local secret_key = "9647d2efe1074c73b9ac19af4337a70e"
136 149 local need = {
... ...
src/models/Store.lua
... ... @@ -224,7 +224,7 @@ end
224 224  
225 225 --检测购买是否超过限制数量
226 226 function Store:checkRechargeRecord(limit, id)
227   - local rechargeRecord = self:getProperty("payR")
  227 + local rechargeRecord = self:getProperty("payR") or {}
228 228 if limit ~= 0 and limit <= (rechargeRecord[id] or 0) then
229 229 skynet.error(string.format("recharge id:%d count over limit, user id:%d", id, self.owner:getProperty("id")))
230 230 return false
... ...