迪口超市赠送购物卡
一 数据库设计
活动配置信息
--活动配置 conf.active
M[config_def.ACTIVE] = {name = config_def.ACTIVE,indexes = {{key = {id = 1},opt = {unique = true}}},value = {id = 0, --活动idname = "**超市乱刮风购物卡", --活动名字game_id = 0, --游戏idbegin_time = 0, --开始时间end_time = 0, --结束时间finish_total = 10, --领取条件(局数)max_amount = 1, --购物卡总量desc = "超市乱刮风购物卡", --活动描述valid = db_def.STATE.VALID --是否有效}
}
用户活动数据
--用户活动数据 user.active
M.USER_ACTIVE = {name = "active",indexes = {{"user_id", "id", unique = true}},value = {user_id = 0, --所属用户数据库唯一标示id = 0, --active配置表中对应的idfinish_count = 0, --进度state = 1, --状态(0 已完成 1 进行中) 注:后台操作记录领取就是修改该字段为0}
}
用户领奖记录
网站可按照记录相关需求自行发挥。
注意事项
1.需求中用户每个活动的状态和领取记录。
有个参考查询方法:不在有效期,用户数据没参考性在有效期,局数<领取条件 进行中 不可领取在有效期,局数>=领取条件 进行中 可领取(state=1) 已领取(state=0)2.剩余卡片数量
参考统计:剩余卡片数量=配置的max_amount-用户活动数据中改活动state为0的数量当然网站也可按照领取记录去减。3.用户领奖记录,网站按需发挥
有个参考设计supermarket_cards_record:record_id,user_id,active_id,time以上注意事项参考方案仅供参考。
二 服务端设计
1.服务器加载后台的有效的活动配置
2.游戏结束,更新有效活动的用户活动数据,并实时通知客户端
3.用户属性中添加active_list,存储用户活动数据.User_Active { #活动信息id 0 : integer #active配置表中对应的idfinish_count 1 : integer #进度state 2 : integer #状态(0 已完成 1 进行中)}
三 前后端协议
get_activeconf 7001 {request {}response {ret 0 : integer #err 中定义codeactives 1 : *Conf_Active}
}get_activeinfo 7002 {request {}response {ret 0 : integer #err 中定义code}
}.Conf_Active {id 0 : integer #活动idname 1 : string #活动名字game_id 2 : integer #游戏idbegin_time 3 : integer #开始时间end_time 4 : integer #结束时间finish_total 5 : integer #领取条件(局数)max_amount 6 : integer #购物卡总量desc 7 : string #活动描述
}注:
补充协议:获取剩余卡片数量
get_left_amount 7003 {request {active_id 0 : integer #活动id}response {ret 0 : integer #err 中定义codeleft_amount : integer #剩余数量(最大为max_amount)}
}
四 网站协议
后台点击记录领取时的请求
1.内存
2.拓展active?admin=111&active_id=1&user_id=123&state=1
伍 开发计划
总体设计(服务器):0.5天
1.数据库设计
2.服务器设计
3.协议设计服务器部分:
1.配置模块(支持后台修改实时生效) 0.5天
2.用户统计模块 1天
3.每个活动剩余卡片 0.5天网站
1.配置 0.5
2.记录+服务器请求 1天客户端
1天
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!