源战役
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 

90 righe
3.6 KiB

%%% -------------------------------------------------------
%%% @author huangyongxing@yeah.net
%%% @doc
%%% 团购活动
%%% @end
%%% -------------------------------------------------------
-ifndef(GROUP_BUY_HRL).
-define(GROUP_BUY_HRL, ok).
-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">>).
-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)">>).
-define(SQL_DEL_GROUP_BUY_DATA, <<"DELETE FROM group_buy_data WHERE `subtype`=~w AND `grade`=~w">>).
%% 折扣返还邮件标题及内容的语言配置id
-define(GROUP_BUY_RETURN_TITLE, 3317001).
-define(GROUP_BUY_RETURN_CONTENT, 3317002).
%% 团购活动 - 个人参与活动的数据,
%% 存储在#custom_act_data.act_data中
%% ActData :: [ #role_group_buy{} ]
-record(role_group_buy, {
subtype = 0 % 活动子类型
,grade_id = 0 % 活动中的档次id
,gold_type = 1 % 购买消耗的货币类型
,buy_cost = 0 % 购买时花费(实际花费:buy_cost - got_return)
,got_return = 0 % 已领取折扣返还(自动返还也更新)
,buy_time = 0 % 购买时间
,return_time = 0 % 最后一次返还时间
,auto_return = 0 % 活动结束自动返还状态(1已返还,0未返还)
}).
%% 团购活动数据 - 管理器中记录的活动数据
%% (记录在进程字典中)
-record(group_buy_info, {
buy_id = {0, 0} % 团购商品KEY {Subtype, GradeId}
%% 活动数据部分
,real_buyer_count = 0
,fix_buyer_count = 0
,buyers = []
%% 配置验证转换后的中间状态部分
% 折扣配置#{Stage => {Discount, BuyerNeed}}
% (通过活动奖励条件配置计算得到)
,discount_map = #{}
% 折扣配置,有序列表,BuyerCount由小到大[{BuyerCount, State}]
% 用于查询当前Stage
,buyer_count_stage = []
% 缓存最大的阶段数,在查询时直接返回
,stage_total = 0
%% --------------------------------------------------
%% 以下为从活动配置中取得的配置数据,
%% 用于对比是否变化及购买等操作时使用
%% --------------------------------------------------
,gold_type = 0
,original_price = 0
,discount
,buyer_need
,fake
,stime = 0
,etime = 0
%% --------------------------------------------------
}).
%% 档次购买信息
-record(buy_info_grade, {
buy_id = {0, 0}
,real_buyer_count = 0 % 真实购买人数
,fix_buyer_count = 0 % 真实+虚拟混合的购买人数
,discount = 10 % 折扣
,original_price = 999999 % 原始价格
,gold_type = 1 % 货币类型
,stage = 0 % 当前活动折扣阶段(真实使用)
,stage_no_fix = 0 % 若论真实人数的折扣阶段(日志分析需要)
,stage_total = 0 % 总阶段数
}).
%% 结算检查折扣返还时的参数
-record(check_return_params, {
subtype = 0
,grade_id = 0
,original_price = 999999
,gold_type = 1
,curr_price = 999999
,discount = 10
,stime = 0
,etime = 0
}).
-endif.