lvxinran 2020-08-23 07:02:32 +08:00
commit 3b384d0698
6 changed files with 76 additions and 6 deletions

View File

@ -4,6 +4,8 @@ import com.ljsd.jieling.core.VipPrivilegeType;
import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.activity.event.SignInEvent;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.player.PlayerLogic;
@ -55,8 +57,15 @@ public class SignInHandler extends BaseHandler {
throw new ErrorCodeException("次数不足");
}
PlayerLogic.getInstance().checkAndUpdate(user, VipPrivilegeType.SIGN_AGAIN, 1);
boolean todayFirstSign = user.getPlayerInfoManager().getSignTotay() == 0;
user.getPlayerInfoManager().setSignTotay(1);
if (todayFirstSign) {
//累计签到事件
Poster.getPoster().dispatchEvent(new SignInEvent(user.getId()));
}
int[] reward = sign.getreward();
int[][] cost = new int[1][];
cost[0] = reward;

View File

@ -66,5 +66,6 @@ public interface ActivityType {
int COPY_PASS = 55; // 开服福利 副本限时通过奖励
int NEW_EIGHT_LOGIN = 56;//新的八日登录
int SIGN_BOX= 57;//累计签到宝箱
}

View File

@ -31,7 +31,7 @@ public enum ActivityTypeEnum {
COPY_EXPERT(ActivityType.COPY_EXPERT, CopyExpectRankActivity::new),
LEVEL_EXPERT(ActivityType.LEVEL_EXPERT, LevelExpectActivity::new),
STAMINA_EXPERT(ActivityType.STAMINA_EXPERT, StaminaExpectRankActivity::new),
SIGN_IN(ActivityType.SIGN_IN, SignInSumActivity::new),
//SIGN_IN(ActivityType.SIGN_IN, SignInSumActivity::new),//因为签到没有走活动所以SignInSunActivity类用作了累计签到奖励活动此类暂时先不删
RECHARGE_NUM(ActivityType.RECHARGE_NUM, RechargeSumActivity::new),
ESPECIALEQUIP_EXPERT(ActivityType.ESPECIALEQUIP_EXPERT, EspecialEquipExpectActivity::new),
SOULEQUIP_EXPERT(ActivityType.SOULEQUIP_EXPERT, SoulEquipExpectActivity::new),
@ -49,7 +49,8 @@ public enum ActivityTypeEnum {
ECPEDITION_ACTIVITY(ActivityType.ECPEDITION_ACTIVITY,DefaultEmptyActivity::new),
COPY_PASS(ActivityType.COPY_PASS,ChapterRewardActivity::new),
NEW_EIGHT_LOGIN(ActivityType.NEW_EIGHT_LOGIN,NewEightActivity::new),
BEAUTY_BAG(ActivityType.BEAUTY_BAG,LimitRandomCardActivity::new)
BEAUTY_BAG(ActivityType.BEAUTY_BAG,LimitRandomCardActivity::new),
SIGN_BOX(ActivityType.SIGN_BOX,SignInSumActivity::new)
;
private int type;

View File

@ -1,15 +1,32 @@
package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.jbean.ActivityProgressInfo;
import com.ljsd.jieling.logic.activity.event.IEvent;
import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.activity.event.SignInEvent;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.network.session.ISession;
import config.SActivityRewardConfig;
import java.util.List;
import java.util.Map;
/**
*
*/
@Deprecated
class SignInSumActivity extends AbstractActivity {
//签到宝箱领完第七天之后,重置进度
public static int RESET_DAYS_AFTER_RECEIVED = 7;
public SignInSumActivity(int id) {
super(id);
Poster.getPoster().listenEvent(this, SignInEvent.class);
}
@Override
public void onEvent(IEvent event) throws Exception {
if(!(event instanceof SignInEvent)) return;
update(UserManager.getUser(((SignInEvent) event).getUid()),1);
}
@Override
@ -17,4 +34,23 @@ class SignInSumActivity extends AbstractActivity {
activityMission.setV(count + activityMission.getV());
}
@Override
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
return checkValue(session, sActivityRewardConfig, activityProgressInfo);
}
@Override
public boolean takeReward(ISession session, int missionId) throws Exception {
boolean result = super.takeReward(session, missionId);
if (result) {
//取得活动奖励配置判断下如果是7天的宝箱则重置进度,takeReward成功之后sActivityRewardConfig一定在
SActivityRewardConfig config = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
if (config.getValues()[0][0]== RESET_DAYS_AFTER_RECEIVED) {
reSetValue(UserManager.getUser(session.getUid()));
}
ActivityMission activityMission = UserManager.getUser(session.getUid()).getActivityManager().getActivityMissionMap().get(this.id);
sendActivityProgress(session, activityMission, null);
}
return result;
}
}

View File

@ -0,0 +1,22 @@
package com.ljsd.jieling.logic.activity.event;
/**
*
*
*/
public class SignInEvent implements IEvent{
private int uid;
public SignInEvent(int uid) {
this.uid = uid;
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
}

View File

@ -48,6 +48,7 @@ public class HeroFiveStarGetEventHandler implements IEventHandler {
long lasttime = rechargeInfo.getTypeBagMap().get(((HeroFiveStarGetEvent) event).getStar());
int diffHourTemp = (int) ((now - lasttime) / 3600 / 1000);
//做一个验证如果前一次的成长礼没有超出购买时间才增加次数否则重置为1次
if (diffHourTemp < 2) {
rechargeInfo.addDyGoodsCanBuyTimes(goodsId);
}else {