Commit 2dbe4fb9ebe21ce4526d3d47eff0696051923f7f
1 parent
3dbe0d5d
充值礼包自选部分逻辑
Showing
3 changed files
with
46 additions
and
8 deletions
Show diff stats
src/actions/StoreAction.lua
@@ -7,12 +7,13 @@ function _M.rechargeRpc(agent , data) | @@ -7,12 +7,13 @@ function _M.rechargeRpc(agent , data) | ||
7 | local role = agent.role | 7 | local role = agent.role |
8 | local msg = MsgPack.unpack(data) | 8 | local msg = MsgPack.unpack(data) |
9 | local id = msg.id | 9 | local id = msg.id |
10 | + local choose = msg.choose or "" | ||
10 | local dataSet = csvdb["shop_rechargeCsv"][id] | 11 | local dataSet = csvdb["shop_rechargeCsv"][id] |
11 | if not dataSet then return end | 12 | if not dataSet then return end |
12 | local roleId = role:getProperty("id") | 13 | local roleId = role:getProperty("id") |
13 | 14 | ||
14 | --创建订单号 | 15 | --创建订单号 |
15 | - local partnerOrderId = role:getPurchaseOrder(id) | 16 | + local partnerOrderId = role:getPurchaseOrder(id,nil,choose) |
16 | if partnerOrderId == "" then | 17 | if partnerOrderId == "" then |
17 | return 1 | 18 | return 1 |
18 | end | 19 | end |
@@ -58,13 +59,14 @@ function _M.googleRechargeRpc(agent, data) | @@ -58,13 +59,14 @@ function _M.googleRechargeRpc(agent, data) | ||
58 | local role = agent.role | 59 | local role = agent.role |
59 | local msg = MsgPack.unpack(data) | 60 | local msg = MsgPack.unpack(data) |
60 | local id = msg.id | 61 | local id = msg.id |
62 | + local choose = msg.choose or "" | ||
61 | local dataSet = csvdb["shop_rechargeCsv"][id] | 63 | local dataSet = csvdb["shop_rechargeCsv"][id] |
62 | if not dataSet then return end | 64 | if not dataSet then return end |
63 | local roleId = role:getProperty("id") | 65 | local roleId = role:getProperty("id") |
64 | 66 | ||
65 | role.ignoreHeartbeat = true | 67 | role.ignoreHeartbeat = true |
66 | --创建订单号 | 68 | --创建订单号 |
67 | - local partnerOrderId = role:getPurchaseOrder(id) | 69 | + local partnerOrderId = role:getPurchaseOrder(id,nil,choose) |
68 | -- 签名 | 70 | -- 签名 |
69 | local secret_key = "b7657fa7ccd44c16a35e3f454ac7a075" | 71 | local secret_key = "b7657fa7ccd44c16a35e3f454ac7a075" |
70 | local need = { | 72 | local need = { |
@@ -85,13 +87,14 @@ function _M.myCardRechargeRpc(agent, data) | @@ -85,13 +87,14 @@ function _M.myCardRechargeRpc(agent, data) | ||
85 | local role = agent.role | 87 | local role = agent.role |
86 | local msg = MsgPack.unpack(data) | 88 | local msg = MsgPack.unpack(data) |
87 | local id = msg.id | 89 | local id = msg.id |
90 | + local choose = msg.choose or "" | ||
88 | local dataSet = csvdb["shop_rechargeCsv"][id] | 91 | local dataSet = csvdb["shop_rechargeCsv"][id] |
89 | if not dataSet then return end | 92 | if not dataSet then return end |
90 | local roleId = role:getProperty("id") | 93 | local roleId = role:getProperty("id") |
91 | 94 | ||
92 | role.ignoreHeartbeat = true | 95 | role.ignoreHeartbeat = true |
93 | --创建订单号 | 96 | --创建订单号 |
94 | - local partnerOrderId = role:getPurchaseOrder(id) | 97 | + local partnerOrderId = role:getPurchaseOrder(id,nil,choose) |
95 | -- 签名 | 98 | -- 签名 |
96 | local secret_key = "48759e07540f46d9af17ec82669b4272" | 99 | local secret_key = "48759e07540f46d9af17ec82669b4272" |
97 | local need = { | 100 | local need = { |
@@ -111,13 +114,14 @@ function _M.iosRechargeRpc(agent, data) | @@ -111,13 +114,14 @@ function _M.iosRechargeRpc(agent, data) | ||
111 | local role = agent.role | 114 | local role = agent.role |
112 | local msg = MsgPack.unpack(data) | 115 | local msg = MsgPack.unpack(data) |
113 | local id = msg.id | 116 | local id = msg.id |
117 | + local choose = msg.choose or "" | ||
114 | local dataSet = csvdb["shop_rechargeCsv"][id] | 118 | local dataSet = csvdb["shop_rechargeCsv"][id] |
115 | if not dataSet then return end | 119 | if not dataSet then return end |
116 | local roleId = role:getProperty("id") | 120 | local roleId = role:getProperty("id") |
117 | 121 | ||
118 | role.ignoreHeartbeat = true | 122 | role.ignoreHeartbeat = true |
119 | --创建订单号 | 123 | --创建订单号 |
120 | - local partnerOrderId = role:getPurchaseOrder(id) | 124 | + local partnerOrderId = role:getPurchaseOrder(id,nil,choose) |
121 | -- 签名 | 125 | -- 签名 |
122 | local secret_key = "9647d2efe1074c73b9ac19af4337a70e" | 126 | local secret_key = "9647d2efe1074c73b9ac19af4337a70e" |
123 | local need = { | 127 | local need = { |
src/models/Order.lua
@@ -12,6 +12,7 @@ Order.schema = { | @@ -12,6 +12,7 @@ Order.schema = { | ||
12 | createTime = {"number", skynet.timex()}, -- 订单创建时间 | 12 | createTime = {"number", skynet.timex()}, -- 订单创建时间 |
13 | finishTime = {"number", 0}, -- 服务端验证完成时间 | 13 | finishTime = {"number", 0}, -- 服务端验证完成时间 |
14 | status = {"string", "create"}, | 14 | status = {"string", "create"}, |
15 | + choose = {"string", ""}, -- 自选奖励 | ||
15 | } | 16 | } |
16 | 17 | ||
17 | Order.fields = { | 18 | Order.fields = { |
@@ -21,6 +22,7 @@ Order.fields = { | @@ -21,6 +22,7 @@ Order.fields = { | ||
21 | createTime = true, | 22 | createTime = true, |
22 | finishTime = true, | 23 | finishTime = true, |
23 | status = true, | 24 | status = true, |
25 | + choose = true, | ||
24 | } | 26 | } |
25 | 27 | ||
26 | return Order | 28 | return Order |
27 | \ No newline at end of file | 29 | \ No newline at end of file |
src/models/RolePlugin.lua
@@ -2013,7 +2013,7 @@ function RolePlugin.bind(Role) | @@ -2013,7 +2013,7 @@ function RolePlugin.bind(Role) | ||
2013 | return "error money" | 2013 | return "error money" |
2014 | end | 2014 | end |
2015 | -- 发现需要的id | 2015 | -- 发现需要的id |
2016 | - local partnerOrderId = self:getPurchaseOrder(k, params.transactionId) | 2016 | + local partnerOrderId = self:getPurchaseOrder(k, params.transactionId, params.choose) |
2017 | if partnerOrderId == "" then | 2017 | if partnerOrderId == "" then |
2018 | return "no product" | 2018 | return "no product" |
2019 | end | 2019 | end |
@@ -2023,7 +2023,7 @@ function RolePlugin.bind(Role) | @@ -2023,7 +2023,7 @@ function RolePlugin.bind(Role) | ||
2023 | end | 2023 | end |
2024 | 2024 | ||
2025 | -- 获取充值订单号 | 2025 | -- 获取充值订单号 |
2026 | - function Role:getPurchaseOrder(rechargeId, transactionId) | 2026 | + function Role:getPurchaseOrder(rechargeId, transactionId, choose) |
2027 | local roleId = self:getProperty("id") | 2027 | local roleId = self:getProperty("id") |
2028 | local rechargeData = csvdb["shop_rechargeCsv"][rechargeId] | 2028 | local rechargeData = csvdb["shop_rechargeCsv"][rechargeId] |
2029 | if not rechargeData then | 2029 | if not rechargeData then |
@@ -2035,6 +2035,25 @@ function RolePlugin.bind(Role) | @@ -2035,6 +2035,25 @@ function RolePlugin.bind(Role) | ||
2035 | if limit ~= 0 and limit <= (rechargeRecord[rechargeId] or 0) then | 2035 | if limit ~= 0 and limit <= (rechargeRecord[rechargeId] or 0) then |
2036 | return "" | 2036 | return "" |
2037 | end | 2037 | end |
2038 | + | ||
2039 | + -- 检查礼包自选奖励合法 | ||
2040 | + if choose and choose ~= "" then | ||
2041 | + if rechargeData.itemgift == "" then return "" end | ||
2042 | + local slot = rechargeData.itemdirect or 0 | ||
2043 | + local set = choose:toTableArray(true) | ||
2044 | + if slot ~= #set then return "" end | ||
2045 | + local pass = {} | ||
2046 | + local groups = rechargeData.itemdirect:toTableArray(true) | ||
2047 | + for _, item in ipairs(set) do | ||
2048 | + for _, group in ipairs(groups) do | ||
2049 | + if group[2] == item[1] and group[3] == item[2] then | ||
2050 | + pass[group[1]] = 1 | ||
2051 | + break | ||
2052 | + end | ||
2053 | + end | ||
2054 | + end | ||
2055 | + if #pass ~= slot then return "" end | ||
2056 | + end | ||
2038 | 2057 | ||
2039 | --判断是否是活动商品 | 2058 | --判断是否是活动商品 |
2040 | if rechargeData.activity_id ~= 0 then | 2059 | if rechargeData.activity_id ~= 0 then |
@@ -2061,6 +2080,7 @@ function RolePlugin.bind(Role) | @@ -2061,6 +2080,7 @@ function RolePlugin.bind(Role) | ||
2061 | rechargeId = rechargeId, | 2080 | rechargeId = rechargeId, |
2062 | createTime = skynet.timex(), | 2081 | createTime = skynet.timex(), |
2063 | transactionId = transactionId, | 2082 | transactionId = transactionId, |
2083 | + choose = choose or "", | ||
2064 | }) | 2084 | }) |
2065 | order:create() | 2085 | order:create() |
2066 | -- 正在进行中的订单 缓存 | 2086 | -- 正在进行中的订单 缓存 |
@@ -2128,7 +2148,7 @@ function RolePlugin.bind(Role) | @@ -2128,7 +2148,7 @@ function RolePlugin.bind(Role) | ||
2128 | }) | 2148 | }) |
2129 | end | 2149 | end |
2130 | 2150 | ||
2131 | - return true, rechargeId | 2151 | + return true, rechargeId, orderObject:getProperty("choose") |
2132 | end | 2152 | end |
2133 | 2153 | ||
2134 | -- 充值 -- | 2154 | -- 充值 -- |
@@ -2146,7 +2166,7 @@ function RolePlugin.bind(Role) | @@ -2146,7 +2166,7 @@ function RolePlugin.bind(Role) | ||
2146 | local roleId = self:getProperty("id") | 2166 | local roleId = self:getProperty("id") |
2147 | local partnerOrderStr = params.order | 2167 | local partnerOrderStr = params.order |
2148 | 2168 | ||
2149 | - local status, back = self:updatePurchaseOrder(partnerOrderStr, params.transactionId, "finsh") | 2169 | + local status, back, choose = self:updatePurchaseOrder(partnerOrderStr, params.transactionId, "finsh") |
2150 | if not status then | 2170 | if not status then |
2151 | if back == "finsh" then | 2171 | if back == "finsh" then |
2152 | -- 订单已经处理 | 2172 | -- 订单已经处理 |
@@ -2168,6 +2188,7 @@ function RolePlugin.bind(Role) | @@ -2168,6 +2188,7 @@ function RolePlugin.bind(Role) | ||
2168 | transactionId = params.transactionId, | 2188 | transactionId = params.transactionId, |
2169 | pay_time = params.pay_time, | 2189 | pay_time = params.pay_time, |
2170 | order = partnerOrderStr, | 2190 | order = partnerOrderStr, |
2191 | + choose = choose, | ||
2171 | }) | 2192 | }) |
2172 | 2193 | ||
2173 | if not status then | 2194 | if not status then |
@@ -2215,6 +2236,17 @@ function RolePlugin.bind(Role) | @@ -2215,6 +2236,17 @@ function RolePlugin.bind(Role) | ||
2215 | return 3 | 2236 | return 3 |
2216 | end | 2237 | end |
2217 | 2238 | ||
2239 | + -- 自选奖励部分 | ||
2240 | + if params.choose and params.choose ~= "" then | ||
2241 | + local tReward, tChange = self:award(params.choose, {log = {desc = "recharge", int1 = id}}) | ||
2242 | + for itemId, value in pairs(tReward) do | ||
2243 | + reward[itemId] = (reward[itemId] or 0) + value | ||
2244 | + end | ||
2245 | + for itemId, value in pairs(tChange) do | ||
2246 | + reward[itemId] = (reward[itemId] or 0) + value | ||
2247 | + end | ||
2248 | + end | ||
2249 | + | ||
2218 | if diamondCount > 0 then | 2250 | if diamondCount > 0 then |
2219 | reward[ItemId.Diamond] = (reward[ItemId.Diamond] or 0) + diamondCount | 2251 | reward[ItemId.Diamond] = (reward[ItemId.Diamond] or 0) + diamondCount |
2220 | end | 2252 | end |