%%%------------------------------------------------------------------- %%% @author liushl %%% @doc %%% 秒杀活动 %%% @end %%%------------------------------------------------------------------- -author("liushl"). -define(SECKILL_NOTICE_TIME, 600). %% 预告时间 -define(SECKILL_LOG_LENGTH, 20). %% 秒杀记录长度 -define(SECKILL_GOODS_LOG_LENGTH, 5). %% 商品购买记录长度 %% 秒杀活动管理 -record(seckill_center, { buy_log = #{} %% 购买记录:#{zone_id => []} , act_data = #{} %% 活动数据:#{sub_type => #seckill_act{}} , round = 0 %% 轮次: %% 如果是开启中,则表示当前轮次,如果是未开始,则表示下一轮次,小于round的场次都表示结束 , round_begin = 0 %% 场次开始时间 , round_end = 0 %% 场次结束时间 , ref_round %% 场次切换定时器 , ref_notice %% 场次预告定时器 }). %% 按活动管理 -record(seckill_act, { sub_type = 0 %% 定制活动子类型 , begin_time = 0 %% 活动开始时间 , end_time = 0 %% 活动结束时间 , zone_data = #{} %% 分区活动数据 }). %% 秒杀分区数据 -record(seckill_zone, { zone_id = 0 %% 分区id , goods_info = [] %% 商品购买情况 [#seckill_goods_info{}] , role_info = #{} %% 玩家购买情况 [#seckill_role{}]--场次结束清除数据,不存数据库 }). %% 商品数据 -record(seckill_goods_info, { grade_id = 0, %% 商品id buy_count = 0, %% 购买次数 time = 0 }). %% 秒杀玩家购买数据 -record(seckill_role, { role_id = 0 %% 玩家id , buy_count = [] %% 购买次数 [{奖励档次,购买数量}] }). %% 购买记录--保留最新的20条数据 -record(seckill_buy_log, { server = 0, name = "", cost = 0, goods_id = 0, num = 0, tv_id = 0, %% 传闻id time = 0 }).