Merge branch 'github_dev' of github.com:ctripcorp/zeus into github_dev

This commit is contained in:
xingchaowang 2015-12-08 19:01:32 +08:00
commit d60ebbf15c
2 changed files with 25 additions and 16 deletions

View file

@ -16,13 +16,13 @@ public class AutoFiller {
public void autofill(Group group) throws Exception {
for (GroupVirtualServer gvs : group.getGroupVirtualServers()) {
VirtualServer tvs = gvs.getVirtualServer();
VirtualServer vs = virtualServerRepository.getById(gvs.getVirtualServer().getId());
tvs.setName(vs.getName()).setSlbId(vs.getSlbId()).setPort(vs.getPort()).setSsl(vs.getSsl());
tvs.getDomains().clear();
for (Domain domain : vs.getDomains()) {
tvs.getDomains().add(domain);
}
gvs.setVirtualServer(virtualServerRepository.getById(gvs.getVirtualServer().getId()));
}
autofillEmptyFields(group);
}
public void autofillEmptyFields(Group group) {
for (GroupVirtualServer gvs : group.getGroupVirtualServers()) {
if (gvs.getPriority() == null) {
if (gvs.getPath().endsWith(RegexRootPath))
gvs.setPriority(Integer.MIN_VALUE);

View file

@ -7,9 +7,13 @@ import com.ctrip.zeus.service.model.handler.GroupSync;
import com.ctrip.zeus.service.model.handler.GroupValidator;
import com.ctrip.zeus.service.model.handler.VGroupValidator;
import com.ctrip.zeus.service.query.GroupCriteriaQuery;
import com.ctrip.zeus.service.query.VirtualServerCriteriaQuery;
import com.ctrip.zeus.service.status.StatusService;
import com.google.common.base.Function;
import com.google.common.collect.Maps;
import org.springframework.stereotype.Repository;
import javax.annotation.Nullable;
import javax.annotation.Resource;
import java.util.*;
@ -28,23 +32,32 @@ public class GroupRepositoryImpl implements GroupRepository {
@Resource
private ArchiveService archiveService;
@Resource
private VirtualServerRepository virtualServerRepository;
@Resource
private GroupValidator groupModelValidator;
@Resource
private VGroupValidator vGroupValidator;
@Resource
private StatusService statusService;
@Resource
private VirtualServerRepository virtualServerRepository;
@Resource
private VirtualServerCriteriaQuery virtualServerCriteriaQuery;
@Override
public List<Group> list(Long[] ids) throws Exception {
Set<Long> vsIds = virtualServerCriteriaQuery.queryByGroupIds(ids);
Map<Long, VirtualServer> dic = Maps.uniqueIndex(virtualServerRepository.listAll(vsIds.toArray(new Long[vsIds.size()])), new Function<VirtualServer, Long>() {
@Nullable
@Override
public Long apply(VirtualServer virtualServer) {
return virtualServer.getId();
}
});
List<Group> result = archiveService.getLatestGroups(ids);
for (Group group : result) {
for (GroupVirtualServer groupVirtualServer : group.getGroupVirtualServers()) {
groupVirtualServer.setVirtualServer(
virtualServerRepository.getById(groupVirtualServer.getVirtualServer().getId()));
groupVirtualServer.setVirtualServer(dic.get(groupVirtualServer.getVirtualServer().getId()));
}
autoFiller.autofill(group);
autoFiller.autofillEmptyFields(group);
hideVirtualValue(group);
}
return result;
@ -54,10 +67,6 @@ public class GroupRepositoryImpl implements GroupRepository {
public Group getById(Long id) throws Exception {
if (groupModelValidator.exists(id) || vGroupValidator.exists(id)) {
Group result = archiveService.getLatestGroup(id);
for (GroupVirtualServer groupVirtualServer : result.getGroupVirtualServers()) {
groupVirtualServer.setVirtualServer(
virtualServerRepository.getById(groupVirtualServer.getVirtualServer().getId()));
}
autoFiller.autofill(result);
hideVirtualValue(result);
return result;