源战役
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
2.1 KiB

  1. %%%-------------------------------------------------------------------
  2. %%% @author liushl
  3. %%% @doc
  4. %%% 秒杀活动
  5. %%% @end
  6. %%%-------------------------------------------------------------------
  7. -author("liushl").
  8. -define(SECKILL_NOTICE_TIME, 600). %% 预告时间
  9. -define(SECKILL_LOG_LENGTH, 20). %% 秒杀记录长度
  10. -define(SECKILL_GOODS_LOG_LENGTH, 5). %% 商品购买记录长度
  11. %% 秒杀活动管理
  12. -record(seckill_center, {
  13. buy_log = #{} %% 购买记录:#{zone_id => []}
  14. , act_data = #{} %% 活动数据:#{sub_type => #seckill_act{}}
  15. , round = 0 %% 轮次:
  16. %% 如果是开启中,则表示当前轮次,如果是未开始,则表示下一轮次,小于round的场次都表示结束
  17. , round_begin = 0 %% 场次开始时间
  18. , round_end = 0 %% 场次结束时间
  19. , ref_round %% 场次切换定时器
  20. , ref_notice %% 场次预告定时器
  21. }).
  22. %% 按活动管理
  23. -record(seckill_act, {
  24. sub_type = 0 %% 定制活动子类型
  25. , begin_time = 0 %% 活动开始时间
  26. , end_time = 0 %% 活动结束时间
  27. , zone_data = #{} %% 分区活动数据
  28. }).
  29. %% 秒杀分区数据
  30. -record(seckill_zone, {
  31. zone_id = 0 %% 分区id
  32. , goods_info = [] %% 商品购买情况 [#seckill_goods_info{}]
  33. , role_info = #{} %% 玩家购买情况 [#seckill_role{}]--场次结束清除数据,不存数据库
  34. }).
  35. %% 商品数据
  36. -record(seckill_goods_info, {
  37. grade_id = 0, %% 商品id
  38. buy_count = 0, %% 购买次数
  39. time = 0
  40. }).
  41. %% 秒杀玩家购买数据
  42. -record(seckill_role, {
  43. role_id = 0 %% 玩家id
  44. , buy_count = [] %% 购买次数 [{奖励档次,购买数量}]
  45. }).
  46. %% 购买记录--保留最新的20条数据
  47. -record(seckill_buy_log, {
  48. server = 0,
  49. name = "",
  50. cost = 0,
  51. goods_id = 0,
  52. num = 0,
  53. tv_id = 0, %% 传闻id
  54. time = 0
  55. }).