skynet框架活动设计

迪口超市赠送购物卡

一 数据库设计
活动配置信息
--活动配置 conf.active
M[config_def.ACTIVE] = {
    name = config_def.ACTIVE,
    indexes = {{key = {id = 1},opt = {unique = true}}},
    value = {
            id              = 0,                                       --活动id
            name            = "**超市乱刮风购物卡",                     --活动名字
            game_id         = 0,                                      --游戏id
            begin_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配置表中对应的id
            finish_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配置表中对应的id
        finish_count 1 : integer                #进度
        state 2 : integer                       #状态(0 已完成 1 进行中)
    }
三 前后端协议
get_activeconf 7001 {
    request {
    }
    response {
        ret 0 : integer					#err 中定义code
        actives 1 : *Conf_Active
    }
}

get_activeinfo 7002 {
    request {
        
    }
    response {
        ret 0 : integer					#err 中定义code
    }
}

.Conf_Active {
    id 0 : integer                          #活动id
    name 1 : string                         #活动名字
    game_id 2 : integer                     #游戏id
    begin_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 中定义code
        left_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天
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值