获取服务配置2

This commit is contained in:
xuelijun
2025-08-19 18:27:27 +08:00
parent a99402c6b0
commit a5f992c090
17 changed files with 353 additions and 48 deletions

View File

@@ -71,5 +71,7 @@ public class ProdAdditionalFeeDatesDO extends BaseDO {
* 是否启用该规则是否启用该规则0关1开
*/
private Integer isEnabled;
public boolean isEmpty() {
return id == null ;
}
}

View File

@@ -56,5 +56,7 @@ public class ProdAdditionalFeePeriodsDO extends BaseDO {
* 浮动百分比
*/
private BigDecimal floatingPercentage;
public boolean isEmpty() {
return id == null ;
}
}

View File

@@ -58,4 +58,8 @@ public class ProdEmergencyResponseIntervalsDO extends BaseDO {
*/
private BigDecimal price;
public boolean isEmpty() {
return id == null;
}
}

View File

@@ -41,4 +41,9 @@ public class ProdExtendDO {
*/
private Integer isDisable;
/**
* 体重是否收费0否1是
*/
private Integer isWeightCharge;
}

View File

@@ -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<ProdAdditionalFeeDatesDO> prodAdditionalFeeDatesList;
@Schema(description = "是否特殊日期节假日周末什么的0关1开")
private Integer additionalFeeSwitch;
@Schema(description = "特殊日期规则配置")
public List<ProdAdditionalFeePeriodsDO> prodAdditionalFeePeriodsList;
@Schema(description = "是否开启体重配置0关1开")
private Integer weightSwitch;
@Schema(description = "体重配置")
public List<ProdWeightRangePricesDO> prodWeightConfig;
}

View File

@@ -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<ProdAdditionalFeeDatesDO> 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<ProdAdditionalFeeDatesDO> prodAdditionalFeeDatesList) {
this.prodAdditionalFeeDatesList = prodAdditionalFeeDatesList;
}
public List<ProdAdditionalFeePeriodsDO> 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<ProdAdditionalFeePeriodsDO> prodAdditionalFeePeriodsList) {
this.prodAdditionalFeePeriodsList = prodAdditionalFeePeriodsList;
}
}

View File

@@ -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 ;
}
}

View File

@@ -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<ProdAdditionalFeeBlackVO> prodEmergencyResponseBlackList;
public List<ProdEmergencyResponseIntervalsDO> 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<ProdEmergencyResponseIntervalsDO> prodEmergencyResponseIntervalsList) {
this.prodEmergencyResponseIntervalsList = prodEmergencyResponseIntervalsList;
}
// getter 中做转换
public List<ProdAdditionalFeeBlackVO> 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<ProdAdditionalFeeBlackVO> prodEmergencyResponseBlackList) {
this.prodEmergencyResponseBlackList = prodEmergencyResponseBlackList;
}
}

View File

@@ -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<String> 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<ProdAdditionalFeeBlackVO> prodReservationBlackList = new ArrayList<>();
}

View File

@@ -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<ProdAdditionalFeeBlackVO> prodReservationBlackList;
public List<ProdAdditionalFeeBlackVO> 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<ProdAdditionalFeeBlackVO> prodReservationBlackList) {
this.prodReservationBlackList = prodReservationBlackList;
}
}

View File

@@ -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<ProdWeightRangePricesDO> prodWeightConfigList;
}