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