获取服务配置
This commit is contained in:
@@ -2,12 +2,14 @@ package com.tashow.cloud.productapi.api.product.dto;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||
import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO;
|
||||
import com.tashow.cloud.productapi.general.StringListTypeHandler;
|
||||
import lombok.*;
|
||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 特殊日期附加费用规则 DO
|
||||
@@ -42,13 +44,15 @@ public class ProdAdditionalFeeDatesDO extends BaseDO {
|
||||
*/
|
||||
private Integer dateType;
|
||||
/**
|
||||
* 自定义日期时间段(JSON格式存储)
|
||||
* 自定义日期时间段
|
||||
*/
|
||||
private String customTimeSlots;
|
||||
@TableField(typeHandler = StringListTypeHandler.class)
|
||||
private List<String> customTimeSlots;
|
||||
/**
|
||||
* 指定日期(JSON格式存储)
|
||||
* 指定日期
|
||||
*/
|
||||
private String specificDates;
|
||||
@TableField(typeHandler = StringListTypeHandler.class)
|
||||
private List<String> specificDates;
|
||||
/**
|
||||
* 收费方式0:''固定金额'':1:''基准价上浮
|
||||
*/
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
package com.tashow.cloud.productapi.api.product.dto;
|
||||
|
||||
import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO;
|
||||
import com.tashow.cloud.productapi.general.StringListTypeHandler;
|
||||
import lombok.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
@@ -37,9 +40,10 @@ public class ProdAdditionalFeePeriodsDO extends BaseDO {
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 特殊时段设置(JSON格式存储)
|
||||
* 特殊时段设置
|
||||
*/
|
||||
private String specialTimeSlots;
|
||||
@TableField(typeHandler = StringListTypeHandler.class)
|
||||
private List<String> specialTimeSlots;
|
||||
/**
|
||||
* 收费方式0:'固定金额',1:'基准价上浮'
|
||||
*/
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
package com.tashow.cloud.productapi.api.product.dto;
|
||||
|
||||
import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO;
|
||||
import com.tashow.cloud.productapi.general.StringListTypeHandler;
|
||||
import lombok.*;
|
||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 商品紧急响应服务设置 DO
|
||||
*
|
||||
@@ -31,17 +35,20 @@ public class ProdEmergencyResponseDO extends BaseDO {
|
||||
*/
|
||||
private Long prodId;
|
||||
/**
|
||||
* 可响应时间段(JSON格式存储)
|
||||
* 可响应时间段
|
||||
*/
|
||||
private String responseTimeSlots;
|
||||
@TableField(typeHandler = StringListTypeHandler.class)
|
||||
private List<String> responseTimeSlots;
|
||||
/**
|
||||
* 黑名自定义日期(JSON格式存储)
|
||||
* 黑名自定义日期
|
||||
*/
|
||||
private String blacklistedDates;
|
||||
@TableField(typeHandler = StringListTypeHandler.class)
|
||||
private List<String> blacklistedDates;
|
||||
/**
|
||||
* 黑名单指定日期(JSON格式存储)
|
||||
* 黑名单指定日期
|
||||
*/
|
||||
private String blackAppointDates;
|
||||
@TableField(typeHandler = StringListTypeHandler.class)
|
||||
private List<String> blackAppointDates;
|
||||
/**
|
||||
* 法定节假日是否开启0:关闭1开启
|
||||
*/
|
||||
|
||||
@@ -32,6 +32,11 @@ public class ProdEmergencyResponseIntervalsDO extends BaseDO {
|
||||
* 关联的紧急响应服务配置ID
|
||||
*/
|
||||
private Long configId;
|
||||
/**
|
||||
* 商品ID
|
||||
*/
|
||||
private Long prodId;
|
||||
|
||||
/**
|
||||
* 响应模式名称
|
||||
*/
|
||||
@@ -39,7 +44,7 @@ public class ProdEmergencyResponseIntervalsDO extends BaseDO {
|
||||
/**
|
||||
* 响应时间(小时)
|
||||
*/
|
||||
private Integer responseHours;
|
||||
private BigDecimal responseHours;
|
||||
/**
|
||||
* 收费模式0:固定收费 1:浮动收费
|
||||
*/
|
||||
|
||||
@@ -1,11 +1,16 @@
|
||||
package com.tashow.cloud.productapi.api.product.dto;
|
||||
|
||||
import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO;
|
||||
import com.tashow.cloud.productapi.api.product.vo.prodreservationconfig.TimeBookVO;
|
||||
import com.tashow.cloud.productapi.general.StringListTypeHandler;
|
||||
import lombok.*;
|
||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 商品预约配置 DO
|
||||
*
|
||||
@@ -31,9 +36,10 @@ public class ProdReservationConfigDO extends BaseDO {
|
||||
*/
|
||||
private Long prodId;
|
||||
/**
|
||||
* 预约时段设置(JSON格式存储)
|
||||
* 预约时段设置
|
||||
*/
|
||||
private String reservationTimeSlots;
|
||||
@TableField(typeHandler = StringListTypeHandler.class)
|
||||
private List<String> reservationTimeSlots;
|
||||
/**
|
||||
* 需提前多少小时预约
|
||||
*/
|
||||
@@ -46,6 +52,12 @@ public class ProdReservationConfigDO extends BaseDO {
|
||||
* 是否允许更改预约时间 1可以 0不可以
|
||||
*/
|
||||
private Integer allowChange;
|
||||
|
||||
/**
|
||||
* 时间段
|
||||
*/
|
||||
private Integer timeSlot;
|
||||
|
||||
/**
|
||||
* 更改预约时间的时间规则(如服务开始前1小时可更改)
|
||||
*/
|
||||
@@ -55,9 +67,10 @@ public class ProdReservationConfigDO extends BaseDO {
|
||||
*/
|
||||
private Integer maxChangeTimes;
|
||||
/**
|
||||
* 黑名自定义日期(JSON格式存储)
|
||||
* 黑名自定义日期
|
||||
*/
|
||||
private String blacklistedDates;
|
||||
@TableField(typeHandler = StringListTypeHandler.class)
|
||||
private List<String> blacklistedDates;
|
||||
|
||||
/**
|
||||
* '是否开启黑名单自定义0关1开'
|
||||
@@ -70,9 +83,11 @@ public class ProdReservationConfigDO extends BaseDO {
|
||||
private Integer isBlackAppoint;
|
||||
|
||||
/**
|
||||
* 黑名单指定日期(JSON格式存储)
|
||||
* 黑名单指定日期
|
||||
*/
|
||||
private String blackAppointDates;
|
||||
//private String blackAppointDates;
|
||||
@TableField(typeHandler = StringListTypeHandler.class)
|
||||
private List<String> blackAppointDates;
|
||||
/**
|
||||
* 法定节假日是否开启0:关闭1开启
|
||||
*/
|
||||
@@ -82,4 +97,22 @@ public class ProdReservationConfigDO extends BaseDO {
|
||||
*/
|
||||
private Integer blackWeekend;
|
||||
|
||||
/**
|
||||
* 预约时间区间设置
|
||||
*/
|
||||
@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;
|
||||
}
|
||||
}
|
||||
@@ -41,7 +41,7 @@ public class ProdWeightRangePricesDO extends BaseDO {
|
||||
*/
|
||||
private BigDecimal price;
|
||||
/**
|
||||
* 是否启用该规则0否1是
|
||||
* 是否收费0否1是
|
||||
*/
|
||||
private Integer isEnabled;
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.tashow.cloud.productapi.general.StringListTypeHandler;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@@ -41,22 +42,53 @@ public class ProdListVO {
|
||||
*/
|
||||
private String shopName;
|
||||
|
||||
/**
|
||||
* 默认是1,正常状态(出售中), 0:下架(仓库中) 2:待审核
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
@Schema(description = "")
|
||||
/**
|
||||
* 是否置灰0否1是
|
||||
*/
|
||||
private Integer isProhibit;
|
||||
/**
|
||||
* 服务区域地址名称集合
|
||||
*/
|
||||
private List<String> areaNameList;
|
||||
|
||||
/**
|
||||
* 紧急服务最快响应时间(小时)
|
||||
*/
|
||||
private BigDecimal responseHours;
|
||||
/**
|
||||
* 服务时段
|
||||
*/
|
||||
private BigDecimal reservationTimeSlots;
|
||||
|
||||
/**
|
||||
* 还剩多少天
|
||||
*/
|
||||
private Long remainingDays;
|
||||
|
||||
/**
|
||||
* 审核备注
|
||||
*/
|
||||
private String processNotes;
|
||||
/**
|
||||
* 删除时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date deleteTime;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date updateTime;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.tashow.cloud.productapi.api.product.vo.prod;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "商品服务配置 VO")
|
||||
@Data
|
||||
public class ProdRestoreListVO {
|
||||
|
||||
/**
|
||||
* 产品ID
|
||||
*/
|
||||
@TableId
|
||||
private Long prodId;
|
||||
/**
|
||||
* 商品名称
|
||||
*/
|
||||
private String prodName;
|
||||
/**
|
||||
* 分类名称
|
||||
*/
|
||||
private String categoryName;
|
||||
|
||||
/**
|
||||
* 店铺id
|
||||
*/
|
||||
private Long shopId;
|
||||
|
||||
/**
|
||||
* 店铺id
|
||||
*/
|
||||
private String shopName;
|
||||
|
||||
/**
|
||||
* 服务区域地址名称集合
|
||||
*/
|
||||
private List<String> areaNameList;
|
||||
|
||||
/**
|
||||
* 紧急服务最快响应时间(小时)
|
||||
*/
|
||||
private BigDecimal responseHours;
|
||||
/**
|
||||
* 服务时段
|
||||
*/
|
||||
private BigDecimal reservationTimeSlots;
|
||||
|
||||
/**
|
||||
* 还剩多少天
|
||||
*/
|
||||
private Long remainingDays;
|
||||
|
||||
/**
|
||||
* 删除时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date deleteTime;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date createTime;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,11 +1,13 @@
|
||||
package com.tashow.cloud.productapi.api.product.vo.prod;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.tashow.cloud.productapi.api.product.vo.prodemergencyresponse.ProdEmergencyInfoVO;
|
||||
import com.tashow.cloud.productapi.api.product.vo.prodserviceareas.ProdServiceAreasInfoVO;
|
||||
import com.tashow.cloud.productapi.api.product.dto.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "商品服务配置 VO")
|
||||
@@ -15,6 +17,22 @@ public class ProdServiceVO {
|
||||
@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;
|
||||
|
||||
@@ -6,6 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 特殊时段附加费用规则 Response VO")
|
||||
@Data
|
||||
@@ -26,7 +27,7 @@ public class ProdAdditionalFeePeriodsRespVO {
|
||||
|
||||
@Schema(description = "特殊时段设置(JSON格式存储)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("特殊时段设置(JSON格式存储)")
|
||||
private String specialTimeSlots;
|
||||
private List<String> specialTimeSlots;
|
||||
|
||||
@Schema(description = "收费方式0:'固定金额',1:'基准价上浮'", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("收费方式0:'固定金额',1:'基准价上浮'")
|
||||
|
||||
@@ -6,6 +6,7 @@ import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 特殊时段附加费用规则新增/修改 Request VO")
|
||||
@Data
|
||||
@@ -24,7 +25,7 @@ public class ProdAdditionalFeePeriodsSaveReqVO {
|
||||
|
||||
@Schema(description = "特殊时段设置(JSON格式存储)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "特殊时段设置(JSON格式存储)不能为空")
|
||||
private String specialTimeSlots;
|
||||
private List<String> specialTimeSlots;
|
||||
|
||||
@Schema(description = "收费方式0:'固定金额',1:'基准价上浮'", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "收费方式0:'固定金额',1:'基准价上浮'不能为空")
|
||||
|
||||
@@ -22,17 +22,17 @@ public class ProdEmergencyInfoVO {
|
||||
*/
|
||||
private Long prodId;
|
||||
/**
|
||||
* 可响应时间段(JSON格式存储)
|
||||
* 可响应时间段
|
||||
*/
|
||||
private String responseTimeSlots;
|
||||
private List<String> responseTimeSlots;
|
||||
/**
|
||||
* 黑名自定义日期(JSON格式存储)
|
||||
* 黑名自定义日期
|
||||
*/
|
||||
private String blacklistedDates;
|
||||
private List<String> blacklistedDates;
|
||||
/**
|
||||
* 黑名单指定日期(JSON格式存储)
|
||||
* 黑名单指定日期
|
||||
*/
|
||||
private String blackAppointDates;
|
||||
private List<String> blackAppointDates;
|
||||
/**
|
||||
* 法定节假日是否开启0:关闭1开启
|
||||
*/
|
||||
|
||||
@@ -7,6 +7,7 @@ import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 商品紧急响应服务设置分页 Request VO")
|
||||
@Data
|
||||
@@ -17,14 +18,14 @@ public class ProdEmergencyResponsePageReqVO extends PageParam {
|
||||
@Schema(description = "关联的商品ID", example = "29152")
|
||||
private Long prodId;
|
||||
|
||||
@Schema(description = "可响应时间段(JSON格式存储)")
|
||||
private String responseTimeSlots;
|
||||
@Schema(description = "可响应时间段")
|
||||
private List<String> responseTimeSlots;
|
||||
|
||||
@Schema(description = "黑名自定义日期(JSON格式存储)")
|
||||
private String blacklistedDates;
|
||||
@Schema(description = "黑名自定义日期")
|
||||
private List<String> blacklistedDates;
|
||||
|
||||
@Schema(description = "黑名单指定日期(JSON格式存储)")
|
||||
private String blackAppointDates;
|
||||
@Schema(description = "黑名单指定日期")
|
||||
private List<String> blackAppointDates;
|
||||
|
||||
@Schema(description = "法定节假日是否开启0:关闭1开启")
|
||||
private Integer blackHappy;
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
package com.tashow.cloud.productapi.api.product.vo.prodemergencyresponse;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.tashow.cloud.productapi.general.StringListTypeHandler;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 商品紧急响应服务设置新增/修改 Request VO")
|
||||
@Data
|
||||
@@ -17,14 +20,14 @@ public class ProdEmergencyResponseSaveReqVO {
|
||||
@NotNull(message = "关联的商品ID不能为空")
|
||||
private Long prodId;
|
||||
|
||||
@Schema(description = "可响应时间段(JSON格式存储)")
|
||||
private String responseTimeSlots;
|
||||
@Schema(description = "可响应时间段")
|
||||
private List<String> responseTimeSlots;
|
||||
|
||||
@Schema(description = "黑名自定义日期(JSON格式存储)")
|
||||
private String blacklistedDates;
|
||||
@Schema(description = "黑名自定义日期")
|
||||
private List<String>blacklistedDates;
|
||||
|
||||
@Schema(description = "黑名单指定日期(JSON格式存储)")
|
||||
private String blackAppointDates;
|
||||
@Schema(description = "黑名单指定日期")
|
||||
private List<String> blackAppointDates;
|
||||
|
||||
@Schema(description = "法定节假日是否开启0:关闭1开启")
|
||||
private Integer blackHappy;
|
||||
|
||||
@@ -22,7 +22,7 @@ public class ProdEmergencyResponseIntervalsPageReqVO extends PageParam {
|
||||
private String modeName;
|
||||
|
||||
@Schema(description = "响应时间(小时)")
|
||||
private Integer responseHours;
|
||||
private BigDecimal responseHours;
|
||||
|
||||
@Schema(description = "收费模式0:固定收费 1:浮动收费")
|
||||
private Integer chargeMode;
|
||||
|
||||
@@ -27,7 +27,7 @@ public class ProdEmergencyResponseIntervalsRespVO {
|
||||
|
||||
@Schema(description = "响应时间(小时)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("响应时间(小时)")
|
||||
private Integer responseHours;
|
||||
private BigDecimal responseHours;
|
||||
|
||||
@Schema(description = "收费模式0:固定收费 1:浮动收费", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("收费模式0:固定收费 1:浮动收费")
|
||||
|
||||
@@ -25,7 +25,7 @@ public class ProdEmergencyResponseIntervalsSaveReqVO {
|
||||
|
||||
@Schema(description = "响应时间(小时)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "响应时间(小时)不能为空")
|
||||
private Integer responseHours;
|
||||
private BigDecimal responseHours;
|
||||
|
||||
@Schema(description = "收费模式0:固定收费 1:浮动收费", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "收费模式0:固定收费 1:浮动收费不能为空")
|
||||
|
||||
@@ -7,6 +7,7 @@ import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 商品预约配置分页 Request VO")
|
||||
@Data
|
||||
@@ -17,8 +18,8 @@ public class ProdReservationConfigPageReqVO extends PageParam {
|
||||
@Schema(description = "关联的商品ID", example = "19369")
|
||||
private Long prodId;
|
||||
|
||||
@Schema(description = "预约时段设置(JSON格式存储)")
|
||||
private String reservationTimeSlots;
|
||||
@Schema(description = "预约时段设置")
|
||||
private List<String> reservationTimeSlots;
|
||||
|
||||
@Schema(description = "需提前多少小时预约")
|
||||
private Integer advanceHours;
|
||||
@@ -35,8 +36,8 @@ public class ProdReservationConfigPageReqVO extends PageParam {
|
||||
@Schema(description = "允许更改预约时间的最大次数")
|
||||
private Integer maxChangeTimes;
|
||||
|
||||
@Schema(description = "黑名自定义日期(JSON格式存储)")
|
||||
private String blacklistedDates;
|
||||
@Schema(description = "黑名自定义日期")
|
||||
private List<String> blacklistedDates;
|
||||
|
||||
/**
|
||||
* '是否开启黑名单自定义0关1开'
|
||||
@@ -48,8 +49,8 @@ public class ProdReservationConfigPageReqVO extends PageParam {
|
||||
*/
|
||||
private Integer isBlackAppoint;
|
||||
|
||||
@Schema(description = "黑名单指定日期(JSON格式存储)")
|
||||
private String blackAppointDates;
|
||||
@Schema(description = "黑名单指定日期")
|
||||
private List<String> blackAppointDates;
|
||||
|
||||
@Schema(description = "法定节假日是否开启0:关闭1开启")
|
||||
private Boolean blackHappy;
|
||||
|
||||
@@ -6,6 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 商品预约配置 Response VO")
|
||||
@Data
|
||||
@@ -20,9 +21,9 @@ public class ProdReservationConfigRespVO {
|
||||
@ExcelProperty("关联的商品ID")
|
||||
private Long prodId;
|
||||
|
||||
@Schema(description = "预约时段设置(JSON格式存储)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("预约时段设置(JSON格式存储)")
|
||||
private String reservationTimeSlots;
|
||||
@Schema(description = "预约时段设置", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("预约时段设置")
|
||||
private List<String> reservationTimeSlots;
|
||||
|
||||
@Schema(description = "需提前多少小时预约", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("需提前多少小时预约")
|
||||
@@ -44,9 +45,9 @@ public class ProdReservationConfigRespVO {
|
||||
@ExcelProperty("允许更改预约时间的最大次数")
|
||||
private Integer maxChangeTimes;
|
||||
|
||||
@Schema(description = "黑名自定义日期(JSON格式存储)")
|
||||
@ExcelProperty("黑名自定义日期(JSON格式存储)")
|
||||
private String blacklistedDates;
|
||||
@Schema(description = "黑名自定义日期")
|
||||
@ExcelProperty("黑名自定义日期")
|
||||
private List<String> blacklistedDates;
|
||||
|
||||
/**
|
||||
* '是否开启黑名单自定义0关1开'
|
||||
@@ -58,9 +59,9 @@ public class ProdReservationConfigRespVO {
|
||||
*/
|
||||
private Integer isBlackAppoint;
|
||||
|
||||
@Schema(description = "黑名单指定日期(JSON格式存储)")
|
||||
@ExcelProperty("黑名单指定日期(JSON格式存储)")
|
||||
private String blackAppointDates;
|
||||
@Schema(description = "黑名单指定日期")
|
||||
@ExcelProperty("黑名单指定日期")
|
||||
private List<String> blackAppointDates;
|
||||
|
||||
@Schema(description = "法定节假日是否开启0:关闭1开启")
|
||||
@ExcelProperty("法定节假日是否开启0:关闭1开启")
|
||||
|
||||
@@ -6,6 +6,7 @@ import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 商品预约配置新增/修改 Request VO")
|
||||
@Data
|
||||
@@ -18,9 +19,9 @@ public class ProdReservationConfigSaveReqVO {
|
||||
@NotNull(message = "关联的商品ID不能为空")
|
||||
private Long prodId;
|
||||
|
||||
@Schema(description = "预约时段设置(JSON格式存储)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "预约时段设置(JSON格式存储)不能为空")
|
||||
private String reservationTimeSlots;
|
||||
@Schema(description = "预约时段设置", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "预约时段设置不能为空")
|
||||
private List<String> reservationTimeSlots;
|
||||
|
||||
@Schema(description = "需提前多少小时预约", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "需提前多少小时预约不能为空")
|
||||
@@ -40,8 +41,8 @@ public class ProdReservationConfigSaveReqVO {
|
||||
@Schema(description = "允许更改预约时间的最大次数")
|
||||
private Integer maxChangeTimes;
|
||||
|
||||
@Schema(description = "黑名自定义日期(JSON格式存储)")
|
||||
private String blacklistedDates;
|
||||
@Schema(description = "黑名自定义日期")
|
||||
private List<String> blacklistedDates;
|
||||
|
||||
/**
|
||||
* '是否开启黑名单自定义0关1开'
|
||||
@@ -53,8 +54,8 @@ public class ProdReservationConfigSaveReqVO {
|
||||
*/
|
||||
private Integer isBlackAppoint;
|
||||
|
||||
@Schema(description = "黑名单指定日期(JSON格式存储)")
|
||||
private String blackAppointDates;
|
||||
@Schema(description = "黑名单指定日期")
|
||||
private List<String> blackAppointDates;
|
||||
|
||||
@Schema(description = "法定节假日是否开启0:关闭1开启")
|
||||
private Boolean blackHappy;
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.tashow.cloud.productapi.api.product.vo.prodreservationconfig;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 商品预约配置 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class TimeBookVO {
|
||||
|
||||
/**
|
||||
* 预约时段设置
|
||||
*/
|
||||
private List<String> reservationTimeSlots;
|
||||
/**
|
||||
* 时间段
|
||||
*/
|
||||
private Integer timeSlot;
|
||||
}
|
||||
@@ -134,16 +134,16 @@ public class ProdController {
|
||||
@PermitAll
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得商品分页")
|
||||
public CommonResult<PageResult<ProdDO>> getProdPage(ProdPageReqVO pageReqVO) {
|
||||
PageResult<ProdDO> pageResult = prodService.getProdPage(pageReqVO);
|
||||
public CommonResult<PageResult<ProdListVO>> getProdPage(ProdPageReqVO pageReqVO) {
|
||||
PageResult<ProdListVO> pageResult = prodService.getProdPage(pageReqVO);
|
||||
return success(pageResult);
|
||||
}
|
||||
|
||||
@PermitAll
|
||||
@GetMapping("/getProdRecycleBinPageList")
|
||||
@Operation(summary = "获得商品回收站分页列表")
|
||||
public CommonResult<PageResult<ProdListVO>> getProdRecycleBinPageList(ProdRecycleBinVO prodRecycleBinVO) {
|
||||
PageResult<ProdListVO> pageResult = prodService.getProdRecycleBinPageList(prodRecycleBinVO);
|
||||
public CommonResult<PageResult<ProdRestoreListVO>> getProdRecycleBinPageList(ProdRecycleBinVO prodRecycleBinVO) {
|
||||
PageResult<ProdRestoreListVO> pageResult = prodService.getProdRecycleBinPageList(prodRecycleBinVO);
|
||||
return success(pageResult);
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.tashow.cloud.mybatis.mybatis.core.mapper.BaseMapperX;
|
||||
import com.tashow.cloud.productapi.api.product.dto.*;
|
||||
import com.tashow.cloud.productapi.api.product.vo.prod.ProdListVO;
|
||||
import com.tashow.cloud.productapi.api.product.vo.prod.ProdPageReqVO;
|
||||
import com.tashow.cloud.productapi.api.product.vo.prod.ProdRestoreListVO;
|
||||
import com.tashow.cloud.productapi.api.product.vo.prod.ProdServiceVO;
|
||||
import com.tashow.cloud.productapi.api.product.vo.sku.SkuRecycleBinVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
@@ -23,7 +24,7 @@ import org.apache.ibatis.annotations.Param;
|
||||
@Mapper
|
||||
public interface ProdMapper extends BaseMapperX<ProdDO> {
|
||||
|
||||
IPage<ProdDO> getProdPageList(Page<?> page,@Param("createTime") String[] createTime
|
||||
IPage<ProdListVO> getProdPageList(Page<?> page,@Param("createTime") String[] createTime
|
||||
, @Param("prodName") String prodName
|
||||
, @Param("shopId") Long shopId
|
||||
, @Param("status") Integer status
|
||||
@@ -48,7 +49,7 @@ public interface ProdMapper extends BaseMapperX<ProdDO> {
|
||||
, @Param("weightSwitch") Integer weightSwitch
|
||||
);
|
||||
|
||||
IPage<ProdListVO> getProdRecycleBinPageList(Page<?> page, @Param("createTime") String[] createTime
|
||||
IPage<ProdRestoreListVO> getProdRecycleBinPageList(Page<?> page, @Param("deleteTime") String[] deleteTime
|
||||
, @Param("prodName") String prodName);
|
||||
|
||||
|
||||
|
||||
@@ -79,9 +79,9 @@ public interface ProdService {
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 商品分页
|
||||
*/
|
||||
PageResult<ProdDO> getProdPage(ProdPageReqVO pageReqVO);
|
||||
PageResult<ProdListVO> getProdPage(ProdPageReqVO pageReqVO);
|
||||
|
||||
PageResult<ProdListVO> getProdRecycleBinPageList(ProdRecycleBinVO prodRecycleBinVO);
|
||||
PageResult<ProdRestoreListVO> getProdRecycleBinPageList(ProdRecycleBinVO prodRecycleBinVO);
|
||||
|
||||
/**
|
||||
* 恢复商品
|
||||
|
||||
@@ -22,6 +22,7 @@ import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.tashow.cloud.common.pojo.PageResult;
|
||||
import com.tashow.cloud.common.pojo.PageParam;
|
||||
import com.tashow.cloud.common.util.object.BeanUtils;
|
||||
@@ -76,7 +77,7 @@ public class ProdServiceImpl implements ProdService {
|
||||
//保存sku
|
||||
if (CollectionUtil.isNotEmpty(createReqVO.getSkuList())) {
|
||||
List<SkuDO> skuList = createReqVO.getSkuList();
|
||||
for(SkuDO sku : skuList){
|
||||
for (SkuDO sku : skuList) {
|
||||
sku.setProdId(prod.getProdId());
|
||||
}
|
||||
skuMapper.insertBatch(skuList);
|
||||
@@ -99,20 +100,20 @@ public class ProdServiceImpl implements ProdService {
|
||||
ProdDO prodDO = new ProdDO();
|
||||
prodDO.setProdId(prodServiceVO.getProdId());
|
||||
//服务区域设置
|
||||
if(Objects.equals(prodServiceVO.getRegionSwitch(),BaseEnum.YES_ONE.getKey())){
|
||||
if (Objects.equals(prodServiceVO.getRegionSwitch(), BaseEnum.YES_ONE.getKey())) {
|
||||
prodDO.setRegionSwitch(BaseEnum.YES_ONE.getKey());
|
||||
//保存区域设置信息
|
||||
ProdServiceOverAreaRulesDO prodServiceOverAreaRules = BeanUtils.toBean(prodServiceVO.getProdServiceAreasInfo(), ProdServiceOverAreaRulesDO.class);
|
||||
prodServiceOverAreaRules.setProdId(prodDO.getProdId());
|
||||
prodServiceOverAreaRulesMapper.insert(prodServiceOverAreaRules);
|
||||
//保存区域
|
||||
List<String> areaNameList =prodServiceVO.getProdServiceAreasInfo().getAreaNameList();
|
||||
for(String areaName : areaNameList){
|
||||
List<String> areaNameList = prodServiceVO.getProdServiceAreasInfo().getAreaNameList();
|
||||
for (String areaName : areaNameList) {
|
||||
//查询区域信息
|
||||
ProdServiceAreasDO prodServiceAreas = prodServiceAreasMapper.selectOne(new LambdaQueryWrapper<ProdServiceAreasDO>()
|
||||
.eq(ProdServiceAreasDO::getAreaName, areaName)
|
||||
);
|
||||
if(prodServiceAreas != null){
|
||||
if (prodServiceAreas != null) {
|
||||
//插入关联表
|
||||
prodServiceAreaRelevanceMapper.insert(new ProdServiceAreaRelevanceDO()
|
||||
.setProdId(prodDO.getProdId())
|
||||
@@ -122,49 +123,49 @@ public class ProdServiceImpl implements ProdService {
|
||||
}
|
||||
}
|
||||
//预约设置设置
|
||||
if(Objects.equals(prodServiceVO.getReservationSwitch(),BaseEnum.YES_ONE.getKey())){
|
||||
if (Objects.equals(prodServiceVO.getReservationSwitch(), BaseEnum.YES_ONE.getKey())) {
|
||||
prodDO.setReservationSwitch(BaseEnum.YES_ONE.getKey());
|
||||
ProdReservationConfigDO prodReservationConfigDO = prodServiceVO.prodReservationConfig;
|
||||
prodReservationConfigDO.setProdId(prodDO.getProdId());
|
||||
prodReservationConfigMapper.insert(prodReservationConfigDO);
|
||||
}
|
||||
//紧急响应设置
|
||||
if(Objects.equals(prodServiceVO.getEmergencySwitch(),BaseEnum.YES_ONE.getKey())){
|
||||
if (Objects.equals(prodServiceVO.getEmergencySwitch(), BaseEnum.YES_ONE.getKey())) {
|
||||
prodDO.setEmergencySwitch(BaseEnum.YES_ONE.getKey());
|
||||
// 插入
|
||||
ProdEmergencyResponseDO prodEmergencyResponse = BeanUtils.toBean(prodServiceVO.prodEmergencyInfoVO, ProdEmergencyResponseDO.class);
|
||||
prodEmergencyResponse.setProdId(prodDO.getProdId());
|
||||
prodEmergencyResponseMapper.insert(prodEmergencyResponse);
|
||||
for (ProdEmergencyResponseIntervalsDO prodEmergencyResponseIntervals : prodServiceVO.prodEmergencyInfoVO.getProdEmergencyResponseIntervalsList()){
|
||||
for (ProdEmergencyResponseIntervalsDO prodEmergencyResponseIntervals : prodServiceVO.prodEmergencyInfoVO.getProdEmergencyResponseIntervalsList()) {
|
||||
prodEmergencyResponseIntervals.setConfigId(prodEmergencyResponse.getId());
|
||||
prodEmergencyResponseIntervalsMapper.insert(prodEmergencyResponseIntervals);
|
||||
}
|
||||
}
|
||||
//接单上线设置
|
||||
if(Objects.equals(prodServiceVO.getOrderLimitSwitch(),BaseEnum.YES_ONE.getKey())){
|
||||
if (Objects.equals(prodServiceVO.getOrderLimitSwitch(), BaseEnum.YES_ONE.getKey())) {
|
||||
prodDO.setOrderLimitSwitch(BaseEnum.YES_ONE.getKey());
|
||||
ProductOrderLimitDO productOrderLimit = prodServiceVO.productOrderLimitVO;
|
||||
productOrderLimit.setProdId(prodDO.getProdId());
|
||||
productOrderLimitMapper.insert(productOrderLimit);
|
||||
}
|
||||
//特殊时段设置
|
||||
if(Objects.equals(prodServiceVO.getAdditionalSwitch(),BaseEnum.YES_ONE.getKey())){
|
||||
if (Objects.equals(prodServiceVO.getAdditionalSwitch(), BaseEnum.YES_ONE.getKey())) {
|
||||
prodDO.setAdditionalSwitch(BaseEnum.YES_ONE.getKey());
|
||||
for (ProdAdditionalFeeDatesDO prodAdditionalFeeDates : prodServiceVO.getProdAdditionalFeeDatesList()){
|
||||
for (ProdAdditionalFeeDatesDO prodAdditionalFeeDates : prodServiceVO.getProdAdditionalFeeDatesList()) {
|
||||
prodAdditionalFeeDates.setProdId(prodServiceVO.getProdId());
|
||||
prodAdditionalFeeDatesMapper.insert(prodAdditionalFeeDates);
|
||||
}
|
||||
}
|
||||
//特殊日期设置
|
||||
if(Objects.equals(prodServiceVO.getAdditionalFeeSwitch(),BaseEnum.YES_ONE.getKey())){
|
||||
if (Objects.equals(prodServiceVO.getAdditionalFeeSwitch(), BaseEnum.YES_ONE.getKey())) {
|
||||
prodDO.setAdditionalFeeSwitch(BaseEnum.YES_ONE.getKey());
|
||||
for (ProdAdditionalFeePeriodsDO prodAdditionalFeePeriods : prodServiceVO.getProdAdditionalFeePeriodsList()){
|
||||
for (ProdAdditionalFeePeriodsDO prodAdditionalFeePeriods : prodServiceVO.getProdAdditionalFeePeriodsList()) {
|
||||
prodAdditionalFeePeriods.setProdId(prodServiceVO.getProdId());
|
||||
prodAdditionalFeePeriodsMapper.insert(prodAdditionalFeePeriods);
|
||||
}
|
||||
}
|
||||
//体重设置
|
||||
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());
|
||||
@@ -179,23 +180,23 @@ public class ProdServiceImpl implements ProdService {
|
||||
|
||||
ProdDO prod = BeanUtils.toBean(prodServiceVO, ProdDO.class);
|
||||
//服务区域设置
|
||||
if(Objects.equals(prodServiceVO.getRegionSwitch(),BaseEnum.YES_ONE.getKey())){
|
||||
ProdServiceOverAreaRulesDO overAreaRules= prodServiceOverAreaRulesMapper.selectOne(new LambdaQueryWrapper<ProdServiceOverAreaRulesDO>()
|
||||
if (Objects.equals(prodServiceVO.getRegionSwitch(), BaseEnum.YES_ONE.getKey())) {
|
||||
ProdServiceOverAreaRulesDO overAreaRules = prodServiceOverAreaRulesMapper.selectOne(new LambdaQueryWrapper<ProdServiceOverAreaRulesDO>()
|
||||
.eq(ProdServiceOverAreaRulesDO::getProdId, prodServiceVO.getProdId()));
|
||||
if(overAreaRules==null){
|
||||
if (overAreaRules == null) {
|
||||
prod.setRegionSwitch(BaseEnum.YES_ONE.getKey());
|
||||
//保存区域设置信息
|
||||
ProdServiceOverAreaRulesDO prodServiceOverAreaRules = BeanUtils.toBean(prodServiceVO.getProdServiceAreasInfo(), ProdServiceOverAreaRulesDO.class);
|
||||
prodServiceOverAreaRules.setProdId(prod.getProdId());
|
||||
prodServiceOverAreaRulesMapper.insert(prodServiceOverAreaRules);
|
||||
//保存区域
|
||||
List<String> areaNameList =prodServiceVO.getProdServiceAreasInfo().getAreaNameList();
|
||||
for(String areaName : areaNameList){
|
||||
List<String> areaNameList = prodServiceVO.getProdServiceAreasInfo().getAreaNameList();
|
||||
for (String areaName : areaNameList) {
|
||||
//查询区域信息
|
||||
ProdServiceAreasDO prodServiceAreas = prodServiceAreasMapper.selectOne(new LambdaQueryWrapper<ProdServiceAreasDO>()
|
||||
.eq(ProdServiceAreasDO::getAreaName, areaName)
|
||||
);
|
||||
if(prodServiceAreas != null){
|
||||
if (prodServiceAreas != null) {
|
||||
//插入关联表
|
||||
prodServiceAreaRelevanceMapper.insert(new ProdServiceAreaRelevanceDO()
|
||||
.setProdId(prod.getProdId())
|
||||
@@ -203,7 +204,7 @@ public class ProdServiceImpl implements ProdService {
|
||||
);
|
||||
}
|
||||
}
|
||||
}else {
|
||||
} else {
|
||||
//保存区域设置信息
|
||||
ProdServiceOverAreaRulesDO prodServiceOverAreaRules = BeanUtils.toBean(prodServiceVO.getProdServiceAreasInfo(), ProdServiceOverAreaRulesDO.class);
|
||||
prodServiceOverAreaRules.setProdId(prodServiceVO.getProdId());
|
||||
@@ -211,13 +212,13 @@ public class ProdServiceImpl implements ProdService {
|
||||
//先批量删除区域关联表
|
||||
prodServiceAreaRelevanceMapper.deleteRelevance(prodServiceVO.getProdId());
|
||||
//保存区域
|
||||
List<String> areaNameList =prodServiceVO.getProdServiceAreasInfo().getAreaNameList();
|
||||
for(String areaName : areaNameList){
|
||||
List<String> areaNameList = prodServiceVO.getProdServiceAreasInfo().getAreaNameList();
|
||||
for (String areaName : areaNameList) {
|
||||
//查询区域信息
|
||||
ProdServiceAreasDO prodServiceAreas = prodServiceAreasMapper.selectOne(new LambdaQueryWrapper<ProdServiceAreasDO>()
|
||||
.eq(ProdServiceAreasDO::getAreaName, areaName)
|
||||
);
|
||||
if(prodServiceAreas == null){
|
||||
if (prodServiceAreas != null) {
|
||||
//插入关联表
|
||||
prodServiceAreaRelevanceMapper.insert(new ProdServiceAreaRelevanceDO()
|
||||
.setProdId(prodServiceVO.getProdId())
|
||||
@@ -229,87 +230,99 @@ public class ProdServiceImpl implements ProdService {
|
||||
|
||||
}
|
||||
//预约设置设置
|
||||
if(Objects.equals(prodServiceVO.getReservationSwitch(),BaseEnum.YES_ONE.getKey())){
|
||||
ProdReservationConfigDO reservationConfig= prodReservationConfigMapper.selectOne(new LambdaQueryWrapper<ProdReservationConfigDO>()
|
||||
if (Objects.equals(prodServiceVO.getReservationSwitch(), BaseEnum.YES_ONE.getKey())) {
|
||||
ProdReservationConfigDO reservationConfig = prodReservationConfigMapper.selectOne(new LambdaQueryWrapper<ProdReservationConfigDO>()
|
||||
.eq(ProdReservationConfigDO::getProdId, prodServiceVO.getProdId()));
|
||||
if(reservationConfig==null){
|
||||
if (reservationConfig == null) {
|
||||
prod.setReservationSwitch(BaseEnum.YES_ONE.getKey());
|
||||
ProdReservationConfigDO prodReservationConfigDO = prodServiceVO.getProdReservationConfig();
|
||||
prodReservationConfigDO.setProdId(prod.getProdId());
|
||||
prodReservationConfigDO.setTimeBook(prodServiceVO.getProdReservationConfig().getTimeBook());
|
||||
prodReservationConfigDO.setReservationTimeSlots(prodServiceVO.getProdReservationConfig().getReservationTimeSlots());
|
||||
prodReservationConfigMapper.insert(prodReservationConfigDO);
|
||||
}else {
|
||||
} else {
|
||||
prodServiceVO.getProdReservationConfig().setTimeBook(prodServiceVO.getProdReservationConfig().getTimeBook());
|
||||
prodServiceVO.getProdReservationConfig().setReservationTimeSlots(prodServiceVO.getProdReservationConfig().getReservationTimeSlots());
|
||||
prodReservationConfigMapper.updateById(prodServiceVO.getProdReservationConfig());
|
||||
}
|
||||
}
|
||||
//紧急响应设置
|
||||
if(Objects.equals(prodServiceVO.getEmergencySwitch(),BaseEnum.YES_ONE.getKey())){
|
||||
ProdEmergencyResponseDO rmergencyResponse= prodEmergencyResponseMapper.selectOne(new LambdaQueryWrapper<ProdEmergencyResponseDO>()
|
||||
if (Objects.equals(prodServiceVO.getEmergencySwitch(), BaseEnum.YES_ONE.getKey())) {
|
||||
ProdEmergencyResponseDO rmergencyResponse = prodEmergencyResponseMapper.selectOne(new LambdaQueryWrapper<ProdEmergencyResponseDO>()
|
||||
.eq(ProdEmergencyResponseDO::getProdId, prodServiceVO.getProdId()));
|
||||
if(rmergencyResponse==null){
|
||||
if (rmergencyResponse == null) {
|
||||
prod.setEmergencySwitch(BaseEnum.YES_ONE.getKey());
|
||||
// 插入
|
||||
ProdEmergencyResponseDO prodEmergencyResponse = BeanUtils.toBean(prodServiceVO.prodEmergencyInfoVO, ProdEmergencyResponseDO.class);
|
||||
ProdEmergencyResponseDO prodEmergencyResponse = BeanUtils.toBean(prodServiceVO.getProdEmergencyInfoVO(), ProdEmergencyResponseDO.class);
|
||||
prodEmergencyResponse.setProdId(prod.getProdId());
|
||||
prodEmergencyResponseMapper.insert(prodEmergencyResponse);
|
||||
for (ProdEmergencyResponseIntervalsDO prodEmergencyResponseIntervals : prodServiceVO.prodEmergencyInfoVO.getProdEmergencyResponseIntervalsList()){
|
||||
if(prodServiceVO.getProdEmergencyInfoVO().getProdEmergencyResponseIntervalsList()!=null){
|
||||
for (ProdEmergencyResponseIntervalsDO prodEmergencyResponseIntervals : prodServiceVO.getProdEmergencyInfoVO().getProdEmergencyResponseIntervalsList()) {
|
||||
prodEmergencyResponseIntervals.setConfigId(prodEmergencyResponse.getId());
|
||||
prodEmergencyResponseIntervals.setProdId(prod.getProdId());
|
||||
prodEmergencyResponseIntervalsMapper.insert(prodEmergencyResponseIntervals);
|
||||
}
|
||||
}else {
|
||||
ProdEmergencyResponseDO prodEmergencyResponse = BeanUtils.toBean(prodServiceVO.prodEmergencyInfoVO, ProdEmergencyResponseDO.class);
|
||||
if(prodEmergencyResponse!=null){
|
||||
}
|
||||
|
||||
} else {
|
||||
ProdEmergencyResponseDO prodEmergencyResponse = BeanUtils.toBean(prodServiceVO.getProdEmergencyInfoVO(), ProdEmergencyResponseDO.class);
|
||||
if (prodEmergencyResponse != null) {
|
||||
prodEmergencyResponseMapper.updateById(prodEmergencyResponse);
|
||||
prodEmergencyResponseIntervalsMapper.deleteIntervals(prodEmergencyResponse.getId());
|
||||
for (ProdEmergencyResponseIntervalsDO prodEmergencyResponseIntervals : prodServiceVO.prodEmergencyInfoVO.getProdEmergencyResponseIntervalsList()){
|
||||
if(prodServiceVO.getProdEmergencyInfoVO().getProdEmergencyResponseIntervalsList()!=null) {
|
||||
for (ProdEmergencyResponseIntervalsDO prodEmergencyResponseIntervals : prodServiceVO.getProdEmergencyInfoVO().getProdEmergencyResponseIntervalsList()) {
|
||||
prodEmergencyResponseIntervals.setConfigId(prodEmergencyResponse.getId());
|
||||
prodEmergencyResponseIntervals.setProdId(prod.getProdId());
|
||||
prodEmergencyResponseIntervalsMapper.insert(prodEmergencyResponseIntervals);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//接单上线设置
|
||||
if(Objects.equals(prodServiceVO.getOrderLimitSwitch(),BaseEnum.YES_ONE.getKey())){
|
||||
ProductOrderLimitDO orderLimit= productOrderLimitMapper.selectOne(new LambdaQueryWrapper<ProductOrderLimitDO>()
|
||||
if (Objects.equals(prodServiceVO.getOrderLimitSwitch(), BaseEnum.YES_ONE.getKey())) {
|
||||
ProductOrderLimitDO orderLimit = productOrderLimitMapper.selectOne(new LambdaQueryWrapper<ProductOrderLimitDO>()
|
||||
.eq(ProductOrderLimitDO::getProdId, prodServiceVO.getProdId()));
|
||||
if(orderLimit==null){
|
||||
if (orderLimit == null) {
|
||||
prod.setOrderLimitSwitch(BaseEnum.YES_ONE.getKey());
|
||||
ProductOrderLimitDO productOrderLimit = prodServiceVO.getProductOrderLimitVO();
|
||||
productOrderLimit.setProdId(prod.getProdId());
|
||||
productOrderLimitMapper.insert(productOrderLimit);
|
||||
}else {
|
||||
} else {
|
||||
productOrderLimitMapper.updateById(prodServiceVO.getProductOrderLimitVO());
|
||||
}
|
||||
}
|
||||
//特殊时段设置
|
||||
if(Objects.equals(prodServiceVO.getAdditionalSwitch(),BaseEnum.YES_ONE.getKey())){
|
||||
for (ProdAdditionalFeeDatesDO prodAdditionalFeeDates : prodServiceVO.getProdAdditionalFeeDatesList()){
|
||||
if(prodAdditionalFeeDates.getId()==null){
|
||||
if (Objects.equals(prodServiceVO.getAdditionalSwitch(), BaseEnum.YES_ONE.getKey())) {
|
||||
if (prodServiceVO.getProdAdditionalFeeDatesList() != null)
|
||||
for (ProdAdditionalFeeDatesDO prodAdditionalFeeDates : prodServiceVO.getProdAdditionalFeeDatesList()) {
|
||||
if (prodAdditionalFeeDates.getId() == null) {
|
||||
prodAdditionalFeeDates.setProdId(prodServiceVO.getProdId());
|
||||
prodAdditionalFeeDatesMapper.insert(prodAdditionalFeeDates);
|
||||
}else {
|
||||
} else {
|
||||
prodAdditionalFeeDatesMapper.updateById(prodAdditionalFeeDates);
|
||||
}
|
||||
}
|
||||
}
|
||||
//特殊日期设置
|
||||
if(Objects.equals(prodServiceVO.getAdditionalFeeSwitch(),BaseEnum.YES_ONE.getKey())){
|
||||
for (ProdAdditionalFeePeriodsDO prodAdditionalFeePeriods : prodServiceVO.getProdAdditionalFeePeriodsList()){
|
||||
if(prodAdditionalFeePeriods.getId()==null){
|
||||
if (Objects.equals(prodServiceVO.getAdditionalFeeSwitch(), BaseEnum.YES_ONE.getKey())) {
|
||||
for (ProdAdditionalFeePeriodsDO prodAdditionalFeePeriods : prodServiceVO.getProdAdditionalFeePeriodsList()) {
|
||||
if (prodAdditionalFeePeriods.getId() == null) {
|
||||
prodAdditionalFeePeriods.setProdId(prodServiceVO.getProdId());
|
||||
prodAdditionalFeePeriodsMapper.insert(prodAdditionalFeePeriods);
|
||||
}else {
|
||||
} else {
|
||||
prodAdditionalFeePeriodsMapper.updateById(prodAdditionalFeePeriods);
|
||||
}
|
||||
}
|
||||
}
|
||||
//体重设置
|
||||
if(Objects.equals(prodServiceVO.getWeightSwitch(),BaseEnum.YES_ONE.getKey())){
|
||||
if(prodServiceVO.getProdWeightConfig().getId()==null){
|
||||
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 {
|
||||
} else {
|
||||
prodWeightRangePricesMapper.updateById(prodServiceVO.getProdWeightConfig());
|
||||
}
|
||||
}
|
||||
@@ -319,14 +332,14 @@ public class ProdServiceImpl implements ProdService {
|
||||
@Override
|
||||
public ProdServiceVO getProdService(Long prodId) {
|
||||
ProdDO prodDO = prodMapper.selectById(prodId);
|
||||
if(prodDO!= null&&prodDO.getRegionSwitch()==BaseEnum.YES_ONE.getKey()){
|
||||
return prodMapper.selectProdService(prodDO.getProdId(),prodDO.getRegionSwitch(),
|
||||
prodDO.getReservationSwitch(),prodDO.getEmergencySwitch(),prodDO.getOrderLimitSwitch(),
|
||||
prodDO.getAdditionalSwitch(),prodDO.getAdditionalFeeSwitch(),prodDO.getWeightSwitch());
|
||||
}else {
|
||||
if (prodDO != null && prodDO.getRegionSwitch() == BaseEnum.YES_ONE.getKey()) {
|
||||
return prodMapper.selectProdService(prodDO.getProdId(), prodDO.getRegionSwitch(),
|
||||
prodDO.getReservationSwitch(), prodDO.getEmergencySwitch(), prodDO.getOrderLimitSwitch(),
|
||||
prodDO.getAdditionalSwitch(), prodDO.getAdditionalFeeSwitch(), prodDO.getWeightSwitch());
|
||||
} else {
|
||||
return prodMapper.selectProdServiceInfo(prodDO.getProdId(),
|
||||
prodDO.getReservationSwitch(),prodDO.getEmergencySwitch(),prodDO.getOrderLimitSwitch(),
|
||||
prodDO.getAdditionalSwitch(),prodDO.getAdditionalFeeSwitch(),prodDO.getWeightSwitch());
|
||||
prodDO.getReservationSwitch(), prodDO.getEmergencySwitch(), prodDO.getOrderLimitSwitch(),
|
||||
prodDO.getAdditionalSwitch(), prodDO.getAdditionalFeeSwitch(), prodDO.getWeightSwitch());
|
||||
}
|
||||
|
||||
|
||||
@@ -365,19 +378,21 @@ public class ProdServiceImpl implements ProdService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<ProdDO> getProdPage(ProdPageReqVO pageReqVO) {
|
||||
IPage<ProdDO> prodPageList = prodMapper.getProdPageList(MyBatisUtils.buildPage(pageReqVO),
|
||||
public PageResult<ProdListVO> getProdPage(ProdPageReqVO pageReqVO) {
|
||||
IPage<ProdListVO> prodPageList = prodMapper.getProdPageList(MyBatisUtils.buildPage(pageReqVO),
|
||||
pageReqVO.getCreateTime(), pageReqVO.getProdName(), pageReqVO.getShopId(), pageReqVO.getStatus(), pageReqVO.getCategoryId());
|
||||
return new PageResult<>(prodPageList.getRecords(),prodPageList.getTotal());
|
||||
return new PageResult<>(prodPageList.getRecords(), prodPageList.getTotal());
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<ProdListVO> getProdRecycleBinPageList(ProdRecycleBinVO prodRecycleBinVO){
|
||||
IPage<ProdListVO> prodPageList = prodMapper.getProdRecycleBinPageList(MyBatisUtils.buildPage(prodRecycleBinVO), prodRecycleBinVO.getDeleteTime(), prodRecycleBinVO.getProdName());
|
||||
for(ProdListVO prodPage : prodPageList.getRecords()){
|
||||
public PageResult<ProdRestoreListVO> getProdRecycleBinPageList(ProdRecycleBinVO prodRecycleBinVO) {
|
||||
IPage<ProdRestoreListVO> prodPageList = prodMapper.getProdRecycleBinPageList(MyBatisUtils.buildPage(prodRecycleBinVO), prodRecycleBinVO.getDeleteTime(), prodRecycleBinVO.getProdName());
|
||||
for (ProdRestoreListVO prodPage : prodPageList.getRecords()) {
|
||||
if (prodPage.getDeleteTime() != null) {
|
||||
prodPage.setRemainingDays(DateUtils.getRemainingDays(prodPage.getDeleteTime()));
|
||||
}
|
||||
return new PageResult<>(prodPageList.getRecords(),prodPageList.getTotal());
|
||||
}
|
||||
return new PageResult<>(prodPageList.getRecords(), prodPageList.getTotal());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -50,6 +50,7 @@
|
||||
<result property="reservationDateRange" column="rc_reservation_date_range"/>
|
||||
<result property="allowChange" column="rc_allow_change"/>
|
||||
<result property="changeTimeRule" column="rc_change_time_rule"/>
|
||||
<result property="timeSlot" column="rc_time_slot"/>
|
||||
<result property="maxChangeTimes" column="rc_max_change_times"/>
|
||||
<result property="blacklistedDates" column="rc_blacklisted_dates"/>
|
||||
<result property="isBlacklisted" column="rc_is_blacklisted"/>
|
||||
@@ -173,6 +174,7 @@
|
||||
<result property="reservationDateRange" column="rc_reservation_date_range"/>
|
||||
<result property="allowChange" column="rc_allow_change"/>
|
||||
<result property="changeTimeRule" column="rc_change_time_rule"/>
|
||||
<result property="timeSlot" column="rc_time_slot"/>
|
||||
<result property="maxChangeTimes" column="rc_max_change_times"/>
|
||||
<result property="blacklistedDates" column="rc_blacklisted_dates"/>
|
||||
<result property="isBlacklisted" column="rc_is_blacklisted"/>
|
||||
@@ -233,26 +235,7 @@
|
||||
|
||||
|
||||
|
||||
<select id="getProdPageList" resultType="com.tashow.cloud.productapi.api.product.dto.ProdDO">
|
||||
SELECT * FROM tz_prod
|
||||
where deleted = 0
|
||||
<if test="createTime != null and createTime.length == 2">
|
||||
AND create_time BETWEEN #{createTime[0]} AND #{createTime[1]}
|
||||
</if>
|
||||
<if test="prodName != null">
|
||||
AND prod_name = #{prodName}
|
||||
</if>
|
||||
<if test="shopId != null">
|
||||
AND shop_id = #{shopId}
|
||||
</if>
|
||||
<if test="status != null">
|
||||
AND status = #{status}
|
||||
</if>
|
||||
<if test="categoryId != null">
|
||||
AND category_id = #{categoryId}
|
||||
</if>
|
||||
ORDER by create_time DESC
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<!-- 动态SQL查询商品列表及其服务配置 (返回 List<ProdServiceVO>) -->
|
||||
@@ -265,6 +248,12 @@
|
||||
p.reservation_switch,
|
||||
p.order_limit_switch,
|
||||
p.weight_switch,
|
||||
p.region_switch,
|
||||
p.create_time,
|
||||
p.update_time,
|
||||
p.creator,
|
||||
p.updater,
|
||||
p.category_name,
|
||||
<!-- 只有当 emergencySwitch 开启时,才查询紧急响应相关字段 -->
|
||||
<if test="emergencySwitch != null and emergencySwitch == 1">
|
||||
erc.id AS erc_record_id,
|
||||
@@ -328,6 +317,7 @@
|
||||
rc.reservation_date_range AS rc_reservation_date_range,
|
||||
rc.allow_change AS rc_allow_change,
|
||||
rc.change_time_rule AS rc_change_time_rule,
|
||||
rc.time_slot AS rc_time_slot,
|
||||
rc.max_change_times AS rc_max_change_times,
|
||||
rc.blacklisted_dates AS rc_blacklisted_dates,
|
||||
rc.is_blacklisted AS rc_is_blacklisted,
|
||||
@@ -405,6 +395,7 @@
|
||||
p.reservation_switch,
|
||||
p.order_limit_switch,
|
||||
p.weight_switch,
|
||||
p.region_switch,
|
||||
<!-- 只有当 emergencySwitch 开启时,才查询紧急响应相关字段 -->
|
||||
<if test="emergencySwitch != null and emergencySwitch == 1">
|
||||
erc.id AS erc_record_id,
|
||||
@@ -468,6 +459,7 @@
|
||||
rc.reservation_date_range AS rc_reservation_date_range,
|
||||
rc.allow_change AS rc_allow_change,
|
||||
rc.change_time_rule AS rc_change_time_rule,
|
||||
rc.time_slot AS rc_time_slot,
|
||||
rc.max_change_times AS rc_max_change_times,
|
||||
rc.blacklisted_dates AS rc_blacklisted_dates,
|
||||
rc.is_blacklisted AS rc_is_blacklisted,
|
||||
@@ -523,48 +515,64 @@
|
||||
|
||||
|
||||
<!-- 结果映射:将数据库查询结果映射到 ProdServiceVO -->
|
||||
<resultMap id="ProdRecycleBinMap" type="com.tashow.cloud.productapi.api.product.vo.prod.ProdListVO"> <!-- 确保这是 ProdServiceVO 的正确包名 -->
|
||||
<resultMap id="ProdRecycleBinMap" type="com.tashow.cloud.productapi.api.product.vo.prod.ProdRestoreListVO"> <!-- 确保这是 ProdServiceVO 的正确包名 -->
|
||||
<!-- 商品基本信息映射 -->
|
||||
<id property="prodId" column="prod_id"/>
|
||||
<result property="prodName" column="prod_name"/>
|
||||
<result property="categoryName" column="category_name"/>
|
||||
<result property="shopId" column="shop_id"/>
|
||||
<result property="shopName" column="shop_name"/>
|
||||
<result property="responseHours" column="response_hours"/>
|
||||
<result property="reservationTimeSlots" column="reservation_time_slots"/>
|
||||
<result property="deleteTime" column="delete_time"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<collection property="areaNameList" ofType="string">
|
||||
<result column="sa_area_name"/>
|
||||
<result column="area_name"/>
|
||||
</collection>
|
||||
<!-- <association property="prodReservationConfig" javaType="com.tashow.cloud.productapi.api.product.dto.ProdReservationConfigDO">
|
||||
<id property="id" column="rc_record_id"/>
|
||||
<result property="prodId" column="rc_prod_id"/>
|
||||
<result property="reservationTimeSlots" column="rc_reservation_time_slots"/>
|
||||
<result property="advanceHours" column="rc_advance_hours"/>
|
||||
<result property="reservationDateRange" column="rc_reservation_date_range"/>
|
||||
<result property="allowChange" column="rc_allow_change"/>
|
||||
<result property="changeTimeRule" column="rc_change_time_rule"/>
|
||||
<result property="maxChangeTimes" column="rc_max_change_times"/>
|
||||
<result property="blacklistedDates" column="rc_blacklisted_dates"/>
|
||||
<result property="isBlacklisted" column="rc_is_blacklisted"/>
|
||||
<result property="blackAppointDates" column="rc_black_appoint_dates"/>
|
||||
<result property="isBlackAppoint" column="rc_is_black_appoint"/>
|
||||
<result property="blackHappy" column="rc_black_happy"/>
|
||||
<result property="blackWeekend" column="rc_black_weekend"/>
|
||||
</association>-->
|
||||
|
||||
|
||||
</resultMap>
|
||||
|
||||
|
||||
<resultMap id="ProdListMap" type="com.tashow.cloud.productapi.api.product.vo.prod.ProdListVO"> <!-- 确保这是 ProdServiceVO 的正确包名 -->
|
||||
<!-- 商品基本信息映射 -->
|
||||
<id property="prodId" column="prod_id"/>
|
||||
<result property="prodName" column="prod_name"/>
|
||||
<result property="categoryName" column="category_name"/>
|
||||
<result property="shopId" column="shop_id"/>
|
||||
<result property="shopName" column="shop_name"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="shopName" column="shop_name"/>
|
||||
<result property="isProhibit" column="is_prohibit"/>
|
||||
<result property="responseHours" column="response_hours"/>
|
||||
<result property="processNotes" column="processNotes"/>
|
||||
<result property="reservationTimeSlots" column="reservation_time_slots"/>
|
||||
<result property="deleteTime" column="delete_time"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<collection property="areaNameList" ofType="string">
|
||||
<result column="area_name"/>
|
||||
</collection>
|
||||
</resultMap>
|
||||
|
||||
|
||||
<select id="getProdRecycleBinPageList" resultMap="ProdRecycleBinMap" >
|
||||
select tp.prod_id,tp.prod_name,tp.category_name,tp.shop_id,tsd.shop_name,tpsa.area_name
|
||||
select tp.prod_id,tp.prod_name,tp.category_name,tp.shop_id,tsd.shop_name,tpsa.area_name,min_eri.response_hours,
|
||||
tprc.reservation_time_slots,tp.delete_time,tp.create_time
|
||||
from tz_prod tp
|
||||
left join tz_shop_detail tsd on tp.shop_id = tsd.shop_id
|
||||
left join tz_prod_service_area_relevance tpsar on tp.prod_id = tpsar.prod_id
|
||||
left join tz_prod_service_areas tpsa on tpsar.area_id = tpsa.id
|
||||
where deleted = 1
|
||||
<if test="properties != null and properties != ''">
|
||||
and tp.properties like concat('%', #{prodName}, '%')
|
||||
left join tz_prod_reservation_config tprc on tp.prod_id = tprc.prod_id
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
prod_id,
|
||||
MIN(response_hours) AS response_hours
|
||||
FROM tz_prod_emergency_response_intervals
|
||||
WHERE deleted = 0 -- 排除已删除的配置
|
||||
GROUP BY prod_id
|
||||
) min_eri ON tp.prod_id = min_eri.prod_id
|
||||
where tp.deleted = 1
|
||||
<if test="prodName != null and prodName != ''">
|
||||
and tp.prod_ame like concat('%', #{prodName}, '%')
|
||||
</if>
|
||||
<if test="deleteTime != null and deleteTime.length == 2">
|
||||
AND tp.delete_time BETWEEN #{deleteTime[0]} AND #{deleteTime[1]}
|
||||
@@ -572,6 +580,42 @@
|
||||
</select>
|
||||
|
||||
|
||||
<select id="getProdPageList" resultMap="ProdListMap" >
|
||||
select tp.prod_id,tp.prod_name,tp.category_name,tp.shop_id,tsd.shop_name,tpsa.area_name,min_eri.response_hours,
|
||||
tprc.reservation_time_slots,tp.delete_time,tp.create_time,tp.update_time,tp.status,tp.is_prohibit,
|
||||
tp.process_notes processNotes
|
||||
from tz_prod tp
|
||||
left join tz_shop_detail tsd on tp.shop_id = tsd.shop_id
|
||||
left join tz_prod_service_area_relevance tpsar on tp.prod_id = tpsar.prod_id
|
||||
left join tz_prod_service_areas tpsa on tpsar.area_id = tpsa.id
|
||||
left join tz_prod_reservation_config tprc on tp.prod_id = tprc.prod_id
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
prod_id,
|
||||
MIN(response_hours) AS response_hours
|
||||
FROM tz_prod_emergency_response_intervals
|
||||
WHERE deleted = 0 -- 排除已删除的配置
|
||||
GROUP BY prod_id
|
||||
) min_eri ON tp.prod_id = min_eri.prod_id
|
||||
where tp.deleted = 0
|
||||
<if test="createTime != null and createTime.length == 2">
|
||||
AND tp.create_time BETWEEN #{createTime[0]} AND #{createTime[1]}
|
||||
</if>
|
||||
<if test="prodName != null">
|
||||
AND tp.prod_name = #{prodName}
|
||||
</if>
|
||||
<if test="shopId != null">
|
||||
AND tp.shop_id = #{shopId}
|
||||
</if>
|
||||
<if test="status != null">
|
||||
AND tp.status = #{status}
|
||||
</if>
|
||||
<if test="categoryId != null">
|
||||
AND tp.category_id = #{categoryId}
|
||||
</if>
|
||||
ORDER by tp.create_time DESC
|
||||
</select>
|
||||
|
||||
<update id="batchRestoreProd">
|
||||
UPDATE tz_prod
|
||||
SET deleted = 0
|
||||
|
||||
Reference in New Issue
Block a user