Explorar o código

feat: 航次价格添加附加产品

luofeiyun hai 1 mes
pai
achega
bf8c83c132

+ 1 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/pricetemplate/vo/PriceTemplateRespVO.java

@@ -64,6 +64,7 @@ public class PriceTemplateRespVO {
     @Schema(description = "区域加价设置")
     private List<PriceAreaRespVO> areaList;
 
+    @Schema(description = "附加产品设置")
     private List<PriceSpuRespVO> spuList;
 
 }

+ 11 - 5
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/pricevoyage/PriceVoyageController.java

@@ -8,11 +8,7 @@ import com.yc.ship.framework.common.util.collection.CollectionUtils;
 import com.yc.ship.framework.common.util.collection.MapUtils;
 import com.yc.ship.framework.common.util.object.BeanUtils;
 import com.yc.ship.framework.excel.core.util.ExcelUtils;
-import com.yc.ship.module.product.controller.admin.pricetemplate.vo.PriceAreaRespVO;
-import com.yc.ship.module.product.controller.admin.pricetemplate.vo.PriceCountryRespVO;
-import com.yc.ship.module.product.controller.admin.pricetemplate.vo.PriceFloorRespVO;
-import com.yc.ship.module.product.controller.admin.pricetemplate.vo.PriceRoomModelRespVO;
-import com.yc.ship.module.product.controller.admin.pricetemplate.vo.PriceSingleSettingRespVO;
+import com.yc.ship.module.product.controller.admin.pricetemplate.vo.*;
 import com.yc.ship.module.product.controller.admin.pricevoyage.vo.PriceVoyagePageReqVO;
 import com.yc.ship.module.product.controller.admin.pricevoyage.vo.PriceVoyageRespVO;
 import com.yc.ship.module.product.controller.admin.pricevoyage.vo.PriceVoyageSaveReqVO;
@@ -27,6 +23,7 @@ import com.yc.ship.module.product.service.pricearea.PriceAreaService;
 import com.yc.ship.module.product.service.pricefloor.PriceFloorService;
 import com.yc.ship.module.product.service.priceroommodel.PriceRoomModelService;
 import com.yc.ship.module.product.service.pricesinglesetting.PriceSingleSettingService;
+import com.yc.ship.module.product.service.pricespu.PriceSpuService;
 import com.yc.ship.module.product.service.pricevoyage.PriceVoyageService;
 import com.yc.ship.module.product.service.voyage.VoyageService;
 import com.yc.ship.module.resource.api.route.RouteApi;
@@ -75,6 +72,9 @@ public class PriceVoyageController {
     @Resource
     private PriceAreaService priceAreaService;
 
+    @Resource
+    private PriceSpuService priceSpuService;
+
     @Resource
     private ShipApi shipApi;
 
@@ -121,6 +121,9 @@ public class PriceVoyageController {
         respVO.setFloorList(BeanUtils.toBean(floorDOList, PriceFloorRespVO.class));
         List<PriceAreaDO> areaList = priceAreaService.getListByObjectId(id);
         respVO.setAreaList(BeanUtils.toBean(areaList, PriceAreaRespVO.class));
+        //附加产品
+        List<PriceSpuRespVO> spuList = priceSpuService.getListByObjectId(id);
+        respVO.setSpuList(spuList);
         return success(respVO);
     }
 
@@ -143,6 +146,9 @@ public class PriceVoyageController {
         respVO.setAreaList(BeanUtils.toBean(areaList, PriceAreaRespVO.class));
         List<PriceCountryRespVO> countryList = priceAreaService.getCountryPriceByObjectId(id);
         respVO.setCountryList(countryList);
+        //附加产品
+        List<PriceSpuRespVO> spuList = priceSpuService.getListByObjectId(id);
+        respVO.setSpuList(spuList);
         return success(respVO);
     }
 

+ 4 - 5
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/pricevoyage/vo/PriceVoyageRespVO.java

@@ -4,11 +4,7 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.yc.ship.framework.excel.core.annotations.DictFormat;
 import com.yc.ship.framework.excel.core.convert.DictConvert;
-import com.yc.ship.module.product.controller.admin.pricetemplate.vo.PriceAreaRespVO;
-import com.yc.ship.module.product.controller.admin.pricetemplate.vo.PriceCountryRespVO;
-import com.yc.ship.module.product.controller.admin.pricetemplate.vo.PriceFloorRespVO;
-import com.yc.ship.module.product.controller.admin.pricetemplate.vo.PriceRoomModelRespVO;
-import com.yc.ship.module.product.controller.admin.pricetemplate.vo.PriceSingleSettingRespVO;
+import com.yc.ship.module.product.controller.admin.pricetemplate.vo.*;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -88,4 +84,7 @@ public class PriceVoyageRespVO {
     @Schema(description = "国家价格")
     private List<PriceCountryRespVO> countryList;
 
+    @Schema(description = "附加产品设置")
+    private List<PriceSpuRespVO> spuList;
+
 }

+ 4 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/pricevoyage/vo/PriceVoyageSaveReqVO.java

@@ -4,6 +4,7 @@ import com.yc.ship.module.product.dal.dataobject.pricearea.PriceAreaDO;
 import com.yc.ship.module.product.dal.dataobject.pricefloor.PriceFloorDO;
 import com.yc.ship.module.product.dal.dataobject.priceroommodel.PriceRoomModelDO;
 import com.yc.ship.module.product.dal.dataobject.pricesinglesetting.PriceSingleSettingDO;
+import com.yc.ship.module.product.dal.dataobject.pricespu.PriceSpuDO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -55,4 +56,7 @@ public class PriceVoyageSaveReqVO {
     @Schema(description = "区域价格")
     private List<PriceAreaDO> areaList;
 
+    @Schema(description = "附加产品设置")
+    private List<PriceSpuDO> spuList;
+
 }

+ 16 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/pricevoyage/PriceVoyageServiceImpl.java

@@ -1,6 +1,7 @@
 package com.yc.ship.module.product.service.pricevoyage;
 
 import com.yc.ship.framework.common.pojo.PageResult;
+import com.yc.ship.framework.common.util.collection.CollectionUtils;
 import com.yc.ship.framework.common.util.object.BeanUtils;
 import com.yc.ship.module.product.controller.admin.pricevoyage.vo.PriceVoyagePageReqVO;
 import com.yc.ship.module.product.controller.admin.pricevoyage.vo.PriceVoyageSaveReqVO;
@@ -8,11 +9,13 @@ import com.yc.ship.module.product.dal.dataobject.pricearea.PriceAreaDO;
 import com.yc.ship.module.product.dal.dataobject.pricefloor.PriceFloorDO;
 import com.yc.ship.module.product.dal.dataobject.priceroommodel.PriceRoomModelDO;
 import com.yc.ship.module.product.dal.dataobject.pricesinglesetting.PriceSingleSettingDO;
+import com.yc.ship.module.product.dal.dataobject.pricespu.PriceSpuDO;
 import com.yc.ship.module.product.dal.dataobject.pricevoyage.PriceVoyageDO;
 import com.yc.ship.module.product.dal.mysql.pricearea.PriceAreaMapper;
 import com.yc.ship.module.product.dal.mysql.pricefloor.PriceFloorMapper;
 import com.yc.ship.module.product.dal.mysql.priceroommodel.PriceRoomModelMapper;
 import com.yc.ship.module.product.dal.mysql.pricesinglesetting.PriceSingleSettingMapper;
+import com.yc.ship.module.product.dal.mysql.pricespu.PriceSpuMapper;
 import com.yc.ship.module.product.dal.mysql.pricevoyage.PriceVoyageMapper;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -49,6 +52,9 @@ public class PriceVoyageServiceImpl implements PriceVoyageService {
     @Resource
     private PriceAreaMapper priceAreaMapper;
 
+    @Resource
+    private PriceSpuMapper priceSpuMapper;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Long createPriceVoyage(PriceVoyageSaveReqVO createReqVO) {
@@ -144,6 +150,15 @@ public class PriceVoyageServiceImpl implements PriceVoyageService {
             }
         });
         priceAreaMapper.insertBatch(insertAreaList);
+
+        // 插入附加产品
+        List<PriceSpuDO> spuList = vo.getSpuList();
+        if(!CollectionUtils.isAnyEmpty(spuList)) {
+            spuList.stream().forEach(spu -> {
+                spu.setObjectId(objectId);
+            });
+            priceSpuMapper.insertBatch(spuList);
+        }
     }
 
     private void deleteRelation(Long objectId) {
@@ -151,6 +166,7 @@ public class PriceVoyageServiceImpl implements PriceVoyageService {
         priceFloorMapper.deleteByObjectId(objectId);
         priceSingleSettingMapper.deleteByObjectId(objectId);
         priceAreaMapper.deleteByObjectId(objectId);
+        priceSpuMapper.deleteByObjectId(objectId);
     }
 
 }

+ 6 - 1
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeServiceImpl.java

@@ -63,10 +63,15 @@ public class VoyageStockDistributeServiceImpl implements VoyageStockDistributeSe
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void createVoyageStockDistribute(List<VoyageStockDistributeSaveReqVO> createReqVO) {
+        Long voyageId = createReqVO.get(0).getVoyageId();
+        VoyageDO voyage = voyageService.getVoyage(voyageId);
+        Long shipId = voyage.getShipId();
+        createReqVO.stream().forEach(item -> {
+            item.setShipId(shipId);
+        });
         // 插入库存设置日志表
         List<VoyageStockDistributeLogDO> logList = BeanUtils.toBean(createReqVO, VoyageStockDistributeLogDO.class);
         voyageStockDistributeLogMapper.insertBatch(logList);
-        Long voyageId = logList.get(0).getVoyageId();
 
         //修改或插入库存表
         List<VoyageStockDistributeDO> list = voyageStockDistributeMapper.selectListByVoyageId(voyageId);