diff --git a/src/main/java/com/easysoftware/adapter/query/RPMPackageAdapter.java b/src/main/java/com/easysoftware/adapter/query/RPMPackageAdapter.java new file mode 100644 index 0000000000000000000000000000000000000000..7f6689d2335f4e6a54f5c32ba4ad7a5cc68d246d --- /dev/null +++ b/src/main/java/com/easysoftware/adapter/query/RPMPackageAdapter.java @@ -0,0 +1,53 @@ +package com.easysoftware.adapter.query; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.easysoftware.application.applicationpackage.ApplicationPackageService; +import com.easysoftware.application.applicationpackage.dto.ApplicationPackageSearchCondition; +import com.easysoftware.application.applicationpackage.dto.InputApplicationPackage; +import com.easysoftware.application.rpmpackage.RPMPackageService; +import com.easysoftware.application.rpmpackage.dto.InputRPMPackage; +import com.easysoftware.application.rpmpackage.dto.RPMPackageSearchCondition; + +import jakarta.validation.Valid; + +@RestController +@RequestMapping("/rpmpkg") +public class RPMPackageAdapter { + @Autowired + private RPMPackageService rPMPkgService; + + @PostMapping("") + public String insertRPMPkg(@Valid @RequestBody InputRPMPackage inputrPMPackage) { + String res = rPMPkgService.insertRPMPkg(inputrPMPackage); + return res; + } + + @PutMapping() + public String updateRPMPkg(@Valid @RequestBody InputRPMPackage inputrPMPackage) { + String res = rPMPkgService.updateRPMPkg(inputrPMPackage); + return res; + } + + @DeleteMapping(value = "/{names}") + public String deleteRPMPkg(@PathVariable List names) { + String res = rPMPkgService.deleteRPMPkg(names); + return res; + } + + @GetMapping() + public String searchRPMPkg(@Valid RPMPackageSearchCondition condition) { + String res = rPMPkgService.searchRPMPkg(condition); + return res; + } +} diff --git a/src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageServiceImpl.java b/src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageServiceImpl.java index 510a20bfc88f8627e02a39a3d6e59fafc225841e..14f647dc5a347209cb43cf67bc6efbea8f3b0f69 100644 --- a/src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageServiceImpl.java +++ b/src/main/java/com/easysoftware/application/applicationpackage/ApplicationPackageServiceImpl.java @@ -71,7 +71,7 @@ public class ApplicationPackageServiceImpl implements ApplicationPackageService List deletedNames = new ArrayList<>(); for (String name : existedNames) { - boolean deleted = appPkgGateway.delete(names); + boolean deleted = appPkgGateway.delete(name); if (deleted) { deletedNames.add(name); } diff --git a/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageService.java b/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageService.java new file mode 100644 index 0000000000000000000000000000000000000000..a32a49983c162599abe4481d51b8f02bb0221096 --- /dev/null +++ b/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageService.java @@ -0,0 +1,13 @@ +package com.easysoftware.application.rpmpackage; + +import java.util.List; + +import com.easysoftware.application.rpmpackage.dto.InputRPMPackage; +import com.easysoftware.application.rpmpackage.dto.RPMPackageSearchCondition; + +public interface RPMPackageService { + String insertRPMPkg(InputRPMPackage inputrPMPackage); + String updateRPMPkg(InputRPMPackage inputrPMPackage); + String deleteRPMPkg(List names); + String searchRPMPkg(RPMPackageSearchCondition condition); +} diff --git a/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageServiceImpl.java b/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..8bd69fbc2a3988ce94249ccae303e444d4354073 --- /dev/null +++ b/src/main/java/com/easysoftware/application/rpmpackage/RPMPackageServiceImpl.java @@ -0,0 +1,88 @@ +package com.easysoftware.application.rpmpackage; + +import java.util.ArrayList; +import java.util.List; + +import org.springframework.beans.BeanUtils; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +import com.easysoftware.application.rpmpackage.dto.InputRPMPackage; +import com.easysoftware.application.rpmpackage.dto.RPMPackageSearchCondition; +import com.easysoftware.domain.applicationpackage.ApplicationPackage; +import com.easysoftware.domain.applicationpackage.gateway.ApplicationPackageGateway; +import com.easysoftware.domain.common.utils.HttpResult; +import com.easysoftware.domain.rpmpackage.RPMPackage; +import com.easysoftware.domain.rpmpackage.gateway.RPMPackageGateway; + +import jakarta.annotation.Resource; + +@Service +public class RPMPackageServiceImpl implements RPMPackageService { + @Resource + RPMPackageGateway rPMPkgGateway; + + @Override + public String deleteRPMPkg(List names) { + List existedNames = new ArrayList<>(); + for (String name : names) { + boolean found = rPMPkgGateway.existRPM(name); + if (found) { + existedNames.add(name); + } + } + + List deletedNames = new ArrayList<>(); + for (String name : existedNames) { + boolean deleted = rPMPkgGateway.delete(name); + if (deleted) { + deletedNames.add(name); + } + } + + String msg = String.format("请求删除的数据: %s, 在数据库中的数据: %s, 成功删除的数据: %s" + , names.toString(), existedNames.toString(), deletedNames.toString()); + return HttpResult.ok(msg, null); + } + + @Override + public String insertRPMPkg(InputRPMPackage inputrPMPackage) { + // 数据库中是否已存在该包 + boolean found = rPMPkgGateway.existRPM(inputrPMPackage.getName()); + if (found) { + return HttpResult.fail(HttpStatus.BAD_REQUEST.value(), "请求的包已存在", null); + } + RPMPackage rPMPkg = new RPMPackage(); + BeanUtils.copyProperties(inputrPMPackage, rPMPkg); + + boolean succeed = rPMPkgGateway.save(rPMPkg); + if (!succeed) { + return HttpResult.fail(HttpStatus.BAD_REQUEST.value(), "新增数据失败", null); + } + return HttpResult.ok("新增1条数据", null); + } + + @Override + public String searchRPMPkg(RPMPackageSearchCondition condition) { + List res = rPMPkgGateway.queryByName(condition); + return HttpResult.ok("完成查询数据", res); + } + + @Override + public String updateRPMPkg(InputRPMPackage inputrPMPackage) { + // 数据库中是否已存在该包 + boolean found = rPMPkgGateway.existRPM(inputrPMPackage.getName()); + if (!found) { + return HttpResult.fail(HttpStatus.BAD_REQUEST.value(), "请求的包不存在", null); + } + RPMPackage rPMPkg = new RPMPackage(); + BeanUtils.copyProperties(inputrPMPackage, rPMPkg); + + boolean succeed = rPMPkgGateway.update(rPMPkg); + if (!succeed) { + return HttpResult.fail(HttpStatus.BAD_REQUEST.value(), "更新数据失败", null); + } + return HttpResult.ok("更新1条数据", null); + } + +} diff --git a/src/main/java/com/easysoftware/application/rpmpackage/dto/InputRPMPackage.java b/src/main/java/com/easysoftware/application/rpmpackage/dto/InputRPMPackage.java new file mode 100644 index 0000000000000000000000000000000000000000..719e9b0db32629fb00d499fa7f3248d8de5d8986 --- /dev/null +++ b/src/main/java/com/easysoftware/application/rpmpackage/dto/InputRPMPackage.java @@ -0,0 +1,100 @@ +package com.easysoftware.application.rpmpackage.dto; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class InputRPMPackage { + @Size(max = 255, message = "the length of headerEnd can not exceed 255") + private String headerEnd; + + @Size(max = 255, message = "the length of sizeInstalled can not exceed 255") + private String sizeInstalled; + + @Size(max = 255, message = "the length of timeFile can not exceed 255") + private String timeFile; + + @Size(max = 255, message = "the length of sizePackage can not exceed 255") + private String sizePackage; + + @Size(max = 5000, message = "the length of description can not exceed 5000") + private String description; + + @Size(max = 255, message = "the length of checksumPkgid can not exceed 255") + private String checksumPkgid; + + @Size(max = 255, message = "the length of locationHref can not exceed 255") + private String locationHref; + + @Size(max = 255, message = "the length of rpmBuildhost can not exceed 255") + private String rpmBuildhost; + + @Size(max = 255, message = "the length of checksumType can not exceed 255") + private String checksumType; + + @Size(max = 255, message = "the length of sizeArchive can not exceed 255") + private String sizeArchive; + + @Size(max = 255, message = "the length of rpmVendor can not exceed 255") + private String rpmVendor; + + @Size(max = 255, message = "the length of checksum can not exceed 255") + private String checksum; + + @Size(max = 255, message = "the length of rpmGroup can not exceed 255") + private String rpmGroup; + + @Size(max = 255, message = "the length of headerStart can not exceed 255") + private String headerStart; + + @Size(max = 255, message = "the length of summary can not exceed 255") + private String summary; + + @Size(max = 255, message = "the length of versionRel can not exceed 255") + private String versionRel; + + @Size(max = 255, message = "the length of versionVer can not exceed 255") + private String versionVer; + + @Size(max = 255, message = "the length of packager can not exceed 255") + private String packager; + + @Size(max = 255, message = "the length of url can not exceed 255") + private String url; + + @Size(max = 255, message = "the length of versionEpoch can not exceed 255") + private String versionEpoch; + + @Size(max = 255, message = "the length of rpmSourcerpm can not exceed 255") + private String rpmSourcerpm; + + @Size(max = 500, message = "the length of rpmLicense can not exceed 500") + private String rpmLicense; + + @Size(max = 255, message = "the length of name can not exceed 255") + @NotBlank(message = "name can not be null") + private String name; + + @Size(max = 255, message = "the length of timeBuild can not exceed 255") + private String timeBuild; + + @Size(max = 255, message = "the length of arch can not exceed 255") + private String arch; + + @Size(max = 255, message = "the length of pkgType can not exceed 255") + private String pkgType; + + @Size(max = 255, message = "the length of osName can not exceed 255") + private String osName; + + @Size(max = 255, message = "the length of osVer can not exceed 255") + private String osVer; + + @Size(max = 255, message = "the length of osType can not exceed 255") + private String osType; +} diff --git a/src/main/java/com/easysoftware/application/rpmpackage/dto/RPMPackageSearchCondition.java b/src/main/java/com/easysoftware/application/rpmpackage/dto/RPMPackageSearchCondition.java new file mode 100644 index 0000000000000000000000000000000000000000..c6bf949f8112281770c303b40c294594ddd64135 --- /dev/null +++ b/src/main/java/com/easysoftware/application/rpmpackage/dto/RPMPackageSearchCondition.java @@ -0,0 +1,23 @@ +package com.easysoftware.application.rpmpackage.dto; + +import org.hibernate.validator.constraints.Range; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class RPMPackageSearchCondition { + @Size(max = 50) + @NotBlank + private String name; + + @Range(min = 1, max = 1000, message = "page must be greater than 0 and less than 1000 ") + private Integer pageNum = 1; + + @Range(min = 5, max = 50, message = "page must be greater than 5 and less than 50 ") + private Integer pageSize = 10; +} diff --git a/src/main/java/com/easysoftware/domain/applicationpackage/gateway/ApplicationPackageGateway.java b/src/main/java/com/easysoftware/domain/applicationpackage/gateway/ApplicationPackageGateway.java index b32c2f463a0175c9124de1c02e01daefe056f82a..cc129aca4174b231b547c8691f14896cdeb2d31e 100644 --- a/src/main/java/com/easysoftware/domain/applicationpackage/gateway/ApplicationPackageGateway.java +++ b/src/main/java/com/easysoftware/domain/applicationpackage/gateway/ApplicationPackageGateway.java @@ -3,14 +3,13 @@ package com.easysoftware.domain.applicationpackage.gateway; import java.util.List; import com.easysoftware.application.applicationpackage.dto.ApplicationPackageSearchCondition; -import com.easysoftware.application.applicationpackage.dto.InputApplicationPackage; import com.easysoftware.domain.applicationpackage.ApplicationPackage; public interface ApplicationPackageGateway { boolean existApp(String name); boolean save(ApplicationPackage appPkg); boolean update(ApplicationPackage appPkg); - boolean delete(List names); + boolean delete(String name); List queryByName(ApplicationPackageSearchCondition condition); } diff --git a/src/main/java/com/easysoftware/domain/rpmpackage/RPMPackage.java b/src/main/java/com/easysoftware/domain/rpmpackage/RPMPackage.java new file mode 100644 index 0000000000000000000000000000000000000000..03b0110efb787fb8fba5f78b40c6e6f2a818d388 --- /dev/null +++ b/src/main/java/com/easysoftware/domain/rpmpackage/RPMPackage.java @@ -0,0 +1,74 @@ +package com.easysoftware.domain.rpmpackage; + +import java.io.Serial; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class RPMPackage { + @Serial + private static final long serialVersionUID = 1L; + + private String headerEnd; + + private String sizeInstalled; + + private String timeFile; + + private String sizePackage; + + private String description; + + private String checksumPkgid; + + private String locationHref; + + private String rpmBuildhost; + + private String checksumType; + + private String sizeArchive; + + private String rpmVendor; + + private String checksum; + + private String rpmGroup; + + private String headerStart; + + private String summary; + + private String versionRel; + + private String versionVer; + + private String packager; + + private String url; + + private String versionEpoch; + + private String rpmSourcerpm; + + private String rpmLicense; + + private String name; + + private String pkgOrApp; + + private String timeBuild; + + private String arch; + + private String pkgType; + + private String osName; + + private String osVer; + + private String osType; +} diff --git a/src/main/java/com/easysoftware/domain/rpmpackage/gateway/RPMPackageGateway.java b/src/main/java/com/easysoftware/domain/rpmpackage/gateway/RPMPackageGateway.java new file mode 100644 index 0000000000000000000000000000000000000000..1b15940f8cf0c0ac3c113247aabe440bdbe428b8 --- /dev/null +++ b/src/main/java/com/easysoftware/domain/rpmpackage/gateway/RPMPackageGateway.java @@ -0,0 +1,14 @@ +package com.easysoftware.domain.rpmpackage.gateway; + +import java.util.List; + +import com.easysoftware.application.rpmpackage.dto.RPMPackageSearchCondition; +import com.easysoftware.domain.rpmpackage.RPMPackage; + +public interface RPMPackageGateway { + boolean existRPM(String name); + boolean save(RPMPackage appPkg); + boolean update(RPMPackage appPkg); + boolean delete(String name); + List queryByName(RPMPackageSearchCondition condition); +} diff --git a/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/ApplicationPackageGatewayImpl.java b/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/ApplicationPackageGatewayImpl.java index c3953f0c8d07eb1869670a4f221b87d496f3c8d2..6fc9820a7f495a76b2e6689c7a3f04e8d8431dbc 100644 --- a/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/ApplicationPackageGatewayImpl.java +++ b/src/main/java/com/easysoftware/infrastructure/applicationpackage/gatewayimpl/ApplicationPackageGatewayImpl.java @@ -20,9 +20,9 @@ public class ApplicationPackageGatewayImpl implements ApplicationPackageGateway private ApplicationPackageDOMapper appPkgMapper; @Override - public boolean delete(List names) { + public boolean delete(String name) { QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.in("name", names); + wrapper.eq("name", name); int mark = appPkgMapper.delete(wrapper); return mark == 1; } diff --git a/src/main/java/com/easysoftware/infrastructure/mapper/RPMPackageDOMapper.java b/src/main/java/com/easysoftware/infrastructure/mapper/RPMPackageDOMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..8a74790198a0f2564135ec012686ff391c0c27fe --- /dev/null +++ b/src/main/java/com/easysoftware/infrastructure/mapper/RPMPackageDOMapper.java @@ -0,0 +1,8 @@ +package com.easysoftware.infrastructure.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.easysoftware.infrastructure.rpmpackage.gatewayimpl.dataobject.RPMPackageDO; + +public interface RPMPackageDOMapper extends BaseMapper { + +} diff --git a/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/RPMPackageGatewayImpl.java b/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/RPMPackageGatewayImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..bb48c33292f90d9fab76bda6e7650339dea095bb --- /dev/null +++ b/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/RPMPackageGatewayImpl.java @@ -0,0 +1,81 @@ +package com.easysoftware.infrastructure.rpmpackage.gatewayimpl; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.easysoftware.application.rpmpackage.dto.RPMPackageSearchCondition; +import com.easysoftware.domain.applicationpackage.ApplicationPackage; +import com.easysoftware.domain.rpmpackage.RPMPackage; +import com.easysoftware.domain.rpmpackage.gateway.RPMPackageGateway; +import com.easysoftware.infrastructure.applicationpackage.gatewayimpl.converter.ApplicationPackageConvertor; +import com.easysoftware.infrastructure.applicationpackage.gatewayimpl.dataobject.ApplicationPackageDO; +import com.easysoftware.infrastructure.mapper.RPMPackageDOMapper; +import com.easysoftware.infrastructure.rpmpackage.gatewayimpl.converter.RPMPackageConverter; +import com.easysoftware.infrastructure.rpmpackage.gatewayimpl.dataobject.RPMPackageDO; + +@Component +public class RPMPackageGatewayImpl implements RPMPackageGateway { + @Autowired + private RPMPackageDOMapper rPMPkgMapper; + + + @Override + public boolean delete(String name) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("name", name); + int mark = rPMPkgMapper.delete(wrapper); + return mark == 1; + } + + @Override + public boolean existRPM(String name) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("name", name); + return rPMPkgMapper.exists(wrapper); + } + + @Override + public List queryByName(RPMPackageSearchCondition condition) { + int pageNum = condition.getPageNum(); + int pageSize = condition.getPageSize(); + String name = condition.getName(); + + Page page = new Page<>(pageNum, pageSize); + + QueryWrapper wrapper = new QueryWrapper<>(); + if ("all".equals(name)) { + } else { + wrapper.eq("name", name); + } + + Page resPage = rPMPkgMapper.selectPage(page, wrapper); + List rPMDOs = resPage.getRecords(); + List res = RPMPackageConverter.toEntity(rPMDOs); + + return res; + } + + @Override + public boolean save(RPMPackage rPMPkg) { + RPMPackageDO rPMPkgDO = RPMPackageConverter.toDataObjectForCreate(rPMPkg); + int mark = rPMPkgMapper.insert(rPMPkgDO); + return mark == 1; + } + + @Override + public boolean update(RPMPackage rPMPkg) { + RPMPackageDO rPMPkgDO = RPMPackageConverter.toDataObjectForUpdate(rPMPkg); + + UpdateWrapper wrapper = new UpdateWrapper<>(); + wrapper.eq("name", rPMPkg.getName()); + + int mark = rPMPkgMapper.update(rPMPkgDO, wrapper); + return mark == 1; + } + +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..6e1db159a04547f7c0f02b05ac813c44574c9954 --- /dev/null +++ b/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/converter/RPMPackageConverter.java @@ -0,0 +1,57 @@ +package com.easysoftware.infrastructure.rpmpackage.gatewayimpl.converter; + +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.List; + +import org.springframework.beans.BeanUtils; + +import com.easysoftware.domain.applicationpackage.ApplicationPackage; +import com.easysoftware.domain.common.utils.UuidUtil; +import com.easysoftware.domain.rpmpackage.RPMPackage; +import com.easysoftware.infrastructure.applicationpackage.gatewayimpl.dataobject.ApplicationPackageDO; +import com.easysoftware.infrastructure.rpmpackage.gatewayimpl.dataobject.RPMPackageDO; + +public class RPMPackageConverter { + public static RPMPackage toEntity(RPMPackageDO rPMPkgDO) { + RPMPackage rPMPkg = new RPMPackage(); + BeanUtils.copyProperties(rPMPkgDO, rPMPkg); + return rPMPkg; + } + + public static List toEntity(List rPMPkgDOs) { + List res = new ArrayList<>(); + for (RPMPackageDO rPMPkgDO : rPMPkgDOs) { + RPMPackage rPMPkg = toEntity(rPMPkgDO); + res.add(rPMPkg); + } + return res; + } + + public static RPMPackageDO toDataObject(RPMPackage rPMPkg) { + RPMPackageDO rPMPkgDO = new RPMPackageDO(); + BeanUtils.copyProperties(rPMPkg, rPMPkgDO); + return rPMPkgDO; + } + + public static RPMPackageDO toDataObjectForCreate(RPMPackage rPMPkg) { + RPMPackageDO rPMPkgDO = toDataObject(rPMPkg); + + Timestamp currentTime = new Timestamp(System.currentTimeMillis()); + String id = UuidUtil.getUUID32(); + rPMPkgDO.setCreateAt(currentTime); + rPMPkgDO.setUpdateAt(currentTime); + rPMPkgDO.setId(id); + + return rPMPkgDO; + } + + public static RPMPackageDO toDataObjectForUpdate(RPMPackage rPMPkg) { + RPMPackageDO rPMPkgDO = toDataObject(rPMPkg); + + Timestamp currentTime = new Timestamp(System.currentTimeMillis()); + rPMPkgDO.setUpdateAt(currentTime); + + return rPMPkgDO; + } +} diff --git a/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/dataobject/RPMPackageDO.java b/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/dataobject/RPMPackageDO.java new file mode 100644 index 0000000000000000000000000000000000000000..3808973be8dfb998b4e16c9f7f3a108fb438aaf0 --- /dev/null +++ b/src/main/java/com/easysoftware/infrastructure/rpmpackage/gatewayimpl/dataobject/RPMPackageDO.java @@ -0,0 +1,88 @@ +package com.easysoftware.infrastructure.rpmpackage.gatewayimpl.dataobject; + +import java.io.Serial; +import java.sql.Timestamp; + +import javax.persistence.Id; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.gitee.sunchenbin.mybatis.actable.annotation.IsKey; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName("rpm_package") +public class RPMPackageDO { + @Serial + private static final long serialVersionUID = 1L; + + private String id; + + private Timestamp createAt; + + private Timestamp updateAt; + + private String headerEnd; + + private String sizeInstalled; + + private String timeFile; + + private String sizePackage; + + private String description; + + private String checksumPkgid; + + private String locationHref; + + private String rpmBuildhost; + + private String checksumType; + + private String sizeArchive; + + private String rpmVendor; + + private String checksum; + + private String rpmGroup; + + private String headerStart; + + private String summary; + + private String versionRel; + + private String versionVer; + + private String packager; + + private String url; + + private String versionEpoch; + + private String rpmSourcerpm; + + private String rpmLicense; + + private String name; + + private String pkgOrApp; + + private String timeBuild; + + private String arch; + + private String pkgType; + + private String osName; + + private String osVer; + + private String osType; +} diff --git a/src/main/resources/mapper/RPMPackageDOMapper.xml b/src/main/resources/mapper/RPMPackageDOMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..8f2ec27aaa979635097222312ba485068b98fa79 --- /dev/null +++ b/src/main/resources/mapper/RPMPackageDOMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/test/java/com/easysoftware/EasysoftwareApplicationTests.java b/src/test/java/com/easysoftware/EasysoftwareApplicationTests.java index 5e0ab36f41849305ca9c0cae91f4e027e2c93ee8..0602822173a12a62052fe56f684dd6fd7f21bbbf 100644 --- a/src/test/java/com/easysoftware/EasysoftwareApplicationTests.java +++ b/src/test/java/com/easysoftware/EasysoftwareApplicationTests.java @@ -4,7 +4,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest -class EasySoftwareApplicationTests { +class EasysoftwareApplicationTests { @Test void contextLoads() { diff --git a/src/test/java/com/easysoftware/controller/AppPackageControllerTest.java b/src/test/java/com/easysoftware/controller/AppPackageControllerTest.java deleted file mode 100644 index 874111cdf7caecc81dd9abcfecc3665821718fb3..0000000000000000000000000000000000000000 --- a/src/test/java/com/easysoftware/controller/AppPackageControllerTest.java +++ /dev/null @@ -1,145 +0,0 @@ -package com.easysoftware.controller; - -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.assertTrue; -import static org.junit.jupiter.api.Assertions.assertEquals; - -import java.nio.charset.Charset; -import java.util.Set; - -import org.hibernate.validator.internal.engine.path.PathImpl; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.http.MediaType; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.test.context.web.WebAppConfiguration; -import org.springframework.test.web.servlet.MockMvc; -import org.springframework.test.web.servlet.MvcResult; -import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; -import org.springframework.test.web.servlet.result.MockMvcResultHandlers; -import org.springframework.test.web.servlet.setup.MockMvcBuilders; -import org.springframework.web.context.WebApplicationContext; - -import com.easysoftware.entity.dto.InputApplicationPackage; - -import jakarta.validation.ConstraintViolation; -import jakarta.validation.Validation; -import jakarta.validation.Validator; - -//SpringBoot1.4版本之前用的是SpringJUnit4ClassRunner.class -@RunWith(SpringRunner.class) -//SpringBoot1.4版本之前用的是@SpringApplicationConfiguration(classes = Application.class) -@SpringBootTest -//测试环境使用,用来表示测试环境使用的ApplicationContext将是WebApplicationContext类型的 -@WebAppConfiguration -class AppPackageControllerTest { - - @Autowired - private WebApplicationContext webApplicationContext; - private MockMvc mockMvc; - - @BeforeEach - public void setUp() throws Exception { - mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build(); - } - - // 输入参数不符合@Valid注解标注的要求 - @Test - void test_http_result_of_incorrect_input_parameters() throws Exception { - MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders - .post("/apppkg") - .contentType(MediaType.APPLICATION_JSON) - .content("{\r\n \r\n \"name\": \"ouvmindvtcboewqlsfklnlhxrrnaljzdcyljlwuxjbldvvfwhlcoxtuinwbjrcneeynpkgdxrekppfzfrjgekyrchhtntidhngendaabgijpvfdepwvlhkqbybhznyjqyuzpeoigcdpcgwqjtgepaqvclubgoqrgticlnwzcyhabpkixxdxooiwflptmluzyknutuvrbsbgzlbeyhafhttgumlggkdcgipdorbpetazxxkdjgkdgrzuikhefucry\",\r\n \"version\": \"ouvmindvtcboewqlsfklnlhxrrnaljzdcyljlwuxjbldvvfwhlcoxtuinwbjrcneeynpkgdxrekppfzfrjgekyrchhtntidhngendaabgijpvfdepwvlhkqbybhznyjqyuzpeoigcdpcgwqjtgepaqvclubgoqrgticlnwzcyhabpkixxdxooiwflptmluzyknutuvrbsbgzlbeyhafhttgumlggkdcgipdorbpetazxxkdjgkdgrzuikhefucry\"\r\n}\r\n") - .accept(MediaType.APPLICATION_JSON)) - .andDo(MockMvcResultHandlers.print()) - .andReturn(); - - //得到返回结果 - String content = mvcResult.getResponse().getContentAsString(Charset.defaultCharset()); - assertEquals("{\"status\":400,\"msg\":", content.substring(0, 20)); - } - - @Test - // 测试name - void test_incorrect_input_parameters() { - InputApplicationPackage pkg = new InputApplicationPackage(); - // name字段字节长度为256 - pkg.setName("ouvmindvtcboewqlsfklnlhxrrnaljzdcyljlwuxjbldvvfwhlcoxtuinwbjrcneeynpkgdxrekppfzfrjgekyrchhtntidhngendaabgijpvfdepwvlhkqbybhznyjqyuzpeoigcdpcgwqjtgepaqvclubgoqrgticlnwzcyhabpkixxdxooiwflptmluzyknutuvrbsbgzlbeyhafhttgumlggkdcgipdorbpetazxxkdjgkdgrzuikhefucry"); - // pkg.setVersion(null); - // pkg.setPkgUrl("https://repo.openeuler.openatom.cn/openEuler-20.03-LTS-SP3/update/source/Packages/curl-7.71.1-21.oe1.src.rpm"); - // pkg.setSrcUrl("hgwgyh"); - - // SimilarPkg sPkg1 = new SimilarPkg(); - // ValidList list = new ValidList<>(); - // list.add(sPkg1); - // pkg.setSimilarPgks(list); - - // assertThrows(, null) - - Validator validator = Validation.buildDefaultValidatorFactory().getValidator(); - Set> violates = validator.validate(pkg); - for (ConstraintViolation violate : violates) { - String fieldName = ((PathImpl) violate.getPropertyPath()).getLeafNode().getName(); - String errorMessage = violate.getMessage(); - Object obj = violate.getInvalidValue(); - - if ("version".equals(fieldName)) { - assertNull(obj); - assertEquals(errorMessage, "version can not be null"); - } - if ("pkgName".equals(fieldName)) { - assertNull(obj); - assertEquals(errorMessage, "pkg name can not be null"); - } - if ("srcUrl".equals(fieldName)) { - assertEquals(errorMessage, "需要是一个合法的URL"); - } - if ("name".equals(fieldName)) { - String str = (String) violate.getInvalidValue(); - assertTrue(255 < str.length()); - assertEquals(errorMessage, "the length of name can not exceed 255"); - } - } - } - - - - - // @Test - // void contextLoads() throws Exception { - // /** - // * 1、mockMvc.perform执行一个请求。 - // * 2、MockMvcRequestBuilders.get("XXX")构造一个请求。 - // * 3、ResultActions.param添加请求传值 - // * 4、ResultActions.accept(MediaType.TEXT_HTML_VALUE))设置返回类型 - // * 5、ResultActions.andExpect添加执行完成后的断言。 - // * 6、ResultActions.andDo添加一个结果处理器,表示要对结果做点什么事情 - // * 比如此处使用MockMvcResultHandlers.print()输出整个响应结果信息。 - // * 5、ResultActions.andReturn表示执行完成后返回相应的结果。 - // */ - // MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/apppkg/hello") - // //.param("name", "lvgang") - // .accept(MediaType.APPLICATION_JSON)) - // //等同于Assert.assertEquals(200,status); - // .andExpect(MockMvcResultMatchers.status().isOk()) - // //等同于 Assert.assertEquals("hello world!",content); - // .andExpect(MockMvcResultMatchers.content().string("hello world!")) - // .andDo(MockMvcResultHandlers.print()) - // .andReturn(); - // //得到返回代码 - // int status = mvcResult.getResponse().getStatus(); - // //得到返回结果 - // String content = mvcResult.getResponse().getContentAsString(); - // //断言,判断返回代码是否正确 - // Assert.assertEquals(200, status); - // //断言,判断返回的值是否正确 - // Assert.assertEquals("hello world!", content); - // } - -} - -