소스 검색

fix:价格模板优化,每个房型的楼层可以设置不同加价,每个区域的国籍可以设置不同的加价

luofeiyun 1 개월 전
부모
커밋
1ca4b381e6

+ 7 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/pricearea/vo/PriceAreaRespVO.java

@@ -25,6 +25,13 @@ public class PriceAreaRespVO {
     @ExcelProperty("区域名称")
     private String areaName;
 
+    @Schema(description = "父级区域ID", example = "25276")
+    @ExcelProperty("父级区域ID")
+    private Long parentAreaID;
+
+    @Schema(description = "父级区域名称", example = "张三")
+    private String parentAreaName;
+
     @Schema(description = "价格", example = "10043")
     @ExcelProperty("价格")
     private BigDecimal price;

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

@@ -13,6 +13,13 @@ import java.time.LocalDateTime;
 @ExcelIgnoreUnannotated
 public class PriceFloorRespVO {
 
+    @Schema(description = "房型ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27102")
+    @ExcelProperty("房型ID")
+    private Long roomModelId;
+
+    @Schema(description = "房型名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
+    @ExcelProperty("房型名称")
+    private String roomModelName;
     @Schema(description = "楼层")
     @ExcelProperty("楼层")
     private Integer floor;

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

@@ -21,6 +21,10 @@ public class PriceRoomModelRespVO {
     @ExcelProperty("房型名称(暂不使用)")
     private String roomModelName;
 
+    @Schema(description = "成本价", example = "31837")
+    @ExcelProperty("成本价")
+    private BigDecimal costPrice;
+
     @Schema(description = "价格", example = "31837")
     @ExcelProperty("价格")
     private BigDecimal price;

+ 15 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/dataobject/pricearea/PriceAreaDO.java

@@ -41,9 +41,24 @@ public class PriceAreaDO extends TenantBaseDO {
      * 区域名称
      */
     private String areaName;
+
+    /**
+     * 父级区域ID
+     */
+    private Long parentAreaId;
+    /**
+     * 父级区域名称
+     */
+    private String parentAreaName;
     /**
      * 价格
      */
     private BigDecimal price;
 
+    /**
+     * 子级区域
+     */
+    @TableField(exist = false)
+    private List<PriceAreaDO> children;
+
 }

+ 9 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/dataobject/pricefloor/PriceFloorDO.java

@@ -33,6 +33,15 @@ public class PriceFloorDO extends TenantBaseDO {
      * 价格模板ID或者船票价格ID
      */
     private Long objectId;
+
+    /**
+     * 房型ID
+     */
+    private Long roomModelId;
+    /**
+     * 房型名称
+     */
+    private String roomModelName;
     /**
      * 楼层
      */

+ 4 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/dataobject/priceroommodel/PriceRoomModelDO.java

@@ -41,6 +41,10 @@ public class PriceRoomModelDO extends TenantBaseDO {
      * 房型名称(暂不使用)
      */
     private String roomModelName;
+    /**
+     * 成本价
+     */
+    private BigDecimal costPrice;
     /**
      * 价格
      */

+ 13 - 1
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/pricetemplate/PriceTemplateServiceImpl.java

@@ -20,6 +20,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
 
 import static com.yc.ship.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -126,10 +127,21 @@ public class PriceTemplateServiceImpl implements PriceTemplateService {
 
         //插入区域加价
         List<PriceAreaDO> areaList = vo.getAreaList();
+        List<PriceAreaDO> insertAreaList = new ArrayList<>();
         areaList.stream().forEach(area -> {
             area.setObjectId(objectId);
+            insertAreaList.add(area);
+            List<PriceAreaDO> children = area.getChildren();
+            if (children != null) {
+                children.stream().forEach(child -> {
+                    child.setObjectId(objectId);
+                    child.setParentAreaId(area.getAreaId());
+                    child.setParentAreaName(area.getAreaName());
+                    insertAreaList.add(child);
+                });
+            }
         });
-        priceAreaMapper.insertBatch(areaList);
+        priceAreaMapper.insertBatch(insertAreaList);
 
     }