超值返利活动修改提交

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.ActivityProgressInfo;
import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.activity.event.BuyGoodsDirectEvent;
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.activity.event.*;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.store.GiftGoodsType;
@ -26,56 +23,55 @@ class NewRechargeSumDayActivity extends AbstractActivity {
public NewRechargeSumDayActivity(int id) {
super(id);
Poster.getPoster().listenEvent(this, BuyGoodsDirectEvent.class);
Poster.getPoster().listenEvent(this, RechargeRewardEvent.class);
}
@Override
public void onEvent(IEvent event) throws Exception {
super.onEvent(event);
if (!(event instanceof BuyGoodsDirectEvent)) {
if (!(event instanceof RechargeRewardEvent)) {
return;
}
BuyGoodsDirectEvent buyGoodsDirectEvent = (BuyGoodsDirectEvent) event;
int goodsId=buyGoodsDirectEvent.getGoodsId();
SRechargeCommodityNewConfig rechargeConfig=SRechargeCommodityNewConfig.getConfigById(goodsId);
if (rechargeConfig==null||rechargeConfig.getType()!= GiftGoodsType.RechargeSumDay){
return;
}
User user = UserManager.getUser(buyGoodsDirectEvent.getUid());
RechargeRewardEvent rechargeRewardEvent = (RechargeRewardEvent) event;
int rechargeCount=rechargeRewardEvent.getRechargeCount();
User user = UserManager.getUser(rechargeRewardEvent.getUid());
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
boolean isSend=false;
for (Map.Entry<Integer, ActivityProgressInfo> item : activityMission.getActivityMissionMap().entrySet()) {
ActivityProgressInfo activityProgressInfo = item.getValue();
int missionId=item.getKey();
SActivityRewardConfig missionConfig=SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
if (missionConfig.getValues()[0][0]==goodsId&&missionConfig.getSort()-1==activityMission.getV()&&activityProgressInfo.getState()==ActivityType.WILL_TAKE){
activityProgressInfo.setState(1);
isSend=true;
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);
}
if (isSend){
//更新进度
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()) {
if (progressInfoEntry.getValue().getState()==ActivityType.HAD_TAKED){
SActivityRewardConfig rewardConfig= SActivityRewardConfig.getsActivityRewardConfigByMissionId(progressInfoEntry.getKey());
if (progressInfoEntry.getValue().getProgrss()>=rewardConfig.getValues()[0][0]){
buyNum++;
}else{
progressInfoEntry.getValue().setProgrss(0);
}
}
if (buyNum > activityMission.getV()) {
activityMission.setV(activityMission.getV() + 1);
}
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());

View File

@ -384,8 +384,8 @@ public class BuyGoodsNewLogic {
if(dropArray!=null && dropArray.length>=1){
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()));
}
if(type==GiftGoodsType.SKY_TREASURE){