123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- --[[
- Descripttion:支付
- version:
- Author: Neo,Huang
- Date: 2022-03-14 20:21:10
- LastEditors: Neo,Huang
- LastEditTime: 2022-03-14 20:21:10
- --]]
- local timeUtil = require("utils.timeUtil")
- local shopAdapt = require("adapt.shopAdapt")
- local moduleData = require("data.module")
- local MODULE_NAME = "pay"
- local root = {}
- -- 支付金额:分
- -- 新增支付
- function root:user_add_pay(uid, gid, pennys)
- log.info("user_add_pay uid[%s] gid[%s] pennys[%s]", tostring(uid), tostring(gid), tostring(pennys))
- if uid == nil or gid == nil then
- return
- end
- -- 总金额
- pennys = pennys or shopAdapt:goods_get_rmb(gid)
- local totalAmount = moduleData:hget_int(uid, MODULE_NAME, "totalAmount")
- totalAmount = totalAmount + pennys
- moduleData:hset(uid, MODULE_NAME, "totalAmount", totalAmount)
- -- 购买商品列表
- local currTime = timeUtil.now(uid)
- local goodsList = moduleData:hget_json(uid, MODULE_NAME, "goodsList")
- table.insert(goodsList, {gid = gid, amount = pennys, time = currTime})
- moduleData:hset(uid, MODULE_NAME, "goodsList", goodsList)
- -- 当天信息
- local dayInfo = self:get_day_info(uid)
- dayInfo.lastPayTime = currTime
- if dayInfo.goodsList == nil then
- dayInfo.goodsList = {}
- end
- table.insert(dayInfo.goodsList, {gid = gid, amount = pennys, time = currTime})
- moduleData:hset(uid, MODULE_NAME, "dayInfo", dayInfo)
- return true
- end
- -- 累计支付金额
- function root:user_get_total_pay_count(uid)
- if uid == nil then
- return
- end
- return moduleData:hget_int(uid, MODULE_NAME, "totalAmount")
- end
- -- 是否首次付费
- function root:is_first_pay(uid)
- local goodsList = moduleData:hget_json(uid, MODULE_NAME, "goodsList")
- return is_empty(goodsList)
- end
- -- 是否商品首次付费
- function root:is_goods_first_pay(uid, gid)
- local goodsList = moduleData:hget_json(uid, MODULE_NAME, "goodsList")
- for _, v in ipairs(goodsList) do
- if v.gid == gid then
- return false
- end
- end
- return true
- end
- -- 商品购买次数
- function root:get_goods_pay_times(uid, gid)
- local times = 0
- local goodsList = moduleData:hget_json(uid, MODULE_NAME, "goodsList")
- for _, v in ipairs(goodsList) do
- if v.gid == gid then
- times = times + 1
- end
- end
- return times
- end
- ----------------------------------------
- -- 当天
- ----------------------------------------
- -- 获取信息
- function root:get_day_info(uid)
- local currTime = timeUtil.now(uid)
- local dayInfo = moduleData:hget_json(uid, MODULE_NAME, "dayInfo")
- if dayInfo.lastPayTime and not timeUtil.is_same_day(dayInfo.lastPayTime, currTime) then
- dayInfo = {}
- end
- return dayInfo
- end
- -- 支付金额
- function root:get_day_total_amount(uid)
- local dayInfo = self:get_day_info(uid)
- local amount = 0
- if not is_empty(dayInfo.goodsList) then
- for _, v in ipairs(dayInfo.goodsList) do
- amount = amount + v.amount
- end
- end
- return amount
- end
- ----------------------------------------
- -- 商品定制
- ----------------------------------------
- -- 定制商品物品
- function root:update_goods_pre_custom_items(uid, gid, items)
- if uid == nil or gid == nil or is_empty(items) then
- return false
- end
- local goodsPreCustomItems = moduleData:hget_json(uid, MODULE_NAME, "goodsPreCustomItems")
- local isMatch = false
- for k, v in ipairs(goodsPreCustomItems) do
- if v.gid == gid then
- isMatch = true
- v.items = items
- break
- end
- end
- if not isMatch then
- table.insert(goodsPreCustomItems, {gid = gid, items = items})
- end
- moduleData:hset(uid, MODULE_NAME, "goodsPreCustomItems", goodsPreCustomItems)
- return true
- end
- -- 打包 - 商品定制信息
- function root:pack_goods_pre_custom_info_list(uid)
- if uid == nil then
- return
- end
- local goodsPreCustomItems = moduleData:hget_json(uid, MODULE_NAME, "goodsPreCustomItems")
- if not is_empty(goodsPreCustomItems) then
- return goodsPreCustomItems
- end
- end
- -- 获取商品定制物品
- function root:get_goods_pre_custom_items(uid, gid)
- if uid == nil or gid == nil then
- return
- end
- local goodsPreCustomItems = moduleData:hget_json(uid, MODULE_NAME, "goodsPreCustomItems")
- for k, v in ipairs(goodsPreCustomItems) do
- if v.gid == gid then
- return v.items
- end
- end
- end
- -- 删除商品定制物品
- function root:del_goods_pre_custom_items(uid, gid)
- if uid == nil or gid == nil then
- return false
- end
- local goodsPreCustomItems = moduleData:hget_json(uid, MODULE_NAME, "goodsPreCustomItems")
- for k, v in ipairs(goodsPreCustomItems) do
- if v.gid == gid then
- table.remove(goodsPreCustomItems, k)
- moduleData:hset(uid, MODULE_NAME, "goodsPreCustomItems", goodsPreCustomItems)
- return true
- end
- end
- return false
- end
- -- 支付 - 更新商品定制物品
- function root:update_goods_pay_custom_items(uid, gid, items)
- if uid == nil or gid == nil then
- return false
- end
- local goodsPayCustomItems = moduleData:hget_json(uid, MODULE_NAME, "goodsPayCustomItems")
- local isMatch = false
- for k, v in ipairs(goodsPayCustomItems) do
- if v.gid == gid then
- isMatch = true
- if is_empty(items) then
- table.remove(goodsPayCustomItems, k)
- else
- v.items = items
- end
- break
- end
- end
- if not isMatch then
- table.insert(goodsPayCustomItems, {gid = gid, items = items})
- end
- moduleData:hset(uid, MODULE_NAME, "goodsPayCustomItems", goodsPayCustomItems)
- return true
- end
- -- 打包 - 商品定制信息
- function root:pack_goods_pay_custom_info_list(uid)
- if uid == nil then
- return
- end
- local goodsPayCustomItems = moduleData:hget_json(uid, MODULE_NAME, "goodsPayCustomItems")
- if not is_empty(goodsPayCustomItems) then
- return goodsPayCustomItems
- end
- end
- -- 打包 - 支付信息
- function root:pack_pay_info(uid)
- if is_empty(uid) then
- return
- end
- local payInfo = {}
- -- 终生
- payInfo.totalTimes = 0
- payInfo.totalMoney = 0
- local goodsList = moduleData:hget_json(uid, MODULE_NAME, "goodsList")
- if not is_empty(goodsList) then
- for _, v in ipairs(goodsList) do
- payInfo.totalTimes = payInfo.totalTimes + 1
- payInfo.totalMoney = payInfo.totalMoney + v.amount
- end
- end
- -- 当天
- payInfo.dayMoney = 0
- payInfo.dayTimes = 0
- local dayInfo = self:get_day_info(uid)
- if not is_empty(dayInfo.goodsList) then
- for _, v in ipairs(dayInfo.goodsList) do
- payInfo.dayTimes = payInfo.dayTimes + 1
- payInfo.dayMoney = payInfo.dayMoney + v.amount
- end
- end
- return payInfo
- end
- return root
|