back_recharge
wangyuan 2019-08-09 10:06:43 +08:00
parent b5e8f34b6f
commit e7bcf6f9c0
14 changed files with 240 additions and 40 deletions

View File

@ -703,6 +703,16 @@ public class RedisUtil {
} }
} }
public void zsetRemoveOne(String key, String value){
for (int i = 0; i < MAX_TRY_TIMES; i++) {
try {
redisTemplate.opsForZSet().remove(key, value);
return;
} catch (Exception e) {
TimeUtils.sleep(FAILED_SLEEP);
}
}
}
//操作sortset //操作sortset
public Set<ZSetOperations.TypedTuple<String>> getZsetRangeWithScore(String key, double min, double max){ public Set<ZSetOperations.TypedTuple<String>> getZsetRangeWithScore(String key, double min, double max){
for (int i = 0; i < MAX_TRY_TIMES; i++) { for (int i = 0; i < MAX_TRY_TIMES; i++) {

View File

@ -10,6 +10,7 @@ import com.ljsd.jieling.logic.dao.ActivityMission;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mail.MailLogic; import com.ljsd.jieling.logic.mail.MailLogic;
import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.mission.main.ServenMissionIdsType;
import com.ljsd.jieling.logic.mission.main.TreasureMissionType; import com.ljsd.jieling.logic.mission.main.TreasureMissionType;
import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.ItemUtil;
import com.ljsd.jieling.util.MessageUtil; import com.ljsd.jieling.util.MessageUtil;
@ -40,7 +41,7 @@ public class DefaultEmptyActivity extends AbstractActivity{
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
if(sGlobalActivity.getType() == ActivityType.SERVERHAPPY){ if(sGlobalActivity.getType() == ActivityType.SERVERHAPPY){
STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureSevenTaskConfigByActivityMap.get(id); STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureSevenTaskConfigByActivityMap.get(id);
TreasureMissionType sevenHappyMissionType = user.getUserMissionManager().getSevenHappyMissionType(); ServenMissionIdsType sevenHappyMissionType = user.getUserMissionManager().getSevenHappyMissionType();
if(!sevenHappyMissionType.getRewardedMissionIds().get(sTreasureTaskConfig.getId())){ if(!sevenHappyMissionType.getRewardedMissionIds().get(sTreasureTaskConfig.getId())){
int senvenScores = user.getUserMissionManager().getSevenHappyCumulationData().senvenScores; int senvenScores = user.getUserMissionManager().getSevenHappyCumulationData().senvenScores;
sevenHappyMissionType.getDoingMissionIds().remove(sTreasureTaskConfig.getId()); sevenHappyMissionType.getDoingMissionIds().remove(sTreasureTaskConfig.getId());

View File

@ -1,13 +1,16 @@
package com.ljsd.jieling.logic.dao; package com.ljsd.jieling.logic.dao;
import com.ljsd.jieling.config.SGuildSetting;
import com.ljsd.jieling.db.mongo.MongoUtil; import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.logic.dao.root.GuildApply; import com.ljsd.jieling.logic.dao.root.GuildApply;
import com.ljsd.jieling.logic.dao.root.GuildInfo; import com.ljsd.jieling.logic.dao.root.GuildInfo;
import com.ljsd.jieling.logic.dao.root.GuildLog; import com.ljsd.jieling.logic.dao.root.GuildLog;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.family.GuildLogic;
import com.mongodb.BasicDBObject; import com.mongodb.BasicDBObject;
import org.springframework.data.mongodb.core.query.BasicQuery; import org.springframework.data.mongodb.core.query.BasicQuery;
import org.springframework.data.redis.core.ZSetOperations;
import java.util.*; import java.util.*;
@ -83,7 +86,51 @@ public class GuilidManager {
} }
} }
public static void checkNeedReleaseGuild() throws Exception {
int now = (int)(System.currentTimeMillis()/1000);
int round=0;
boolean needContinue = true;
String key = RedisUtil.getInstence().getKey("guild-release", "");
while (needContinue){
Set<ZSetOperations.TypedTuple<String>> zsetreverseRangeWithScores = RedisUtil.getInstence().getZsetreverseRangeWithScores("guild-release", "", round*5, (round+1)*5);
if(zsetreverseRangeWithScores.isEmpty()){
return;
}
for(ZSetOperations.TypedTuple<String> item : zsetreverseRangeWithScores){
String value = item.getValue();
Double score = item.getScore();
if(score>now){
needContinue=false;
break;
}
GuildInfo guildInfo = guildInfoMap.get(Integer.parseInt(value));
if(guildInfo == null){
RedisUtil.getInstence().zsetRemoveOne(key,value);
continue;
}
GuildLogic.releaseGuild(guildInfo);
RedisUtil.getInstence().zsetRemoveOne(key,value);
}
round++;
MongoUtil.getInstence().lastUpdate();
}
}
public static Collection<GuildInfo> recommandGuild(User user) { public static Collection<GuildInfo> recommandGuild(User user) {
return guildInfoMap.values(); return guildInfoMap.values();
} }
public static void addGuildToRelease(GuildInfo guildInfo) {
String key = RedisUtil.getInstence().getKey("guild-release", "");
int levelTime = guildInfo.getLevelTime();
if(levelTime == 0){
RedisUtil.getInstence().zsetRemoveOne(key,Integer.toString(guildInfo.getId()));
return;
}
levelTime+= SGuildSetting.sGuildSetting.getDestroyTime();
RedisUtil.getInstence().zsetAddOne(key,Integer.toString(guildInfo.getId()),levelTime);
}
} }

View File

@ -9,9 +9,6 @@ import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mission.*; import com.ljsd.jieling.logic.mission.*;
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor; import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
import com.ljsd.jieling.logic.mission.main.*; import com.ljsd.jieling.logic.mission.main.*;
import com.ljsd.jieling.protocols.MessageTypeProto;
import com.ljsd.jieling.protocols.PlayerInfoProto;
import com.ljsd.jieling.util.MessageUtil;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -24,11 +21,11 @@ public class UserMissionManager extends MongoBase {
private BeginerTaskIdsType beginerTaskIdsType=new BeginerTaskIdsType(); private BeginerTaskIdsType beginerTaskIdsType=new BeginerTaskIdsType();
private TreasureMissionType treasureMissionIdsType=new TreasureMissionType(); private TreasureMissionType treasureMissionIdsType=new TreasureMissionType();
private TreasureMissionType sevenHappyMissionType =new TreasureMissionType(); private ServenMissionIdsType sevenHappyMissionType =new ServenMissionIdsType();
//数据累加项 //数据累加项
private CumulationData cumulationData = new CumulationData(); private CumulationData cumulationData = new CumulationData();
private CumulationData dailyCumulationData = new CumulationData(); private CumulationData dailyCumulationData = new CumulationData();
private CumulationData begiinCumulationData = new CumulationData(); private CumulationData beginCumulationData = new CumulationData();
private CumulationData treasureCumulationData = new CumulationData(); private CumulationData treasureCumulationData = new CumulationData();
private CumulationData sevenHappyCumulationData = new CumulationData(); private CumulationData sevenHappyCumulationData = new CumulationData();
@ -80,7 +77,6 @@ public class UserMissionManager extends MongoBase {
sevenHappyMissionType.getDoingMissionIds().clear(); sevenHappyMissionType.getDoingMissionIds().clear();
sevenHappyMissionType.getFinishMissionIds().clear(); sevenHappyMissionType.getFinishMissionIds().clear();
sevenHappyMissionType.getRewardedMissionIds().clear(); sevenHappyMissionType.getRewardedMissionIds().clear();
sevenHappyMissionType.getTakeTimes().clear();
List<MissionStateChangeInfo> servenMissionmStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.SEVENMISSION); List<MissionStateChangeInfo> servenMissionmStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.SEVENMISSION);
for(STreasureTaskConfig sTreasureTaskConfig : sTreasureTaskConfigs){ for(STreasureTaskConfig sTreasureTaskConfig : sTreasureTaskConfigs){
sevenHappyMissionType.getDoingMissionIds().add(sTreasureTaskConfig.getId()); sevenHappyMissionType.getDoingMissionIds().add(sTreasureTaskConfig.getId());
@ -94,9 +90,9 @@ public class UserMissionManager extends MongoBase {
for(Integer id : SBeginnerTask.sBeginnerTaskCongigMap.keySet()){ for(Integer id : SBeginnerTask.sBeginnerTaskCongigMap.keySet()){
beginerTaskIdsType.addDoingMission(id); beginerTaskIdsType.addDoingMission(id);
} }
begiinCumulationData.reset(); beginCumulationData.reset();
updateString("beginerTaskIdsType", beginerTaskIdsType); updateString("beginerTaskIdsType", beginerTaskIdsType);
updateString("begiinCumulationData", begiinCumulationData); updateString("beginCumulationData", beginCumulationData);
break; break;
} }
@ -122,11 +118,9 @@ public class UserMissionManager extends MongoBase {
case SEVENHAPPY_MISSION_REWARD:{ case SEVENHAPPY_MISSION_REWARD:{
int missionId = (int) parm[0]; int missionId = (int) parm[0];
List<MissionStateChangeInfo> missionStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.SEVENMISSION); List<MissionStateChangeInfo> missionStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.SEVENMISSION);
sevenHappyMissionType.rewardMission(user,missionId, missionStateChangeInfos,sevenHappyCumulationData); sevenHappyMissionType.rewardMission((int)parm[0], missionStateChangeInfos);
if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){ if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){
int takeTimes = missionStateChangeInfos.get(0).getProgress(); int score = STreasureTaskConfig.sTreasureTaskConfigMap.get(missionId).getPoints();
missionStateChangeInfos.get(0).setProgress(0);
int score = STreasureTaskConfig.sTreasureTaskConfigMap.get(missionId).getPoints() * takeTimes;
calCumulationDataResult(user,MissionType.SENVER_HAPPY,missionTypeEnumListMap,score); calCumulationDataResult(user,MissionType.SENVER_HAPPY,missionTypeEnumListMap,score);
} }
} }
@ -161,11 +155,11 @@ public class UserMissionManager extends MongoBase {
if(!beginerTaskIdsType.getDoingMissionIds().isEmpty()){ if(!beginerTaskIdsType.getDoingMissionIds().isEmpty()){
List<SBeginnerTask> sBeginnerTasks = SBeginnerTask.sBeginnerByTypeMap.get(missionType.getMissionTypeValue()); List<SBeginnerTask> sBeginnerTasks = SBeginnerTask.sBeginnerByTypeMap.get(missionType.getMissionTypeValue());
if (sBeginnerTasks != null) { if (sBeginnerTasks != null) {
CumulationData.Result result = begiinCumulationData.updateData(missionType, parm); CumulationData.Result result = beginCumulationData.updateData(missionType, parm);
if(result!=null){ if(result!=null){
beginerTaskIdsType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.BEGINNERMISSION),begiinCumulationData); beginerTaskIdsType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.BEGINNERMISSION), beginCumulationData);
updateString("beginerTaskIdsType",beginerTaskIdsType); updateString("beginerTaskIdsType",beginerTaskIdsType);
updateString("begiinCumulationData",begiinCumulationData); updateString("beginCumulationData", beginCumulationData);
} }
} }
} }
@ -206,7 +200,7 @@ public class UserMissionManager extends MongoBase {
this.vipMissionIdsType = vipMissionIdsType; this.vipMissionIdsType = vipMissionIdsType;
} }
public void setSevenHappyMissionType(TreasureMissionType sevenHappyMissionType) { public void setSevenHappyMissionType(ServenMissionIdsType sevenHappyMissionType) {
updateString("sevenHappyMissionType",sevenHappyMissionType); updateString("sevenHappyMissionType",sevenHappyMissionType);
this.sevenHappyMissionType = sevenHappyMissionType; this.sevenHappyMissionType = sevenHappyMissionType;
} }
@ -236,7 +230,7 @@ public class UserMissionManager extends MongoBase {
return treasureCumulationData; return treasureCumulationData;
} }
public TreasureMissionType getSevenHappyMissionType() { public ServenMissionIdsType getSevenHappyMissionType() {
return sevenHappyMissionType; return sevenHappyMissionType;
} }
@ -249,7 +243,7 @@ public class UserMissionManager extends MongoBase {
return beginerTaskIdsType; return beginerTaskIdsType;
} }
public CumulationData getBegiinCumulationData() { public CumulationData getBeginCumulationData() {
return begiinCumulationData; return beginCumulationData;
} }
} }

View File

@ -494,6 +494,10 @@ public class GuildLogic {
MessageUtil.sendErrorResponse(session,0,msgId,"无权操作"); MessageUtil.sendErrorResponse(session,0,msgId,"无权操作");
return; return;
} }
if(type == 1 && guildInfo.getLevelTime()>0){
MessageUtil.sendErrorResponse(session,0,msgId,"已操作过了");
return;
}
//解散公会 //解散公会
if(type == 1){ if(type == 1){
guildInfo.setLevelTime((int)(System.currentTimeMillis()/1000)); guildInfo.setLevelTime((int)(System.currentTimeMillis()/1000));
@ -501,7 +505,7 @@ public class GuildLogic {
guildInfo.setLevelTime(0); guildInfo.setLevelTime(0);
} }
sendFamilyBaseUpdateIndication(guildInfo); sendFamilyBaseUpdateIndication(guildInfo);
releaseGuild(guildInfo); GuilidManager.addGuildToRelease(guildInfo);
MessageUtil.sendMessage(session,1,msgId,null,true); MessageUtil.sendMessage(session,1,msgId,null,true);
} }

View File

@ -1113,7 +1113,7 @@ public class HeroLogic {
float score = sPropertyConfig.getScore(); float score = sPropertyConfig.getScore();
result += propertyValue*score; result += propertyValue*score;
// LOGGER.info("the value is ={},propertyValue={},score={}result ={},the value={}",propertyValue*score,propertyValue,score,result,propertyValue*score); LOGGER.info("the value is ={},propertyValue={},score={}result ={},the value={}",propertyValue*score,propertyValue,score,result,propertyValue*score);
} }
return (int)result; return (int)result;
} }
@ -1531,6 +1531,8 @@ public class HeroLogic {
for(Pokemon pokemon : pokemonMap.values()){ for(Pokemon pokemon : pokemonMap.values()){
combinePokemonAttribute(pokemonAttributeMap, pokemon,false); combinePokemonAttribute(pokemonAttributeMap, pokemon,false);
} }
int i = calForce(pokemonAttributeMap) * 5;
return calForce(pokemonAttributeMap)*5; return calForce(pokemonAttributeMap)*5;
} }

View File

@ -44,7 +44,7 @@ public class MissionLoigc {
private static void getBeginnerMisssion(User user, List<CommonProto.UserMissionInfo> missionList) { private static void getBeginnerMisssion(User user, List<CommonProto.UserMissionInfo> missionList) {
UserMissionManager userMissionManager = user.getUserMissionManager(); UserMissionManager userMissionManager = user.getUserMissionManager();
BeginerTaskIdsType beginerTaskIdsType = userMissionManager.getBeginerTaskIdsType(); BeginerTaskIdsType beginerTaskIdsType = userMissionManager.getBeginerTaskIdsType();
CumulationData begiinCumulationData = userMissionManager.getBegiinCumulationData(); CumulationData begiinCumulationData = userMissionManager.getBeginCumulationData();
Set<Integer> doingMissionIds = beginerTaskIdsType.getDoingMissionIds(); Set<Integer> doingMissionIds = beginerTaskIdsType.getDoingMissionIds();
Set<Integer> finishMissionIds = beginerTaskIdsType.getFinishMissionIds(); Set<Integer> finishMissionIds = beginerTaskIdsType.getFinishMissionIds();
Map<Integer, SBeginnerTask> sBeginnerTaskCongigMap = SBeginnerTask.sBeginnerTaskCongigMap; Map<Integer, SBeginnerTask> sBeginnerTaskCongigMap = SBeginnerTask.sBeginnerTaskCongigMap;
@ -63,6 +63,41 @@ public class MissionLoigc {
} }
} }
private static void getServenMision(User user,int treasureActivityId,List<CommonProto.UserMissionInfo> missionList){
List<STreasureTaskConfig> sTreasureTaskConfigs = STreasureTaskConfig.sTreasureTaskConfigListByActivityMap.get(treasureActivityId);
UserMissionManager userMissionManager = user.getUserMissionManager();
ServenMissionIdsType sevenHappyMissionType = userMissionManager.getSevenHappyMissionType();
CumulationData dailyCumulationData = userMissionManager.getSevenHappyCumulationData();
Set<Integer> doingMissionIds = sevenHappyMissionType.getDoingMissionIds();
Set<Integer> finishMissionIds = sevenHappyMissionType.getFinishMissionIds();
int missionType = GameMisionType.SEVENMISSION.getType();
for(STreasureTaskConfig sTreasureTaskConfig:sTreasureTaskConfigs){
int state = 2;
int missionId = sTreasureTaskConfig.getId();
int progrss = sTreasureTaskConfig.getTaskValue()[1][0];
if(doingMissionIds.contains(missionId)){
state = 0;
if(progrss<0){
progrss=0;
}
progrss = getDoingProgress(user,dailyCumulationData,sTreasureTaskConfig.getTaskType(),sTreasureTaskConfig.getTaskValue()[0]);
}else if(finishMissionIds.contains(missionId)){
state = 1;
if(progrss<0){
progrss=1;
}
}
if(state!=2 && sTreasureTaskConfig.getTaskType() == MissionType.SENVER_HAPPY.getMissionTypeValue()){
if(System.currentTimeMillis()>user.getActivityManager().getSenvenTime()){
state=1;
}else {
state =0;
}
}
missionList.add(CommonProto.UserMissionInfo.newBuilder().setMissionId(missionId).setState(state).setType(missionType).setProgress(progrss).build());
}
}
private static void getTreasureMission(User user, List<CommonProto.UserMissionInfo> missionList,int activityType) { private static void getTreasureMission(User user, List<CommonProto.UserMissionInfo> missionList,int activityType) {
Map<Integer, ActivityMission> activityMissionMap = user.getActivityManager().getActivityMissionMap(); Map<Integer, ActivityMission> activityMissionMap = user.getActivityManager().getActivityMissionMap();
int treasureActivityId = 0; int treasureActivityId = 0;
@ -78,9 +113,8 @@ public class MissionLoigc {
CumulationData treasureCumulationData = user.getUserMissionManager().getTreasureCumulationData(); CumulationData treasureCumulationData = user.getUserMissionManager().getTreasureCumulationData();
int treasuremissionType = GameMisionType.TREASUREMISSION.getType(); int treasuremissionType = GameMisionType.TREASUREMISSION.getType();
if(activityType == ActivityType.SERVERHAPPY){ if(activityType == ActivityType.SERVERHAPPY){
treasureMissionIdsType = user.getUserMissionManager().getSevenHappyMissionType(); getServenMision(user,treasureActivityId,missionList);
treasureCumulationData = user.getUserMissionManager().getSevenHappyCumulationData(); return;
treasuremissionType = GameMisionType.SEVENMISSION.getType();
} }
BitSet rewardedMissionIds = treasureMissionIdsType.getRewardedMissionIds(); BitSet rewardedMissionIds = treasureMissionIdsType.getRewardedMissionIds();
Map<Integer, Integer> takeTimesMap = treasureMissionIdsType.getTakeTimes(); Map<Integer, Integer> takeTimesMap = treasureMissionIdsType.getTakeTimes();
@ -118,13 +152,6 @@ public class MissionLoigc {
}else{ }else{
takeTimes = takeTimesMap.get(missionId); takeTimes = takeTimesMap.get(missionId);
} }
if(state!=2 && sTreasureTaskConfig.getTaskType() == MissionType.SENVER_HAPPY.getMissionTypeValue()){
if(System.currentTimeMillis()>user.getActivityManager().getSenvenTime()){
state=1;
}else {
state =0;
}
}
if(takeTimes == null){ if(takeTimes == null){
takeTimes=0; takeTimes=0;

View File

@ -3,6 +3,7 @@ package com.ljsd.jieling.logic.mission.event;
import com.ljsd.jieling.config.SBeginnerTask; import com.ljsd.jieling.config.SBeginnerTask;
import com.ljsd.jieling.config.SDailyTasksConfig; import com.ljsd.jieling.config.SDailyTasksConfig;
import com.ljsd.jieling.config.STaskConfig; import com.ljsd.jieling.config.STaskConfig;
import com.ljsd.jieling.config.STreasureTaskConfig;
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.mission.*; import com.ljsd.jieling.logic.mission.*;
@ -284,7 +285,7 @@ public class MissionEventDistributor {
progress= MissionLoigc.getDoingProgress(user,user.getUserMissionManager().getDailyCumulationData(),sDailyTasksConfig.getType(),sDailyTasksConfig.getValues()[0]); progress= MissionLoigc.getDoingProgress(user,user.getUserMissionManager().getDailyCumulationData(),sDailyTasksConfig.getType(),sDailyTasksConfig.getValues()[0]);
}else if(gameMisionType == GameMisionType.BEGINNERMISSION){ }else if(gameMisionType == GameMisionType.BEGINNERMISSION){
SBeginnerTask sBeginnerTask = SBeginnerTask.sBeginnerTaskCongigMap.get(missionStateChangeInfo.getMissionId()); SBeginnerTask sBeginnerTask = SBeginnerTask.sBeginnerTaskCongigMap.get(missionStateChangeInfo.getMissionId());
progress= MissionLoigc.getDoingProgress(user,user.getUserMissionManager().getBegiinCumulationData(),sBeginnerTask.getTaskType(),sBeginnerTask.getTaskValue()[0]); progress= MissionLoigc.getDoingProgress(user,user.getUserMissionManager().getBeginCumulationData(),sBeginnerTask.getTaskType(),sBeginnerTask.getTaskValue()[0]);
} }
}else if(missionState == MissionState.FINISH || missionState == MissionState.REWARD){ }else if(missionState == MissionState.FINISH || missionState == MissionState.REWARD){
if(gameMisionType == GameMisionType.VIPMISSION){ if(gameMisionType == GameMisionType.VIPMISSION){
@ -299,6 +300,10 @@ public class MissionEventDistributor {
SBeginnerTask sBeginnerTask = SBeginnerTask.sBeginnerTaskCongigMap.get(missionStateChangeInfo.getMissionId()); SBeginnerTask sBeginnerTask = SBeginnerTask.sBeginnerTaskCongigMap.get(missionStateChangeInfo.getMissionId());
progress= sBeginnerTask.getTaskValue()[1][0]; progress= sBeginnerTask.getTaskValue()[1][0];
} }
if(gameMisionType == GameMisionType.SEVENMISSION){
STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureTaskConfigMap.get(missionStateChangeInfo.getMissionId());
progress= sTreasureTaskConfig.getTaskValue()[1][0];
}
} }
builder.addUserMissionInfo(CommonProto.UserMissionInfo.newBuilder().setMissionId(missionStateChangeInfo.getMissionId()).setType(gameMisionType.getType()).setState(state).setProgress(progress).setTakeTimes(missionStateChangeInfo.getHadTakes())); builder.addUserMissionInfo(CommonProto.UserMissionInfo.newBuilder().setMissionId(missionStateChangeInfo.getMissionId()).setType(gameMisionType.getType()).setState(state).setProgress(progress).setTakeTimes(missionStateChangeInfo.getHadTakes()));
} }

View File

@ -0,0 +1,86 @@
package com.ljsd.jieling.logic.mission.main;
import com.ljsd.jieling.config.SDailyTasksConfig;
import com.ljsd.jieling.config.STreasureTaskConfig;
import com.ljsd.jieling.logic.dao.CumulationData;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mission.MissionLoigc;
import com.ljsd.jieling.logic.mission.MissionState;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
public class ServenMissionIdsType extends AbstractMissionType{
@Override
public void openMission(User user, int missionId,List<MissionStateChangeInfo> missionTypeEnumList) {
getDoingMissionIds().clear();
getFinishMissionIds().clear();
getDoingMissionIds().add(missionId);
}
@Override
public int[][] reward(int missionId) {
STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureTaskConfigMap.get(missionId);
return sTreasureTaskConfig.getRewward();
}
@Override
public void calCumulationDataResult(User user, CumulationData.Result result, List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData) {
List<STreasureTaskConfig> sTaskConfigs = STreasureTaskConfig.sTreasureTaskConfigListByTypeMap.get(result.subType.getMissionTypeValue());
if (sTaskConfigs == null) {
return;
}
checkAndUpdateMision(user,sTaskConfigs,missionStateChangeInfos,cumulationData);
}
public void checkAndUpdateMision(User user,List<STreasureTaskConfig> sTaskConfigs, List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData){
Set<Integer> doingMissionIds = getDoingMissionIds();
for (STreasureTaskConfig sTaskConfig : sTaskConfigs) {
int missionId = sTaskConfig.getId();
if (!doingMissionIds.contains(missionId)) {
continue;
}
int finishParm = sTaskConfig.getTaskValue()[1][0];
int doingProgress = MissionLoigc.getDoingProgress(user, cumulationData, sTaskConfig.getTaskType(), sTaskConfig.getTaskValue()[0]);
if((doingProgress!=0 && finishParm<0 && ( doingProgress)>=finishParm)){
doingMissionIds.remove(sTaskConfig.getId());
getFinishMissionIds().add(sTaskConfig.getId());
MissionStateChangeInfo missionStateChangeInfo = new MissionStateChangeInfo(sTaskConfig.getId(), MissionState.FINISH,1);
missionStateChangeInfos.add(missionStateChangeInfo);
continue;
}
if(finishParm<0){
continue;
}
boolean isFinish = doingProgress >= sTaskConfig.getTaskValue()[1][0];
if (!isFinish) {
MissionStateChangeInfo doingInfo = new MissionStateChangeInfo(missionId,
MissionState.DOING, doingProgress);
boolean flag = false;
for (MissionStateChangeInfo missionStateChangeInfo : missionStateChangeInfos) {
if (missionStateChangeInfo.getMissionId() == missionId) {
flag = true;
}
}
if (!flag) {
missionStateChangeInfos.add(doingInfo);
}
continue;
}
MissionStateChangeInfo finishInfo = new MissionStateChangeInfo(missionId,
MissionState.FINISH, finishParm);
Iterator<MissionStateChangeInfo> iterator = missionStateChangeInfos.iterator();
while (iterator.hasNext()) {
MissionStateChangeInfo next = iterator.next();
if (next.getMissionId() == missionId) {
iterator.remove();
}
}
missionStateChangeInfos.add(finishInfo);
doingMissionIds.remove(missionId);
getFinishMissionIds().add(missionId);
}
}
}

View File

@ -15,6 +15,7 @@ import com.ljsd.jieling.logic.hero.HeroLogic;
import com.ljsd.jieling.logic.mail.MailLogic; import com.ljsd.jieling.logic.mail.MailLogic;
import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.mission.MissionLoigc; import com.ljsd.jieling.logic.mission.MissionLoigc;
import com.ljsd.jieling.logic.mission.main.ServenMissionIdsType;
import com.ljsd.jieling.logic.mission.main.TreasureMissionType; import com.ljsd.jieling.logic.mission.main.TreasureMissionType;
import com.ljsd.jieling.logic.store.GiftGoodsType; import com.ljsd.jieling.logic.store.GiftGoodsType;
import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.network.session.ISession;
@ -405,7 +406,7 @@ public class PlayerLogic {
return; return;
} }
STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureSevenTaskConfigByActivityMap.get(treasureActivityId); STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureSevenTaskConfigByActivityMap.get(treasureActivityId);
TreasureMissionType sevenHappyMissionType = user.getUserMissionManager().getSevenHappyMissionType(); ServenMissionIdsType sevenHappyMissionType = user.getUserMissionManager().getSevenHappyMissionType();
if(sevenHappyMissionType.getRewardedMissionIds().get(sTreasureTaskConfig.getId())){ if(sevenHappyMissionType.getRewardedMissionIds().get(sTreasureTaskConfig.getId())){
MessageUtil.sendErrorResponse(iSession,0,msgId,"奖励已领取"); MessageUtil.sendErrorResponse(iSession,0,msgId,"奖励已领取");
return; return;

View File

@ -172,9 +172,7 @@ public class ProtocolsManager implements ProtocolsAbstract {
return; return;
} }
//处理多设备重登 //处理多设备重登
if (dealRepeatLogin(session.getUid())==1){ dealRepeatLogin(session.getUid());
return;
}
//刷新token //刷新token
refreshToken(session); refreshToken(session);
//在线列表加入session //在线列表加入session

View File

@ -85,6 +85,7 @@ public class ThreadManager {
LOGGER.info("delayForMinute---->>>>{}" ,delayForMinute); LOGGER.info("delayForMinute---->>>>{}" ,delayForMinute);
scheduledExecutor.scheduleAtFixedRate(platConfigureTask, 10, SLEEP_INTEVAL_TIME, TimeUnit.SECONDS); scheduledExecutor.scheduleAtFixedRate(platConfigureTask, 10, SLEEP_INTEVAL_TIME, TimeUnit.SECONDS);
scheduledExecutor.scheduleAtFixedRate(new MinuteTask(), delayForMinute, 60, TimeUnit.SECONDS); scheduledExecutor.scheduleAtFixedRate(new MinuteTask(), delayForMinute, 60, TimeUnit.SECONDS);
scheduledExecutor.scheduleAtFixedRate(new SecondsTask(), 0, 1, TimeUnit.SECONDS);
scheduledExecutor.scheduleAtFixedRate(new Thread(){ scheduledExecutor.scheduleAtFixedRate(new Thread(){
public void run () { public void run () {
long lastMilis = System.currentTimeMillis(); long lastMilis = System.currentTimeMillis();

View File

@ -0,0 +1,24 @@
package com.ljsd.jieling.thread.task;
import com.ljsd.jieling.logic.dao.GuilidManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SecondsTask extends Thread {
private static final Logger LOGGER = LoggerFactory.getLogger(SecondsTask.class);
public SecondsTask(){
this.setName("SecondsTask");
}
@Override
public void run() {
try {
GuilidManager.checkNeedReleaseGuild();
} catch (Exception e) {
LOGGER.error("e",e);
}
}
}

View File

@ -350,7 +350,7 @@ public class CBean2Proto {
.setName(guildInfo.getName()) .setName(guildInfo.getName())
.setJoinType(guildInfo.getJoinType()) .setJoinType(guildInfo.getJoinType())
.setMaxNum(30) .setMaxNum(30)
.setLevle(guildInfo.getLevelTime()) .setLevelTime(guildInfo.getLevelTime())
.setLevle(guildInfo.getLevel()) .setLevle(guildInfo.getLevel())
.setExp(guildInfo.getExp()) .setExp(guildInfo.getExp())
.setTotalNum(guildInfo.getTotalMembers()) .setTotalNum(guildInfo.getTotalMembers())