删除公会 删除排行
parent
2dbe80f3a5
commit
5a1f8e8268
|
@ -822,9 +822,6 @@ public class RedisUtil {
|
|||
}
|
||||
|
||||
public void zsetRemoveOne(String key, String value){
|
||||
if(key.contains(RedisKey.CAR_DEALY_RANK)){
|
||||
LOGGER.info("此处删除了车迟斗法排行key:{},value:{}",key,value);
|
||||
}
|
||||
for (int i = 0; i < MAX_TRY_TIMES; i++) {
|
||||
try {
|
||||
redisTemplate.opsForZSet().remove(key, value);
|
||||
|
|
|
@ -340,7 +340,7 @@ public class GlobalDataManaager implements IManager {
|
|||
BuyGoodsLogic.flushEveryDay(user);
|
||||
ExpeditionLogic.getInstance().flushUserdataEveryDay(user);
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.DAILY_REFRESH,0);
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.BLOODY_REFRESH,0);
|
||||
// user.getUserMissionManager().onGameEvent(user, GameEvent.BLOODY_REFRESH,0);
|
||||
FriendLogic.getInstance().refreshState(session);
|
||||
PlayerLogic.getInstance().sendTimingMail(user);
|
||||
user.getGuildMyInfo().setLastHurt(0);
|
||||
|
|
|
@ -119,4 +119,20 @@ public class RankLogic {
|
|||
PlayerInfoProto.RankProudResponse response = PlayerInfoProto.RankProudResponse.newBuilder().setDrop(dropBuilder.build()).build();
|
||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据value删除一条排行
|
||||
* @param type
|
||||
* @param rkey
|
||||
* @param value
|
||||
*/
|
||||
public void removeOneRankByPiece(int type,String rkey,String value){
|
||||
AbstractRank rank = RankContext.getRankEnum(type);
|
||||
rank.removeOneRankByPiece(rkey,value);
|
||||
}
|
||||
|
||||
public void removeAllRank(int type,String rkey){
|
||||
AbstractRank rank = RankContext.getRankEnum(type);
|
||||
rank.removeAllRank(rkey);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,12 +5,15 @@ import com.ljsd.jieling.db.redis.RedisUtil;
|
|||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.rank.IRank;
|
||||
import org.springframework.data.redis.core.Cursor;
|
||||
import rpc.protocols.CommonProto;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.data.redis.core.ZSetOperations;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.HashSet;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.function.BiConsumer;
|
||||
|
@ -215,4 +218,22 @@ public abstract class AbstractRank implements IRank {
|
|||
return RedisUtil.getInstence().getZSetreverseRank(redisKey,rkey,Integer.toString(uid)).intValue();
|
||||
}
|
||||
|
||||
public void removeOneRankByPiece(String rkey,String value){
|
||||
RedisUtil.getInstence().zsetRemoveOne(RedisKey.getKey(redisKey,rkey,false),value);
|
||||
}
|
||||
public void removeAllRank(String rkey){
|
||||
try {
|
||||
|
||||
Cursor<String> cursor2 =RedisUtil.getInstence().scan( RedisKey.getKey(redisKey,rkey,false)+"*", 200);
|
||||
while (cursor2.hasNext()){
|
||||
String next = cursor2.next();
|
||||
LOGGER.info("删除排行{}",next);
|
||||
RedisUtil.getInstence().del(next);
|
||||
}
|
||||
cursor2.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,12 +1,16 @@
|
|||
package com.ljsd.jieling.thread.task;
|
||||
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.db.mongo.LjsdMongoTemplate;
|
||||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
import com.ljsd.jieling.logic.dao.GuilidManager;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||
import com.ljsd.jieling.logic.rank.RankEnum;
|
||||
import com.ljsd.jieling.logic.rank.RankLogic;
|
||||
import config.SErrorCodeEerverConfig;
|
||||
import util.TimeUtils;
|
||||
|
||||
|
@ -84,12 +88,30 @@ public class GuildChangeTask implements GeneralTask{
|
|||
String title = SErrorCodeEerverConfig.getI18NMessage("GuildDismiss_mail_title");
|
||||
String content = SErrorCodeEerverConfig.getI18NMessage("GuildDismiss_mail_content", new Object[]{guildInfo.getName()});
|
||||
sendMailToGuild(guildInfo,title,content,(int)(now/1000));
|
||||
Map<Integer, Set<Integer>> members = guildInfo.getMembers();
|
||||
for(Map.Entry<Integer, Set<Integer>> entry:members.entrySet()){
|
||||
for(int uid:entry.getValue()){
|
||||
try {
|
||||
UserManager.getUser(uid).getPlayerInfoManager().setGuildId(0);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
RankLogic.getInstance().removeAllRank(RankEnum.GUILD_CHALLENGE_RANK.getType(),String.valueOf(guildInfo.getId()));
|
||||
RankLogic.getInstance().removeOneRankByPiece(RankEnum.GUILD_FORCE_RANK.getType(),"",String.valueOf(guildInfo.getId()));
|
||||
|
||||
GuilidManager.removeGuildInfo(guildInfo);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
try {
|
||||
MongoUtil.getLjsdMongoTemplate().lastUpdate();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void sendMailToGuild(GuildInfo info,String title,String content,int sendTime){
|
||||
|
|
|
@ -24,12 +24,13 @@ public class GuildCheckOfflineTask implements GeneralTask {
|
|||
private static final Logger LOGGER = LoggerFactory.getLogger(GuildCheckOfflineTask.class);
|
||||
@Override
|
||||
public void run() {
|
||||
LOGGER.info("=-------公会检测开始-------");
|
||||
long now = TimeUtils.now();
|
||||
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.guildInfoMap;
|
||||
Set<Integer> chairmanChangeGuilds = new HashSet<>();
|
||||
Set<Integer> releaseGuilds = new HashSet<>();
|
||||
for(Map.Entry<Integer, GuildInfo> entry:guildInfoMap.entrySet()){
|
||||
LOGGER.info("{}公会已完成离线检测",entry.getKey());
|
||||
LOGGER.info("{}公会已开始离线检测",entry.getKey());
|
||||
GuildInfo value = entry.getValue();
|
||||
Map<Integer, Set<Integer>> members = value.getMembers();
|
||||
//判断会长
|
||||
|
@ -58,42 +59,54 @@ public class GuildCheckOfflineTask implements GeneralTask {
|
|||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
boolean isNeedRelease=true;
|
||||
//看官员职位
|
||||
Set<Integer> admins = members.get(GlobalsDef.ADMINISTRATORS);
|
||||
for(int uid:admins){
|
||||
try {
|
||||
User user = UserManager.getUser(uid);
|
||||
if(user==null||user.getPlayerInfoManager()==null){
|
||||
LOGGER.error("{}公会官员数据需要修理==>{}",entry.getKey(),uid);
|
||||
}else{
|
||||
long offLineTime = user.getPlayerInfoManager().getOffLineTime();
|
||||
if(now-offLineTime<TimeUnit.DAYS.toMillis(15)){
|
||||
continue;
|
||||
if(admins!=null&&admins.size()>0){
|
||||
for(int uid:admins){
|
||||
try {
|
||||
User user = UserManager.getUser(uid);
|
||||
if(user==null||user.getPlayerInfoManager()==null){
|
||||
LOGGER.error("{}公会官员数据需要修理==>{}",entry.getKey(),uid);
|
||||
}else{
|
||||
long offLineTime = user.getPlayerInfoManager().getOffLineTime();
|
||||
if(now-offLineTime<TimeUnit.DAYS.toMillis(15)){
|
||||
isNeedRelease = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
Set<Integer> member = members.get(GlobalsDef.ADMINISTRATORS);
|
||||
for(int uid:member) {
|
||||
try {
|
||||
User user = UserManager.getUser(uid);
|
||||
if(user==null||user.getPlayerInfoManager()==null){
|
||||
LOGGER.error("{}公会会员数据需要修理==>{}",entry.getKey(),uid);
|
||||
}else{
|
||||
long offLineTime = user.getPlayerInfoManager().getOffLineTime();
|
||||
if(now-offLineTime<TimeUnit.DAYS.toMillis(15)){
|
||||
continue;
|
||||
if(member!=null&&member.size()>0){
|
||||
for(int uid:member) {
|
||||
try {
|
||||
User user = UserManager.getUser(uid);
|
||||
if(user==null||user.getPlayerInfoManager()==null){
|
||||
LOGGER.error("{}公会会员数据需要修理==>{}",entry.getKey(),uid);
|
||||
}else{
|
||||
long offLineTime = user.getPlayerInfoManager().getOffLineTime();
|
||||
if(now-offLineTime<TimeUnit.DAYS.toMillis(15)){
|
||||
isNeedRelease = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
if(isNeedRelease){
|
||||
releaseGuilds.add(entry.getKey());
|
||||
}
|
||||
releaseGuilds.add(entry.getKey());
|
||||
}
|
||||
|
||||
ThreadManager.commitGeneralTask(new GuildChangeTask(chairmanChangeGuilds,releaseGuilds));
|
||||
LOGGER.info("=-------公会检测结束-------");
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue