feat: 支持修改license申请
This commit is contained in:
@@ -113,6 +113,9 @@ public class LicenseRespVO implements VO {
|
||||
@ExcelProperty("申请次数")
|
||||
private Integer applyCount;
|
||||
|
||||
@Schema(description = "数据类型")
|
||||
private Integer dataType;
|
||||
|
||||
private LicenseRespVO oldLicense;
|
||||
|
||||
private boolean hasHistory;
|
||||
|
||||
@@ -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<LicenseDetailVO> neCodeList = createReqVO.getNeCodeList();
|
||||
|
||||
List<LicenseDetailDO> licenseDetails = BeanUtils.toBean(neCodeList, LicenseDetailDO.class);
|
||||
for (LicenseDetailDO licenseDetail : licenseDetails) {
|
||||
licenseDetail.setId(null);
|
||||
licenseDetail.setLicenseId(license.getId());
|
||||
}
|
||||
licenseDetailMapper.insertBatch(licenseDetails);
|
||||
List<LicenseDetailDO> 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.<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
|
||||
@@ -192,18 +200,67 @@ public class LicenseServiceImpl implements LicenseService {
|
||||
notifySendApi.sendSingleMessageToAdmin(new NotifySendSingleToUserReqDTO()
|
||||
.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) {
|
||||
// 添加数据到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<Integer> neList = neCodeVO.getNeList();
|
||||
List<String> 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<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());
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user