超值返利活动
parent
ef14f61e68
commit
b5323a534e
|
@ -514,7 +514,7 @@ public class GlobalDataManaager implements IManager {
|
|||
BuyGoodsNewLogic.refreshWelfareState(user);
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.LOGIN_GAME,0);
|
||||
// 惊喜礼盒,超值基金,零点逻辑(可以同用一个状态)
|
||||
Poster.getPoster().dispatchEvent(new SuperBoxEvent(user.getId(),SuperBoxEvent.fund_zero_init));
|
||||
Poster.getPoster().dispatchEvent(new SuperBoxEvent(user.getId(),SuperBoxEvent.zero_init));
|
||||
// 心愿格子信息刷新
|
||||
HeroLogic.getInstance().resetWishDrawCardInfoMap(user);
|
||||
//玉虚论道每日刷新
|
||||
|
|
|
@ -105,8 +105,6 @@ public interface ActivityType {
|
|||
int CONTINUOUS_GIFT_NEW = 87;//新连续礼包
|
||||
int ARENA_RANK_EXPERIMENT = 88;//竞技试炼
|
||||
int DAILY_PREFERENTIAL_GIFT = 89;//每日特惠礼包开启的活动
|
||||
int NEW_RECHARGE_SUM_DAY_6 = 90;//新积天豪礼6元充值活动
|
||||
int NEW_RECHARGE_SUM_DAY_30 = 92;//新积天豪礼30元充值活动
|
||||
int NEW_DAILY_RECHARGE = 93;//新每日充值
|
||||
int SPECIAL_MONSTER_RANDOM_ACTIVITY = 100;//灵兽宝阁活动
|
||||
int SPECIAL_MONSTER_GIFT_ACTIVITY = 101;//灵兽礼包
|
||||
|
@ -147,4 +145,8 @@ public interface ActivityType {
|
|||
int RECHARGE_FIRST = 108;//直充首冲活动
|
||||
int FREE_RECHARGE = 109;//免费充值,仙充
|
||||
int OPEN_SERVER_COMPETE_RANK = 110;//开服冲榜活动
|
||||
|
||||
int NEW_RECHARGE_SUM_DAY_6 = 90;//超值返利6
|
||||
int NEW_RECHARGE_SUM_DAY_12 = 111;//超值返利12
|
||||
int NEW_RECHARGE_SUM_DAY_30 = 92;//超值返利30
|
||||
}
|
||||
|
|
|
@ -96,8 +96,11 @@ public enum ActivityTypeEnum {
|
|||
TRANSFORMATION_DRAW_CARD(ActivityType.TRANSFORMATION_DRAW_CARD,DefaultEmptyActivity::new),//方寸寻宝
|
||||
CONTINUOUS_GIFT_NEW(ActivityType.CONTINUOUS_GIFT_NEW,ContinuousGiftActivity::new),//新连续礼包
|
||||
ARENA_RANK_EXPERIMENT(ActivityType.ARENA_RANK_EXPERIMENT,ArenaRankActivity::new),//竞技试炼
|
||||
NEW_RECHARGE_SUM_DAY_6(ActivityType.NEW_RECHARGE_SUM_DAY_6,NewRechargeSumDayActivity::new),//新积天豪礼
|
||||
NEW_RECHARGE_SUM_DAY_30(ActivityType.NEW_RECHARGE_SUM_DAY_30,NewRechargeSumDayActivity::new),//新积天豪礼
|
||||
|
||||
NEW_RECHARGE_SUM_DAY_6(ActivityType.NEW_RECHARGE_SUM_DAY_6,NewRechargeSumDayActivity::new),//超值返利6
|
||||
NEW_RECHARGE_SUM_DAY_12(ActivityType.NEW_RECHARGE_SUM_DAY_12,NewRechargeSumDayActivity::new),//超值返利12
|
||||
NEW_RECHARGE_SUM_DAY_30(ActivityType.NEW_RECHARGE_SUM_DAY_30,NewRechargeSumDayActivity::new),//超值返利30
|
||||
|
||||
DAILY_PREFERENTIAL_GIFT(ActivityType.DAILY_PREFERENTIAL_GIFT,DailyPreferentialGiftActivity::new), //每日特惠中60元七天特惠活动
|
||||
SUMMON_TREASURE(ActivityType.SUMMON_TREASURE,SummonTreasureActivity::new),//招募秘宝
|
||||
NEW_PLAYER_SHOP(ActivityType.NEW_PLAYER_SHOP, NewPlayerShopActivity::new),
|
||||
|
|
|
@ -147,7 +147,7 @@ public class GiveEndlessDrawActivity extends AbstractActivity {
|
|||
ActivityProgressInfo progressInfo = mission.getActivityMissionMap().get(missionId);
|
||||
int state = getState(user, rewardConfig, progressInfo);
|
||||
if (state != 1){
|
||||
throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE,"领取条件不满足,活动id ==> 挡位id:"+id+"==>"+missionId);
|
||||
throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE,"领取失败,activityId->missionId->state, "+id+"->"+missionId+"->"+state);
|
||||
}
|
||||
// reward
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, rewardConfig.getReward(), BIReason.TAKE_ACTIVITY_REWARD);
|
||||
|
|
|
@ -1,77 +1,137 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
import com.ljsd.jieling.jbean.ActivityManager;
|
||||
import com.ljsd.jieling.jbean.ActivityMission;
|
||||
import com.ljsd.jieling.jbean.ActivityProgressInfo;
|
||||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.activity.event.IEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.activity.event.RechargeRewardEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.SuperBoxEvent;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import config.SActivityRewardConfig;
|
||||
import rpc.protocols.CommonProto;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 超值返利
|
||||
*/
|
||||
class NewRechargeSumDayActivity extends AbstractActivity {
|
||||
|
||||
public NewRechargeSumDayActivity(int id) {
|
||||
super(id);
|
||||
Poster.getPoster().listenEvent(this, RechargeRewardEvent.class);
|
||||
Poster.getPoster().listenEvent(this, SuperBoxEvent.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initActivity(User user) throws Exception {
|
||||
ActivityMission mission = new ActivityMission();
|
||||
// 初始化阶段奖励
|
||||
ActivityLogic.getInstance().initOtherMission(mission, new ArrayList<>());
|
||||
user.getActivityManager().getActivityMissionMap().put(id, mission);
|
||||
LOGGER.info("超值返利初始化..."+id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEvent(IEvent event) throws Exception {
|
||||
super.onEvent(event);
|
||||
if (!(event instanceof RechargeRewardEvent)) {
|
||||
if (!(event instanceof SuperBoxEvent)) {
|
||||
return;
|
||||
}
|
||||
RechargeRewardEvent rechargeRewardEvent = (RechargeRewardEvent) event;
|
||||
int rechargeCount=rechargeRewardEvent.getRechargeCount();
|
||||
User user = UserManager.getUser(rechargeRewardEvent.getUid());
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
for (Map.Entry<Integer, ActivityProgressInfo> item : activityMission.getActivityMissionMap().entrySet()) {
|
||||
ActivityProgressInfo activityProgressInfo = item.getValue();
|
||||
int missionId=item.getKey();
|
||||
SActivityRewardConfig missionConfig=SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
|
||||
if (missionConfig.getSort()-1==activityMission.getV()&&activityProgressInfo.getState()==ActivityType.WILL_TAKE){
|
||||
int dayRechargeCount= activityProgressInfo.getProgrss()+rechargeCount;
|
||||
activityProgressInfo.setProgrss(dayRechargeCount);
|
||||
}
|
||||
activityMission.getActivityMissionMap().put(item.getKey(), activityProgressInfo);
|
||||
|
||||
SuperBoxEvent superBox = (SuperBoxEvent) event;
|
||||
User user = UserManager.getUser(superBox.getUserId());
|
||||
int goodId = superBox.getGiftId();
|
||||
// 不同状态礼包信息
|
||||
if (goodId == SuperBoxEvent.zero_init){
|
||||
zeroUpdate(user);
|
||||
}else {
|
||||
goodUpdate(user, goodId);
|
||||
}
|
||||
// 状态推送
|
||||
sendActivityProgress(user, user.getActivityManager().getActivityMissionMap().get(id), null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 跨天更新数据
|
||||
* @param user
|
||||
*/
|
||||
private void zeroUpdate(User user){
|
||||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
mission.setV(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* 购买礼包更新数据
|
||||
* @param user
|
||||
* @param goodId
|
||||
*/
|
||||
private void goodUpdate(User user, int goodId){
|
||||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
// 表示已购买今天的礼包
|
||||
if (mission.getV() == 1){
|
||||
return;
|
||||
}
|
||||
List<SActivityRewardConfig> rewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||
// 奖励按天数排序
|
||||
List<SActivityRewardConfig> list = rewardConfigs.stream().sorted(Comparator.comparing(SActivityRewardConfig::getSort)).collect(Collectors.toList());
|
||||
for (SActivityRewardConfig config : list) {
|
||||
// null礼包表示没有买的礼包
|
||||
ActivityProgressInfo info = mission.getActivityMissionMap().get(config.getId());
|
||||
if (info == null){
|
||||
// 礼包id能对上,赋值入库
|
||||
if (goodId == config.getValues()[0][0]){
|
||||
info = new ActivityProgressInfo();
|
||||
info.setState(2);
|
||||
mission.getActivityMissionMap().put(config.getId(),info);
|
||||
// 更新已购买标记
|
||||
mission.setV(1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume(User user)throws Exception {
|
||||
ActivityManager activityManager = user.getActivityManager();
|
||||
ActivityMission activityMission = activityManager.getActivityMissionMap().get(id);
|
||||
int buyNum=0;
|
||||
for (Map.Entry<Integer, ActivityProgressInfo> progressInfoEntry : activityMission.getActivityMissionMap().entrySet()) {
|
||||
SActivityRewardConfig rewardConfig= SActivityRewardConfig.getsActivityRewardConfigByMissionId(progressInfoEntry.getKey());
|
||||
if (progressInfoEntry.getValue().getProgrss()>=rewardConfig.getValues()[0][0]||progressInfoEntry.getValue().getState()==ActivityType.HAD_TAKED){
|
||||
buyNum++;
|
||||
}else{
|
||||
progressInfoEntry.getValue().setProgrss(0);
|
||||
}
|
||||
public List<CommonProto.ActivityInfo.MissionInfo> getAllMissInfo(User user, ActivityMission activityMission, Set<Integer> filter) {
|
||||
if (activityMission == null){
|
||||
return new ArrayList<>();
|
||||
}
|
||||
if (buyNum > activityMission.getV()) {
|
||||
activityMission.setV(activityMission.getV() + 1);
|
||||
// 策划表的配置
|
||||
List<SActivityRewardConfig> rewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||
// 返回对象
|
||||
List<CommonProto.ActivityInfo.MissionInfo> missionInfos = new ArrayList<>(rewardConfigs.size());
|
||||
// 做标记用
|
||||
ArrayList<Integer> mark = new ArrayList<>();
|
||||
for (SActivityRewardConfig config : rewardConfigs) {
|
||||
// 参数初始化
|
||||
int missionId = config.getId();
|
||||
ActivityProgressInfo info = activityMission.getActivityMissionMap().get(missionId);
|
||||
int state = getState(info, activityMission.getV(), mark);
|
||||
// 封装proto并返回
|
||||
CommonProto.ActivityInfo.MissionInfo build = CommonProto.ActivityInfo.MissionInfo.newBuilder()
|
||||
.setMissionId(missionId)
|
||||
.setProgress(0)
|
||||
.setState(state)
|
||||
.build();
|
||||
missionInfos.add(build);
|
||||
}
|
||||
if (activityMission.getV() >= SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).size()) {
|
||||
//补发未领取的奖励
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
takeAllReward(sessionByUid);
|
||||
ActivityLogic.getInstance().initMissionInfo(activityMission,id);
|
||||
}
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
return missionInfos;
|
||||
}
|
||||
|
||||
private int getState(ActivityProgressInfo info, int status, ArrayList<Integer> mark){
|
||||
if (info != null && info.getState() == 2){
|
||||
return 2;
|
||||
}
|
||||
if (status == 1){
|
||||
return 0;
|
||||
}
|
||||
if (mark.size() == 0){
|
||||
mark.add(1);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -75,7 +75,7 @@ public class SuperFundNewActivity extends AbstractActivity {
|
|||
* @throws Exception
|
||||
*/
|
||||
private void zeroRefresh(User user, int typeId) throws Exception {
|
||||
if (typeId != SuperBoxEvent.fund_zero_init){
|
||||
if (typeId != SuperBoxEvent.zero_init){
|
||||
return;
|
||||
}
|
||||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.ljsd.jieling.logic.activity.event;
|
||||
|
||||
@Deprecated
|
||||
public class RechargeRewardEvent implements IEvent {
|
||||
private int uid;
|
||||
private int rechargeCount;//充值金额
|
||||
|
|
|
@ -13,19 +13,15 @@ public class SuperBoxEvent implements IEvent {
|
|||
*/
|
||||
public static int default_id = -1;
|
||||
/**
|
||||
* 超值基金, 零点刷新初始化
|
||||
* 零点刷新初始化
|
||||
*/
|
||||
public static int fund_zero_init = -2;
|
||||
/**
|
||||
* 超值基金, 老玩家兼容
|
||||
*/
|
||||
public static int fund_old_user = -3;
|
||||
public static int zero_init = -2;
|
||||
|
||||
private int userId;
|
||||
/**
|
||||
* 礼包id
|
||||
*/
|
||||
private int giftId = default_id;
|
||||
private int giftId;
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
|
|
|
@ -240,8 +240,6 @@ public class BuyGoodsNewLogic {
|
|||
Poster.getPoster().dispatchEvent(new AutoRechargeBackEvent(user.getId(),goodsId,orderId));
|
||||
}
|
||||
|
||||
Poster.getPoster().dispatchEvent(new RechargeRewardEvent(user.getId(),(int)price));
|
||||
|
||||
int[] forbid = config.getForbid();
|
||||
if(forbid!=null&&forbid.length>0){
|
||||
//每日礼包一键购买之后,把所有单个的每日礼包的购买次数加一
|
||||
|
|
|
@ -1505,12 +1505,9 @@ public class ItemUtil {
|
|||
switch (sItem.getItemType()){
|
||||
case GlobalItemType.RMB_CARD:
|
||||
case GlobalItemType.DAY_RMB_CARD:
|
||||
info.addRmb(num);
|
||||
break;
|
||||
case GlobalItemType.XIAN_RECHARGE_CARD:
|
||||
case GlobalItemType.DAY_XIAN_RECHARGE_CARD:
|
||||
info.addRmb(num);
|
||||
Poster.getPoster().dispatchEvent(new RechargeRewardEvent(user.getId(),num));
|
||||
break;
|
||||
default:
|
||||
result = false;
|
||||
|
|
Loading…
Reference in New Issue