skynet框架活动设计

迪口超市赠送购物卡

一 数据库设计

活动配置信息
--活动配置 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天


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部