diff --git a/src/main/java/com/easysoftware/adapter/query/FieldApplicationQueryAdapter.java b/src/main/java/com/easysoftware/adapter/query/FieldApplicationQueryAdapter.java index 5bfde5f04205eb719b66c24ebf6b28204269985d..1253d5ad80404b44917b7f06eacaba1722605ad7 100644 --- a/src/main/java/com/easysoftware/adapter/query/FieldApplicationQueryAdapter.java +++ b/src/main/java/com/easysoftware/adapter/query/FieldApplicationQueryAdapter.java @@ -83,12 +83,11 @@ public class FieldApplicationQueryAdapter { /** * Endpoint to search arch num by os. - * @param os os. * @return ResponseEntity. */ @GetMapping("/archnum") @RequestLimitRedis() - public ResponseEntity searchArchNumByOs(String os) { - return service.searchArchNumByOs(os); + public ResponseEntity searchArchNumByOs() { + return service.searchArchNumByOs(); } } diff --git a/src/main/java/com/easysoftware/application/filedapplication/FieldApplicationService.java b/src/main/java/com/easysoftware/application/filedapplication/FieldApplicationService.java index 7c4d6c661559cce89b0730876aa4f061acf75278..7aa28724832c39a652d32c397b7ea416e1a73f20 100644 --- a/src/main/java/com/easysoftware/application/filedapplication/FieldApplicationService.java +++ b/src/main/java/com/easysoftware/application/filedapplication/FieldApplicationService.java @@ -51,8 +51,7 @@ public interface FieldApplicationService { /** * Query statistics. - * @param os os. * @return ResponseEntity object containing the statistical information. */ - ResponseEntity searchArchNumByOs(String os); + ResponseEntity searchArchNumByOs(); } diff --git a/src/main/java/com/easysoftware/application/filedapplication/FieldApplicationServiceImpl.java b/src/main/java/com/easysoftware/application/filedapplication/FieldApplicationServiceImpl.java index ec8b34c4dc34c0a0e516bac8b68670cea4d910ca..0560f1905bef46d2b2b95d65ec4832c8e651b4ca 100644 --- a/src/main/java/com/easysoftware/application/filedapplication/FieldApplicationServiceImpl.java +++ b/src/main/java/com/easysoftware/application/filedapplication/FieldApplicationServiceImpl.java @@ -25,7 +25,6 @@ import com.easysoftware.application.filedapplication.dto.FieldDetailSearchCondit import com.easysoftware.application.filedapplication.dto.FiledApplicationSerachCondition; import com.easysoftware.application.filedapplication.vo.EulerLifeCycleVo; import com.easysoftware.application.filedapplication.vo.FiledApplicationVo; -import com.easysoftware.application.filedapplication.vo.OsArchNumVO; import com.easysoftware.application.oepackage.dto.OEPackageSearchCondition; import com.easysoftware.application.oepackage.vo.OEPackageMenuVo; import com.easysoftware.application.rpmpackage.RPMPackageService; @@ -40,6 +39,7 @@ import com.easysoftware.common.utils.QueryWrapperUtil; import com.easysoftware.common.utils.ResultUtil; import com.easysoftware.common.utils.SortUtil; import com.easysoftware.domain.applicationpackage.gateway.ApplicationPackageGateway; +import com.easysoftware.domain.archnum.ArchNumGateway; import com.easysoftware.domain.epkgpackage.gateway.EPKGPackageGateway; import com.easysoftware.domain.eulerlifecycle.gateway.EulerLifeCycleGateway; import com.easysoftware.domain.fieldapplication.gateway.FieldapplicationGateway; @@ -132,6 +132,12 @@ public class FieldApplicationServiceImpl implements FieldApplicationService { @Resource private Ranker ranker; + /** + * gateway. + */ + @Resource + private ArchNumGateway archNumGateway; + /** * Query menu by name. * @@ -479,20 +485,11 @@ public class FieldApplicationServiceImpl implements FieldApplicationService { /** * query pkg num of arch by os. - * - * @param os os. * @return pkg nums of arch. */ @Override - public ResponseEntity searchArchNumByOs(String os) { - Map rpm = rpmGateway.queryArchNum(os); - Map epkg = epkgGateway.queryArchNum(os); - Map oepkg = oePkgGateway.queryArchNum(os); - Map field = fieldPkgGateway.queryArchNum(os); - Map image = appGateway.queryArchNum(os); - - List vList = FieldApplicationConverter.toOsArchNumVO(List.of(rpm, epkg, oepkg, field, image)); - return ResultUtil.success(HttpStatus.OK, vList); + public ResponseEntity searchArchNumByOs() { + return ResultUtil.success(HttpStatus.OK, archNumGateway.getAll()); } } diff --git a/src/main/java/com/easysoftware/domain/archnum/ArchNumGateway.java b/src/main/java/com/easysoftware/domain/archnum/ArchNumGateway.java new file mode 100644 index 0000000000000000000000000000000000000000..d06ad306feacb5a31489e008ef5263155499fb16 --- /dev/null +++ b/src/main/java/com/easysoftware/domain/archnum/ArchNumGateway.java @@ -0,0 +1,22 @@ +/* Copyright (c) 2024 openEuler Community + EasySoftware is licensed under the Mulan PSL v2. + You can use this software according to the terms and conditions of the Mulan PSL v2. + You may obtain a copy of Mulan PSL v2 at: + http://license.coscl.org.cn/MulanPSL2 + THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + See the Mulan PSL v2 for more details. +*/ + +package com.easysoftware.domain.archnum; + +import java.util.Map; + +public interface ArchNumGateway { + /** + * get all table row. + * @return map. + */ + Map>> getAll(); +} diff --git a/src/main/java/com/easysoftware/infrastructure/archnum/ArchNumGatewayImpl.java b/src/main/java/com/easysoftware/infrastructure/archnum/ArchNumGatewayImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..28aca74917787db5a4d182bddfca1d26deb08e4c --- /dev/null +++ b/src/main/java/com/easysoftware/infrastructure/archnum/ArchNumGatewayImpl.java @@ -0,0 +1,51 @@ +/* Copyright (c) 2024 openEuler Community + EasySoftware is licensed under the Mulan PSL v2. + You can use this software according to the terms and conditions of the Mulan PSL v2. + You may obtain a copy of Mulan PSL v2 at: + http://license.coscl.org.cn/MulanPSL2 + THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + See the Mulan PSL v2 for more details. +*/ + +package com.easysoftware.infrastructure.archnum; + +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.easysoftware.domain.archnum.ArchNumGateway; +import com.easysoftware.infrastructure.archnum.converter.ArchNumConverter; +import com.easysoftware.infrastructure.archnum.dataobject.ArchNumDO; +import com.easysoftware.infrastructure.mapper.ArchNumDOMapper; + +@Component +public class ArchNumGatewayImpl implements ArchNumGateway { + /** + * mapper. + */ + @Autowired + private ArchNumDOMapper mapper; + + /** + * converter. + */ + @Autowired + private ArchNumConverter converter; + + /** + * get all table row. + * @return map. + */ + @Override + public Map>> getAll() { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.select(ArchNumDO::getOs, ArchNumDO::getType, ArchNumDO::getArchName, ArchNumDO::getCount); + List list = mapper.selectList(wrapper); + return converter.toMap(list); + } +} diff --git a/src/main/java/com/easysoftware/infrastructure/archnum/converter/ArchNumConverter.java b/src/main/java/com/easysoftware/infrastructure/archnum/converter/ArchNumConverter.java new file mode 100644 index 0000000000000000000000000000000000000000..6118414b0d82f71b31fb13a203e490d950721264 --- /dev/null +++ b/src/main/java/com/easysoftware/infrastructure/archnum/converter/ArchNumConverter.java @@ -0,0 +1,39 @@ +/* Copyright (c) 2024 openEuler Community + EasySoftware is licensed under the Mulan PSL v2. + You can use this software according to the terms and conditions of the Mulan PSL v2. + You may obtain a copy of Mulan PSL v2 at: + http://license.coscl.org.cn/MulanPSL2 + THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + See the Mulan PSL v2 for more details. +*/ + +package com.easysoftware.infrastructure.archnum.converter; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.springframework.stereotype.Component; + +import com.easysoftware.infrastructure.archnum.dataobject.ArchNumDO; + +@Component +public class ArchNumConverter { + /** + * convert list of ArchNumDO to map. + * @param list list of ArchNumDO. + * @return map. + */ + public Map>> toMap(List list) { + return list.stream().collect( + Collectors.groupingBy( + ArchNumDO::getOs, Collectors.groupingBy( + ArchNumDO::getType, Collectors.toMap( + ArchNumDO::getArchName, ArchNumDO::getCount) + ) + ) + ); + } +} diff --git a/src/main/java/com/easysoftware/infrastructure/archnum/dataobject/ArchNumDO.java b/src/main/java/com/easysoftware/infrastructure/archnum/dataobject/ArchNumDO.java new file mode 100644 index 0000000000000000000000000000000000000000..0909ba5fa2f7460ee29e03af60b68211192a6ee3 --- /dev/null +++ b/src/main/java/com/easysoftware/infrastructure/archnum/dataobject/ArchNumDO.java @@ -0,0 +1,79 @@ +/* Copyright (c) 2024 openEuler Community + EasySoftware is licensed under the Mulan PSL v2. + You can use this software according to the terms and conditions of the Mulan PSL v2. + You may obtain a copy of Mulan PSL v2 at: + http://license.coscl.org.cn/MulanPSL2 + THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + See the Mulan PSL v2 for more details. +*/ + +package com.easysoftware.infrastructure.archnum.dataobject; + +import java.sql.Timestamp; + +import com.baomidou.mybatisplus.annotation.TableName; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@TableName("arch_num") +public class ArchNumDO { + /** + * os. + */ + private String os; + + /** + * pkg type. + */ + private String type; + + /** + * arch. + */ + private String archName; + + /** + * number of pkgs. + */ + private Integer count; + + /** + * pkgId. + */ + private String pkgId; + /** + * update time. + */ + private Timestamp updateAt; + + /** + * get an ArchNumDO entity updateAt field value. + * + * @return An Timestamp entity + */ + public Timestamp getUpdateAt() { + if (this.updateAt != null) { + return (Timestamp) this.updateAt.clone(); + } else { + return null; + } + } + + /** + * set an ArchNumDO entity updateAt field value. + * + * @param updateAt The ArchNumDO entity updateAt field for set + */ + public void setUpdateAt(Timestamp updateAt) { + if (this.updateAt != null && updateAt != null) { + this.updateAt = (Timestamp) updateAt.clone(); + } else { + this.updateAt = null; + } + } +} diff --git a/src/main/java/com/easysoftware/infrastructure/fieldpkg/FieldPkgGatewayImpl.java b/src/main/java/com/easysoftware/infrastructure/fieldpkg/FieldPkgGatewayImpl.java index edf446b1ba101e86df5f28a4a77223fa84df6ef4..ee99a8dbc88e1ab003021fca9c7d37ada26d0570 100644 --- a/src/main/java/com/easysoftware/infrastructure/fieldpkg/FieldPkgGatewayImpl.java +++ b/src/main/java/com/easysoftware/infrastructure/fieldpkg/FieldPkgGatewayImpl.java @@ -18,6 +18,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.easysoftware.application.fieldpkg.dto.FieldPkgSearchCondition; import com.easysoftware.application.fieldpkg.vo.FieldPkgVo; import com.easysoftware.common.exception.ParamErrorException; +import com.easysoftware.common.utils.ClassField; import com.easysoftware.common.utils.QueryWrapperUtil; import com.easysoftware.domain.fieldpkg.gateway.FieldPkgGateway; import com.easysoftware.infrastructure.fieldpkg.converter.FieldPkgConverter; @@ -53,6 +54,8 @@ public class FieldPkgGatewayImpl implements FieldPkgGateway { Page page = createPage(condition); QueryWrapper wrapper = QueryWrapperUtil.createQueryWrapper(new FieldPkgDO(), condition, null); + List columns = ClassField.getFieldNames(new FieldPkgVo()); + wrapper.select(columns); wrapper.orderByDesc("length(tags)"); IPage resPage = mapper.selectPage(page, wrapper); List list = resPage.getRecords(); diff --git a/src/main/java/com/easysoftware/infrastructure/mapper/ArchNumDOMapper.java b/src/main/java/com/easysoftware/infrastructure/mapper/ArchNumDOMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..73217ca1eb443e50b13121c275fe5a53edba03d6 --- /dev/null +++ b/src/main/java/com/easysoftware/infrastructure/mapper/ArchNumDOMapper.java @@ -0,0 +1,18 @@ +/* Copyright (c) 2024 openEuler Community + EasySoftware is licensed under the Mulan PSL v2. + You can use this software according to the terms and conditions of the Mulan PSL v2. + You may obtain a copy of Mulan PSL v2 at: + http://license.coscl.org.cn/MulanPSL2 + THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + See the Mulan PSL v2 for more details. +*/ + +package com.easysoftware.infrastructure.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.easysoftware.infrastructure.archnum.dataobject.ArchNumDO; + +public interface ArchNumDOMapper extends BaseMapper { +}