diff --git a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/dto/ProdAdditionalFeeDatesDO.java b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/dto/ProdAdditionalFeeDatesDO.java index 6b3ab70..a66391c 100644 --- a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/dto/ProdAdditionalFeeDatesDO.java +++ b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/dto/ProdAdditionalFeeDatesDO.java @@ -71,5 +71,7 @@ public class ProdAdditionalFeeDatesDO extends BaseDO { * 是否启用该规则是否启用该规则0关1开 */ private Integer isEnabled; - + public boolean isEmpty() { + return id == null ; + } } \ No newline at end of file diff --git a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/dto/ProdAdditionalFeePeriodsDO.java b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/dto/ProdAdditionalFeePeriodsDO.java index a657bd5..0c31709 100644 --- a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/dto/ProdAdditionalFeePeriodsDO.java +++ b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/dto/ProdAdditionalFeePeriodsDO.java @@ -56,5 +56,7 @@ public class ProdAdditionalFeePeriodsDO extends BaseDO { * 浮动百分比 */ private BigDecimal floatingPercentage; - + public boolean isEmpty() { + return id == null ; + } } \ No newline at end of file diff --git a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/dto/ProdEmergencyResponseIntervalsDO.java b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/dto/ProdEmergencyResponseIntervalsDO.java index af57496..f5d0d03 100644 --- a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/dto/ProdEmergencyResponseIntervalsDO.java +++ b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/dto/ProdEmergencyResponseIntervalsDO.java @@ -58,4 +58,8 @@ public class ProdEmergencyResponseIntervalsDO extends BaseDO { */ private BigDecimal price; + + public boolean isEmpty() { + return id == null; + } } \ No newline at end of file diff --git a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/dto/ProdExtendDO.java b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/dto/ProdExtendDO.java index d41b785..df8fca3 100644 --- a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/dto/ProdExtendDO.java +++ b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/dto/ProdExtendDO.java @@ -41,4 +41,9 @@ public class ProdExtendDO { */ private Integer isDisable; + /** + * 体重是否收费0否1是 + */ + private Integer isWeightCharge; + } \ No newline at end of file diff --git a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prod/ProdServiceInfoVO.java b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prod/ProdServiceInfoVO.java new file mode 100644 index 0000000..be0f3cb --- /dev/null +++ b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prod/ProdServiceInfoVO.java @@ -0,0 +1,80 @@ +package com.tashow.cloud.productapi.api.product.vo.prod; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.tashow.cloud.productapi.api.product.dto.ProdAdditionalFeeDatesDO; +import com.tashow.cloud.productapi.api.product.dto.ProdAdditionalFeePeriodsDO; +import com.tashow.cloud.productapi.api.product.dto.ProdWeightRangePricesDO; +import com.tashow.cloud.productapi.api.product.dto.ProductOrderLimitDO; +import com.tashow.cloud.productapi.api.product.vo.prodemergencyresponse.ProdEmergencyInfoVO; +import com.tashow.cloud.productapi.api.product.vo.prodreservationconfig.ProdReservationInfoVO; +import com.tashow.cloud.productapi.api.product.vo.prodserviceareas.ProdServiceAreasInfoVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +@Schema(description = "商品服务配置 VO") +@Data +public class ProdServiceInfoVO { + + @Schema(description = "产品ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "6943") + private Long prodId; + + @Schema(description = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + + @Schema(description = "修改时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateTime; + + @Schema(description = "新建人") + private String creator; + + @Schema(description = "修改人") + private String updater; + + @Schema(description = "分类名称") + private String categoryName; + + @Schema(description = "是否开启服务区域配置0关1开") + private Integer regionSwitch; + @Schema(description = "服务区域配置") + public ProdServiceAreasInfoVO prodServiceAreasInfo; + + + @Schema(description = "是否预约0关1开") + private Integer reservationSwitch; + @Schema(description = "预约配置") + public ProdReservationInfoVO prodReservationConfig; + + @Schema(description = "是否紧急响应服务0关1开") + private Integer emergencySwitch; + @Schema(description = "急响应服务配置") + public ProdEmergencyInfoVO prodEmergencyInfoVO; + + @Schema(description = "是否接单上线0关1开") + private Integer orderLimitSwitch; + @Schema(description = "接单上线配置") + public ProductOrderLimitDO productOrderLimitVO; + + + @Schema(description = "是否特殊时段0关1开") + private Integer additionalSwitch; + @Schema(description = "特殊时段规则配置") + public List prodAdditionalFeeDatesList; + + @Schema(description = "是否特殊日期(节假日周末什么的)0关1开") + private Integer additionalFeeSwitch; + @Schema(description = "特殊日期规则配置") + public List prodAdditionalFeePeriodsList; + + + @Schema(description = "是否开启体重配置0关1开") + private Integer weightSwitch; + @Schema(description = "体重配置") + public List prodWeightConfig; + +} \ No newline at end of file diff --git a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prod/ProdServiceVO.java b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prod/ProdServiceVO.java index 1694f0c..79f6c5f 100644 --- a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prod/ProdServiceVO.java +++ b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prod/ProdServiceVO.java @@ -5,11 +5,13 @@ import com.tashow.cloud.productapi.api.product.vo.prodemergencyresponse.ProdEmer import com.tashow.cloud.productapi.api.product.vo.prodreservationconfig.ProdReservationInfoVO; import com.tashow.cloud.productapi.api.product.vo.prodserviceareas.ProdServiceAreasInfoVO; import com.tashow.cloud.productapi.api.product.dto.*; +import com.tashow.cloud.productapi.api.product.vo.prodweightrangeprices.ProdWeightRangePricesSaveInfoVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; @Schema(description = "商品服务配置 VO") @Data @@ -71,6 +73,31 @@ public class ProdServiceVO { @Schema(description = "是否开启体重配置0关1开") private Integer weightSwitch; @Schema(description = "体重配置") - public ProdWeightRangePricesDO prodWeightConfig; + public ProdWeightRangePricesSaveInfoVO prodWeightConfig; + public List getProdAdditionalFeeDatesList() { + if (prodAdditionalFeeDatesList == null) { + return null; // 或者 return Collections.emptyList(); 根据你希望 null 还是 []d + } + return prodAdditionalFeeDatesList.stream() + .filter(black -> black != null && !black.isEmpty()) + .collect(Collectors.toList()); + } + + public void setProdAdditionalFeeDatesList(List prodAdditionalFeeDatesList) { + this.prodAdditionalFeeDatesList = prodAdditionalFeeDatesList; + } + + public List getProdAdditionalFeePeriodsList() { + if (prodAdditionalFeePeriodsList == null) { + return null; // 或者 return Collections.emptyList(); 根据你希望 null 还是 []d + } + return prodAdditionalFeePeriodsList.stream() + .filter(black -> black != null && !black.isEmpty()) + .collect(Collectors.toList()); + } + + public void setProdAdditionalFeePeriodsList(List prodAdditionalFeePeriodsList) { + this.prodAdditionalFeePeriodsList = prodAdditionalFeePeriodsList; + } } \ No newline at end of file diff --git a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prodadditionalfeedates/ProdAdditionalFeeBlackVO.java b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prodadditionalfeedates/ProdAdditionalFeeBlackVO.java index 895e455..e693bc9 100644 --- a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prodadditionalfeedates/ProdAdditionalFeeBlackVO.java +++ b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prodadditionalfeedates/ProdAdditionalFeeBlackVO.java @@ -36,6 +36,7 @@ public class ProdAdditionalFeeBlackVO { @Schema(description = "是否启用该规则是否启用该规则0关1开", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("是否启用该规则是否启用该规则0关1开") private Integer isEnabled; - - + public boolean isEmpty() { + return id == null ; + } } \ No newline at end of file diff --git a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prodemergencyresponse/ProdEmergencyInfoVO.java b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prodemergencyresponse/ProdEmergencyInfoVO.java index 4e8a520..bd65f5c 100644 --- a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prodemergencyresponse/ProdEmergencyInfoVO.java +++ b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prodemergencyresponse/ProdEmergencyInfoVO.java @@ -9,6 +9,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.util.List; +import java.util.stream.Collectors; @Schema(description = "管理后台 - 商品紧急响应服务设置 Response VO") @Data @@ -35,4 +36,31 @@ public class ProdEmergencyInfoVO { @Schema(description = "紧急响应黑名单日期设置") public List prodEmergencyResponseBlackList; + + public List getProdEmergencyResponseIntervalsList() { + if (prodEmergencyResponseIntervalsList == null) { + return null; // 或者 return Collections.emptyList(); 根据你希望 null 还是 [] + } + return prodEmergencyResponseIntervalsList.stream() + .filter(black -> black != null && !black.isEmpty()) + .collect(Collectors.toList()); + } + + public void setProdEmergencyResponseIntervalsList(List prodEmergencyResponseIntervalsList) { + this.prodEmergencyResponseIntervalsList = prodEmergencyResponseIntervalsList; + } + + // getter 中做转换 + public List getProdEmergencyResponseBlackList() { + if (prodEmergencyResponseBlackList == null) { + return null; // 或者 return Collections.emptyList(); 根据你希望 null 还是 [] + } + return prodEmergencyResponseBlackList.stream() + .filter(black -> black != null && !black.isEmpty()) + .collect(Collectors.toList()); + } + + public void setProdEmergencyResponseBlackList(List prodEmergencyResponseBlackList) { + this.prodEmergencyResponseBlackList = prodEmergencyResponseBlackList; + } } \ No newline at end of file diff --git a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prodreservationconfig/ProdReservationInfoReqVO.java b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prodreservationconfig/ProdReservationInfoReqVO.java new file mode 100644 index 0000000..e8b1088 --- /dev/null +++ b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prodreservationconfig/ProdReservationInfoReqVO.java @@ -0,0 +1,84 @@ +package com.tashow.cloud.productapi.api.product.vo.prodreservationconfig; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.tashow.cloud.productapi.api.product.vo.prodadditionalfeedates.ProdAdditionalFeeBlackVO; +import com.tashow.cloud.productapi.general.StringListTypeHandler; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +@Schema(description = "管理后台 - 商品紧急响应服务设置 Response VO") +@Data +@ExcelIgnoreUnannotated +public class ProdReservationInfoReqVO { + + /** + * 预约配置的唯一标识符 + */ + @TableId + private Long id; + /** + * 关联的商品ID + */ + private Long prodId; + /** + * 预约时段设置 + */ + @TableField(typeHandler = StringListTypeHandler.class) + private List reservationTimeSlots; + /** + * 需提前多少小时预约 + */ + private Integer advanceHours; + /** + * 预约日期范围 7天 10天 15天 30天 + */ + private Integer reservationDateRange; + /** + * 是否允许更改预约时间 1可以 0不可以 + */ + private Integer allowChange; + + /** + * 时间段 + */ + private Integer timeSlot; + + /** + * 更改预约时间的时间规则(如服务开始前1小时可更改) + */ + private Integer changeTimeRule; + /** + * 允许更改预约时间的最大次数 + */ + private Integer maxChangeTimes; + + /** + * 预约时间区间设置 + */ + @TableField(exist=false) + private TimeBookVO timeBook; + + public TimeBookVO getTimeBook() { + if (this.timeBook == null) { + this.timeBook = new TimeBookVO(); + this.timeBook.setTimeSlot(this.timeSlot); + this.timeBook.setReservationTimeSlots(this.reservationTimeSlots); + } + return this.timeBook; + } + + public void setTimeBook(TimeBookVO timeBook) { + this.timeBook = timeBook; + } + + @Schema(description = "预约黑名单日期设置") + public List prodReservationBlackList = new ArrayList<>(); + +} \ No newline at end of file diff --git a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prodreservationconfig/ProdReservationInfoVO.java b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prodreservationconfig/ProdReservationInfoVO.java index 60caeb9..1678847 100644 --- a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prodreservationconfig/ProdReservationInfoVO.java +++ b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prodreservationconfig/ProdReservationInfoVO.java @@ -10,6 +10,8 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; @Schema(description = "管理后台 - 商品紧急响应服务设置 Response VO") @Data @@ -78,4 +80,19 @@ public class ProdReservationInfoVO { @Schema(description = "预约黑名单日期设置") public List prodReservationBlackList; + + public List getProdReservationBlackList() { + if (prodReservationBlackList == null || prodReservationBlackList.isEmpty()) { + return prodReservationBlackList; + } + return prodReservationBlackList.stream() + .filter(Objects::nonNull) + .filter(black -> !black.isEmpty()) + .collect(Collectors.toList()); + } + + public void setProdReservationBlackList(List prodReservationBlackList) { + this.prodReservationBlackList = prodReservationBlackList; + } + } \ No newline at end of file diff --git a/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prodweightrangeprices/ProdWeightRangePricesSaveInfoVO.java b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prodweightrangeprices/ProdWeightRangePricesSaveInfoVO.java new file mode 100644 index 0000000..5c6766e --- /dev/null +++ b/tashow-feign/tashow-product-api/src/main/java/com/tashow/cloud/productapi/api/product/vo/prodweightrangeprices/ProdWeightRangePricesSaveInfoVO.java @@ -0,0 +1,23 @@ +package com.tashow.cloud.productapi.api.product.vo.prodweightrangeprices; + +import com.tashow.cloud.productapi.api.product.dto.ProdWeightRangePricesDO; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +@Schema(description = "管理后台 - 体重区间价格新增/修改 Request VO") +@Data +public class ProdWeightRangePricesSaveInfoVO { + + @Schema(description = "体重是否收费0否1是") + private Integer isWeightCharge; + + @Schema(description = "体重配置") + public List prodWeightConfigList; + + +} \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdWeightRangePricesMapper.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdWeightRangePricesMapper.java index a941bf3..efec471 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdWeightRangePricesMapper.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/mapper/ProdWeightRangePricesMapper.java @@ -7,6 +7,7 @@ import com.tashow.cloud.mybatis.mybatis.core.query.LambdaQueryWrapperX; import com.tashow.cloud.mybatis.mybatis.core.mapper.BaseMapperX; import com.tashow.cloud.productapi.api.product.dto.ProdWeightRangePricesDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 体重区间价格 Mapper @@ -17,4 +18,8 @@ import org.apache.ibatis.annotations.Mapper; public interface ProdWeightRangePricesMapper extends BaseMapperX { + /** + * 删除关联 + */ + public int deleteWeightRangePrices(@Param("prodId")Long prodId); } \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdServiceImpl.java b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdServiceImpl.java index 571a87a..a49d82e 100644 --- a/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdServiceImpl.java +++ b/tashow-module/tashow-module-product/src/main/java/com/tashow/cloud/product/service/impl/ProdServiceImpl.java @@ -167,12 +167,12 @@ public class ProdServiceImpl implements ProdService { } } //体重设置 - if (Objects.equals(prodServiceVO.getWeightSwitch(), BaseEnum.YES_ONE.getKey())) { + /* if (Objects.equals(prodServiceVO.getWeightSwitch(), BaseEnum.YES_ONE.getKey())) { prodDO.setWeightSwitch(BaseEnum.YES_ONE.getKey()); ProdWeightRangePricesDO prodWeightRangePrices = prodServiceVO.prodWeightConfig; prodWeightRangePrices.setProdId(prodDO.getProdId()); prodWeightRangePricesMapper.insert(prodWeightRangePrices); - } + }*/ prodMapper.updateById(prodDO); } @@ -243,7 +243,7 @@ public class ProdServiceImpl implements ProdService { prodReservationConfigDO.setTimeBook(prodServiceVO.getProdReservationConfig().getTimeBook()); prodReservationConfigDO.setReservationTimeSlots(prodServiceVO.getProdReservationConfig().getReservationTimeSlots()); prodReservationConfigMapper.insert(prodReservationConfigDO); - if(prodServiceVO.getProdReservationConfig().getProdReservationBlackList()!=null){ + if (prodServiceVO.getProdReservationConfig().getProdReservationBlackList() != null) { for (ProdAdditionalFeeBlackVO prodAdditionalFeeBlackVO : prodServiceVO.getProdReservationConfig().getProdReservationBlackList()) { ProdAdditionalFeeDatesDO prodAdditionalFeeDatesDO = BeanUtils.toBean(prodAdditionalFeeBlackVO, ProdAdditionalFeeDatesDO.class); prodAdditionalFeeDatesDO.setProdId(prod.getProdId()); @@ -257,8 +257,8 @@ public class ProdServiceImpl implements ProdService { prodReservationConfigDO.setReservationTimeSlots(prodServiceVO.getProdReservationConfig().getReservationTimeSlots()); prodReservationConfigMapper.updateById(prodReservationConfigDO); //先删除在新增 - prodAdditionalFeeDatesMapper.deleteAdditionalFeeDates(prod.getProdId(),2); - if(prodServiceVO.getProdReservationConfig().getProdReservationBlackList()!=null){ + prodAdditionalFeeDatesMapper.deleteAdditionalFeeDates(prod.getProdId(), 2); + if (prodServiceVO.getProdReservationConfig().getProdReservationBlackList() != null) { for (ProdAdditionalFeeBlackVO prodAdditionalFeeBlackVO : prodServiceVO.getProdReservationConfig().getProdReservationBlackList()) { ProdAdditionalFeeDatesDO prodAdditionalFeeDatesDO = BeanUtils.toBean(prodAdditionalFeeBlackVO, ProdAdditionalFeeDatesDO.class); prodAdditionalFeeDatesDO.setProdId(prod.getProdId()); @@ -278,14 +278,14 @@ public class ProdServiceImpl implements ProdService { ProdEmergencyResponseDO prodEmergencyResponse = BeanUtils.toBean(prodServiceVO.getProdEmergencyInfoVO(), ProdEmergencyResponseDO.class); prodEmergencyResponse.setProdId(prod.getProdId()); prodEmergencyResponseMapper.insert(prodEmergencyResponse); - if(prodServiceVO.getProdEmergencyInfoVO().getProdEmergencyResponseIntervalsList()!=null){ + if (prodServiceVO.getProdEmergencyInfoVO().getProdEmergencyResponseIntervalsList() != null) { for (ProdEmergencyResponseIntervalsDO prodEmergencyResponseIntervals : prodServiceVO.getProdEmergencyInfoVO().getProdEmergencyResponseIntervalsList()) { prodEmergencyResponseIntervals.setConfigId(prodEmergencyResponse.getId()); prodEmergencyResponseIntervals.setProdId(prod.getProdId()); prodEmergencyResponseIntervalsMapper.insert(prodEmergencyResponseIntervals); } } - if(prodServiceVO.getProdEmergencyInfoVO().getProdEmergencyResponseBlackList()!=null){ + if (prodServiceVO.getProdEmergencyInfoVO().getProdEmergencyResponseBlackList() != null) { for (ProdAdditionalFeeBlackVO prodAdditionalFeeBlackVO : prodServiceVO.getProdEmergencyInfoVO().getProdEmergencyResponseBlackList()) { ProdAdditionalFeeDatesDO prodAdditionalFeeDatesDO = BeanUtils.toBean(prodAdditionalFeeBlackVO, ProdAdditionalFeeDatesDO.class); prodAdditionalFeeDatesDO.setProdId(prod.getProdId()); @@ -298,7 +298,7 @@ public class ProdServiceImpl implements ProdService { if (prodEmergencyResponse != null) { prodEmergencyResponseMapper.updateById(prodEmergencyResponse); prodEmergencyResponseIntervalsMapper.deleteIntervals(prodEmergencyResponse.getId()); - if(prodServiceVO.getProdEmergencyInfoVO().getProdEmergencyResponseIntervalsList()!=null) { + if (prodServiceVO.getProdEmergencyInfoVO().getProdEmergencyResponseIntervalsList() != null) { for (ProdEmergencyResponseIntervalsDO prodEmergencyResponseIntervals : prodServiceVO.getProdEmergencyInfoVO().getProdEmergencyResponseIntervalsList()) { prodEmergencyResponseIntervals.setConfigId(prodEmergencyResponse.getId()); prodEmergencyResponseIntervals.setProdId(prod.getProdId()); @@ -306,8 +306,8 @@ public class ProdServiceImpl implements ProdService { } } //先删除在新增 - prodAdditionalFeeDatesMapper.deleteAdditionalFeeDates(prod.getProdId(),3); - if(prodServiceVO.getProdReservationConfig().getProdReservationBlackList()!=null){ + prodAdditionalFeeDatesMapper.deleteAdditionalFeeDates(prod.getProdId(), 3); + if (prodServiceVO.getProdReservationConfig().getProdReservationBlackList() != null) { for (ProdAdditionalFeeBlackVO prodAdditionalFeeBlackVO : prodServiceVO.getProdReservationConfig().getProdReservationBlackList()) { ProdAdditionalFeeDatesDO prodAdditionalFeeDatesDO = BeanUtils.toBean(prodAdditionalFeeBlackVO, ProdAdditionalFeeDatesDO.class); prodAdditionalFeeDatesDO.setProdId(prod.getProdId()); @@ -356,14 +356,25 @@ public class ProdServiceImpl implements ProdService { } //体重设置 if (Objects.equals(prodServiceVO.getWeightSwitch(), BaseEnum.YES_ONE.getKey())) { - if (prodServiceVO.getProdWeightConfig().getId() == null) { - prod.setWeightSwitch(BaseEnum.YES_ONE.getKey()); - ProdWeightRangePricesDO prodWeightRangePrices = prodServiceVO.getProdWeightConfig(); - prodWeightRangePrices.setProdId(prod.getProdId()); - prodWeightRangePricesMapper.insert(prodWeightRangePrices); - } else { - prodWeightRangePricesMapper.updateById(prodServiceVO.getProdWeightConfig()); + prod.setWeightSwitch(BaseEnum.YES_ONE.getKey()); + ProdExtendDO prodExtendDO =prodExtendMapper.selectOne(ProdExtendDO::getProdId, prod.getProdId()); + if(prodExtendDO!= null){ + prodExtendDO.setIsWeightCharge(prodServiceVO.getProdWeightConfig().getIsWeightCharge()); + prodExtendMapper.updateById(prodExtendDO); + }else { + prodExtendDO = new ProdExtendDO(); + prodExtendDO.setProdId(prod.getProdId()); + prodExtendDO.setIsWeightCharge(prodServiceVO.getProdWeightConfig().getIsWeightCharge()); + prodExtendMapper.insert(prodExtendDO); } + prodWeightRangePricesMapper.deleteWeightRangePrices(prod.getProdId()); + if (prodServiceVO.getProdWeightConfig().getProdWeightConfigList() != null){ + for (ProdWeightRangePricesDO prodWeightRangePricesDO : prodServiceVO.getProdWeightConfig().getProdWeightConfigList()) { + prodWeightRangePricesDO.setProdId(prod.getProdId()); + prodWeightRangePricesMapper.insert(prodWeightRangePricesDO); + } + } + } prodMapper.updateById(prod); } diff --git a/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdAdditionalFeeDatesMapper.xml b/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdAdditionalFeeDatesMapper.xml index 55464e2..595494e 100644 --- a/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdAdditionalFeeDatesMapper.xml +++ b/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdAdditionalFeeDatesMapper.xml @@ -10,6 +10,6 @@ --> - delete from tz_prod_additional_fee_dates where prod_id = #{configId} AND type = #{type} + delete from tz_prod_additional_fee_dates where prod_id = #{prodId} AND type = #{type} \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdMapper.xml b/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdMapper.xml index 388433f..8c9603b 100644 --- a/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdMapper.xml +++ b/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdMapper.xml @@ -89,17 +89,21 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -204,19 +208,23 @@ + + + + + + + + + + + + + + + + - - - - - - - - - - - - @@ -268,6 +276,7 @@ p.category_name, + erc.id AS erc_record_id, erc.response_time_slots as erc_response_time_slots, epafd.id AS erc_record_id, epafd.date_type as erc_date_type, @@ -340,6 +349,7 @@ + tpe.is_weight_charge as tpe_is_weight_charge, wrp.id AS wrp_record_id, wrp.prod_id AS wrp_prod_id, wrp.weight_range AS wrp_weight_range, @@ -377,6 +387,7 @@ LEFT JOIN tz_product_order_limit ol ON p.prod_id = ol.prod_id AND ol.deleted = 0 + LEFT JOIN tz_prod_extend tpe ON p.prod_id = tpe.prod_id LEFT JOIN tz_prod_weight_range_prices wrp ON p.prod_id = wrp.prod_id AND wrp.deleted = 0 @@ -405,6 +416,7 @@ p.region_switch, + erc.id AS erc_record_id, erc.response_time_slots as erc_response_time_slots, epafd.id AS erc_record_id, epafd.date_type as erc_date_type, @@ -477,6 +489,7 @@ + tpe.is_weight_charge as tpe_is_weight_charge, wrp.id AS wrp_record_id, wrp.prod_id AS wrp_prod_id, wrp.weight_range AS wrp_weight_range, @@ -506,6 +519,7 @@ LEFT JOIN tz_product_order_limit ol ON p.prod_id = ol.prod_id AND ol.deleted = 0 + LEFT JOIN tz_prod_extend tpe ON p.prod_id = tpe.prod_id LEFT JOIN tz_prod_weight_range_prices wrp ON p.prod_id = wrp.prod_id AND wrp.deleted = 0 where p.deleted = 0 diff --git a/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdReservationConfigMapper.xml b/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdReservationConfigMapper.xml index 6d7bd01..0ca09cf 100644 --- a/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdReservationConfigMapper.xml +++ b/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdReservationConfigMapper.xml @@ -9,6 +9,6 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> - delete from tz_prod_reservation_config where prod_id = #{configId} + delete from tz_prod_reservation_config where prod_id = #{prodId} \ No newline at end of file diff --git a/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdWeightRangePricesMapper.xml b/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdWeightRangePricesMapper.xml index 497aa0f..645da2c 100644 --- a/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdWeightRangePricesMapper.xml +++ b/tashow-module/tashow-module-product/src/main/resources/mapper/product/ProdWeightRangePricesMapper.xml @@ -8,5 +8,7 @@ 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> - + + delete from tz_prod_weight_range_prices where prod_id = #{prodId} + \ No newline at end of file