源战役
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

90 rader
3.6 KiB

4 veckor sedan
  1. %%% -------------------------------------------------------
  2. %%% @author huangyongxing@yeah.net
  3. %%% @doc
  4. %%% 团购活动
  5. %%% @end
  6. %%% -------------------------------------------------------
  7. -ifndef(GROUP_BUY_HRL).
  8. -define(GROUP_BUY_HRL, ok).
  9. -define(SQL_SELECT_GROUP_BUY_DATA, <<"SELECT subtype,grade,real_buyer_count,fix_buyer_count,gold_type,original_price,stime,etime,buyers FROM group_buy_data">>).
  10. -define(SQL_REPLACE_GROUP_BUY_DATA_HEAD, <<"REPLACE INTO group_buy_data (subtype,grade,real_buyer_count,fix_buyer_count,gold_type,original_price,stime,etime,buyers)">>).
  11. -define(SQL_DEL_GROUP_BUY_DATA, <<"DELETE FROM group_buy_data WHERE `subtype`=~w AND `grade`=~w">>).
  12. %% 折扣返还邮件标题及内容的语言配置id
  13. -define(GROUP_BUY_RETURN_TITLE, 3317001).
  14. -define(GROUP_BUY_RETURN_CONTENT, 3317002).
  15. %% 团购活动 - 个人参与活动的数据,
  16. %% 存储在#custom_act_data.act_data中
  17. %% ActData :: [ #role_group_buy{} ]
  18. -record(role_group_buy, {
  19. subtype = 0 % 活动子类型
  20. ,grade_id = 0 % 活动中的档次id
  21. ,gold_type = 1 % 购买消耗的货币类型
  22. ,buy_cost = 0 % 购买时花费(实际花费:buy_cost - got_return)
  23. ,got_return = 0 % 已领取折扣返还(自动返还也更新)
  24. ,buy_time = 0 % 购买时间
  25. ,return_time = 0 % 最后一次返还时间
  26. ,auto_return = 0 % 活动结束自动返还状态(1已返还,0未返还)
  27. }).
  28. %% 团购活动数据 - 管理器中记录的活动数据
  29. %% (记录在进程字典中)
  30. -record(group_buy_info, {
  31. buy_id = {0, 0} % 团购商品KEY {Subtype, GradeId}
  32. %% 活动数据部分
  33. ,real_buyer_count = 0
  34. ,fix_buyer_count = 0
  35. ,buyers = []
  36. %% 配置验证转换后的中间状态部分
  37. % 折扣配置#{Stage => {Discount, BuyerNeed}}
  38. % (通过活动奖励条件配置计算得到)
  39. ,discount_map = #{}
  40. % 折扣配置,有序列表,BuyerCount由小到大[{BuyerCount, State}]
  41. % 用于查询当前Stage
  42. ,buyer_count_stage = []
  43. % 缓存最大的阶段数,在查询时直接返回
  44. ,stage_total = 0
  45. %% --------------------------------------------------
  46. %% 以下为从活动配置中取得的配置数据,
  47. %% 用于对比是否变化及购买等操作时使用
  48. %% --------------------------------------------------
  49. ,gold_type = 0
  50. ,original_price = 0
  51. ,discount
  52. ,buyer_need
  53. ,fake
  54. ,stime = 0
  55. ,etime = 0
  56. %% --------------------------------------------------
  57. }).
  58. %% 档次购买信息
  59. -record(buy_info_grade, {
  60. buy_id = {0, 0}
  61. ,real_buyer_count = 0 % 真实购买人数
  62. ,fix_buyer_count = 0 % 真实+虚拟混合的购买人数
  63. ,discount = 10 % 折扣
  64. ,original_price = 999999 % 原始价格
  65. ,gold_type = 1 % 货币类型
  66. ,stage = 0 % 当前活动折扣阶段(真实使用)
  67. ,stage_no_fix = 0 % 若论真实人数的折扣阶段(日志分析需要)
  68. ,stage_total = 0 % 总阶段数
  69. }).
  70. %% 结算检查折扣返还时的参数
  71. -record(check_return_params, {
  72. subtype = 0
  73. ,grade_id = 0
  74. ,original_price = 999999
  75. ,gold_type = 1
  76. ,curr_price = 999999
  77. ,discount = 10
  78. ,stime = 0
  79. ,etime = 0
  80. }).
  81. -endif.