diff --git a/src/main/java/com/easysoftware/application/domainpackage/DomainPackageServiceImpl.java b/src/main/java/com/easysoftware/application/domainpackage/DomainPackageServiceImpl.java index 2541f5d2d6f5684dd00d26d7ae31630b4add2279..b00416c77eb89a7de787700147425496c58e3f99 100644 --- a/src/main/java/com/easysoftware/application/domainpackage/DomainPackageServiceImpl.java +++ b/src/main/java/com/easysoftware/application/domainpackage/DomainPackageServiceImpl.java @@ -108,13 +108,13 @@ public class DomainPackageServiceImpl implements DomainPackageService { BeanUtils.copyProperties(condition, rPMCon); rPMCon.setName(""); rPMCon.setRpmCategory(condition.getCategory()); - - Map rpmMenuList = rPMPkgService.queryAllRPMPkgMenu(rPMCon); return ResultUtil.success(HttpStatus.OK, rpmMenuList); } else if ("epkgpkg".equals(condition.getName())) { EPKGPackageSearchCondition eCon = new EPKGPackageSearchCondition(); BeanUtils.copyProperties(condition, eCon); + eCon.setName(""); + eCon.setEpkgCategory(condition.getCategory()); Map epkgMenu = epkgPackageService.queryAllEPKGPkgMenu(eCon); return ResultUtil.success(HttpStatus.OK, epkgMenu); } else if ("all".equals(condition.getName())) { diff --git a/src/main/java/com/easysoftware/application/epkgpackage/dto/EPKGPackageSearchCondition.java b/src/main/java/com/easysoftware/application/epkgpackage/dto/EPKGPackageSearchCondition.java index ea07f35e79a793afaf37d3f9cf76c0e36084b259..1ba69487e771d2c57a95c68613dc919152eca0ec 100644 --- a/src/main/java/com/easysoftware/application/epkgpackage/dto/EPKGPackageSearchCondition.java +++ b/src/main/java/com/easysoftware/application/epkgpackage/dto/EPKGPackageSearchCondition.java @@ -3,6 +3,8 @@ package com.easysoftware.application.epkgpackage.dto; import org.hibernate.validator.constraints.Range; import com.easysoftware.common.constant.PackageConstant; +import com.easysoftware.common.exception.enumvalid.EnumValue; +import com.easysoftware.common.exception.enumvalid.TimeOrderEnum; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Size; @@ -23,4 +25,22 @@ public class EPKGPackageSearchCondition { @Range(min = PackageConstant.MIN_PAGE_SIZE, max = PackageConstant.MAX_PAGE_SIZE) private Integer pageSize = 10; + + @Size(max = 50) + private String version; + + @Size(max = 50) + private String os; + + @Size(max = 50) + private String arch; + + @Size(max = 50) + private String epkgCategory; + + @Size(max = 50) + private String epkgUpdateAt; + + @EnumValue(enumClass = TimeOrderEnum.class, enumMethod = "isValidCategory") + private String timeOrder; } diff --git a/src/main/java/com/easysoftware/common/utils/QueryWrapperUtil.java b/src/main/java/com/easysoftware/common/utils/QueryWrapperUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..70f693c25a2e4f66268794ecf3c9333deca8a77c --- /dev/null +++ b/src/main/java/com/easysoftware/common/utils/QueryWrapperUtil.java @@ -0,0 +1,47 @@ +package com.easysoftware.common.utils; + +import java.lang.reflect.Field; + +import org.apache.commons.lang3.StringUtils; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.easysoftware.common.exception.enumvalid.TimeOrderEnum; +import com.power.common.util.StringUtil; + +public class QueryWrapperUtil { + public static QueryWrapper createQueryWrapper(T t, U u, String updateAt) { + QueryWrapper wrapper = new QueryWrapper<>(); + + Field[] fields = u.getClass().getDeclaredFields(); + for (Field field: fields) { + field.setAccessible(true); + + Object value = null; + try { + value = field.get(u); + } catch (Exception e) { + } + if (! (value instanceof String)) { + continue; + } + + String vStr = (String) value; + if (StringUtils.isBlank(vStr)) { + continue; + } + + if ("timeOrder".equals(field.getName()) && TimeOrderEnum.DESC.getAlias().equals(vStr)) { + wrapper.orderByDesc(updateAt); + continue; + } + if ("timeOrder".equals(field.getName()) && TimeOrderEnum.ASC.getAlias().equals(vStr)) { + wrapper.orderByAsc(updateAt); + continue; + } + + String undLine = StringUtil.camelToUnderline(field.getName()); + wrapper.eq(undLine, vStr); + } + return wrapper; + } +} diff --git a/src/main/java/com/easysoftware/infrastructure/epkgpackage/gatewayimpl/EPKGPackageGatewayImpl.java b/src/main/java/com/easysoftware/infrastructure/epkgpackage/gatewayimpl/EPKGPackageGatewayImpl.java index 2143198dc6de13a3e885a0db174bd97a2cfcf8a5..c74b4c688f0a6f4073aa88d7055d52c5e1d7043c 100644 --- a/src/main/java/com/easysoftware/infrastructure/epkgpackage/gatewayimpl/EPKGPackageGatewayImpl.java +++ b/src/main/java/com/easysoftware/infrastructure/epkgpackage/gatewayimpl/EPKGPackageGatewayImpl.java @@ -19,6 +19,7 @@ import com.easysoftware.application.epkgpackage.vo.EPKGPackageMenuVo; import com.easysoftware.application.rpmpackage.dto.RPMPackageSearchCondition; import com.easysoftware.application.rpmpackage.vo.RPMPackageDetailVo; import com.easysoftware.application.rpmpackage.vo.RPMPackageMenuVo; +import com.easysoftware.common.utils.QueryWrapperUtil; import com.easysoftware.domain.epkgpackage.EPKGPackage; import com.easysoftware.domain.epkgpackage.EPKGPackageUnique; import com.easysoftware.domain.epkgpackage.gateway.EPKGPackageGateway; @@ -73,10 +74,8 @@ public class EPKGPackageGatewayImpl implements EPKGPackageGateway{ @Override public Map queryDetailByName(EPKGPackageSearchCondition condition) { Page page = createPage(condition); - QueryWrapper wrapper = new QueryWrapper<>(); - String name = condition.getName(); - wrapper.eq("name", name); - + QueryWrapper wrapper = QueryWrapperUtil.createQueryWrapper(new EPKGPackageDO(), + condition, "epkg_update_at"); IPage resPage = ePKGPkgMapper.selectPage(page, wrapper); List rPMDOs = resPage.getRecords(); List rPMDetails = EPKGPackageConverter.toDetail(rPMDOs); @@ -93,8 +92,8 @@ public class EPKGPackageGatewayImpl implements EPKGPackageGateway{ @Override public Map queryMenuByName(EPKGPackageSearchCondition condition) { Page page = createPage(condition); - QueryWrapper wrapper = new QueryWrapper<>(); - + QueryWrapper wrapper = QueryWrapperUtil.createQueryWrapper(new EPKGPackageDO(), + condition, "epkg_update_at"); IPage resPage = ePKGPkgMapper.selectPage(page, wrapper); List rpmDOs = resPage.getRecords(); List rPMMenus = EPKGPackageConverter.toMenu(rpmDOs); 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 2d8dea9002c1ad1192c81860caee0b4820f3a3c0..8a327aff4d150dd32ba12cd147337a38ed398808 100644 --- a/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/RPMPackageGatewayImpl.java +++ b/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/RPMPackageGatewayImpl.java @@ -17,6 +17,7 @@ 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.RPMPackageMenuVo; +import com.easysoftware.common.utils.QueryWrapperUtil; import com.easysoftware.domain.applicationpackage.ApplicationPackage; import com.easysoftware.domain.rpmpackage.RPMPackage; import com.easysoftware.domain.rpmpackage.RPMPackageUnique; @@ -66,8 +67,8 @@ public class RPMPackageGatewayImpl implements RPMPackageGateway { @Override public Map queryDetailByName(RPMPackageSearchCondition condition) { Page page = createPage(condition); - QueryWrapper wrapper = RPMPackageConverter.createQueryWrapper(new RPMPackageDO(), condition); - + QueryWrapper wrapper = QueryWrapperUtil.createQueryWrapper(new RPMPackageDO(), + condition, "rpm_update_at"); IPage resPage = rPMPkgMapper.selectPage(page, wrapper); List rPMDOs = resPage.getRecords(); List rPMDetails = RPMPackageConverter.toDetail(rPMDOs); @@ -109,9 +110,8 @@ public class RPMPackageGatewayImpl implements RPMPackageGateway { @Override public Map queryMenuByName(RPMPackageSearchCondition condition) { Page page = createPage(condition); - QueryWrapper wrapper = RPMPackageConverter.createQueryWrapper(new RPMPackageDO(), condition); - // QueryWrapper wrapper = new QueryWrapper<>(); - + QueryWrapper wrapper = QueryWrapperUtil.createQueryWrapper(new RPMPackageDO(), + condition, "rpm_update_at"); IPage resPage = rPMPkgMapper.selectPage(page, wrapper); List rpmDOs = resPage.getRecords(); List rPMMenus = RPMPackageConverter.toMenu(rpmDOs); 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 177dba1906f75b58e8218aa063e6df1be1c5fb50..f91ca1bc2537d58ad9627f1900c03f9e8de6886d 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 @@ -85,40 +85,4 @@ public class RPMPackageConverter { return rPMPkgDO; } - - public static QueryWrapper createQueryWrapper(T t, U u) { - QueryWrapper wrapper = new QueryWrapper<>(); - - Field[] fields = u.getClass().getDeclaredFields(); - for (Field field: fields) { - field.setAccessible(true); - - Object value = null; - try { - value = field.get(u); - } catch (Exception e) { - } - if (! (value instanceof String)) { - continue; - } - - String vStr = (String) value; - if (StringUtils.isBlank(vStr)) { - continue; - } - - if ("timeOrder".equals(field.getName()) && TimeOrderEnum.DESC.getAlias().equals(vStr)) { - wrapper.orderByDesc("rpm_update_at"); - continue; - } - if ("timeOrder".equals(field.getName()) && TimeOrderEnum.ASC.getAlias().equals(vStr)) { - wrapper.orderByAsc("rpm_update_at"); - continue; - } - - String undLine = StringUtil.camelToUnderline(field.getName()); - wrapper.eq(undLine, vStr); - } - return wrapper; - } }