%%%-------------------------------------------------------------------
|
|
%%% @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
|
|
}).
|