Skip to content

Commit

Permalink
better code
Browse files Browse the repository at this point in the history
  • Loading branch information
John-Chan committed Apr 28, 2018
1 parent 48d8a5a commit 56d8624
Show file tree
Hide file tree
Showing 54 changed files with 573 additions and 424 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/afc71b9702ec44c6b9ba58ec1135e380)](https://www.codacy.com/app/jclazz/sc-coc?utm_source=github.com&utm_medium=referral&utm_content=shufork/sc-coc&utm_campaign=Badge_Grade)
# sc-coc

TODO:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package me.shufork.biz;

import me.shufork.common.mq.sink.*;
import me.shufork.common.mq.sink.ClanDetailedInfoLoadedSink;
import me.shufork.common.mq.sink.WarLogLoadedSink;
import me.shufork.common.mq.sink.WarLogRejectedSink;
import me.shufork.common.mq.source.ClanFoundSource;
import me.shufork.common.mq.source.CocIoTaskCreatedSource;
import me.shufork.common.mq.source.PlayerFoundSource;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
package me.shufork.biz.config;
import me.shufork.biz.vo.WarLogEntryVo;
import me.shufork.common.dto.supercell.coc.WarLogEntryClanDto;
import me.shufork.biz.domain.CocWarLog;
import me.shufork.biz.domain.CocWarTeam;
import me.shufork.biz.vo.WarLogEntryClanVo;
import me.shufork.common.dto.supercell.coc.*;

import java.util.Date;
import me.shufork.biz.converter.ClanBasicInfoDtoConverter;
import me.shufork.biz.converter.ClanDetailedInfoDtoConverter;
import me.shufork.biz.converter.WarLogEntryClanVoConverter;
import me.shufork.biz.converter.WarLogEntryVoConverter;
import me.shufork.biz.domain.CocClan;
import me.shufork.biz.domain.CocClanDetails;
import me.shufork.common.constants.CocConstants;
import me.shufork.common.utils.CocDateTimeUtil;
import me.shufork.biz.domain.CocWarLog;
import me.shufork.biz.domain.CocWarTeam;
import me.shufork.biz.vo.WarLogEntryClanVo;
import me.shufork.biz.vo.WarLogEntryVo;
import me.shufork.common.dto.supercell.coc.ClanBasicInfoDto;
import me.shufork.common.dto.supercell.coc.ClanDetailedInfoDto;
import org.modelmapper.ModelMapper;
import org.modelmapper.convention.MatchingStrategies;
import org.springframework.context.annotation.Bean;
Expand All @@ -25,133 +26,26 @@ public ModelMapper modelMapper() {

// note ignore version,createdTime,modifiedTime for domain object

modelMapper.createTypeMap(WarLogEntryClanVo.class,CocWarTeam.class).setConverter(mappingContext -> {
WarLogEntryClanVo source = mappingContext.getSource();
CocWarTeam target = new CocWarTeam();

target.setOpponent(source.getOpponent());
target.setWarTime(source.getWarTime());
target.setClan(source.getTag());
target.setName(source.getName());
target.setBadgeSmall(source.getBadgeUrls().getSmall());
target.setBadgeMedium(source.getBadgeUrls().getMedium());
target.setBadgeLarge(source.getBadgeUrls().getLarge());
target.setClanLevel(source.getClanLevel());
target.setAttacks(source.getAttacks());
target.setStars(source.getStars());
target.setDestructionPercentage(source.getDestructionPercentage());
target.setExpEarned(source.getExpEarned());

return target;
});
modelMapper.createTypeMap(CocWarTeam.class,WarLogEntryClanVo.class).setConverter(mappingContext -> {
CocWarTeam source = mappingContext.getSource();
WarLogEntryClanVo target = new WarLogEntryClanVo();

target.setOpponent(source.getOpponent());
target.setWarTime(source.getWarTime());
target.setTag(source.getClan());
target.setName(source.getName());

ClanBadgeUrlsDto clanBadgeUrlsDto = new ClanBadgeUrlsDto();
clanBadgeUrlsDto.setLarge(source.getBadgeLarge());
clanBadgeUrlsDto.setMedium(source.getBadgeMedium());
clanBadgeUrlsDto.setSmall(source.getBadgeSmall());
target.setBadgeUrls(clanBadgeUrlsDto);

target.setClanLevel(source.getClanLevel());
target.setAttacks(source.getAttacks());
target.setStars(source.getStars());
target.setDestructionPercentage(source.getDestructionPercentage());
target.setExpEarned(source.getExpEarned());

return target;
});

modelMapper.createTypeMap(ClanBasicInfoDto.class,CocClan.class).setConverter(mappingContext -> {
ClanBasicInfoDto source = mappingContext.getSource();
CocClan target = new CocClan();

target.setTag(source.getTag());
target.setName(source.getName());
target.setClanLevel(source.getClanLevel());
target.setBadgeSmall(source.getBadgeUrls().getSmall());
target.setBadgeMedium(source.getBadgeUrls().getMedium());
target.setBadgeLarge(source.getBadgeUrls().getLarge());

return target;
});

modelMapper.createTypeMap(CocWarLog.class,WarLogEntryVo.class).setConverter(mappingContext -> {
CocWarLog source = mappingContext.getSource();
WarLogEntryVo target = new WarLogEntryVo();
target.setResult(source.getResult());
target.setEndTime(CocDateTimeUtil.format(source.getEndTime()));
target.setTeamSize(source.getTeamSize());
target.setHomeTeam(source.getHomeTeam());
target.setAwayTeam(source.getAwayTeam());
return target;
});
modelMapper.createTypeMap(WarLogEntryClanVo.class,CocWarTeam.class)
.setConverter(new WarLogEntryClanVoConverter.ToCocWarTeam());

modelMapper.createTypeMap(CocClan.class,ClanBasicInfoDto.class).setConverter(mappingContext -> {
CocClan source = mappingContext.getSource();
ClanBasicInfoDto target = new ClanBasicInfoDto();
modelMapper.createTypeMap(CocWarTeam.class,WarLogEntryClanVo.class)
.setConverter(new WarLogEntryClanVoConverter.FromCocWarTeam());

target.setTag(source.getTag());
target.setName(source.getName());
target.setClanLevel(source.getClanLevel());
modelMapper.createTypeMap(ClanBasicInfoDto.class,CocClan.class)
.setConverter(new ClanBasicInfoDtoConverter.ToCocClan());

ClanBadgeUrlsDto clanBadgeUrlsDto = new ClanBadgeUrlsDto();
clanBadgeUrlsDto.setLarge(source.getBadgeLarge());
clanBadgeUrlsDto.setMedium(source.getBadgeMedium());
clanBadgeUrlsDto.setSmall(source.getBadgeSmall());
target.setBadgeUrls(clanBadgeUrlsDto);
return target;
});
modelMapper.createTypeMap(CocClanDetails.class,ClanDetailedInfoDto.class).setConverter(mappingContext -> {
CocClanDetails source = mappingContext.getSource();
ClanDetailedInfoDto target = new ClanDetailedInfoDto();
target.setTag(source.getTag());
target.setType(source.getType());
target.setDescription(source.getDescription());
// TODO : location
target.setLocation(null);
target.setClanPoints(source.getClanPoints());
target.setClanVersusPoints(source.getClanVersusPoints());
target.setRequiredTrophies(source.getRequiredTrophies());
target.setWarFrequency(source.getWarFrequency());
target.setWarWinStreak(source.getWarWinStreak());
target.setWarWins(source.getWarWins());
target.setWarTies(source.getWarTies());
target.setWarLosses(source.getWarLosses());
target.setWarLogPublic(source.isWarLogPublic());
target.setTotalMembers(source.getTotalMembers());
modelMapper.createTypeMap(CocClan.class,ClanBasicInfoDto.class)
.setConverter(new ClanBasicInfoDtoConverter.FromCocClan());

//clan member ignored
return target;
});
modelMapper.createTypeMap(CocWarLog.class,WarLogEntryVo.class)
.setConverter(new WarLogEntryVoConverter.FromCocWarLog());

modelMapper.createTypeMap(ClanDetailedInfoDto.class,CocClanDetails.class).setConverter(mappingContext -> {
ClanDetailedInfoDto source = mappingContext.getSource();
CocClanDetails target = new CocClanDetails();
target.setTag(source.getTag());
target.setType(source.getType());
target.setDescription(source.getDescription());
target.setLocation(source.getLocation()==null? CocConstants.LOCATION_ID_INVALID:source.getLocation().getId());
target.setClanPoints(source.getClanPoints());
target.setClanVersusPoints(source.getClanVersusPoints());
target.setRequiredTrophies(source.getRequiredTrophies());
target.setWarFrequency(source.getWarFrequency());
target.setWarWinStreak(source.getWarWinStreak());
target.setWarWins(source.getWarWins());
target.setWarTies(source.getWarTies());
target.setWarLosses(source.getWarLosses());
target.setWarLogPublic(source.isWarLogPublic());
target.setTotalMembers(source.getTotalMembers());
modelMapper.createTypeMap(ClanDetailedInfoDto.class,CocClanDetails.class)
.setConverter(new ClanDetailedInfoDtoConverter.ToCocClanDetails());

//clan member ignored
return target;
});
modelMapper.createTypeMap(CocClanDetails.class,ClanDetailedInfoDto.class)
.setConverter(new ClanDetailedInfoDtoConverter.FromCocClanDetails());


return modelMapper;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import lombok.extern.slf4j.Slf4j;
import me.shufork.biz.service.WarLogService;
import me.shufork.biz.vo.WarLogEntryVo;
import me.shufork.biz.vo.WarTeamVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,47 @@
package me.shufork.biz.converter;

public class ClanBasicInfoDtoConverter {
import me.shufork.biz.domain.CocClan;
import me.shufork.common.dto.supercell.coc.ClanBadgeUrlsDto;
import me.shufork.common.dto.supercell.coc.ClanBasicInfoDto;
import org.modelmapper.Converter;
import org.modelmapper.spi.MappingContext;

public abstract class ClanBasicInfoDtoConverter {
public static class ToCocClan implements Converter<ClanBasicInfoDto,CocClan>{

@Override
public CocClan convert(MappingContext<ClanBasicInfoDto, CocClan> mappingContext) {
ClanBasicInfoDto source = mappingContext.getSource();
CocClan target = new CocClan();

target.setTag(source.getTag());
target.setName(source.getName());
target.setClanLevel(source.getClanLevel());
target.setBadgeSmall(source.getBadgeUrls().getSmall());
target.setBadgeMedium(source.getBadgeUrls().getMedium());
target.setBadgeLarge(source.getBadgeUrls().getLarge());

return target;
}
}

public static class FromCocClan implements Converter<CocClan,ClanBasicInfoDto>{

@Override
public ClanBasicInfoDto convert(MappingContext<CocClan, ClanBasicInfoDto> mappingContext) {
CocClan source = mappingContext.getSource();
ClanBasicInfoDto target = new ClanBasicInfoDto();

target.setTag(source.getTag());
target.setName(source.getName());
target.setClanLevel(source.getClanLevel());

ClanBadgeUrlsDto clanBadgeUrlsDto = new ClanBadgeUrlsDto();
clanBadgeUrlsDto.setLarge(source.getBadgeLarge());
clanBadgeUrlsDto.setMedium(source.getBadgeMedium());
clanBadgeUrlsDto.setSmall(source.getBadgeSmall());
target.setBadgeUrls(clanBadgeUrlsDto);
return target;
}
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,61 @@
package me.shufork.biz.converter;

public class ClanDetailedInfoDtoConverter {
import me.shufork.biz.domain.CocClanDetails;
import me.shufork.common.constants.CocConstants;
import me.shufork.common.dto.supercell.coc.ClanDetailedInfoDto;
import org.modelmapper.Converter;
import org.modelmapper.spi.MappingContext;

public abstract class ClanDetailedInfoDtoConverter {
public static class ToCocClanDetails implements Converter<ClanDetailedInfoDto,CocClanDetails> {

@Override
public CocClanDetails convert(MappingContext<ClanDetailedInfoDto, CocClanDetails> mappingContext) {
ClanDetailedInfoDto source = mappingContext.getSource();
CocClanDetails target = new CocClanDetails();
target.setTag(source.getTag());
target.setType(source.getType());
target.setDescription(source.getDescription());
target.setLocation(source.getLocation()==null? CocConstants.LOCATION_ID_INVALID:source.getLocation().getId());
target.setClanPoints(source.getClanPoints());
target.setClanVersusPoints(source.getClanVersusPoints());
target.setRequiredTrophies(source.getRequiredTrophies());
target.setWarFrequency(source.getWarFrequency());
target.setWarWinStreak(source.getWarWinStreak());
target.setWarWins(source.getWarWins());
target.setWarTies(source.getWarTies());
target.setWarLosses(source.getWarLosses());
target.setWarLogPublic(source.isWarLogPublic());
target.setTotalMembers(source.getTotalMembers());

//clan member ignored
return target;
}
}
public static class FromCocClanDetails implements Converter<CocClanDetails,ClanDetailedInfoDto> {

@Override
public ClanDetailedInfoDto convert(MappingContext<CocClanDetails, ClanDetailedInfoDto> mappingContext) {
CocClanDetails source = mappingContext.getSource();
ClanDetailedInfoDto target = new ClanDetailedInfoDto();
target.setTag(source.getTag());
target.setType(source.getType());
target.setDescription(source.getDescription());
// TODO : location
target.setLocation(null);
target.setClanPoints(source.getClanPoints());
target.setClanVersusPoints(source.getClanVersusPoints());
target.setRequiredTrophies(source.getRequiredTrophies());
target.setWarFrequency(source.getWarFrequency());
target.setWarWinStreak(source.getWarWinStreak());
target.setWarWins(source.getWarWins());
target.setWarTies(source.getWarTies());
target.setWarLosses(source.getWarLosses());
target.setWarLogPublic(source.isWarLogPublic());
target.setTotalMembers(source.getTotalMembers());

//clan member ignored
return target;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package me.shufork.biz.converter;

import me.shufork.biz.domain.CocWarTeam;
import me.shufork.biz.vo.WarLogEntryClanVo;
import me.shufork.common.dto.supercell.coc.ClanBadgeUrlsDto;
import org.modelmapper.Converter;
import org.modelmapper.spi.MappingContext;

public abstract class WarLogEntryClanVoConverter {
public static class ToCocWarTeam implements Converter<WarLogEntryClanVo,CocWarTeam>{

@Override
public CocWarTeam convert(MappingContext<WarLogEntryClanVo, CocWarTeam> mappingContext) {
WarLogEntryClanVo source = mappingContext.getSource();
CocWarTeam target = new CocWarTeam();

target.setOpponent(source.getOpponent());
target.setWarTime(source.getWarTime());
target.setClan(source.getTag());
target.setName(source.getName());
target.setBadgeSmall(source.getBadgeUrls().getSmall());
target.setBadgeMedium(source.getBadgeUrls().getMedium());
target.setBadgeLarge(source.getBadgeUrls().getLarge());
target.setClanLevel(source.getClanLevel());
target.setAttacks(source.getAttacks());
target.setStars(source.getStars());
target.setDestructionPercentage(source.getDestructionPercentage());
target.setExpEarned(source.getExpEarned());

return target;
}
}

public static class FromCocWarTeam implements Converter<CocWarTeam,WarLogEntryClanVo>{

@Override
public WarLogEntryClanVo convert(MappingContext<CocWarTeam, WarLogEntryClanVo> mappingContext) {
CocWarTeam source = mappingContext.getSource();
WarLogEntryClanVo target = new WarLogEntryClanVo();

target.setOpponent(source.getOpponent());
target.setWarTime(source.getWarTime());
target.setTag(source.getClan());
target.setName(source.getName());

ClanBadgeUrlsDto clanBadgeUrlsDto = new ClanBadgeUrlsDto();
clanBadgeUrlsDto.setLarge(source.getBadgeLarge());
clanBadgeUrlsDto.setMedium(source.getBadgeMedium());
clanBadgeUrlsDto.setSmall(source.getBadgeSmall());
target.setBadgeUrls(clanBadgeUrlsDto);

target.setClanLevel(source.getClanLevel());
target.setAttacks(source.getAttacks());
target.setStars(source.getStars());
target.setDestructionPercentage(source.getDestructionPercentage());
target.setExpEarned(source.getExpEarned());

return target;
}
}

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,24 @@
package me.shufork.biz.converter;

public class WarLogEntryVoConverter {
import me.shufork.biz.domain.CocWarLog;
import me.shufork.biz.vo.WarLogEntryVo;
import me.shufork.common.utils.CocDateTimeUtil;
import org.modelmapper.Converter;
import org.modelmapper.spi.MappingContext;

public abstract class WarLogEntryVoConverter {
public static class FromCocWarLog implements Converter<CocWarLog,WarLogEntryVo>{

@Override
public WarLogEntryVo convert(MappingContext<CocWarLog, WarLogEntryVo> mappingContext) {
CocWarLog source = mappingContext.getSource();
WarLogEntryVo target = new WarLogEntryVo();
target.setResult(source.getResult());
target.setEndTime(CocDateTimeUtil.format(source.getEndTime()));
target.setTeamSize(source.getTeamSize());
target.setHomeTeam(source.getHomeTeam());
target.setAwayTeam(source.getAwayTeam());
return target;
}
}
}
Loading

0 comments on commit 56d8624

Please sign in to comment.