diff --git a/src/main/java/com/easysoftware/application/domainpackage/DomainPackageServiceImpl.java b/src/main/java/com/easysoftware/application/domainpackage/DomainPackageServiceImpl.java index f99a9607a889862c762bed7e067a0c25eb04441f..cba7b68bdf2be4a6b18f4aad135fd16e6d8dc6da 100644 --- a/src/main/java/com/easysoftware/application/domainpackage/DomainPackageServiceImpl.java +++ b/src/main/java/com/easysoftware/application/domainpackage/DomainPackageServiceImpl.java @@ -3,6 +3,7 @@ package com.easysoftware.application.domainpackage; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; @@ -22,6 +23,8 @@ import com.easysoftware.application.epkgpackage.EPKGPackageService; import com.easysoftware.application.epkgpackage.dto.EPKGPackageSearchCondition; import com.easysoftware.application.rpmpackage.RPMPackageService; import com.easysoftware.application.rpmpackage.dto.RPMPackageSearchCondition; +import com.easysoftware.application.rpmpackage.vo.RPMPackageDomainVo; +import com.easysoftware.application.rpmpackage.vo.RPMPackageMenuVo; import com.easysoftware.common.exception.enumvalid.AppCategoryEnum; import com.easysoftware.common.utils.ResultUtil; import com.easysoftware.domain.applicationpackage.gateway.ApplicationPackageGateway; @@ -71,7 +74,7 @@ public class DomainPackageServiceImpl implements DomainPackageService { private ResponseEntity searchDomainEntity(DomainSearchCondition conditon) { String entity = conditon.getEntity(); DomainPackageMenuVo domain = new DomainPackageMenuVo(); - domain.setTags(new ArrayList()); + domain.setTags(new HashSet()); boolean appExisted = applicationPackageGateway.existApp(entity); if (appExisted) { @@ -134,59 +137,83 @@ public class DomainPackageServiceImpl implements DomainPackageService { } } + private ResponseEntity searchAllEntity(DomainSearchCondition condition) { ApplicationPackageSearchCondition appCon = new ApplicationPackageSearchCondition(); BeanUtils.copyProperties(condition, appCon); Map map = appPkgService.queryAllAppPkgMenu(appCon); List appMenus = (List) map.get("list"); - List domainMenus = new ArrayList<>(); + RPMPackageSearchCondition rpmCon = new RPMPackageSearchCondition(); + BeanUtils.copyProperties(condition, rpmCon); + Map rpmMap = rPMPkgService.queryPartAppPkgMenu(rpmCon); + List rpmMenus = (List) rpmMap.get("list"); + + Map menuMap = mergeMenuVOs(appMenus, rpmMenus); + List> appCate = groupDomainByCategory(menuMap); + Map res = Map.ofEntries( + Map.entry("total", appMenus.size() + rpmMenus.size()), + Map.entry("list", appCate) + ); + return ResultUtil.success(HttpStatus.OK, res); + } + + private Map mergeMenuVOs(List appMenus, + List rpmMenus) { + + Map domainMap = new HashMap<>(); for (ApplicationPackageMenuVo app: appMenus) { DomainPackageMenuVo domain = new DomainPackageMenuVo(); BeanUtils.copyProperties(app, domain); - domain.setTags(new ArrayList()); + domain.setTags(new HashSet()); domain.getTags().add("IMAGE"); - String name = domain.getName(); - // search RPM RPMPackageUnique unique = new RPMPackageUnique(); - unique.setName(name); + unique.setName(app.getName()); boolean rpmExisted = rpmPackageGateway.existRPM(unique); if (rpmExisted) { domain.getTags().add("RPM"); } - // search RPM + // search EPKG EPKGPackageUnique epkg = new EPKGPackageUnique(); - epkg.setName(name); + epkg.setName(app.getName()); boolean epkgExisted = epkgPackageGateway.existEPKG(epkg); if (epkgExisted) { domain.getTags().add("EPKG"); } + + domainMap.put(app.getName(), domain); + } - domainMenus.add(domain); + for (RPMPackageDomainVo rpm: rpmMenus) { + String name = rpm.getName(); + if (domainMap.containsKey(name)) { + domainMap.get(name).getTags().add("RPM"); + continue; + } + DomainPackageMenuVo domain = new DomainPackageMenuVo(); + BeanUtils.copyProperties(rpm, domain); + domain.setTags(new HashSet()); + domain.getTags().add("RPM"); + domainMap.put(rpm.getName(), domain); } - - List> appCate = groupDomainByCategory(domainMenus); - Map res = Map.ofEntries( - Map.entry("total", map.get("total")), - Map.entry("list", appCate) - ); - return ResultUtil.success(HttpStatus.OK, res); + return domainMap; } - private List> groupDomainByCategory(List menuList) { + private List> groupDomainByCategory(Map domainMap) { Map> map = new HashMap<>(); for (AppCategoryEnum categoryEnum : AppCategoryEnum.values()) { String category = categoryEnum.getAlias(); map.put(category, new ArrayList<>()); } - - for (DomainPackageMenuVo menu: menuList) { + + for (Map.Entry domain : domainMap.entrySet()) { + DomainPackageMenuVo menu = domain.getValue(); String cate = StringUtils.trimToEmpty(menu.getCategory()); map.get(cate).add(menu); } diff --git a/src/main/java/com/easysoftware/application/domainpackage/vo/DomainPackageMenuVo.java b/src/main/java/com/easysoftware/application/domainpackage/vo/DomainPackageMenuVo.java index 2e9d2e154a6092e0fb1efbc818f7159f345c12f9..b3dfea2ae14383149b02a86193c80e6b7a18acd7 100644 --- a/src/main/java/com/easysoftware/application/domainpackage/vo/DomainPackageMenuVo.java +++ b/src/main/java/com/easysoftware/application/domainpackage/vo/DomainPackageMenuVo.java @@ -1,6 +1,6 @@ package com.easysoftware.application.domainpackage.vo; -import java.util.List; +import java.util.Set; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -13,5 +13,5 @@ public class DomainPackageMenuVo { private String name; private String description; private String iconUrl; - private List tags; + private Set tags; } diff --git a/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageService.java b/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageService.java index 16275c9ddce9d3ac24100c0b683b7639f35c8353..9b76a24450eae161017354deefd785c18763f651 100644 --- a/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageService.java +++ b/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageService.java @@ -20,4 +20,5 @@ public interface RPMPackageService extends BaseIService { boolean existApp(String name); void saveDataObject(String dataObject); void saveDataObjectBatch(ArrayList dataObject); + Map queryPartAppPkgMenu(RPMPackageSearchCondition condition); } diff --git a/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageServiceImpl.java b/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageServiceImpl.java index 47f04345df275d0ba85da3417fb63fa9a7ad9252..372cf843f53796c51ce7656c4af1cc25e87ad816 100644 --- a/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageServiceImpl.java +++ b/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageServiceImpl.java @@ -187,4 +187,10 @@ public class RPMPackageServiceImpl extends ServiceImpl queryPartAppPkgMenu(RPMPackageSearchCondition condition) { + Map rPMMenu = rPMPkgGateway.queryPartRPMPkgMenu(condition); + return rPMMenu; + } } diff --git a/src/main/java/com/easysoftware/application/rpmpackage/vo/RPMPackageDomainVo.java b/src/main/java/com/easysoftware/application/rpmpackage/vo/RPMPackageDomainVo.java new file mode 100644 index 0000000000000000000000000000000000000000..79cb11591a19a24c587e617e96b3bdfe13bc3e44 --- /dev/null +++ b/src/main/java/com/easysoftware/application/rpmpackage/vo/RPMPackageDomainVo.java @@ -0,0 +1,18 @@ +package com.easysoftware.application.rpmpackage.vo; + +import java.util.List; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class RPMPackageDomainVo { + private String category; + private String description; + private String iconUrl; + private String name; + private List tags; +} diff --git a/src/main/java/com/easysoftware/domain/rpmpackage/gateway/RPMPackageGateway.java b/src/main/java/com/easysoftware/domain/rpmpackage/gateway/RPMPackageGateway.java index f2ac9d23ba6106741f6548069d341be2e5c3039e..a1e3fe357d0660a58ef0da8af885d4766fbfd81b 100644 --- a/src/main/java/com/easysoftware/domain/rpmpackage/gateway/RPMPackageGateway.java +++ b/src/main/java/com/easysoftware/domain/rpmpackage/gateway/RPMPackageGateway.java @@ -21,4 +21,5 @@ public interface RPMPackageGateway { List queryColumn(String column); long queryTableLength(); Collection convertBatch(Collection dataObject); + Map queryPartRPMPkgMenu(RPMPackageSearchCondition condition); } diff --git a/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/RPMPackageGatewayImpl.java b/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/RPMPackageGatewayImpl.java index 5754335835eeda999ca5420ec034d766fb3a135a..e3d2c1dcfb252664970a02cff8f97a9a2f9560fd 100644 --- a/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/RPMPackageGatewayImpl.java +++ b/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/RPMPackageGatewayImpl.java @@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.easysoftware.application.rpmpackage.dto.RPMPackageSearchCondition; import com.easysoftware.application.rpmpackage.vo.RPMPackageDetailVo; +import com.easysoftware.application.rpmpackage.vo.RPMPackageDomainVo; import com.easysoftware.application.rpmpackage.vo.RPMPackageMenuVo; import com.easysoftware.common.entity.MessageCode; import com.easysoftware.common.utils.ObjectMapperUtil; @@ -168,4 +169,17 @@ public class RPMPackageGatewayImpl implements RPMPackageGateway { } return ObjList; } + + @Override + public Map queryPartRPMPkgMenu(RPMPackageSearchCondition condition) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.in("rpm_category", List.of("AI", "大数据", "分布式存储", "数据库", "云服务", "HPC")); + List rpmList = rPMPkgMapper.selectList(wrapper); + List menus = RPMPackageConverter.toDomain(rpmList); + Map res = Map.ofEntries( + Map.entry("total", menus.size()), + Map.entry("list", menus) + ); + return res; + } } diff --git a/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/converter/RPMPackageConverter.java b/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/converter/RPMPackageConverter.java index d74382923a4e5ea92a412988d9c126712430c02b..d262a26ba9b2ac2f9ab0a10391d86d0031f1f898 100644 --- a/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/converter/RPMPackageConverter.java +++ b/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/converter/RPMPackageConverter.java @@ -14,6 +14,7 @@ import org.springframework.beans.BeanUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.easysoftware.application.rpmpackage.vo.RPMPackageDetailVo; +import com.easysoftware.application.rpmpackage.vo.RPMPackageDomainVo; import com.easysoftware.application.rpmpackage.vo.RPMPackageMenuVo; import com.easysoftware.common.entity.MessageCode; import com.easysoftware.common.exception.enumvalid.TimeOrderEnum; @@ -87,6 +88,20 @@ public class RPMPackageConverter { return res; } + public static List toDomain(List rpmPkgDOs) { + List res = new ArrayList<>(); + for (RPMPackageDO rpm: rpmPkgDOs) { + RPMPackageDomainVo domain = new RPMPackageDomainVo(); + BeanUtils.copyProperties(rpm, domain); + domain.setTags(List.of("RPM")); + domain.setCategory(rpm.getRpmCategory()); + domain.setIconUrl(""); + + res.add(domain); + } + return res; + } + public static RPMPackageDO toDataObject(RPMPackage rPMPkg) { RPMPackageDO rPMPkgDO = new RPMPackageDO(); BeanUtils.copyProperties(rPMPkg, rPMPkgDO);