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