Bläddra i källkod

fix: 删除航次时,删除与航次相关的数据

luofeiyun 1 månad sedan
förälder
incheckning
d0714e5279

+ 4 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/pricevoyage/PriceVoyageMapper.java

@@ -33,4 +33,8 @@ public interface PriceVoyageMapper extends BaseMapperX<PriceVoyageDO> {
     default PriceVoyageDO selectByVoyageId(Long voyageId) {
         return selectOne(PriceVoyageDO::getVoyageId, voyageId);
     }
+
+    default void deleteByVoyageId(Long voyageId) {
+        delete(PriceVoyageDO::getVoyageId, voyageId);
+    }
 }

+ 3 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/voyagestock/VoyageStockMapper.java

@@ -24,4 +24,7 @@ public interface VoyageStockMapper extends BaseMapperX<VoyageStockDO> {
                 .orderByDesc(VoyageStockDO::getVoyageId));
     }
 
+    default void deleteByVoyageId(Long id) {
+        delete(new LambdaQueryWrapperX<VoyageStockDO>().eq(VoyageStockDO::getVoyageId, id));
+    }
 }

+ 5 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/voyagestockdistribute/VoyageStockDistributeMapper.java

@@ -41,4 +41,9 @@ public interface VoyageStockDistributeMapper extends BaseMapperX<VoyageStockDist
 
     @Select("select room_model_id,floor,sum(num) num from product_voyage_stock_distribute where voyage_id = #{voyageId} and deleted = 0 and distributor_id is null and store_id is null GROUP BY room_model_id,floor")
     List<VoyageStockDistributeTotalRespVO.TotalGroupByRoomModelFloorVO> selectListGroupByRoomModelFloor(Long voyageId);
+
+    default void deleteByVoyageId(Long getVoyageId) {
+        delete(new LambdaQueryWrapperX<VoyageStockDistributeDO>()
+                .eq(VoyageStockDistributeDO::getVoyageId, getVoyageId));
+    }
 }

+ 20 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyage/VoyageServiceImpl.java

@@ -11,9 +11,11 @@ import com.yc.ship.module.product.controller.admin.voyage.vo.*;
 import com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO;
 import com.yc.ship.module.product.dal.dataobject.voyagestock.VoyageStockDO;
 import com.yc.ship.module.product.dal.dataobject.voyagestockdetail.VoyageStockDetailDO;
+import com.yc.ship.module.product.dal.mysql.pricevoyage.PriceVoyageMapper;
 import com.yc.ship.module.product.dal.mysql.voyage.VoyageMapper;
 import com.yc.ship.module.product.dal.mysql.voyagestock.VoyageStockMapper;
 import com.yc.ship.module.product.dal.mysql.voyagestockdetail.VoyageStockDetailMapper;
+import com.yc.ship.module.product.dal.mysql.voyagestockdistribute.VoyageStockDistributeMapper;
 import com.yc.ship.module.product.enums.YesOrNoEnum;
 import com.yc.ship.module.product.utils.VoyageUUCodeUtils;
 import com.yc.ship.module.resource.api.ship.ShipApi;
@@ -55,6 +57,12 @@ public class VoyageServiceImpl implements VoyageService {
     @Resource
     private VoyageStockDetailMapper voyageStockDetailMapper;
 
+    @Resource
+    private PriceVoyageMapper priceVoyageMapper;
+
+    @Resource
+    private VoyageStockDistributeMapper voyageStockDistributeMapper;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Long createVoyage(VoyageSaveReqVO createReqVO) {
@@ -180,12 +188,24 @@ public class VoyageServiceImpl implements VoyageService {
         voyageStockDetailMapper.insertBatch(stockDetailDOS);
     }
 
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public void deleteVoyage(Long id) {
         // 校验存在
         validateVoyageExists(id);
         // 删除
         voyageMapper.deleteById(id);
+
+        //删除库存
+        voyageStockMapper.deleteByVoyageId(id);
+
+        //删除库存详情
+        voyageStockDetailMapper.deleteByVoyageId(id);
+        //删除航次价格
+        priceVoyageMapper.deleteByVoyageId(id);
+
+        //删除航次分销商库存
+        voyageStockDistributeMapper.deleteByVoyageId(id);
     }
 
     private void validateVoyageExists(Long id) {