feat: 支持修改license申请
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user