Merge branch 'master_test_gn' of http://60.1.1.230/backend/jieling_server into master_test_gn
commit
2715ea64a3
|
@ -113,7 +113,8 @@ public class ActivityLogic implements IEventHandler{
|
|||
ActivityLogic.getInstance().resumeActivity(user, ActivityType.LUCK_WHEEL);
|
||||
ActivityLogic.getInstance().resumeActivity(user, ActivityType.LUCK_WHEEL_ADVANCE);
|
||||
ActivityLogic.getInstance().resumeActivity(user,ActivityType.TREASURE);
|
||||
|
||||
//每日特惠礼包开启的活動刷新
|
||||
ActivityLogic.getInstance().resumeActivity(user,ActivityType.DAILY_PREFERENTIAL_GIFT);
|
||||
Set<Integer> upFiveActivityTypes = new HashSet<>();
|
||||
upFiveActivityTypes.add(ActivityType.SevenLogin);
|
||||
upFiveActivityTypes.add(ActivityType.RECHARGE_SUM_DAY);
|
||||
|
@ -172,6 +173,9 @@ public class ActivityLogic implements IEventHandler{
|
|||
if (time == ActivityType.OPEN_TYPE_ROLE) {
|
||||
continue;
|
||||
}
|
||||
if(sGlobalActivity.getType() == ActivityType.DAILY_PREFERENTIAL_GIFT){
|
||||
continue;
|
||||
}
|
||||
if(time == ActivityType.OPEN_TYPE_MONTHS){
|
||||
//now = 当前是开服第几个月
|
||||
}
|
||||
|
@ -294,6 +298,9 @@ public class ActivityLogic implements IEventHandler{
|
|||
* @param activityId
|
||||
*/
|
||||
public void initMissionInfo(ActivityMission activityMission,int activityId){
|
||||
if(activityId == ActivityType.DAILY_PREFERENTIAL_GIFT){
|
||||
return;
|
||||
}
|
||||
List<SActivityRewardConfig> sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(activityId);
|
||||
if(sActivityRewardConfigs == null){return;}
|
||||
for(SActivityRewardConfig sActivityRewardConfig : sActivityRewardConfigs){
|
||||
|
@ -435,7 +442,20 @@ public class ActivityLogic implements IEventHandler{
|
|||
}
|
||||
Map<Integer, ActivityMission> activityMissionMap = activityManager.getActivityMissionMap();
|
||||
for (SGlobalActivity sGlobalActivity : sGlobalActivityMap.values()) {
|
||||
if(sGlobalActivity.getType() == ActivityType.DAILY_PREFERENTIAL_GIFT){
|
||||
continue;
|
||||
}
|
||||
int activityId = sGlobalActivity.getId();
|
||||
////天尊降世活动特殊处理
|
||||
if (activityMissionMap.containsKey(42)){
|
||||
if (activityId==4201){
|
||||
continue;
|
||||
}
|
||||
}else{
|
||||
if (activityId==42){
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (openActivityIds.contains(activityId)) {
|
||||
int[] ifOpen = sGlobalActivity.getIfOpen();
|
||||
if (ifOpen == null || ifOpen.length <= 0){
|
||||
|
@ -602,12 +622,18 @@ public class ActivityLogic implements IEventHandler{
|
|||
if (sGlobalActivity.getIsSaving()==0 && activityStatus != ActivityType.OPEN_STATE) {
|
||||
continue;
|
||||
}
|
||||
int startTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 1) / 1000);
|
||||
int endTime;
|
||||
if(sGlobalActivity.getGapTime()!=0){
|
||||
endTime = (int) (ToolsUtil.getEndTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, sGlobalActivity.getGapTime()) / 1000);
|
||||
int startTime = 0;
|
||||
int endTime = 0;
|
||||
if(sGlobalActivity.getType() == ActivityType.DAILY_PREFERENTIAL_GIFT){
|
||||
startTime=(int)(activityState.getValue().getCreatTime()/1000);
|
||||
endTime = startTime+604800;
|
||||
}else{
|
||||
endTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 2) / 1000);
|
||||
startTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 1) / 1000);
|
||||
if(sGlobalActivity.getGapTime()!=0){
|
||||
endTime = (int) (ToolsUtil.getEndTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, sGlobalActivity.getGapTime()) / 1000);
|
||||
}else{
|
||||
endTime = (int) (ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),createTime, 2) / 1000);
|
||||
}
|
||||
}
|
||||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(sGlobalActivity.getId());
|
||||
if(abstractActivity==null){
|
||||
|
|
|
@ -104,6 +104,7 @@ public interface ActivityType {
|
|||
int TRANSFORMATION_DRAW_CARD = 86;//方寸寻宝
|
||||
int CONTINUOUS_GIFT_NEW = 87;//新连续礼包
|
||||
int ARENA_RANK_EXPERIMENT = 88;//竞技试炼
|
||||
int DAILY_PREFERENTIAL_GIFT = 89;//每日特惠礼包开启的活动
|
||||
int SPECIAL_MONSTER_RANDOM_ACTIVITY = 100;//灵兽宝阁活动
|
||||
int SPECIAL_MONSTER_GIFT_ACTIVITY = 101;//灵兽礼包
|
||||
|
||||
|
|
|
@ -94,7 +94,9 @@ 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),//竞技试炼
|
||||
DAILY_PREFERENTIAL_GIFT(ActivityType.DAILY_PREFERENTIAL_GIFT,DailyPreferentialGiftActivity::new),
|
||||
SUMMON_TREASURE(ActivityType.SUMMON_TREASURE,SummonTreasureActivity::new),//招募秘宝
|
||||
|
||||
;
|
||||
|
||||
private int type;
|
||||
|
|
|
@ -0,0 +1,191 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
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.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.SActivityRewardConfig;
|
||||
import config.SErrorCodeEerverConfig;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
import util.StringUtil;
|
||||
import util.TimeUtils;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 每日特惠礼包开启的活动
|
||||
*/
|
||||
|
||||
public class DailyPreferentialGiftActivity extends AbstractActivity{
|
||||
|
||||
public DailyPreferentialGiftActivity(int id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initActivity(User user) throws Exception{
|
||||
ActivityMission mission = new ActivityMission();
|
||||
// 初始化阶段奖励
|
||||
List<SActivityRewardConfig> sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||
ActivityLogic.getInstance().initOtherMission(mission, sActivityRewardConfigs.stream().mapToInt(n->n.getId()).boxed().collect(Collectors.toList()));
|
||||
//mission.setV((int)(TimeUtils.getAppointTime(0)/1000)+3600*24*7);
|
||||
mission.setV(0);
|
||||
mission.setCreatTime(TimeUtils.getAppointTime(0));
|
||||
user.getActivityManager().getActivityMissionMap().put(id, mission);
|
||||
//ActivityMission activityMission =user.getActivityManager().getActivityMissionMap().get(this.id);
|
||||
//sendActivityProgress(user, activityMission, null);
|
||||
ActivityLogic.getInstance().sendActivityInfo(user, id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEvent(IEvent event) throws Exception{
|
||||
|
||||
|
||||
|
||||
}
|
||||
/**
|
||||
*购买后7天内 每天可以领取奖励 领取状态每日重置
|
||||
*/
|
||||
@Override
|
||||
public void onResume(User user) throws Exception {
|
||||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
if(mission == null){
|
||||
return;
|
||||
}
|
||||
//long timeTemp = mission.getCreatTime();
|
||||
//开启礼包的第几天
|
||||
int day = (int)TimeUtils.getGapDaysByTwoTime(TimeUtils.getTimeStamp2(mission.getCreatTime()),TimeUtils.getTimeStamp2(TimeUtils.now()))+1;
|
||||
List<SActivityRewardConfig> rewardConfig = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||
if(rewardConfig == null){
|
||||
return;
|
||||
}
|
||||
Map<Integer,Integer> rewardMap = new HashMap();
|
||||
for(SActivityRewardConfig config:rewardConfig){
|
||||
for(int[]reward:config.getReward()){
|
||||
if(rewardMap.containsKey(reward[0])){
|
||||
rewardMap.put(reward[0],rewardMap.get(reward[0])+reward[1]);
|
||||
}else{
|
||||
rewardMap.put(reward[0],reward[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
String title = SErrorCodeEerverConfig.getI18NMessage("sevendaycard_mail_title");
|
||||
String content = SErrorCodeEerverConfig.getI18NMessage("sevendaycard_mail_txt");
|
||||
if(day >7){
|
||||
//第八天登錄 發送所有獎勵 TODO
|
||||
//下线当天的活动处理
|
||||
sendSpecailMail(user,title,content,mission);
|
||||
for(int i = mission.getV()+1;i <= 7;i++){
|
||||
MailLogic.getInstance().sendMail(user.getId(), title, content, StringUtil.parseArrayToString(rewardMap.entrySet().stream().map(n->new int[]{n.getKey(),n.getValue()})
|
||||
.toArray(int[][]::new)), TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME);
|
||||
LOGGER.info("11:"+i);
|
||||
}
|
||||
//刪除數據
|
||||
user.getActivityManager().getActivityMissionMap().remove(id);
|
||||
ISession session = OnlineUserManager.sessionMap.get(user.getId());
|
||||
if(session!=null){
|
||||
PlayerInfoProto.SpecailActivityUpateIndication.Builder indication = PlayerInfoProto.SpecailActivityUpateIndication.newBuilder();
|
||||
indication.addCloseActivityId(ActivityType.DAILY_PREFERENTIAL_GIFT);
|
||||
MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.SPECIAL_ACTIVITY_UPDATE_INDICATION_VALUE, indication.build(), true);
|
||||
}
|
||||
return;
|
||||
}else{
|
||||
//下线当天的活动处理
|
||||
sendSpecailMail(user,title,content,mission);
|
||||
for(int i = mission.getV()+1;i<day ;i++){
|
||||
MailLogic.getInstance().sendMail(user.getId(), title, content, StringUtil.parseArrayToString(rewardMap.entrySet().stream().map(n->new int[]{n.getKey(),n.getValue()})
|
||||
.toArray(int[][]::new)), TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME);
|
||||
LOGGER.info("22:"+i);
|
||||
}
|
||||
List<SActivityRewardConfig> sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||
if(sActivityRewardConfigs == null){return;}
|
||||
for(SActivityRewardConfig sActivityRewardConfig : sActivityRewardConfigs){
|
||||
ActivityProgressInfo activityProgressInfo = new ActivityProgressInfo();
|
||||
//activityProgressInfo.setProgrss(ActivityLogic.getInstance().getInitActivityMissionProgress(id));
|
||||
activityProgressInfo.setState(0);
|
||||
mission.getActivityMissionMap().put(sActivityRewardConfig.getId(), activityProgressInfo);
|
||||
}
|
||||
ActivityLogic.getInstance().initMissionInfo(mission,id);
|
||||
if(day > mission.getV()){
|
||||
mission.setV(day-1);
|
||||
}
|
||||
sendActivityProgress(user, mission, null);
|
||||
}
|
||||
}
|
||||
|
||||
//当天为领取特殊处理
|
||||
public static void sendSpecailMail( User user,String title,String content, ActivityMission mission ){
|
||||
Map<Integer, ActivityProgressInfo> progressMap = mission.getActivityMissionMap();
|
||||
Map<Integer,Integer> rewardMap1 = new HashMap();
|
||||
for (Map.Entry<Integer, ActivityProgressInfo> progress:progressMap.entrySet()){
|
||||
if(progress.getValue().getState() == ActivityType.WILL_TAKE){
|
||||
SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(progress.getKey());
|
||||
if(sActivityRewardConfig == null){
|
||||
continue;
|
||||
}
|
||||
for(int[]reward:sActivityRewardConfig.getReward()){
|
||||
if(rewardMap1.containsKey(reward[0])){
|
||||
rewardMap1.put(reward[0],rewardMap1.get(reward[0])+reward[1]);
|
||||
}else{
|
||||
rewardMap1.put(reward[0],reward[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(rewardMap1.size()>0){
|
||||
MailLogic.getInstance().sendMail(user.getId(), title, content, StringUtil.parseArrayToString(rewardMap1.entrySet().stream().map(n->new int[]{n.getKey(),n.getValue()})
|
||||
.toArray(int[][]::new)), TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean takeReward(ISession session, int missionId) throws Exception{
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
|
||||
if (sActivityRewardConfig == null || sActivityRewardConfig.getActivityId() != id) {
|
||||
throw new ErrorCodeException(ErrorCode.CFG_NULL);
|
||||
}
|
||||
ActivityManager activityManager = user.getActivityManager();
|
||||
ActivityMission activityMission = activityManager.getActivityMissionMap().get(id);
|
||||
if (activityMission == null){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
ActivityProgressInfo activityProgressInfo = activityMission.getActivityMissionMap().get(missionId);
|
||||
if (activityProgressInfo == null || activityProgressInfo.getState() == ActivityType.HAD_TAKED) {
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("活动奖励已经领取"));
|
||||
}
|
||||
int day = (int)TimeUtils.getGapDaysByTwoTime(TimeUtils.getTimeStamp2(activityMission.getCreatTime()),TimeUtils.getTimeStamp2(TimeUtils.now()));
|
||||
//if(activityMission.getV()<day+1 && day<=7){
|
||||
if(day<7){
|
||||
int[][] reward = sActivityRewardConfig.getReward();
|
||||
activityMission.setV(day+1);
|
||||
checkAndSetProgress(activityMission, activityProgressInfo, missionId);
|
||||
sendActivityProgress(session, activityMission, null);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD);
|
||||
reportTakeActivityReward(user,reward,missionId);
|
||||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -32,96 +32,176 @@ public class NewWelfareActivity extends AbstractActivity {
|
|||
|
||||
@Override
|
||||
public void onEvent(IEvent event) throws Exception {
|
||||
if(! (event instanceof NewWelfareEvent) ){
|
||||
return;
|
||||
}
|
||||
if (!(event instanceof NewWelfareEvent)) {
|
||||
return;
|
||||
}
|
||||
if (this.id == 42) {
|
||||
oldActivityEvent(event);
|
||||
} else {
|
||||
NewWelfareEvent newWelfareEvent = (NewWelfareEvent) event;
|
||||
if (newWelfareEvent.getType() == NewWelfareTypeEnum.BUY_1106.getType()) {
|
||||
User user = newWelfareEvent.getUser();
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
for (Map.Entry<Integer, ActivityProgressInfo> item : activityMission.getActivityMissionMap().entrySet()) {
|
||||
ActivityProgressInfo activityProgressInfo = item.getValue();
|
||||
int missionId=item.getKey();
|
||||
if (missionId==4209){
|
||||
activityProgressInfo.setState(1);
|
||||
}
|
||||
activityMission.getActivityMissionMap().put(item.getKey(), activityProgressInfo);
|
||||
}
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean takeReward(ISession session, int missionId) throws Exception {
|
||||
if (this.id == 42) {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
if (sGlobalActivity == null || !user.getActivityManager().getActivityMissionMap().containsKey(id)) {
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityMissionMap();
|
||||
oldActivityTakeReward(session,missionId,user,activityMission,activityProgressInfoMap);
|
||||
} else {
|
||||
super.takeReward(session,missionId);
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getAllMissRewards(User user, ISession session, List<int[][]> itemAttrs) {
|
||||
if (this.id == 42) {
|
||||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
if (sGlobalActivity == null || !user.getActivityManager().getActivityMissionMap().containsKey(id)) {
|
||||
return;
|
||||
}
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityMissionMap();
|
||||
for (ActivityProgressInfo activityProgressInfo : activityProgressInfoMap.values()) {
|
||||
if (activityProgressInfo.getState() != 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
for (ActivityProgressInfo activityProgressInfo : activityProgressInfoMap.values()) {
|
||||
activityProgressInfo.setState(2);
|
||||
}
|
||||
|
||||
for (Map.Entry<Integer, ActivityProgressInfo> item : activityProgressInfoMap.entrySet()) {
|
||||
item.getValue().setState(2);
|
||||
activityMission.getActivityMissionMap().put(item.getKey(), item.getValue());
|
||||
}
|
||||
|
||||
List<SActivityRewardConfig> sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||
itemAttrs.add(sActivityRewardConfigs.get(0).getReward());
|
||||
}else{
|
||||
// super.getAllMissRewards(user,session,itemAttrs);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
void updateProgress(ActivityMission activityMission, int count) {
|
||||
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityMissionMap();
|
||||
for (Map.Entry<Integer, ActivityProgressInfo> item : activityProgressInfoMap.entrySet()) {
|
||||
ActivityProgressInfo activityProgressInfo = item.getValue();
|
||||
int missionId=item.getKey();
|
||||
SActivityRewardConfig rewardConfig=SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
|
||||
activityProgressInfo.setProgrss(count);
|
||||
if (activityProgressInfo.getProgrss()>=rewardConfig.getValues()[0][0]&&rewardConfig.getReward().length<=0&&missionId!=4209){
|
||||
activityProgressInfo.setState(ActivityType.HAD_TAKED);
|
||||
}
|
||||
activityMission.getActivityMissionMap().put(item.getKey(), activityProgressInfo);
|
||||
}
|
||||
}
|
||||
|
||||
private void oldActivityEvent(IEvent event) {
|
||||
NewWelfareEvent newWelfareEvent = (NewWelfareEvent) event;
|
||||
User user =newWelfareEvent.getUser();
|
||||
User user = newWelfareEvent.getUser();
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
if( null == activityMission){
|
||||
if (null == activityMission) {
|
||||
return;
|
||||
}
|
||||
List<SActivityRewardConfig> sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityMissionMap();
|
||||
boolean isUpdate = false;
|
||||
for(SActivityRewardConfig sActivityRewardConfig : sActivityRewardConfigs){
|
||||
for (SActivityRewardConfig sActivityRewardConfig : sActivityRewardConfigs) {
|
||||
ActivityProgressInfo activityProgressInfo = activityProgressInfoMap.get(sActivityRewardConfig.getId());
|
||||
if(sActivityRewardConfig.getSort()==1){//拿sort区分新老至尊降世活动任务
|
||||
if(activityProgressInfo.getState() == 1){
|
||||
if (sActivityRewardConfig.getSort() == 1) {//拿sort区分新老至尊降世活动任务
|
||||
if (activityProgressInfo.getState() == 1) {
|
||||
continue;
|
||||
}
|
||||
if(sActivityRewardConfig.getValues()[0][0] == newWelfareEvent.getType() ){
|
||||
if (sActivityRewardConfig.getValues()[0][0] == newWelfareEvent.getType()) {
|
||||
int parm = newWelfareEvent.getParm();
|
||||
if( newWelfareEvent.getType() == NewWelfareTypeEnum.LOGIN_TIMES.getType()){
|
||||
activityProgressInfo.setProgrss(activityProgressInfo.getProgrss()+1);
|
||||
parm=activityProgressInfo.getProgrss();
|
||||
if (newWelfareEvent.getType() == NewWelfareTypeEnum.LOGIN_TIMES.getType()) {
|
||||
activityProgressInfo.setProgrss(activityProgressInfo.getProgrss() + 1);
|
||||
parm = activityProgressInfo.getProgrss();
|
||||
}
|
||||
if(parm ==sActivityRewardConfig.getValues()[1][0]){
|
||||
if(newWelfareEvent.getType() == NewWelfareTypeEnum.RECHARGE_BUY.getType()){
|
||||
if (parm == sActivityRewardConfig.getValues()[1][0]) {
|
||||
if (newWelfareEvent.getType() == NewWelfareTypeEnum.RECHARGE_BUY.getType()) {
|
||||
//可领取奖励
|
||||
activityProgressInfo.setState(3);
|
||||
}else{
|
||||
} else {
|
||||
activityProgressInfo.setState(1);
|
||||
}
|
||||
activityMission.getActivityMissionMap().put(sActivityRewardConfig.getId(), activityProgressInfo);
|
||||
isUpdate = true;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
//新增任务
|
||||
if(activityProgressInfo.getState()!= 0){
|
||||
if (activityProgressInfo.getState() != 0) {
|
||||
continue;
|
||||
}
|
||||
if(sActivityRewardConfig.getValues()[0][0] == newWelfareEvent.getType() ){
|
||||
if (sActivityRewardConfig.getValues()[0][0] == newWelfareEvent.getType()) {
|
||||
int parm = newWelfareEvent.getParm();
|
||||
if (newWelfareEvent.getType() == NewWelfareTypeEnum.ALL_MISSION_FIN.getType()||newWelfareEvent.getType() == NewWelfareTypeEnum.EXPLORE.getType()){
|
||||
activityProgressInfo.setProgrss(activityProgressInfo.getProgrss()+1);
|
||||
parm=activityProgressInfo.getProgrss();
|
||||
if (newWelfareEvent.getType() == NewWelfareTypeEnum.ALL_MISSION_FIN.getType() || newWelfareEvent.getType() == NewWelfareTypeEnum.EXPLORE.getType()) {
|
||||
activityProgressInfo.setProgrss(activityProgressInfo.getProgrss() + 1);
|
||||
parm = activityProgressInfo.getProgrss();
|
||||
}
|
||||
if(parm ==sActivityRewardConfig.getValues()[1][0]){
|
||||
if (parm == sActivityRewardConfig.getValues()[1][0]) {
|
||||
activityProgressInfo.setState(3);
|
||||
activityMission.getActivityMissionMap().put(sActivityRewardConfig.getId(), activityProgressInfo);
|
||||
isUpdate = true;
|
||||
if (sActivityRewardConfig.getSort()==2){
|
||||
Poster.getPoster().dispatchEvent(new NewWelfareEvent(user,NewWelfareTypeEnum.ALL_MISSION_FIN.getType(),1));
|
||||
if (sActivityRewardConfig.getSort() == 2) {
|
||||
Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.ALL_MISSION_FIN.getType(), 1));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(isUpdate){
|
||||
if (isUpdate) {
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean takeReward(ISession session, int missionId) throws Exception {
|
||||
private void oldActivityTakeReward(ISession session, int missionId, User user, ActivityMission activityMission, Map<Integer, ActivityProgressInfo> activityProgressInfoMap) throws Exception {
|
||||
PlayerInfoProto.TakeActivityRewardResponse build = null;
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
if (sGlobalActivity == null || !user.getActivityManager().getActivityMissionMap().containsKey(id)) {
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityMissionMap();
|
||||
//0是领取最后奖励
|
||||
if(missionId==0){
|
||||
if (missionId == 0) {
|
||||
for (Map.Entry<Integer, ActivityProgressInfo> inter : activityProgressInfoMap.entrySet()) {
|
||||
ActivityProgressInfo activityProgressInfo=inter.getValue();
|
||||
int activityMissionId=inter.getKey();
|
||||
SActivityRewardConfig missonConfig= SActivityRewardConfig.getsActivityRewardConfigByMissionId(activityMissionId);
|
||||
if(activityProgressInfo.getState() != 1&&missonConfig.getSort()==1){
|
||||
ActivityProgressInfo activityProgressInfo = inter.getValue();
|
||||
int activityMissionId = inter.getKey();
|
||||
SActivityRewardConfig missonConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(activityMissionId);
|
||||
if (activityProgressInfo.getState() != 1 && missonConfig.getSort() == 1) {
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
}
|
||||
for(Map.Entry<Integer,ActivityProgressInfo> item: activityProgressInfoMap.entrySet()){
|
||||
SActivityRewardConfig missonConfig= SActivityRewardConfig.getsActivityRewardConfigByMissionId(item.getKey());
|
||||
if (missonConfig.getSort()==1){
|
||||
for (Map.Entry<Integer, ActivityProgressInfo> item : activityProgressInfoMap.entrySet()) {
|
||||
SActivityRewardConfig missonConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(item.getKey());
|
||||
if (missonConfig.getSort() == 1) {
|
||||
item.getValue().setState(2);
|
||||
activityMission.getActivityMissionMap().put(item.getKey(),item.getValue());
|
||||
activityMission.getActivityMissionMap().put(item.getKey(), item.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -129,52 +209,24 @@ public class NewWelfareActivity extends AbstractActivity {
|
|||
List<SActivityRewardConfig> sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sActivityRewardConfigs.get(0).getReward(), BIReason.TAKE_ACTIVITY_REWARD);
|
||||
build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
reportTakeActivityReward(user,sActivityRewardConfigs.get(0).getReward(),missionId);
|
||||
reportTakeActivityReward(user, sActivityRewardConfigs.get(0).getReward(), missionId);
|
||||
|
||||
}else{
|
||||
} else {
|
||||
//领取第三个奖励用
|
||||
if(!activityProgressInfoMap.containsKey(missionId)||activityProgressInfoMap.get(missionId).getState()!=3){
|
||||
if (!activityProgressInfoMap.containsKey(missionId) || activityProgressInfoMap.get(missionId).getState() != 3) {
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
//领过了
|
||||
activityProgressInfoMap.get(missionId).setState(1);
|
||||
SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
|
||||
if(sActivityRewardConfig==null){
|
||||
if (sActivityRewardConfig == null) {
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
sendActivityProgress(session, activityMission, null);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sActivityRewardConfig.getReward(), BIReason.TAKE_ACTIVITY_REWARD);
|
||||
build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
reportTakeActivityReward(user,sActivityRewardConfig.getReward(),missionId);
|
||||
reportTakeActivityReward(user, sActivityRewardConfig.getReward(), missionId);
|
||||
}
|
||||
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getAllMissRewards(User user, ISession session, List<int[][]> itemAttrs){
|
||||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
if (sGlobalActivity == null || !user.getActivityManager().getActivityMissionMap().containsKey(id)) {
|
||||
return;
|
||||
}
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityMissionMap();
|
||||
for(ActivityProgressInfo activityProgressInfo : activityProgressInfoMap.values()){
|
||||
if(activityProgressInfo.getState() != 1){
|
||||
return;
|
||||
}
|
||||
}
|
||||
for(ActivityProgressInfo activityProgressInfo : activityProgressInfoMap.values()){
|
||||
activityProgressInfo.setState(2);
|
||||
}
|
||||
|
||||
for(Map.Entry<Integer,ActivityProgressInfo> item: activityProgressInfoMap.entrySet()){
|
||||
item.getValue().setState(2);
|
||||
activityMission.getActivityMissionMap().put(item.getKey(),item.getValue());
|
||||
}
|
||||
|
||||
List<SActivityRewardConfig> sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||
itemAttrs.add(sActivityRewardConfigs.get(0).getReward());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,7 +6,8 @@ public enum NewWelfareTypeEnum {
|
|||
RECHARGE_BUY(3),
|
||||
EXPLORE(4),//极速探索n次
|
||||
UPSTAR(5),//指定英雄升级至x星
|
||||
ALL_MISSION_FIN(6)//sort为2所有任务完成
|
||||
ALL_MISSION_FIN(6),//sort为2所有任务完成
|
||||
BUY_1106(7),//购买1106礼包
|
||||
;
|
||||
|
||||
private int type;
|
||||
|
|
|
@ -227,6 +227,9 @@ public class BuyGoodsNewLogic {
|
|||
//处理特权
|
||||
activePrivilege(user,config);
|
||||
resultRes.setResultCode(1);
|
||||
if (goodsId==1106){
|
||||
Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.BUY_1106.getType(),0));
|
||||
}
|
||||
//发送邮件
|
||||
int[] mail = config.getMail();
|
||||
if(config.getPrice()!=0&&mail!=null&&mail.length>1){
|
||||
|
@ -332,6 +335,7 @@ public class BuyGoodsNewLogic {
|
|||
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.JADE_DYNASTY_RECHARGE_SUM,(int)(price*1000));
|
||||
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RECHARGE_SUM_DAY, (int)(user.getPlayerInfoManager().getRechargedaily()*1000) );
|
||||
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.FIND_FAIRY_FESTIVAL, (int)(price*1000));
|
||||
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.NEW_WELFARE, (int)(info.getRr()));
|
||||
|
||||
AyyncWorker ayyncWorker = new AyyncWorker(user, true, new AynMissionWorker(GameEvent.RECHARGE_TOTAL,(int)(price*1000))) ;
|
||||
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
|
||||
|
@ -408,6 +412,11 @@ public class BuyGoodsNewLogic {
|
|||
WeekCardLogic.getInstance().buyWeekCard(user,config.getId());
|
||||
WeekCardLogic.getInstance().sendWeekCardInitInfo(session);
|
||||
}
|
||||
//礼包开启活动
|
||||
if(type ==GiftGoodsType.DailyPreferentialGift){
|
||||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(ActivityType.DAILY_PREFERENTIAL_GIFT);
|
||||
abstractActivity.initActivity(user);
|
||||
}
|
||||
if(drop!=null&&session!=null){
|
||||
PlayerInfoProto.DirectBuyIndication build = PlayerInfoProto.DirectBuyIndication.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.DIRECT_BUY_GOODS_INDICATION_VALUE,build,true);
|
||||
|
|
|
@ -14,5 +14,7 @@ public interface GiftGoodsType {
|
|||
int SUN_LONG = 11; //豪华基金
|
||||
int SKY_TREASURE = 12; //天宫秘宝
|
||||
int ENDLESS_TREASURE = 14;//无尽秘宝
|
||||
int DailyPreferentialGift = 17 ;//每日特惠礼包
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue