diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/vo/LicenseRespVO.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/vo/LicenseRespVO.java index 0cd94b1..5696451 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/vo/LicenseRespVO.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/vo/LicenseRespVO.java @@ -113,6 +113,9 @@ public class LicenseRespVO implements VO { @ExcelProperty("申请次数") private Integer applyCount; + @Schema(description = "数据类型") + private Integer dataType; + private LicenseRespVO oldLicense; private boolean hasHistory; diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/license/LicenseServiceImpl.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/license/LicenseServiceImpl.java index 0c3255f..91cb116 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/license/LicenseServiceImpl.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/license/LicenseServiceImpl.java @@ -130,6 +130,7 @@ public class LicenseServiceImpl implements LicenseService { .eq(LicenseDO::getId, license.getId()) .set(LicenseDO::getExpiryDate, license.getExpiryDate()) .set(LicenseDO::getUserNumber, license.getUserNumber()) + .set(LicenseDO::getSerialNo, license.getSerialNo()) .set(LicenseDO::getRanNumber, license.getRanNumber()) .set(LicenseDO::getRemark, StrUtil.isBlank(license.getRemark()) ? null : license.getRemark()) .set(LicenseDO::getApprover, license.getApprover()) @@ -139,14 +140,7 @@ public class LicenseServiceImpl implements LicenseService { licenseMapper.insert(license); } - List neCodeList = createReqVO.getNeCodeList(); - - List licenseDetails = BeanUtils.toBean(neCodeList, LicenseDetailDO.class); - for (LicenseDetailDO licenseDetail : licenseDetails) { - licenseDetail.setId(null); - licenseDetail.setLicenseId(license.getId()); - } - licenseDetailMapper.insertBatch(licenseDetails); + List licenseDetails = updateLicenseDetail(createReqVO.getNeCodeList(), license); createReqVO.setId(license.getId()); applyLicense(createReqVO, licenseDetails); @@ -168,6 +162,20 @@ public class LicenseServiceImpl implements LicenseService { // 更新 LicenseDO updateObj = BeanUtils.toBean(updateReqVO, LicenseDO.class); licenseMapper.updateById(updateObj); + + licenseDetailMapper.delete(Wrappers.lambdaQuery().eq(LicenseDetailDO::getLicenseId, updateObj.getId())); + + updateLicenseDetail(updateReqVO.getNeCodeList(), updateObj); + } + + private List updateLicenseDetail(List neCodeList, LicenseDO updateObj) { + List licenseDetails = BeanUtils.toBean(neCodeList, LicenseDetailDO.class); + for (LicenseDetailDO licenseDetail : licenseDetails) { + licenseDetail.setId(null); + licenseDetail.setLicenseId(updateObj.getId()); + } + licenseDetailMapper.insertBatch(licenseDetails); + return licenseDetails; } @Override @@ -192,18 +200,67 @@ public class LicenseServiceImpl implements LicenseService { notifySendApi.sendSingleMessageToAdmin(new NotifySendSingleToUserReqDTO() .setUserId(userId).setTemplateCode(templateCode).setTemplateParams(templateParams)); -// List neCodeList = updateReqVO.getNeCodeList(); - List resultList = new ArrayList<>(); // 初始化结果列表 + // 更新表 + LicenseDO licenseDO = new LicenseDO(); + licenseDO.setId(updateReqVO.getId()); + licenseDO.setStatus(LicenseStatusEnum.IN_APPLICATION.getCode()); + licenseDO.setApplicant(WebFrameworkUtils.getLoginUserId()); + licenseDO.setApplicationTime(LocalDateTime.now()); + licenseMapper.updateById(licenseDO); + } + @Override + @Transactional(rollbackFor = Exception.class) + public void reapplyLicense(LicenseSaveReqVO updateReqVO) { + // 校验存在 + validateLicenseExists(updateReqVO.getId()); + // 将现有的license迁移到历史表 + LicenseDO licenseDO = licenseMapper.selectById(updateReqVO.getId()); + List licenseDetailDOS = licenseDetailMapper.selectList(Wrappers.lambdaQuery().eq(LicenseDetailDO::getLicenseId, licenseDO.getId())); + + LicenseHistoryDO historyDO = BeanUtils.toBean(licenseDO, LicenseHistoryDO.class); + + licenseDetailMapper.delete(Wrappers.lambdaQuery().eq(LicenseDetailDO::getLicenseId, licenseDO.getId())); + + for (LicenseDetailVO neCode : updateReqVO.getNeCodeList()) { + neCode.setId(null); + neCode.setFileUrlLegacy(null); + neCode.setFileUrl(null); + neCode.setProviderId(null); + } + Long licenseId = createLicense(updateReqVO, true); + historyDO.setId(null); + historyDO.setLicenseId(licenseId); + licenseHistoryMapper.insert(historyDO); + + if (CollUtil.isNotEmpty(licenseDetailDOS)) { + List detailHistoryDOList = BeanUtils.toBean(licenseDetailDOS, LicenseDetailHistoryDO.class); + detailHistoryDOList.forEach(c -> { + c.setId(null); + c.setLicenseId(historyDO.getId()); + }); + licenseDetailHistoryMapper.insertBatch(detailHistoryDOList); + } + licenseMapper.update(Wrappers.lambdaUpdate().eq(LicenseDO::getId, licenseId) + .set(LicenseDO::getStatus, LicenseStatusEnum.REAPPLYING.getCode()).set(LicenseDO::getDataType, null)); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public String generate(Long id) { + LicenseDO licenseDO = licenseMapper.selectById(id); + + List licenseDetails = licenseDetailMapper.selectList(Wrappers.lambdaQuery().eq(LicenseDetailDO::getLicenseId, licenseDO.getId())); + + List resultList = new ArrayList<>(); // 初始化结果列表 for (LicenseDetailDO neCodeVO : licenseDetails) { // 添加数据到License提供者表 LicenseProviderDO licenseProviderDO = new LicenseProviderDO(); - licenseProviderDO.setCustomerId(updateReqVO.getCustomerId()); - licenseProviderDO.setProjectId(updateReqVO.getProjectId()); - licenseProviderDO.setSerialNo(updateReqVO.getSerialNo()); - licenseProviderDO.setExpiryDate(updateReqVO.getExpiryDate()); - licenseProviderDO.setRanNumber(updateReqVO.getRanNumber()); - licenseProviderDO.setUserNumber(updateReqVO.getUserNumber()); + licenseProviderDO.setProjectId(licenseDO.getProjectId()); + licenseProviderDO.setSerialNo(licenseDO.getSerialNo()); + licenseProviderDO.setExpiryDate(licenseDO.getExpiryDate()); + licenseProviderDO.setRanNumber(licenseDO.getRanNumber()); + licenseProviderDO.setUserNumber(licenseDO.getUserNumber()); List neList = neCodeVO.getNeList(); List neLabels = new ArrayList<>(); for (Integer ne : neList) { @@ -247,9 +304,9 @@ public class LicenseServiceImpl implements LicenseService { licenseProviderDO.setNeList(StrUtil.join(",", neLabels)); licenseProviderDO.setActivationCode(neCodeVO.getActivationCode()); licenseProviderDO.setOperationType(1); - licenseProviderDO.setState(1); - licenseProviderDO.setRemark(updateReqVO.getRemark()); - licenseProviderDO.setApprover(updateReqVO.getApprover()); + licenseProviderDO.setState(2); + licenseProviderDO.setRemark(licenseDO.getRemark()); + licenseProviderDO.setApprover(licenseDO.getApprover()); licenseProviderMapper.insert(licenseProviderDO); neCodeVO.setProviderId(licenseProviderDO.getId()); @@ -257,63 +314,6 @@ public class LicenseServiceImpl implements LicenseService { licenseDetailMapper.updateBatch(licenseDetails); - // 更新表 - LicenseDO licenseDO = new LicenseDO(); - licenseDO.setId(updateReqVO.getId()); - licenseDO.setStatus(LicenseStatusEnum.IN_APPLICATION.getCode()); - licenseDO.setApplicant(WebFrameworkUtils.getLoginUserId()); - licenseDO.setApplicationTime(LocalDateTime.now()); - licenseMapper.updateById(licenseDO); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void reapplyLicense(LicenseSaveReqVO updateReqVO) { - // 校验存在 - validateLicenseExists(updateReqVO.getId()); - // 将现有的license迁移到历史表 - LicenseDO licenseDO = licenseMapper.selectById(updateReqVO.getId()); - List licenseDetailDOS = licenseDetailMapper.selectList(Wrappers.lambdaQuery().eq(LicenseDetailDO::getLicenseId, licenseDO.getId())); - - LicenseHistoryDO historyDO = BeanUtils.toBean(licenseDO, LicenseHistoryDO.class); - - licenseDetailMapper.delete(Wrappers.lambdaQuery().eq(LicenseDetailDO::getLicenseId, licenseDO.getId())); - - for (LicenseDetailVO neCode : updateReqVO.getNeCodeList()) { - neCode.setId(null); - neCode.setFileUrlLegacy(null); - neCode.setFileUrl(null); - neCode.setProviderId(null); - } - Long licenseId = createLicense(updateReqVO, true); - historyDO.setId(null); - historyDO.setLicenseId(licenseId); - licenseHistoryMapper.insert(historyDO); - - if (CollUtil.isNotEmpty(licenseDetailDOS)) { - List detailHistoryDOList = BeanUtils.toBean(licenseDetailDOS, LicenseDetailHistoryDO.class); - detailHistoryDOList.forEach(c -> { - c.setId(null); - c.setLicenseId(historyDO.getId()); - }); - licenseDetailHistoryMapper.insertBatch(detailHistoryDOList); - } - licenseMapper.updateById(new LicenseDO().setId(licenseId).setStatus(LicenseStatusEnum.REAPPLYING.getCode())); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public String generate(Long id) { - LicenseDO licenseDO = licenseMapper.selectById(id); - - List licenseDetailDOS = licenseDetailMapper.selectList(Wrappers.lambdaQuery().eq(LicenseDetailDO::getLicenseId, licenseDO.getId())); - - for (LicenseDetailDO neCodeVO : licenseDetailDOS) { - LicenseProviderDO licenseProviderDO = licenseProviderMapper.selectById(neCodeVO.getProviderId()); - licenseProviderDO.setState(2); - licenseProviderMapper.updateById(licenseProviderDO); - } - licenseDO.setStatus(LicenseStatusEnum.GENERATING.getCode()); licenseMapper.updateById(licenseDO); return ""; @@ -406,6 +406,7 @@ public class LicenseServiceImpl implements LicenseService { if (isCompleted && CollUtil.isNotEmpty(licenseDetails)) { licenseDO.setStatus(LicenseStatusEnum.COMPLETED.getCode()); + licenseDO.setFileUrl(licenseDO.getSerialNo() + "_" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + ".tar.gz"); licenseMapper.updateById(licenseDO); } @@ -522,10 +523,6 @@ public class LicenseServiceImpl implements LicenseService { activationCodeMap.put("old", oldDetails.get(i).getActivationCode()); neListMap.put("old", oldDetails.get(i).getNeList()); fileUrlListMap.put("old", null); - mergeDetail.setFileUrl(oldDetails.get(i).getFileUrl()); - mergeDetail.setNeList(oldDetails.get(i).getNeList()); - mergeDetail.setActivationCode(oldDetails.get(i).getActivationCode()); - mergeDetail.setFileUrlList(oldDetails.get(i).getFileUrlList()); } if (i < details.size()) { @@ -536,6 +533,10 @@ public class LicenseServiceImpl implements LicenseService { } else { fileUrlListMap.put("new", null); } + mergeDetail.setFileUrl(details.get(i).getFileUrl()); + mergeDetail.setNeList(details.get(i).getNeList()); + mergeDetail.setActivationCode(details.get(i).getActivationCode()); + mergeDetail.setFileUrlList(details.get(i).getFileUrlList()); } mergeDetail.setActivationCodeMap(activationCodeMap); mergeDetail.setNeListMap(neListMap);