超值返利活动修改提交

yuanshuai 2022-02-26 00:05:29 +08:00
parent 92b7b7ee82
commit e2fc3f54cd
2 changed files with 22 additions and 26 deletions

View File

@ -5,10 +5,7 @@ import com.ljsd.jieling.jbean.ActivityManager;
import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.jbean.ActivityProgressInfo; import com.ljsd.jieling.jbean.ActivityProgressInfo;
import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.activity.event.BuyGoodsDirectEvent; import com.ljsd.jieling.logic.activity.event.*;
import com.ljsd.jieling.logic.activity.event.IEvent;
import com.ljsd.jieling.logic.activity.event.NewWelfareEvent;
import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.store.GiftGoodsType; import com.ljsd.jieling.logic.store.GiftGoodsType;
@ -26,40 +23,33 @@ class NewRechargeSumDayActivity extends AbstractActivity {
public NewRechargeSumDayActivity(int id) { public NewRechargeSumDayActivity(int id) {
super(id); super(id);
Poster.getPoster().listenEvent(this, BuyGoodsDirectEvent.class); Poster.getPoster().listenEvent(this, RechargeRewardEvent.class);
} }
@Override @Override
public void onEvent(IEvent event) throws Exception { public void onEvent(IEvent event) throws Exception {
super.onEvent(event); super.onEvent(event);
if (!(event instanceof BuyGoodsDirectEvent)) { if (!(event instanceof RechargeRewardEvent)) {
return; return;
} }
BuyGoodsDirectEvent buyGoodsDirectEvent = (BuyGoodsDirectEvent) event; RechargeRewardEvent rechargeRewardEvent = (RechargeRewardEvent) event;
int goodsId=buyGoodsDirectEvent.getGoodsId(); int rechargeCount=rechargeRewardEvent.getRechargeCount();
SRechargeCommodityNewConfig rechargeConfig=SRechargeCommodityNewConfig.getConfigById(goodsId); User user = UserManager.getUser(rechargeRewardEvent.getUid());
if (rechargeConfig==null||rechargeConfig.getType()!= GiftGoodsType.RechargeSumDay){
return;
}
User user = UserManager.getUser(buyGoodsDirectEvent.getUid());
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
boolean isSend=false;
for (Map.Entry<Integer, ActivityProgressInfo> item : activityMission.getActivityMissionMap().entrySet()) { for (Map.Entry<Integer, ActivityProgressInfo> item : activityMission.getActivityMissionMap().entrySet()) {
ActivityProgressInfo activityProgressInfo = item.getValue(); ActivityProgressInfo activityProgressInfo = item.getValue();
int missionId=item.getKey(); int missionId=item.getKey();
SActivityRewardConfig missionConfig=SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId); SActivityRewardConfig missionConfig=SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
if (missionConfig.getValues()[0][0]==goodsId&&missionConfig.getSort()-1==activityMission.getV()&&activityProgressInfo.getState()==ActivityType.WILL_TAKE){ if (missionConfig.getSort()-1==activityMission.getV()&&activityProgressInfo.getState()==ActivityType.WILL_TAKE){
activityProgressInfo.setState(1); int dayRechargeCount= activityProgressInfo.getProgrss()+rechargeCount;
isSend=true; activityProgressInfo.setProgrss(dayRechargeCount);
} }
activityMission.getActivityMissionMap().put(item.getKey(), activityProgressInfo); activityMission.getActivityMissionMap().put(item.getKey(), activityProgressInfo);
}
if (isSend){
//更新进度
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
sendActivityProgress(sessionByUid, activityMission, null);
}
}
//更新进度
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
sendActivityProgress(sessionByUid, activityMission, null);
} }
@Override @Override
@ -68,14 +58,20 @@ class NewRechargeSumDayActivity extends AbstractActivity {
ActivityMission activityMission = activityManager.getActivityMissionMap().get(id); ActivityMission activityMission = activityManager.getActivityMissionMap().get(id);
int buyNum=0; int buyNum=0;
for (Map.Entry<Integer, ActivityProgressInfo> progressInfoEntry : activityMission.getActivityMissionMap().entrySet()) { for (Map.Entry<Integer, ActivityProgressInfo> progressInfoEntry : activityMission.getActivityMissionMap().entrySet()) {
if (progressInfoEntry.getValue().getState()==ActivityType.HAD_TAKED){ SActivityRewardConfig rewardConfig= SActivityRewardConfig.getsActivityRewardConfigByMissionId(progressInfoEntry.getKey());
if (progressInfoEntry.getValue().getProgrss()>=rewardConfig.getValues()[0][0]){
buyNum++; buyNum++;
}else{
progressInfoEntry.getValue().setProgrss(0);
} }
} }
if (buyNum > activityMission.getV()) { if (buyNum > activityMission.getV()) {
activityMission.setV(activityMission.getV() + 1); activityMission.setV(activityMission.getV() + 1);
} }
if (activityMission.getV() >= SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).size()) { if (activityMission.getV() >= SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).size()) {
//补发未领取的奖励
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
takeAllReward(sessionByUid);
ActivityLogic.getInstance().initMissionInfo(activityMission,id); ActivityLogic.getInstance().initMissionInfo(activityMission,id);
} }
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());

View File

@ -384,8 +384,8 @@ public class BuyGoodsNewLogic {
if(dropArray!=null && dropArray.length>=1){ if(dropArray!=null && dropArray.length>=1){
drop = ItemUtil.drop(user,dropArray, BIReason.DIRECT_BUY); drop = ItemUtil.drop(user,dropArray, BIReason.DIRECT_BUY);
} }
//红包事件 和积天豪礼事件 //红包事件
if(type==GiftGoodsType.RED_PACKET||type==GiftGoodsType.RechargeSumDay){ if(type==GiftGoodsType.RED_PACKET){
Poster.getPoster().dispatchEvent(new BuyGoodsDirectEvent(user.getId(),config.getId())); Poster.getPoster().dispatchEvent(new BuyGoodsDirectEvent(user.getId(),config.getId()));
} }
if(type==GiftGoodsType.SKY_TREASURE){ if(type==GiftGoodsType.SKY_TREASURE){