开头
根据原来项目的商店和需求整合了商城系统,记述下开发的思路
需求
普通的商店功能,但为了后续更有效的添加商店,做了优化处理
数据结构
数据库结构异常简单,其实在初始化的时候加载数据
功能开发
1.数据初始化管理
function StorePlug:Init()
for k,v in pairs(StoreConfig.Config) do
local store = Store.new(self.player)
local storeId = v.type
if not self.cache[storeId] then
self.cache[storeId] = {}
end
store:Init(storeId, self.cache[storeId])
self.storeList[storeId] = store
end
end
self.cache 读取数据库store数据,StoreConfig配置好商店列表对应storeid
function Store:Init(storeId, InitData)
--debug
lua_app.log_debug("Store:Init", storeId)
self.storeId = storeId
self.goodsRecords = InitData.goodsRecords or {}
self.updatetime = InitData.updatetime or 0
end
storeplug为商店管理类,store商店实体类,goodsrecords储存购买物品id和数量。
2.物品购买
这是商城系统最重要的部分,但其实并不难。
1.购买传商店storeid,物品id和数量num,获取store实体类数据
--购买物品
function StorePlug:Buy(storeId, id, num)
-- debug
lua_app.log_debug("StorePlug:Buy", storeId, id, num)
if not num or num == 0 then
num =1
end
local store = self.storeList