fix(edu): savePackages 补全课包快照字段(name/type/listPrice/salePrice/finalAmount), 修复合同创建因 NOT NULL 列插入失败
This commit is contained in:
parent
b0bfc25f8c
commit
b9bbd0049d
|
|
@ -54,6 +54,7 @@ public class EduContractServiceImpl implements IEduContractService {
|
|||
|
||||
private final EduContractMapper contractMapper;
|
||||
private final EduContractPackageMapper contractPackageMapper;
|
||||
private final org.dromara.edu.infrastructure.persistence.mapper.EduCoursePackageMapper coursePackageMapper;
|
||||
private final EduContractGiftMapper contractGiftMapper;
|
||||
private final EduContractLogMapper contractLogMapper;
|
||||
private final EduHoursLogMapper hoursLogMapper;
|
||||
|
|
@ -506,11 +507,31 @@ public class EduContractServiceImpl implements IEduContractService {
|
|||
if (CollUtil.isEmpty(packages)) {
|
||||
return;
|
||||
}
|
||||
// 按 packageId 批量查课包, 填充 name/type 快照(表列 NOT NULL)
|
||||
java.util.Set<Long> pkgIds = packages.stream()
|
||||
.map(EduContractPackageBo::getPackageId)
|
||||
.filter(java.util.Objects::nonNull)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
java.util.Map<Long, org.dromara.edu.domain.model.package_.EduCoursePackage> pkgMap;
|
||||
if (!pkgIds.isEmpty()) {
|
||||
pkgMap = coursePackageMapper.selectBatchIds(pkgIds).stream()
|
||||
.collect(java.util.stream.Collectors.toMap(org.dromara.edu.domain.model.package_.EduCoursePackage::getId, p -> p, (a, b) -> a));
|
||||
} else {
|
||||
pkgMap = java.util.Collections.emptyMap();
|
||||
}
|
||||
List<EduContractPackage> list = StreamUtils.toList(packages, p -> {
|
||||
EduContractPackage e = MapstructUtils.convert(p, EduContractPackage.class);
|
||||
e.setContractId(contractId);
|
||||
e.setUsedHours(BigDecimal.ZERO);
|
||||
e.setRemainHours(nz(p.getTotalHours()));
|
||||
// 课包快照: name/type/listPrice BO 可能未传, 从课包表查(表列均 NOT NULL)
|
||||
org.dromara.edu.domain.model.package_.EduCoursePackage src = pkgMap.get(p.getPackageId());
|
||||
e.setPackageName(src != null && src.getPackageName() != null ? src.getPackageName() : "未知课包");
|
||||
e.setPackageType(src != null && src.getPackageType() != null ? src.getPackageType() : "UNKNOWN");
|
||||
e.setListPrice(p.getListPrice() != null ? p.getListPrice()
|
||||
: (src != null && src.getListPrice() != null ? src.getListPrice() : nz(p.getSalePrice())));
|
||||
// salePrice/finalAmount 表列 NOT NULL, 兜底非 null
|
||||
e.setSalePrice(nz(p.getSalePrice()));
|
||||
e.setFinalAmount(nz(p.getFinalAmount(), p.getSalePrice()));
|
||||
e.setStatus("0");
|
||||
return e;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user