%%-----------------------------------------------------------------------------
%% @Module  :       custom_act
%% @Author  :       Czc
%% @Email   :       389853407@qq.com
%% @Created :       2018-01-05
%% @Description:    定制活动
%%-----------------------------------------------------------------------------

%% 进程字典存储有效的定制活动[{Type, SubType}]
-define(P_VAILD_ACT_TYPE_LIST, "VAILD_ACT_TYPE_LIST").

%% 进程字典存储官服定制活动文件最后修改的时间
%% 如果修改时间不一样重新加载定制活动
-define(P_CUSTOM_ACT_NORMAL_LAST_MTIME, "LAST_MTIME").

%% 用ets存储当前已经开启的定制活动
-define(ETS_CUSTOM_ACT, ets_custom_act).            %% #act_info{}

%% ==================================== 定制活动类型 ==================================
-define(CUSTOM_ACT_TYPE_FLOWER_RANK_LOCAL,  1).      %% 本服魅力榜活动
-define(CUSTOM_ACT_TYPE_FLOWER_RANK,        2).      %% 跨服魅力榜活动
-define(CUSTOM_ACT_TYPE_LIMIT_GIFT,         3).      %% 角色差异化活动-限购礼包
-define(CUSTOM_ACT_TYPE_LOANS,              5).      %% 彩钻复制机
-define(CUSTOM_ACT_TYPE_DAILY_CHARGE_CONSUME, 6).    %% 每日累充消费 - 弹珠抽奖活动
-define(CUSTOM_ACT_TYPE_RECHARGE,           7).      %% 累充
-define(CUSTOM_ACT_TYPE_SER_FES_DROP,       8).      %% 本服节日掉落
-define(CUSTOM_ACT_TYPE_CLS_FES_DROP,       9).      %% 跨服节日掉落
-define(CUSTOM_ACT_TYPE_RUSH_RANK,         10).      %% 开服冲榜
-define(CUSTOM_ACT_TYPE_TURNTABLE,         11).      %% 源能转盘
-define(CUSTOM_ACT_TYPE_DUN_MUL_DROP,      12).      %% 副本多倍掉落
-define(CUSTOM_ACT_TYPE_SMASHED_EGG,       13).      %% 砸蛋
-define(CUSTOM_ACT_TYPE_RECHARGE_GIFT,     14).      %% 充值有礼
-define(CUSTOM_ACT_TYPE_DUN_MUL_EXP,       16).      %% 副本多倍经验
-define(CUSTOM_ACT_TYPE_LIMIT_BUY,         17).      %% 特惠商城
-define(CUSTOM_ACT_TYPE_CLOUD_BUY,         18).      %% 众仙云购/幸运之星
-define(CUSTOM_ACT_TYPE_HOPE_GIFT,         19).      %% 角色差异化活动-礼包(明日之礼)

-define(CUSTOM_ACT_TYPE_ACT_EXCHANGE,      21).      %% 活动兑换
-define(CUSTOM_ACT_TYPE_SAKURA_GIFT,       20).      %% 源樱之礼-阶段抽奖
-define(CUSTOM_ACT_TYPE_ACT_CAPSULE_TOYS,  22).      %% 超级扭蛋

-define(CUSTOM_ACT_TYPE_GUILD_CREAT,       24).      %% 勇者盟约
-define(CUSTOM_ACT_TYPE_PERFECT_LOVER,     25).      %% 完美恋人
-define(CUSTOM_ACT_TYPE_GWAR,              27).      %% 公会争霸运营活动
-define(CUSTOM_ACT_TYPE_RED_ENVELOPES,     29).      %% 活动红包 同时只能有一个子类型生效
-define(CUSTOM_ACT_TYPE_CONSUME,           30).      %% 消费活动
-define(CUSTOM_ACT_TYPE_TREASURE_EVALUATION,           31).      %% 幸运鉴宝活动
-define(CUSTOM_ACT_TYPE_RECHARGE_RANK,          33).      %% 本服充值排行
-define(CUSTOM_ACT_TYPE_RECHARGE_CONSUME,       34).      %% 充值消费活动
-define(CUSTOM_ACT_TYPE_LUCAY_FLOP,             35).        %% 幸运翻牌
-define(CUSTOM_ACT_TYPE_FREE_GIFT,              36).        %% 0元礼包活动
-define(CUSTOM_ACT_TYPE_CONSUME_RANK,           39).        %% 本服消费排行(钻石)
-define(CUSTOM_ACT_TYPE_CONTINUE_CONSUME,       40).        %% 连续消费
-define(CUSTOM_ACT_TYPE_OVERFLOW_GIFTBAG,       41).        %% 超值礼包
-define(CUSTOM_ACT_TYPE_SPEC_SELL,              42).        %% 精品特卖
-define(CUSTOM_ACT_TYPE_DAILY_RECHARGE_EX,      47).        %% 每日累充(每日重置版)
-define(CUSTOM_ACT_TYPE_SINGLE_RECHARGE,        48).        %% 每日单笔充值
-define(CUSTOM_ACT_TYPE_MONEY_EARN,             49).        %% 货币赚赚赚
-define(CUSTOM_ACT_TYPE_JOURNEY,                50).        %% 大陆征途
-define(CUSTOM_ACT_TYPE_LOTTERY,                51).        %% 彩票
-define(CUSTOM_ACT_TYPE_BOSS_DOUBLE,            52).        %% 首领翻倍
-define(CUSTOM_ACT_TYPE_FASHION_VOTE,           53).        %% 时装投票
-define(CUSTOM_ACT_TYPE_SUPPLICATION,           55).        %% 祈愿
-define(CUSTOM_ACT_TYPE_DAILY_ACTIVITY,         56).        %% 日常活跃
-define(CUSTOM_ACT_TYPE_REPEAT_RECHARGE_REWARD, 57).        %% 反复充值有礼
-define(CUSTOM_ACT_TYPE_DAILY_TARGET,           59).        %% 每日目标
-define(CUSTOM_ACT_TYPE_GROWTH_SCORE,           60).        %% 成长积分
-define(CUSTOM_ACT_TYPE_JOY_WISH,               61).        %% 欢乐许愿
-define(CUSTOM_ACT_TYPE_VIP_BAG_ONSALE,         63).        %% VIP特惠
-define(CUSTOM_ACT_TYPE_LUCKY_CAT,              64).        %% 招财猫活动
-define(CUSTOM_ACT_TYPE_LIMIT_MALL,             65).        %% 商城抢购
-define(CUSTOM_ACT_TYPE_GUILD_RACE_RANK,        66).        %% 社团竞速
-define(CUSTOM_ACT_TYPE_CIRCLE_FOSTER,          67).        %% 循环进阶
-define(CUSTOM_ACT_TYPE_SMALL_RECHARGE,         68).        %% 小额连充活动
-define(CUSTOM_ACT_TYPE_SELLSWORDS_RESUPPLY,    69).        %% 佣兵补给
-define(CUSTOM_ACT_TYPE_GROUP_BUY,              70).        %% 团购活动
-define(CUSTOM_ACT_TYPE_MOBILIZE,               71).        %% 全民动员
-define(CUSTOM_ACT_TYPE_MONOPOLY,               72).        %% 超级富豪
-define(CUSTOM_ACT_TYPE_ADVERTISEMENT,          73).        %% 广告活动
-define(CUSTOM_ACT_TYPE_CONTRACT,               74).        %% 通行证
-define(CUSTOM_ACT_TYPE_INVESTMENT,             75).        %% 投资活动
-define(CUSTOM_ACT_TYPE_SECKILL,                76).        %% 秒杀活动
-define(CUSTOM_ACT_TYPE_DISCOUNT_MALL,          77).        %% 折扣商城
-define(CUSTOM_ACT_TYPE_SUP_RED_PACKET,         78).        %% 惊喜红包
-define(CUSTOM_ACT_TYPE_VIE_RANK,               79).        %% 通用榜单
-define(CUSTOM_ACT_TYPE_PERMIT_LOGIN,           80).        %% 登录通行证
-define(CUSTOM_ACT_TYPE_PERMIT_ACTIVE,          81).        %% 活跃通行证
-define(CUSTOM_ACT_TYPE_HI_POINT_2,             82).        %% 嗨点兑换

%% 主题活动页签 99，其他主题活动类型101-120
-define(CUSTOM_ACT_THEME,      99).
-define(CUSTOM_ACT_THEME_LIMIT_DROP,          101).         %% 主题活动-限时掉落
-define(CUSTOM_ACT_THEME_DUN_MUL_REWARD,      102).         %% 主题活动-副本多倍奖励
-define(CUSTOM_ACT_THEME_FIRST_RECHARGE,      103).         %% 主题活动-每日首充
-define(CUSTOM_ACT_TYPE_PHANTOM,              104).         %% 幻魔宝典
-define(CUSTOM_ACT_TYPE_HI_POINT,             105).         %% 嗨点(狂欢活动)
-define(CUSTOM_ACT_TYPE_SIGN_REWARD,          106).         %% 登录送礼
-define(CUSTOM_ACT_TYPE_LUCKY_TURNTABLE,   	  107).      	%% 幸运转盘
-define(CUSTOM_ACT_TYPE_SCRATCH_CARD,   	  108).      	%% 刮刮卡
-define(CUSTOM_ACT_TYPE_LUCKY_BAG1,           109).      	%% 福袋
-define(CUSTOM_ACT_TYPE_LUCKY_BAG2,           110).      	%% 福袋-红包
-define(CUSTOM_ACT_TYPE_TAROT,                111).         %% 塔罗牌
-define(CUSTOM_ACT_TYPE_COLWORD,              112).         %% 集字兑换
-define(CUSTOM_ACT_TYPE_ADVENTURE_ROLE,       113).         %% 冒险征程
-define(CUSTOM_ACT_TYPE_PHASE_EXCHANGE,       114).         %% 阶段兑换
-define(CUSTOM_ACT_TYPE_REVERSI,              115).         %% 黑白棋
-define(CUSTOM_ACT_TYPE_SLICES,               116).         %% 积分拼图
-define(CUSTOM_ACT_TYPE_BOSS,                 117).         %% 活动BOSS
-define(CUSTOM_ACT_TYPE_PUZZLE,               118).         %% 眼疾手快-拼图
-define(CUSTOM_ACT_TYPE_DAYS_PLAN,            119).         %% 五日大作战
-define(CUSTOM_ACT_TYPE_TREE_LOTTERY,         120).         %% 摇树抽奖
-define(CUSTOM_ACT_TYPE_JUMP_ACT,             121).         %% 跳一跳
-define(CUSTOM_ACT_TYPE_PRINTER_DRAW,         122).         %% 合成机
-define(CUSTOM_ACT_TYPE_GREAT_REWARD,         123).         %% 超能大奖
-define(CUSTOM_ACT_TYPE_UNITE_BUFF,           124).         %% 联合BUFF
-define(CUSTOM_ACT_TYPE_SELECT_CAPSULE_EGG,   125).         %% 自选扭蛋


-define(CUSTOM_ACT_TYPE_GUIDE,                998).         %% 活动引导
-define(CUSTOM_ACT_TYPE_BUBBLE,               999).         %% 活动气泡

%% 暂时不确定未来是否需要的旧活动
%% 将id替换为-1使之失效
-define(CUSTOM_ACT_TYPE_DAILY_CHARGE_CYCLE, -1).        %% 循环每日累充

%% ==================================== 定制活动类型 ==================================

%% 跨服活动类型
-define(KF_CUSTOM_ACT_TYPE, [
    ?CUSTOM_ACT_TYPE_SECKILL,
    ?CUSTOM_ACT_TYPE_VIE_RANK,
    ?CUSTOM_ACT_TYPE_JUMP_ACT
]).

%% ======================== 注意事项 =========================
%% 定制活动关闭发奖的时候做好日志,数据会在活动关闭的时候清理
%% 定制活动目前支持主类型下的多个子类型同时开启,程序写代码的要做好兼容!!!!!!!!!
%% 相关的活动数据最好加一个数据的更新时间戳字段,通过判断最后的更新时间是否大于本次活动的开启时间,不是的话表示该份数据是过期数据,不能继续使用

%% 特殊定制活动的条件,配置condition字段的值,在这里加上备注
%% 通用的定制活动条件
%% {role_lv,        玩家等级}
%% {rank_len,       榜单长度}
%% {rank_limit,     榜单阈值}
%% {gap_time,       间隔天数(针对分为活动时间和领取奖励时间的活动)}
%% {sp_gap_time,    间隔天数(针对分为活动时间和全程领取奖励时间的活动)}
%% {cycle_startday, StartDay}:循环开始时间 搭配开启类型6使用
%% {cycle_days, DivisorDays, RemNum}:DivisorDays循环内的总天数 RemNum循环内的第几天
%% {cycle_days, DivisorDays, RemList}:DivisorDays循环内的总天数 RemList循环内的【连续天数】列表

%% 最好每个活动都把自己的详细条件写清楚
%% -define(CUSTOM_ACT_TYPE_COLWORD,           4).      %% 开服集字兑换
%% 活动条件   [{role_lv, 100}, {sp_gap_time, 7}(间隔天数(针对分为活动时间和全程领取奖励时间的活动))]
%% 活动奖励条件[{goods_exchange, ExGoods, ModId, CounterId(一般就是奖励id)} mod_id和counter_id都填0就不记录全服今天兑换了几次]

%% CUSTOM_ACT_TYPE_REPEAT_RECHARGE_REWARD 重复充值有礼
%% 活动条件 {recharge, 500} 每充值500钻可抽1次  {show_type, 1} 展示类型1模型2物品  {show_id, 1234}展示的模型或物品id
%% 活动奖励条件 无

%% CUSTOM_ACT_TYPE_REPEAT_RECHARGE_TURNTABLE 重复充值转盘
%% 活动条件 {recharge, 500}  每充值500钻可抽1次
%% 活动奖励条件 {wlv, [100, 200]} 世界等级100级到200级， {weight, 50} 权重50 ，{is_tv, 1｝广播+记录抽奖历史


%% CUSTOM_ACT_TYPE_SMASHED_EGG 砸蛋
%% {free_refresh_times, 每日免费刷新次数}
%% {smashed_times_lim, 每日钻石砸蛋次数上限}

%% CUSTOM_ACT_TYPE_ACT_BOSS 活动boss
%% {cfg_list,
%%    [
%%     {mon_type,怪物类型},1活动boss 2采集怪物
%%     {scene,场景id},
%%     {mon_id,[怪物id,...]},
%%     {mon_num, 怪物数量}如果有多个怪物id则全部都是同样的数量
%%     {times_point,[{{开始时,开始分,开始秒},{结束时, 结束分, 结束秒}},...]}
%%   ],...
%% }

%% CUSTOM_ACT_TYPE_ACT_EXCHANGE 活动兑换
%% 活动条件 [{clear_type, Type}] Type为 day:每日更新 act:活动结束更新
%% 活动奖励条件[{goods_exchange, ExGoods, ModId, CounterId(一般就是奖励id)} mod_id和counter_id都填0就不记录全服今天兑换了几次
%%              {exchange_limit, Limit}] 兑换上限

%% CUSTOM_ACT_TYPE_HI_POINT 嗨点
%% 活动条件
%% 活动奖励条件 {hi_points, Num}

%% CUSTOM_ACT_TYPE_BOSS_FIRST_BLOOD BOSS首杀
%% 活动奖励条件 {boss_id, BOSS_ID}

%% CUSTOM_ACT_TYPE_SIGN_REWARD 登录送礼
%% 活动条件 无
%% 活动奖励条件
%% [{sign_day, 年, 月, 日}] 每日领取日期
%% [{sign_count, 累计天数}] 累计天数奖励（一个活动只填一个）

%% CUSTOM_ACT_TYPE_LIMIT_BUY 特惠商城
%% 活动条件 无
%% 活动奖励条件
%% [{cost, [{物品类型, 物品类型id, 物品数量}]（消耗列表）}, {discount, 折扣（例如70为7折）}, {limit, 限购数量}]

%% CUSTOM_ACT_TYPE_CLOUD_BUY 众仙云购/幸运之星
%% 活动条件
%% [{unlimited_time,[不限制购买次数时, 不限制购买次数分]},（不限制购买次数的开始时间，精确到分）
%% {award_time,[奖励发放时, 奖励发放分]}, 奖励发放时间，（精确到分）
%% {big_award_ids, [大奖id]}（大奖id列表，循环使用）]
%% 活动奖励条件 无

%% CUSTOM_ACT_TYPE_PERFECT_LOVER 完美恋人
%% [{reward, [{物品类型, 物品类型id, 物品数量}]}]（完美恋人奖励列表）
%% 活动奖励条件 无


%% CUSTOM_ACT_TYPE_DAILY_CHARGE 累计充值
%% 奖励条件说明
%% {type, N}    N :: 1|2  1每日累充类型 2周期累充类型 完成所有奖励的档次为1周期
%% {gold, N}    N :: integer()  累计充值钻石数量
%% {day, N}     N :: integer()  周期累充类型特有，表示N天累充达到多少钱
%% 每日充值达到300钻石 [{type,1},{gold,300}]
%% 累计2天充值达到300钻石 [{type,2},{day,2},{gold,300}]

%% CUSTOM_ACT_TYPE_7_RECHARGE 7天累充
%% 奖励条件说明
%% {gold, N}    N :: integer()  累计充值钻石数量
%% 充值达到1980钻石 [{gold,1980}]

%% CUSTOM_ACT_TYPE_DUN_MUL_DROP 副本多倍掉落
%% CUSTOM_ACT_TYPE_DUN_MUL_EXP  副本多倍经验
%% 活动条件说明
%% [{types,[{DunType,N}]}, {filter_merge_day, [1,5]}]  DunType :: integer() 副本类型 N :: integer() 倍数 filter_merge_day 配[1,2,3]表示合服第1,2,3天不会开活动 不配表示不限制
%% 宠物副本、金币副本掉落双倍 [{types,[{2,2},{3,2}]}]
%% 经验副本多倍经验 [{types,[{4,10000}]}, {time,{{23,45,0},{23,59,59}}}, {filter_merge_day, [1,5]}]

%% CUSTOM_ACT_TYPE_EUDEMONS_ATTACK  幻兽入侵活动
%% 活动条件说明
%% {lv,Lv} Lv :: integer() 玩家等级限制
%% {time, [{{H1,M1},{H2,M2}}]} H1开始小时 M1开始分钟 H2结束小时 M2结束分钟
%% {buff,[{GoodsId, SkillId}]} 鼓舞效果 使用物品对应的buff技能
%% 活动期间每天18点、20点开启，持续30分钟 [{{18,0},{18,30}},{{20,0},{20,30}}]
%% 奖励条件说明 只有排行奖励配在了定制活动奖励里，最后一击和阶段伤害奖励请参考幻兽入侵活动配置
%% [{hurt_rank,{Min,Max}}] 排名在Min-Max之间(包含Min和Max)

%% CUSTOM_ACT_TYPE_GUILD_CREAT 勇者盟约
%% 奖励条件说明
%% {count,N}全服限制N个
%% {vice_count,N} 任命N个副会长
%% {member, N}公会达到多少人
%% {guild_lv,N}公会达到多少级
%% 所有条件都有个大前提，会长才能领取

%% CUSTOM_ACT_TYPE_LUCKY_TURNTABLE 幸运抽奖
%% 活动条件说明
%% [{ticket_price, 100}]  充值100元宝获得一张券
%% 奖励条件说明
%% [{weight, 权重},{n_times,倍数}] 根据权重获得该奖励id 奖励内容会乘以倍数

%% CUSTOM_ACT_TYPE_CONSUME 消费活动
%% 活动条件说明
%% [{money_types,[gold,bgold,coin]}] 参与活动的消费种类 gold钻石消费 bgold绑钻消费 coin铜币消费
%% 活动奖励条件说明
%% [{money_type,Type,N}] Type = gold|bgold|coin
%% 例如活动期间累计消费888钻石 [{money_type,gold,888}]
%% 假如一个活动的所有奖励包含多个种类，则活动条件的money_types则需要对应全部种类

%% CUSTOM_ACT_TYPE_KF_CLOUD_BUY_GOLD|CUSTOM_ACT_TYPE_KF_CLOUD_BUY_BGOLD 跨服云购
%% 活动条件说明
%% {role_lv, 角色等级}
%% [{draw_time, [{时,分}]}]目前每次活动只能开一期抽奖
%% {unlimit_time, [{时,分}]}   不限购时间
%% {cost, [{goods_type, goods_id, goods_num},...]} 购买一份消耗
%% 活动奖励条件说明
%% {is_main_reward, true}    主奖励必填条件
%% [{buy_num_lim, 个人购买基础次数}] 购买的基础次数 总购买次数 = 基础购买次数 * (1 + VIP次数加成系数) 结果向上取整
%% [{total_buy_num_lim, 跨服组总购买次数}]
%% [{winner_num_lim, 中奖人数}] 主奖励
%% {draw_num, [{购买份数, 子奖励ID},...]}    子奖励ID对应奖励档次ID，达到相应购买份数则开奖
%% {is_main_reward, false}    子奖励必填条件
%% {winner_num_lim, 中奖人数} 子奖励
%% CUSTOM_ACT_TYPE_LOGIN_RETURN_REWARD 0元豪礼
%% 活动条件说明
%% 注意：活动的结束时间必须大于限购天数(buy_day)+返利奖励领取需要的最大天数，如果限购天数是3，最后一档奖励需要7天后才能领取，则结束时间必须在开始时间10天后
%% [{role_lv, 120}] 玩家参与等级
%% [{buy_day, 3}] 活动开始后多少天内允许购买商品，此天数按满24小时算一天
%% 活动奖励条件说明
%% [{lv, 170}, {receive_day, 3}, {return_reward, [{2,0,388}]},{icon,[{0,38140001,1}]}]
%% [ {cost, [{1,0,688}]},{receive_day, 3}, {return_reward, [{1,0,688}]},{icon,[{0,38140001,1}]}]
%% [{lv, 170}] 购买需要的玩家等级
%% [{cost, [{1,0,688}]}] 购买商品需要的消耗
%% [{receive_day, 3}] 购买商品后多少天能领取返利
%% [{return_reward, [{2,0,388}]}] 返利奖励
%% [{icon,[{0,38140001,1}]}] 客户端展示用的返利图标 具体格式咨询客户端
%% [{model,[{0,12020007,1},{0,12010007,1},{0,12030007,1}]}] 客户端展示用的返利模型 具体格式咨询客户端
%% CUSTOM_ACT_TYPE_CONTINUE_CONSUME
%% 奖励条件说明
%% {type, N}    N :: 1|2  1每日消费 2累计天数消费
%% {gold, N}    N :: integer()  累计消费钻石数量
%% {day, N}     N :: integer()  累计天数消费特有，表示每天消费达到多少钱累计N天
%% CUSTOM_ACT_TYPE_OVERFLOW_GIFTBAG 超值礼包
%% 活动条件说明
%% [{role_lv, 120}] 玩家参与等级
%% [{buy_day, 3}] 玩家到达配置等级后多少天内允许购买商品，此天数按满24小时算一天
%% 奖励条件说明
%% {gift_id, 礼包ID} 有这项的话发此礼包(奖励仅当显示用) 否则直接发配的奖励
%% {old_price, 物品正则} 格式[{Type, Id, Num}] 旧价格
%% {now_price, 物品正则} 格式[{Type, Id, Num}] 现价格
%% {icon, 资源id} 宝箱资源 客户端用
%% CUSTOM_ACT_TYPE_SPEC_SELL 精品特卖
%% 活动条件说明
%% [{role_lv, 120}] 玩家参与等级
%% [{buy_day, 3}] 玩家到达配置等级后多少天内允许购买商品，此天数按满24小时算一天 如果不配的话 活动时间内都能买
%% 奖励条件说明
%% {now_price, 物品正则} 格式[{Type, Id, Num}] 现价格
%% {icon, 资源id} 资源 客户端用
%% CUSTOM_ACT_TYPE_LUCKY_FLOP 幸运翻牌
%% 活动条件说明
%% {role_lv, 120} 玩家参与等级
%% {times_lim, 120} 每日翻牌总次数
%% {refresh_cost, [{[1,2],3}]} 刷新消耗 {[次数下限, 次数上限], 道具数量}
%% {flop_cost, [{[1,2],3}]} 翻牌消耗 {[次数下限, 次数上限], 道具数量}
%% 奖励条件说明
%% {rweight, 刷新权重}
%% {sweight, 抽取权重}

%% CUSTOM_ACT_TYPE_DAILY_TURNTABLE 每日活跃转盘
%% 活动条件说明
%% {role_lv, 120} 玩家参与等级
%% {one_cost, [{0, 3310001, 1}]} 转一次消耗
%% {ten_cost, [{0, 3310001, 9}]} 转十次消耗
%% 奖励条件说明
%% 奖品条件
%% {weight, 权重}
%% {is_tv, 1|0} 是否发传闻 1:是 0:否
%% {is_rare, 1|0} 是否大奖  1:是 0:否
%% {limit_type, 1|0} 限制类型 0:个人 1:全服
%% {refresh_num, 数量} 重置所需次数
%% {limit_num, 数量}  限制数量
%% {topic, 1}  标题 客户端用
%% 活跃度奖励 偏移值100+
%% {liveness, 活跃度}

%% CUSTOM_ACT_TYPE_DAILY_RECHARGE_EX 每日累充(每日重置版)
%% 活动条件说明
%% 无
%% 奖励条件说明
%% {gold, 当天累计充值多少钻石可以领取奖励}

%% CUSTOM_ACT_TYPE_INVESTMENT 运营投资活动
%% 活动条件说明
%% [{cost,物品列表}] 物品列表: [{类型,物品id,数量}]
%% 奖励条件说明
%% [{day,N}] 投资后第几天可以领取

%% CUSTOM_ACT_TYPE_SINGLE_RECHARGE 每日单笔充值
%% 活动条件说明
%% 无
%% 奖励条件说明
%% {gold_range, [单笔下限, 单笔上限]} 单笔充值多少钻石即可领取奖励
%% {times_lim, 次数限制}

%% CUSTOM_ACT_TYPE_MONEY_EARN 货币赚赚活动
%% {money_type, 货币类型}
%% {open_day, [开始天数, 结束天数]} 天数是相对活动开始时间的第几天

%% CUSTOM_ACT_TYPE_BOSS_DOUBLE 首领翻倍活动
%% 例 {boss_cd, 50}  缩短50%复活时间 多个活动存在的话相乘

%% CUSTOM_ACT_TYPE_DAILY_ACTIVITY 每日活跃
%% 活动条件说明
%% 无
%% 奖励条件说明
%% {need_live, 活跃度值} 当日活跃度达到多少即可领取奖励

%% CUSTOM_ACT_TYPE_SUPPLICATION 祈愿
%% 活动条件说明
%% {role_lv, 开放等级}
%% {supplication_cost, [{物品类型,物品id,物品数量},...]} 祈愿消耗
%% {cost_day, [{星期几, {开始小时, 开始分}, {结束小时,结束分}},...]} 祈愿开放星期
%% {reward_day, [星期几,...]}任务开放星期
%% {guaranty, {保底所需次数, 保底最低等级}}
%% {task, [{任务id, 任务条件, 任务奖励ID},...]}
%% 任务条件：
%% {daily_login}每日登录
%% {daily_charge}每日首充
%% {liveness, 所需活跃度} 活跃度
%% 任务奖励ID：
%% 对应定制活动奖励档次ID，奖励名称填的是任务描述，奖励描述填的是任务跳转
%% 奖励条件说明
%% {reward_lv, 奖励等级}
%% {weight, 权重}
%% {effect, 是否有特效}
%% 1有特效 0无特效
%% {broadcast, 是否广播} 1广播 0不广播

%% CUSTOM_ACT_TYPE_HOPE_GIFT 明日之礼活动
%% 奖励领取条件（用于购买条件及返还配置读取)：
%% {original_price, 原价}
%% {hopegift_cost, 购买价}
%% {return_total,{GoodsTypeId, GoodsNum}} 总返还
%% {return_day,{GoodsTypeId, GoodsNum}}   日返还
%% {show,1,1,1} 前端用的

%% CUSTOM_ACT_TYPE_GROUP_BUY 团购活动
%% 奖励领取条件（购买）：
%% {gold_type, GoldType}
%% {original_price, 原价}
%% {discount, {8,7,6,5,4}} 折扣档次配置
%% {member,{0,5,10,15,20}} 各折扣档次对应的团购人数需求（人数为修正数据，该数据>=真实团购人数）
%% {fake,{0,15,30,50,60}}  各折扣档次团队人数修正控制参数（到保底时间修改人数趋近直至配置人数）

%% CUSTOM_ACT_TYPE_DAILY_CHARGE_CONSUME 每日累充消费 - 弹珠抽奖活动
%% 活动条件
%% {pellet_cost,[{0,102350,1}]}  控制弹珠抽奖的道具
%% 奖励领取条件
%% {type,1}         类型1表示每日累充，类型2表示每日累消
%% {gold,60}        完成条件 - 彩钻数量
%% {show_gold,1280} 玩家当日充值达到多少彩钻，才显示该页签，否则隐藏（前端用）

%% ==================================== 定制活动奖励格式 ==================================
-define(REWARD_FORMAT_TYPE_COMMON,      1).                 %% 通用奖励格式[{类型,道具id,数量}]
-define(REWARD_FORMAT_TYPE_LV,          2).                 %% 等级阶段奖励格式[{等级,[{类型,道具id,数量}]
-define(REWARD_FORMAT_TYPE_RAND,        3).                 %% 随机奖励格式[{权值,[{类型,道具id,数量}]}]
-define(REWARD_FORMAT_TYPE_WLV,         4).                 %% 世界等级阶段奖励格式[{世界等级,[{类型,道具id,数量}]}]
-define(REWARD_FORMAT_TYPE_CAREER,      5).                 %% 职业奖励格式[{职业,[{类型,道具id,数量}]}]
-define(REWARD_FORMAT_TYPE_SPECIFY_LV,  6).                 %% 指定玩家等级段奖励格式[{[玩家等级下限,玩家等级上限],[{类型,道具id,数量}]}] 不在这些等级区间的没有奖励
-define(REWARD_FORMAT_TYPE_SPECIFY_LVACAREER,  7).          %% 指定玩家等级段和职业奖励格式[{[玩家等级下限,玩家等级上限],{职业, [{类型,道具id,数量}]}}] 不在这些等级区间的没有奖励
-define(REWARD_FORMAT_TYPE_SPECIFY_WLVACAREER, 8).          %% 指定世界等级段和职业奖励格式[{[世界等级下限,世界等级上限],{职业, [{类型,道具id,数量}]}}] 不在这些等级区间的没有奖励
%% ==================================== 定制活动奖励格式 ==================================

-define(CUSTOM_ACT_NORMAL,              1).                 %% 定制活动(官方服)
-define(CUSTOM_ACT_EXTRA,               2).                 %% 额外定制活动(渠道服)

-define(CUSTOM_ACT_SWITCH_CLOSE,        0).                 %% 关闭
-define(CUSTOM_ACT_SWITCH_OPEN,         1).                 %% 开启

%% 开启类型
-define(OPEN_TYPE_SPECIFY_TIME,         1).                 %% 指定时间开启
-define(OPEN_TYPE_WEEK,                 2).                 %% 每周几循环开启
-define(OPEN_TYPE_MONTH,                3).                 %% 每月几号循环开启
-define(OPEN_TYPE_SPECIFY_DATE,         4).                 %% 固定日期开启
-define(OPEN_TYPE_CONTINUOUS_WEEK,      5).                 %% 每周几循环开启,周数需要连续
-define(OPEN_TYPE_REPEAT_OPEN,          6).                 %% 循环开启

-define(OPEN_TYPE_LIST, [
    ?OPEN_TYPE_SPECIFY_TIME,
    ?OPEN_TYPE_WEEK,
    ?OPEN_TYPE_MONTH,
    ?OPEN_TYPE_SPECIFY_DATE,
    ?OPEN_TYPE_CONTINUOUS_WEEK,
    ?OPEN_TYPE_REPEAT_OPEN
    ]).

%% 定制活动状态
%% >= 开始时间 < 结束时间为活动开启中
-define(CUSTOM_ACT_STATUS_CLOSE,            0).                 %% 定制活动关闭
-define(CUSTOM_ACT_STATUS_OPEN,             1).                 %% 定制活动开启
-define(CUSTOM_ACT_STATUS_MANUAL_CLOSE,     2).                 %% 定制活动手动关闭 比如某些活动出问题了后台手动关闭
-define(CUSTOM_ACT_STATUS_MERGE_CLOSE,      3).                 %% 定制活动合服前关闭结算

-define(EXTRA_CUSTOM_ACT_SUB_ADD,       10000).             %% 额外定制活动子类型偏移值

-define(ACT_DURATION_ONE_DAY,           86399).             %% 活动一天的时间

%% 活动期间清理类型
-define(CUSTOM_ACT_CLEAR_NULL,              1).             %% 不清理
-define(CUSTOM_ACT_CLEAR_ZERO,              2).             %% 0点清理
-define(CUSTOM_ACT_CLEAR_FOUR,              3).             %% 4点清理
-define(CUSTOM_ACT_CLEAR_CLOSE,             4).             %% 活动结束清理

-define(TIMER_START,    1).             %% 定时器开启
-define(RELOAD_START,   2).             %% 重新加载开启

%% 奖励状态
-define(ACT_REWARD_CAN_NOT_GET,         0).         %% 未满足条件不能领取
-define(ACT_REWARD_CAN_GET,             1).         %% 可以领取
-define(ACT_REWARD_HAS_GET,             2).         %% 已经领取
-define(ACT_REWARD_TIME_OUT,            3).         %% 奖励超时

%% 定制活动通用红点礼包
-define(ACT_COMMON_GIFT_DAILY,          1).         %% 日常
-define(ACT_COMMON_GIFT_ONCE,           2).         %% 活动期间只领一次

%% 额外数据类型
-define(ALREADY_TRIGGER_GIFT,          0).         %% 已经触发过的gift
-define(TOWER_PASS_BEST_NUM,           1).         %% 爬塔副本困难模式三星通关数
-define(PET_PASS_BEST_NUM,             2).         %% 宠物副本三星通关数
-define(WARSOUL_STAR_INFO,             3).         %% 战魂星级
-define(GALAXY_DUN_CHAPTER,            4).         %% 星辰副本章节数

-record(custom_act_cfg, {
    type = 0,                           %% 活动主类型
    subtype = 0,                        %% 活动子类型
    act_type = 0,                       %% 活动类型 1:开服活动 2:合服活动 3:运营活动 4:单独图标 5:封测活动
    name = <<>>,                        %% 活动名字
    desc = <<>>,                        %% 活动描述
    opday_lim = [],                     %% 开服天数限制
    merday_lim = [],                    %% 合服天数限制
    % wlv_lim = [],                       %% 世界等级限制
    optype = 0,                         %% 开启类型 1: 具体时间控制 2: 每周几固定开启 3: 每月固定天数开启 4: 固定时间开启 5: 每周几循环开启,周数需要连续 6: 循环开启
    opday = [],                         %% 根据开启类型填 周几开启[周几] 每月固定天数开启[每月几号] 固定时间开启[{年,月,日}]
    optime = [],                        %% 开启时间段 活动当天什么时间段开启[{{开始时,开始分,开始秒}, {结束时,结束分,结束秒}}]
    start_time = 0,                     %% 活动开始时间 开启类型为0有效
    end_time = 0,                       %% 活动结束时间 开启类型为0有效
    clear_type = 0,                     %% 活动期间数据清理类型 1=不清理；2=0点清理；3=4点清理
    condition = []                      %% 条件
    }).

-record(custom_act_reward_cfg, {
    type = 0,                           %% 活动主类型
    subtype = 0,                        %% 活动子类型 注意：在代码里面不要拿这个subtype来用 官方定制活动和额外定制活动可能会配一样的 统一用act_info里面的！！！
    grade = 0,                          %% 奖励档次
    name = <<>>,                        %% 奖励名字
    desc = <<>>,                        %% 奖励描述
    condition = [],                     %% 奖励领取条件
    format = 0,                         %% 奖励格式 见定制活动奖励格式
    reward = []
    }).

-record(ac_custom_cfg, {
        id = 0,
        value = []
    }).

%% 折扣满减-优惠券配置
-record(discount_mall_cfg, {
    goods_id = 0,           %% 优惠券id
    type = 0,               %% 类型##1折扣/2满减
    condition = [],         %% 使用条件
    discount = 0,           %% 折扣满减
    ab_discount = 0         %% 绝对满减
}).
%% 折扣满减-抽奖概率
-record(discount_mall_coupon_rate_cfg, {
    id = 0,                 %% 序号
    goods_id = 0,           %% 优惠券id
    weight = 0,             %% 权重
    min_count = 0,          %% 入库次数下限
    max_count = 0           %% 入库次数上限
}).
%% 定制活动数据
-record(custom_act_state, {
    unopen_kf_act = []                  %% [#act_info{}]保存跨服中心同步过来的跨服定制活动(因开服合服天数不满足或者世界等级不满足暂未开启的活动)
    }).
%% 开启中的活动信息
-record(act_info, {
    key = {0, 0},                       %% {type, subtype}
    wlv = 0,                            %% 活动开启时候的世界等级
    stime = 0,
    etime = 0,
    trigger_time = 0                    %% 是否触发时刻，新开活动的时候会置为1发给前端
    }).

%% 玩家身上的定制活动数据
-record(status_custom_act, {
    reward_map = #{}                    %% #{{type, subtype, grade} => #reward_status{}}
    ,custom_act_personal = []           %% 开启中的角色差异话活动[#custom_act_personal{}]
    ,extra_data = []                    %% 额外数据，用于记录副本三星通关数等其它数据
    }).

%% 通用的角色奖励领取状态
-record(reward_status, {
    receive_times = 0,                  %% 奖励领取次数
    utime = 0                           %% 数据更新时间
    }).

%% 角色差异话活动数据
-record(custom_act_personal, {
    key      = {0, 0},  %% {活动主类型, 活动次类型}
    s_time   = 0,       %% 活动开始时间
    e_time   = 0,       %% 活动结束时间:数值1不需要显示倒计时
    time     = 0,       %% 活动数据最后更新时间
    act_data = [],      %% 定制活动统计数据##具体活动类型自定义
    red_gift = []       %% 红点礼包奖励
}).

%% 用来取奖励的辅助参数 有些奖励玩家没有领取，要补发给他们，因此存了得到奖励当时的情况
-record (reward_param, {
    player_lv = 0,
    wlv = 0,
    sex = 0,
    career = 0
    }).

%% 公会争霸运营活动
-record(custom_act_gwar, {
    join_list = [],
    dominator_guild_id = 0,
    dominator_id = 0,
    gmember_ids = []
    }).

%% 转盘活动
-record(custom_act_turntable, {
    record = #{},       %% 奖励记录 #{{ActType, SubType} => [{Id, RoleId, Reward, Time}]}
    receive_times = #{} %% 抽奖次数 #{{ActType, SubType} => #{RoleId => Times}}
    }).

%% 定制活动-活动统计数据
-record(custom_act_data, {
    type = 0                        %% 活动主类型
    ,subtype = 0                    %% 活动子类型
    ,time = 0                       %% 活动数据最后更新时间
    ,act_data = []                  %% 活动统计数据(各个活动自己控制)
    ,red_gift = []                  %% [{红点礼包类型,礼包领取状态}]
}).


%% 角色招财猫数据
-record(role_luckycat, {
        recharge = 0,              %% 充值
        times = 0                  %% 已抽奖次数
    }).


%% 活动展示数据
-record(custom_tv_data, {
    role_id = 0                     %% 角色Id
    ,name = <<>>                    %% 角色名字
    ,goods_id = 0                   %% 物品类型Id
    ,num  = 0                       %% 物品数量
    ,time = 0                       %% 时间戳
}).

%% 小额连充活动
-record(small_recharge, {
    award_info = []                 %% 已达成条件的奖励列表[#small_award{}]
    ,resign   = 0					%% 今日补签次数
    ,retime   = 0					%% 上次补签时间
    ,refresh  = 0                   %% 刷新时间
    ,time     = 0					%% 是否完成今日连充
    ,award_num = 0                  %% 已达成的奖励数量
}).

%% 小额连充活动
-record(small_award, {
    award_id = 0                    %% 奖励Id
    ,process = 0                    %% 充值进度
    ,status = 0                     %% 领取状态 0已激活充值任务;1可以领取;2已经领取;3未激活
    ,time = 0                       %% 达成时间戳
}).

%% 定制活动-0元礼包活动数据
-record(custom_free_gift_award, {
    award_id = 0                    %% 奖励Id
    ,time = 0                       %% 购买时间戳
    ,is_get = 0                     %% 是否已经领取
}).

%%投资 活动数据
-record(custom_act_invest, {
    grade    = 0,                   %% 档次
    time     = 0,                   %% 购买时间
    awards   = []                   %% 活动领取情况[{奖励ID 1,奖励状态 0}] 0不可领1可领2已领
}).

-record(custom_cell_foster, {
    award_id = 0,
    process  = 0,  %%进度
    status   = 0   %%状态
}).


%%封榜数据
-record(custom_vie, {
        score = 0                 %% 积分
    }).

%% 明日之礼 - 恭贺礼包活动数据 存储于custom_act_data
-record(custom_hope_gift_award, {
        grade_id = 0                    %% 档位Id
        ,buy_time = 0                   %% 购买时间
        ,cost = 0                       %% 购买时消耗了多少勾玉
        ,got_count = 0                  %% 领取数量
        ,last_got_time = 0              %% 最近领取时间
    }).

%% 明日之礼 - 恭贺礼包活动数据 存储于custom_act_data
%% CUSTOM_ACT_TYPE_HOPE_GIFT
-record(custom_hope_gift, {
        start_time = 0                  %% 活动开始时间戳
        ,buy_list = []                  %% 已购买的奖励记录[#custom_hope_gift_award{}]
        ,round = 0                      %% 抽奖轮次
        ,draw_got_ids = []              %% 本轮次已抽到的奖励Id [AwardId]
        ,draw_time = 0                  %% 最近一次抽奖时间戳
        ,draw_count = 0                 %% 当天抽奖次数（根据draw_time判断）
    }).

%% 每日累充消费（弹珠活动）数据 存储于custom_act_data
%% CUSTOM_ACT_TYPE_DAILY_CHARGE_CONSUME
%% 记录最近两次领取时间，用于做昨天领取与否的判断，进而做结算未领取返还
-record(custom_act_pellet, {
        grade_id = 0                    % 活动档次id
        ,got_time = 0                   % 最近领取时间
        ,last_got_time = 0              % 再往前一个领取时间
        ,return_midnight = 0            % 返还奖励对应的数据归属日期午夜时间（例如返昨天的则是昨天0点时间）
        ,last_return_midnight = 0       % 同return_midnight，多记录一个早一次的时间
    }).


%% 塔罗牌数据 存储于custom_act_data
-record(custom_act_tarot, {
    pos_status = [],                    % 塔罗牌翻牌状态 [{pos, status},...] {位置,状态}
    reward_pools = [],                  % 奖池状态 [{{goods_type, goods_id, num}, status},...]
    num = 0                             % 翻牌第几次
    }).


%%限时掉落配置
-record(custom_act_limit_drop, {
    drop_type = 0,  %%掉落类型
    drop_way  = 0,  %%boss类型
    desc  = "",
    link = "",
    award = []
}).

%% 折扣商城
-record(custom_act_discount_mall, {
    log = []            %% 购买记录
    , free_count = 0    %% 免费抽奖次数
    , count = 0         %% 抽奖次数
}).
-record(discount_mall_log,{
    time = 0,
    coupon_discount = 0,
    coupon_ab_discount = 0,
    money = 0,
    goods_list = []
}).


%%彩钻复制机
-record(custom_act_loans, {
	money = 0,  %%已存
	ltime = 0,  %%上次领取时间
	stime = 0,  %%活动开始时间
	etime = 0   %%活动结束时间
}).


%%积分拼图
-record(custom_act_slices, {
	grades = [],
	tasks = []    %[{行,列,num,0/1/2}]
}).

%%积分拼图任务
-record(slice_task, {
	suit = 0, %%套件
	row = 0,  %%行
	colu = 0, %%列
	mod  = 0, %%模块
	sub  = 0, %%子ID
	name = "",
	times = 0 %%次数要求
}).

%%抽奖概率展示
-record(act_draw_ratio,{
	module = 0,
	sub_module = 0,
	sub_act = 0,
	award_id = 0,
	name = "",
	goods_name = "",
	ratio = 0
}).


%% 三日作战任务奖励配置
-record(custom_act_days_plan_task, {
        task_type = 0                      %% 任务类型Id
        ,task_id  = 0                      %% 任务Id
        ,open_lv = 0                       %% 开启等级
        ,recommend = 0                     %% 推荐度
        ,content = 0                       %% 任务内容
        ,reward = []                        %% 任务奖励
}).

%% 三日作战玩家数据
-record(act_days_plan, {
    day_list = []                       %% 第几天[#day_buy{}]
    ,task_stat = []                     %% 任务完成度统计[#day_task{}]
}).

%% 三日作战任务进度
-record(days_task, {
    task_type = 0                          %% 任务类型Id
    ,value    = 0                          %% 任务进度
    ,time     = 0                          %% 最近更新任务进度时间戳
}).

%% 三日作战玩家数据
-record(days_buy, {
    day = 0                             %% 第几天
    ,buy_times = 0                      %% 购买次数
    ,logs = []                          %% 领取任务奖励记录[{TaskTypeId, TaskId}]
}).

%% 人参果树活动数据
-record(custom_act_tree_lottery, {
    count = 0           %% 抽奖次数
    , next_hit = 0      %% 下次必中
    , score = 0         %% 积分
    , free_count = 0    %% 免费抽奖次数
}).

%% 合成机个人数据
-record(custom_act_printer_draw, {
    draw_list = [],     %% 个人解锁数据 [配方id]
    collect_list = []   %% 个人收藏数据 [配方id]
    }).

%% 获得开启中定制活动
-define(select_opening_custom_act,
    <<"select type, subtype, wlv, stime, etime from custom_act_opening">>).
%% 新开定制活动
-define(insert_opening_custom_act,
    <<"replace into custom_act_opening(type, subtype, wlv, stime, etime) values(~p, ~p, ~p, ~p, ~p)">>).
%% 更新开启中的定制活动
-define(update_opening_custom_act,
    <<"update custom_act_opening set stime = ~p, etime = ~p where type = ~p and subtype = ~p">>).
%% 关闭定制活动
-define(delete_opening_custom_act,
    <<"delete from custom_act_opening where type = ~p and subtype = ~p">>).
%% 重新初始化开启中的定制活动，清除旧数据
-define(clear_opening_custom_act,
    <<"truncate table custom_act_opening">>).

%% 获得开启中的角色差异化活动
-define(select_opening_custom_act_personal,
    <<"select type, subtype, s_time, e_time, time, act_data, red_gift from custom_act_personal where role_id=~p">>).
%% 新增开启的角色差异化活动
-define(insert_opening_custom_act_personal,
    <<"replace into custom_act_personal (role_id,type,subtype,s_time,e_time,time,act_data,red_gift) values (~p, ~p, ~p, ~p, ~p, ~p,'~ts','~ts')">>).
%% 更新开启的角色差异化活动
-define(update_opening_custom_act_personal,
    <<"update custom_act_opening set stime = ~p, etime = ~p where type = ~p and subtype = ~p">>).
%% 活动结束，清理数据
-define(delete_opening_custom_act_personal,
    <<"delete from `custom_act_personal` where `type`=~p and `subtype`=~p">>).
%% 某个玩家活动结束，清理数据
-define(delete_opening_custom_act_rol_personal,
    <<"delete from `custom_act_personal` where `role_id`=~p and `type`=~p and `subtype`=~p">>).

-define(select_custom_act_personal_data,
    <<"select data from custom_act_personal_data where rid=~p">>).
-define(update_custom_act_personal_data,
    <<"replace into `custom_act_personal_data`(`rid`, `data`) values(~p, '~ts')">>).


%% 备注 custom_act_receive_reward表不做清理，通过比较utime判断数据的有效性
-define(select_custom_act_reward_receive,
    <<"select type, subtype, grade, receive_times, utime from custom_act_receive_reward where role_id = ~p">>).
-define(insert_custom_act_reward_receive,
    <<"insert into custom_act_receive_reward(role_id, type, subtype, grade, receive_times, utime) values (~p, ~p, ~p, ~p, ~p, ~p)">>).
-define(update_custom_act_reward_receive,
    <<"update custom_act_receive_reward set receive_times = ~p, utime = ~p where role_id = ~p and type = ~p and subtype = ~p and grade = ~p">>).
-define(delete_custom_act_reward_receive_by_stype,
    <<"delete from custom_act_receive_reward where type = ~p and subtype = ~p">>).

%% --------------------------跨服定制活动相关--------------------------
-define(select_opening_kf_custom_act,
    <<"select type, subtype, wlv, stime, etime from kf_custom_act_opening">>).
-define(insert_opening_kf_custom_act,
    <<"insert into kf_custom_act_opening(type, subtype, wlv, stime, etime) values(~p, ~p, ~p, ~p, ~p)">>).
-define(update_opening_kf_custom_act,
    <<"update kf_custom_act_opening set stime = ~p, etime = ~p where type = ~p and subtype = ~p">>).
-define(delete_opening_kf_custom_act,
    <<"delete from kf_custom_act_opening where type = ~p and subtype = ~p">>).
-define(clear_opening_kf_custom_act,
    <<"truncate table kf_custom_act_opening">>).



%% --------------------------定制活动保存的统计数据相关--------------------------
%% 查询定制活动保存的统计数据
-define(SQL_SELECT_CUSTOM_ACT_DATA, <<"select `type`, `subtype`, `time`, `act_data`, `red_gift` from
    `custom_act_data` where `rid`=~p">>).

%% 查询定制活动保存的统计数据
-define(SQL_SELECT_CUSTOM_ACT_DATA_2, <<"select `type`, `subtype`, `time`, `act_data`, `red_gift` from
    `custom_act_data` where `rid`=~p and `type`=~p and `subtype`=~p">>).

-define(SQL_SAVE_CUSTOM_ACT_DATA, <<"replace into `custom_act_data`(
    `rid`, `type`, `subtype`, `time`, `act_data`, `red_gift`) values(~p, ~p, ~p, ~p, '~ts', '~ts')">>).

-define(SQL_UPDATE_CUSTOM_ACT_RED_GIFT, <<"update `custom_act_data` set `red_gift` = '~ts' where
    `rid` = ~p and `type` = ~p and `subtype` = ~p">>).

%% 清除定制活动保存的统计数据
%% 根据定制活动主次类型删除定制活动保存的统计数据
-define(SQL_DELETE_CUSTOM_ACT_DATA_1, <<"delete from `custom_act_data` where `type`=~p and `subtype`=~p">>).
%% 根据定制活动主次类型和特定玩家删除定制活动保存的统计数据
-define(SQL_DELETE_CUSTOM_ACT_DATA_2, <<"delete from `custom_act_data` where `rid`=~p and `type`=~p and `subtype`=~p">>).
