feat: 支持修改license申请

This commit is contained in:
caiyuchao
2025-09-04 17:11:54 +08:00
parent 20bb20b29b
commit 8bcd0744f5
2 changed files with 84 additions and 80 deletions

View File

@@ -113,6 +113,9 @@ public class LicenseRespVO implements VO {
@ExcelProperty("申请次数") @ExcelProperty("申请次数")
private Integer applyCount; private Integer applyCount;
@Schema(description = "数据类型")
private Integer dataType;
private LicenseRespVO oldLicense; private LicenseRespVO oldLicense;
private boolean hasHistory; private boolean hasHistory;

View File

@@ -130,6 +130,7 @@ public class LicenseServiceImpl implements LicenseService {
.eq(LicenseDO::getId, license.getId()) .eq(LicenseDO::getId, license.getId())
.set(LicenseDO::getExpiryDate, license.getExpiryDate()) .set(LicenseDO::getExpiryDate, license.getExpiryDate())
.set(LicenseDO::getUserNumber, license.getUserNumber()) .set(LicenseDO::getUserNumber, license.getUserNumber())
.set(LicenseDO::getSerialNo, license.getSerialNo())
.set(LicenseDO::getRanNumber, license.getRanNumber()) .set(LicenseDO::getRanNumber, license.getRanNumber())
.set(LicenseDO::getRemark, StrUtil.isBlank(license.getRemark()) ? null : license.getRemark()) .set(LicenseDO::getRemark, StrUtil.isBlank(license.getRemark()) ? null : license.getRemark())
.set(LicenseDO::getApprover, license.getApprover()) .set(LicenseDO::getApprover, license.getApprover())
@@ -139,14 +140,7 @@ public class LicenseServiceImpl implements LicenseService {
licenseMapper.insert(license); licenseMapper.insert(license);
} }
List<LicenseDetailVO> neCodeList = createReqVO.getNeCodeList(); List<LicenseDetailDO> licenseDetails = updateLicenseDetail(createReqVO.getNeCodeList(), license);
List<LicenseDetailDO> licenseDetails = BeanUtils.toBean(neCodeList, LicenseDetailDO.class);
for (LicenseDetailDO licenseDetail : licenseDetails) {
licenseDetail.setId(null);
licenseDetail.setLicenseId(license.getId());
}
licenseDetailMapper.insertBatch(licenseDetails);
createReqVO.setId(license.getId()); createReqVO.setId(license.getId());
applyLicense(createReqVO, licenseDetails); applyLicense(createReqVO, licenseDetails);
@@ -168,6 +162,20 @@ public class LicenseServiceImpl implements LicenseService {
// 更新 // 更新
LicenseDO updateObj = BeanUtils.toBean(updateReqVO, LicenseDO.class); LicenseDO updateObj = BeanUtils.toBean(updateReqVO, LicenseDO.class);
licenseMapper.updateById(updateObj); licenseMapper.updateById(updateObj);
licenseDetailMapper.delete(Wrappers.<LicenseDetailDO>lambdaQuery().eq(LicenseDetailDO::getLicenseId, updateObj.getId()));
updateLicenseDetail(updateReqVO.getNeCodeList(), updateObj);
}
private List<LicenseDetailDO> updateLicenseDetail(List<LicenseDetailVO> neCodeList, LicenseDO updateObj) {
List<LicenseDetailDO> licenseDetails = BeanUtils.toBean(neCodeList, LicenseDetailDO.class);
for (LicenseDetailDO licenseDetail : licenseDetails) {
licenseDetail.setId(null);
licenseDetail.setLicenseId(updateObj.getId());
}
licenseDetailMapper.insertBatch(licenseDetails);
return licenseDetails;
} }
@Override @Override
@@ -192,18 +200,67 @@ public class LicenseServiceImpl implements LicenseService {
notifySendApi.sendSingleMessageToAdmin(new NotifySendSingleToUserReqDTO() notifySendApi.sendSingleMessageToAdmin(new NotifySendSingleToUserReqDTO()
.setUserId(userId).setTemplateCode(templateCode).setTemplateParams(templateParams)); .setUserId(userId).setTemplateCode(templateCode).setTemplateParams(templateParams));
// List<LicenseNeCodeVO> neCodeList = updateReqVO.getNeCodeList(); // 更新表
List<String> 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<LicenseDetailDO> licenseDetailDOS = licenseDetailMapper.selectList(Wrappers.<LicenseDetailDO>lambdaQuery().eq(LicenseDetailDO::getLicenseId, licenseDO.getId()));
LicenseHistoryDO historyDO = BeanUtils.toBean(licenseDO, LicenseHistoryDO.class);
licenseDetailMapper.delete(Wrappers.<LicenseDetailDO>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<LicenseDetailHistoryDO> detailHistoryDOList = BeanUtils.toBean(licenseDetailDOS, LicenseDetailHistoryDO.class);
detailHistoryDOList.forEach(c -> {
c.setId(null);
c.setLicenseId(historyDO.getId());
});
licenseDetailHistoryMapper.insertBatch(detailHistoryDOList);
}
licenseMapper.update(Wrappers.<LicenseDO>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<LicenseDetailDO> licenseDetails = licenseDetailMapper.selectList(Wrappers.<LicenseDetailDO>lambdaQuery().eq(LicenseDetailDO::getLicenseId, licenseDO.getId()));
List<String> resultList = new ArrayList<>(); // 初始化结果列表
for (LicenseDetailDO neCodeVO : licenseDetails) { for (LicenseDetailDO neCodeVO : licenseDetails) {
// 添加数据到License提供者表 // 添加数据到License提供者表
LicenseProviderDO licenseProviderDO = new LicenseProviderDO(); LicenseProviderDO licenseProviderDO = new LicenseProviderDO();
licenseProviderDO.setCustomerId(updateReqVO.getCustomerId()); licenseProviderDO.setProjectId(licenseDO.getProjectId());
licenseProviderDO.setProjectId(updateReqVO.getProjectId()); licenseProviderDO.setSerialNo(licenseDO.getSerialNo());
licenseProviderDO.setSerialNo(updateReqVO.getSerialNo()); licenseProviderDO.setExpiryDate(licenseDO.getExpiryDate());
licenseProviderDO.setExpiryDate(updateReqVO.getExpiryDate()); licenseProviderDO.setRanNumber(licenseDO.getRanNumber());
licenseProviderDO.setRanNumber(updateReqVO.getRanNumber()); licenseProviderDO.setUserNumber(licenseDO.getUserNumber());
licenseProviderDO.setUserNumber(updateReqVO.getUserNumber());
List<Integer> neList = neCodeVO.getNeList(); List<Integer> neList = neCodeVO.getNeList();
List<String> neLabels = new ArrayList<>(); List<String> neLabels = new ArrayList<>();
for (Integer ne : neList) { for (Integer ne : neList) {
@@ -247,9 +304,9 @@ public class LicenseServiceImpl implements LicenseService {
licenseProviderDO.setNeList(StrUtil.join(",", neLabels)); licenseProviderDO.setNeList(StrUtil.join(",", neLabels));
licenseProviderDO.setActivationCode(neCodeVO.getActivationCode()); licenseProviderDO.setActivationCode(neCodeVO.getActivationCode());
licenseProviderDO.setOperationType(1); licenseProviderDO.setOperationType(1);
licenseProviderDO.setState(1); licenseProviderDO.setState(2);
licenseProviderDO.setRemark(updateReqVO.getRemark()); licenseProviderDO.setRemark(licenseDO.getRemark());
licenseProviderDO.setApprover(updateReqVO.getApprover()); licenseProviderDO.setApprover(licenseDO.getApprover());
licenseProviderMapper.insert(licenseProviderDO); licenseProviderMapper.insert(licenseProviderDO);
neCodeVO.setProviderId(licenseProviderDO.getId()); neCodeVO.setProviderId(licenseProviderDO.getId());
@@ -257,63 +314,6 @@ public class LicenseServiceImpl implements LicenseService {
licenseDetailMapper.updateBatch(licenseDetails); 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<LicenseDetailDO> licenseDetailDOS = licenseDetailMapper.selectList(Wrappers.<LicenseDetailDO>lambdaQuery().eq(LicenseDetailDO::getLicenseId, licenseDO.getId()));
LicenseHistoryDO historyDO = BeanUtils.toBean(licenseDO, LicenseHistoryDO.class);
licenseDetailMapper.delete(Wrappers.<LicenseDetailDO>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<LicenseDetailHistoryDO> 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<LicenseDetailDO> licenseDetailDOS = licenseDetailMapper.selectList(Wrappers.<LicenseDetailDO>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()); licenseDO.setStatus(LicenseStatusEnum.GENERATING.getCode());
licenseMapper.updateById(licenseDO); licenseMapper.updateById(licenseDO);
return ""; return "";
@@ -406,6 +406,7 @@ public class LicenseServiceImpl implements LicenseService {
if (isCompleted && CollUtil.isNotEmpty(licenseDetails)) { if (isCompleted && CollUtil.isNotEmpty(licenseDetails)) {
licenseDO.setStatus(LicenseStatusEnum.COMPLETED.getCode()); licenseDO.setStatus(LicenseStatusEnum.COMPLETED.getCode());
licenseDO.setFileUrl(licenseDO.getSerialNo() + "_" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + ".tar.gz");
licenseMapper.updateById(licenseDO); licenseMapper.updateById(licenseDO);
} }
@@ -522,10 +523,6 @@ public class LicenseServiceImpl implements LicenseService {
activationCodeMap.put("old", oldDetails.get(i).getActivationCode()); activationCodeMap.put("old", oldDetails.get(i).getActivationCode());
neListMap.put("old", oldDetails.get(i).getNeList()); neListMap.put("old", oldDetails.get(i).getNeList());
fileUrlListMap.put("old", null); 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()) { if (i < details.size()) {
@@ -536,6 +533,10 @@ public class LicenseServiceImpl implements LicenseService {
} else { } else {
fileUrlListMap.put("new", null); 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.setActivationCodeMap(activationCodeMap);
mergeDetail.setNeListMap(neListMap); mergeDetail.setNeListMap(neListMap);