-- 订单支付成功时，删除订单和订单锁定信息,对于redis来说,lua是原子性的,有事务的

-- 检验库存信息 这里的key是
local cachePrefix = KEYS[1]
local orderId = KEYS[2]
local prodCount = tonumber(KEYS[3])
local userId = KEYS[4]


-- 删除订单锁定记录，删除订单
if (redis.call('exists', cachePrefix.."lock:"..orderId, tostring(prodCount)) == "1") then
    local isDelete = redis.call('del', cachePrefix.."lock:"..orderId)
    -- 删除锁定标记成功才进行还原购买数量，让方法幂等
    if isDelete > 0 then
        -- 删除订单记录map  key=userId value={(status+订单id)：1未付款, (info+订单id)：orderInfo}
        redis.call('HDEL',cachePrefix.."order:"..userId, "status:"..orderId,"info:"..orderId)
    end
end

