From bf25dfb74ed78d72858f23a34758fc3d7351dd09 Mon Sep 17 00:00:00 2001 From: Derran Date: Thu, 16 Jan 2025 16:13:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...RafflePrizeActivityApplicationService.java | 9 +++++- .../RafflePrizeActivityRepositoryImpl.java | 28 +++++++++++-------- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/rpa/RafflePrizeActivityApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/rpa/RafflePrizeActivityApplicationService.java index ebe0d2f..0d4f2fd 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/rpa/RafflePrizeActivityApplicationService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/rpa/RafflePrizeActivityApplicationService.java @@ -1,10 +1,12 @@ package com.qniao.dam.application.service.rpa; +import cn.hutool.core.lang.Tuple; import com.qniao.dam.domain.aggregate.rpa.RafflePrizeActivityAggregate; import com.qniao.dam.domain.aggregate.rpa.entity.RafflePrizeActivity; import com.qniao.dam.domain.aggregate.rpa.entity.RafflePrizeActivityItem; import com.qniao.dam.domain.aggregate.rpa.repository.RafflePrizeActivityRepository; import com.qniao.dam.infrastructure.persistent.dao.rpa.RafflePrizeActivityDao; +import com.qniao.dam.infrastructure.utils.CompareEntityUtil; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -30,6 +32,11 @@ public class RafflePrizeActivityApplicationService { } public void edit(RafflePrizeActivity rafflePrizeActivity) { + RafflePrizeActivity oldRafflePrizeActivity = rafflePrizeActivityRepository.load(rafflePrizeActivity.getId()); + Tuple tuple = CompareEntityUtil.compareEntityList(rafflePrizeActivity.getItemList(), oldRafflePrizeActivity.getItemList()); + rafflePrizeActivity.setInsertItemList(tuple.get(0)); + rafflePrizeActivity.setUpdateItemList(tuple.get(1)); + rafflePrizeActivity.setDeleteItemList(tuple.get(2)); rafflePrizeActivityAggregate.edit(rafflePrizeActivity); } @@ -45,7 +52,7 @@ public class RafflePrizeActivityApplicationService { } } - public RafflePrizeActivityItem draw(Long id) { + public RafflePrizeActivityItem draw(Long id) { RafflePrizeActivity rafflePrizeActivity = rafflePrizeActivityRepository.load(id); int num = rafflePrizeActivity.getItemList().stream() .map(RafflePrizeActivityItem::getWinningRate).reduce(BigDecimal.ZERO, BigDecimal::add) diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/RafflePrizeActivityRepositoryImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/RafflePrizeActivityRepositoryImpl.java index 5d0b402..2454efe 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/RafflePrizeActivityRepositoryImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/repository/impl/RafflePrizeActivityRepositoryImpl.java @@ -12,6 +12,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.Objects; +import java.util.stream.Collectors; /** * 抽奖奖品活动 @@ -41,20 +42,23 @@ public class RafflePrizeActivityRepositoryImpl implements RafflePrizeActivityRep public Long save(RafflePrizeActivity entity) { if (Objects.isNull(entity.getId()) || Objects.isNull(dao.selectById(entity.getId()))) { dao.insert(entity); - if (CollUtil.isNotEmpty(entity.getItemList())) { - entity.getItemList().forEach(item -> { - item.setRafflePrizeActivityId(entity.getId()); - rafflePrizeActivityItemDao.insert(item); - }); - } } else { dao.updateById(entity); - if (CollUtil.isNotEmpty(entity.getItemList())) { - entity.getItemList().forEach(item -> { - item.setRafflePrizeActivityId(entity.getId()); - rafflePrizeActivityItemDao.updateById(item); - }); - } + } + if (CollUtil.isNotEmpty(entity.getInsertItemList())) { + entity.getInsertItemList().forEach(item -> { + item.setRafflePrizeActivityId(entity.getId()); + rafflePrizeActivityItemDao.insert(item); + }); + } + if (CollUtil.isNotEmpty(entity.getUpdateItemList())) { + entity.getUpdateItemList().forEach(item -> { + item.setRafflePrizeActivityId(entity.getId()); + rafflePrizeActivityItemDao.updateById(item); + }); + } + if (CollUtil.isNotEmpty(entity.getDeleteItemList())) { + rafflePrizeActivityItemDao.deleteBatchIds(entity.getDeleteItemList().stream().map(RafflePrizeActivityItem::getId).collect(Collectors.toList())); } return entity.getId(); }