禅道bug#1508修复

This commit is contained in:
gaoqr
2026-05-20 09:48:59 +08:00
parent df944e241e
commit 1c8866d2cf
4 changed files with 30 additions and 7 deletions
@@ -132,4 +132,12 @@ public interface PurchaseRecordMapper extends BaseMapperX<PurchaseRecordDO> {
PurchaseRecordDO::getCreator, PurchaseRecordDO::getCreateTime, PurchaseRecordDO::getPaymentMethod)
);
}
/**
* 根据id列表物理删除
*
* @param ids
* @return 改动数量
*/
int physicalDeleteByIds(@Param("ids") List<Long> ids, @Param("organId") Long organId);
}
@@ -162,7 +162,7 @@ public class ProductDelayServiceImpl implements ProductDelayService {
.eq(ProductDelayRecordDO::getPurchaseId, purchaseId)
.eq(ProductDelayRecordDO::getOrganId, organId)
.orderByDesc(ProductDelayRecordDO::getId)
.select(ProductDelayRecordDO::getDelayDuration, ProductDelayRecordDO::getDelayDurationUnit, ProductDelayRecordDO::getDelayTime)), ProductDelayRespVO.class);
.select(ProductDelayRecordDO::getDelayDuration, ProductDelayRecordDO::getDelayDurationUnit, ProductDelayRecordDO::getDelayTime, ProductDelayRecordDO::getPaid)), ProductDelayRespVO.class);
}
@Override
@@ -283,10 +283,7 @@ public class PurchaseServiceImpl implements PurchaseService {
.set(PurchaseRecordDO::getOriginalAmount, price));
}
// 7、新增
createOrgInitProductPurchaseRecord(organId, createList);
// 8、删除首购记录关联的延期记录如果有已经支付的不允许删除
// 7、删除首购记录关联的延期记录如果有已经支付的不允许删除
for (Long purchaseId : deleteIdList) {
List<ProductDelayRespVO> recordsByPurchaseId = productDelayService.getRecordsByPurchaseId(purchaseId, organId);
if (CollUtil.isNotEmpty(recordsByPurchaseId)) {
@@ -298,8 +295,13 @@ public class PurchaseServiceImpl implements PurchaseService {
}
}
// 9、删除
purchaseRecordMapper.deleteByIds(deleteIdList);
// 8、删除
if (CollUtil.isNotEmpty(deleteIdList)) {
purchaseRecordMapper.physicalDeleteByIds(deleteIdList, organId);
}
// 9、新增
createOrgInitProductPurchaseRecord(organId, createList);
}
@@ -80,4 +80,17 @@
,CONCAT(YEAR(o.create_time), '-', MONTH(o.create_time), '-', DAY(o.create_time)) as date
</if>
</sql>
<delete id="physicalDeleteByIds">
DELETE FROM purchase_record
WHERE organ_id = #{organId}
AND id IN
<foreach collection="ids"
item="id"
open="("
separator=","
close=")">
#{id}
</foreach>
</delete>
</mapper>