sku规则恢复和列表

This commit is contained in:
xuelijun
2025-08-14 14:13:29 +08:00
parent 257dc16c94
commit 7afa85b941
14 changed files with 539 additions and 184 deletions

View File

@@ -2,6 +2,7 @@ package com.tashow.cloud.productapi.api.product.vo.prod;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.tashow.cloud.productapi.api.product.dto.*; import com.tashow.cloud.productapi.api.product.dto.*;
import com.tashow.cloud.productapi.api.product.vo.prodemergencyresponse.ProdEmergencyInfoVO; 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.vo.prodserviceareas.ProdServiceAreasInfoVO;
@@ -9,6 +10,7 @@ import com.tashow.cloud.productapi.general.StringListTypeHandler;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.util.Date;
import java.util.List; import java.util.List;
@Schema(description = "商品服务配置 VO") @Schema(description = "商品服务配置 VO")
@@ -25,50 +27,36 @@ public class ProdListVO {
*/ */
private String prodName; private String prodName;
/** /**
* 商品简 * 分类名
*/ */
private String abbreviation; private String categoryName;
/** /**
* 店铺id * 店铺id
*/ */
private Long shopId; private Long shopId;
/** /**
* 是否置灰0否1是 * 店铺id
*/ */
private Integer isProhibit; private String shopName;
/**
* 审核备注
*/
private String processNotes;
/**
* 详细描述
*/
private String content;
/**
* 商品编号
*/
private String prodNumber;
/**
* 商品主图
*/
private String pic;
/**
* 商品轮播图片,以,分割
*/
private String imgs;
/**
* 商品轮播图片,以,分割
*/
private String whiteImg;
/**
* 默认是1正常状态出售中, 0下架仓库中 2待审核
*/
private Integer status;
@Schema(description = "")
/**
* 服务区域地址名称集合
*/
private List<String> areaNameList;
/**
* 还剩多少天
*/
private Long remainingDays;
/**
* 删除时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date deleteTime;
} }

View File

@@ -6,10 +6,7 @@ import com.tashow.cloud.product.mapper.ProdMapper;
import com.tashow.cloud.productapi.api.product.dto.ProdDO; import com.tashow.cloud.productapi.api.product.dto.ProdDO;
import com.tashow.cloud.product.service.ProdService; import com.tashow.cloud.product.service.ProdService;
import com.tashow.cloud.productapi.api.product.dto.SkuDO; import com.tashow.cloud.productapi.api.product.dto.SkuDO;
import com.tashow.cloud.productapi.api.product.vo.prod.ProdPageReqVO; import com.tashow.cloud.productapi.api.product.vo.prod.*;
import com.tashow.cloud.productapi.api.product.vo.prod.ProdRecycleBinVO;
import com.tashow.cloud.productapi.api.product.vo.prod.ProdSaveReqVO;
import com.tashow.cloud.productapi.api.product.vo.prod.ProdServiceVO;
import com.tashow.cloud.productapi.api.product.vo.sku.SkuPageReqVO; import com.tashow.cloud.productapi.api.product.vo.sku.SkuPageReqVO;
import com.tashow.cloud.productapi.api.product.vo.sku.SkuRecycleBinVO; import com.tashow.cloud.productapi.api.product.vo.sku.SkuRecycleBinVO;
import com.tashow.cloud.productapi.enums.BaseEnum; import com.tashow.cloud.productapi.enums.BaseEnum;
@@ -145,8 +142,20 @@ public class ProdController {
@PermitAll @PermitAll
@GetMapping("/getProdRecycleBinPageList") @GetMapping("/getProdRecycleBinPageList")
@Operation(summary = "获得商品回收站分页列表") @Operation(summary = "获得商品回收站分页列表")
public CommonResult<PageResult<SkuRecycleBinVO>> getProdRecycleBinPageList(ProdRecycleBinVO prodRecycleBinVO) { public CommonResult<PageResult<ProdListVO>> getProdRecycleBinPageList(ProdRecycleBinVO prodRecycleBinVO) {
PageResult<SkuRecycleBinVO> pageResult = prodService.getProdRecycleBinPageList(prodRecycleBinVO); PageResult<ProdListVO> pageResult = prodService.getProdRecycleBinPageList(prodRecycleBinVO);
return success(pageResult); return success(pageResult);
} }
@PostMapping("/restoreProdList")
@Operation(summary = "恢复商品")
@Parameter(name = "ids", description = "商品id集合", required = true)
@PermitAll
public CommonResult<Boolean> restoreProdList(@RequestParam("ids") List<Long> ids) {
prodService.restoreProdList(ids);
return success(true);
}
} }

View File

@@ -107,7 +107,7 @@ public class SkuController {
@Operation(summary = "批量删除SKU") @Operation(summary = "批量删除SKU")
@Parameter(name = "ids", description = "编号", required = true) @Parameter(name = "ids", description = "编号", required = true)
@PermitAll @PermitAll
public CommonResult<Boolean> deleteSkuList(@RequestParam("id") List<Long> ids) { public CommonResult<Boolean> deleteSkuList(@RequestParam("ids") List<Long> ids) {
/*for(Long id:ids){ /*for(Long id:ids){
SkuDO sku = new SkuDO(); SkuDO sku = new SkuDO();
sku.setSkuId(id); sku.setSkuId(id);
@@ -120,9 +120,9 @@ public class SkuController {
} }
@DeleteMapping("/updateSkuShelf") @PostMapping("/updateSkuShelf")
@Operation(summary = "修改单品上下架") @Operation(summary = "修改单品上下架")
@Parameter(name = "ids", description = "编号", required = true) @Parameter(name = "id", description = "编号", required = true)
@Parameter(name = "isShelf", description = "是否上下架0下架 1上架", required = true) @Parameter(name = "isShelf", description = "是否上下架0下架 1上架", required = true)
@PermitAll @PermitAll
public CommonResult<Boolean> updateSkuShelf(@RequestParam("id") Long id,@RequestParam("isShelf") Integer isShelf) { public CommonResult<Boolean> updateSkuShelf(@RequestParam("id") Long id,@RequestParam("isShelf") Integer isShelf) {
@@ -130,12 +130,12 @@ public class SkuController {
return success(true); return success(true);
} }
@DeleteMapping("/updateSkuShelfList") @PostMapping("/updateSkuShelfList")
@Operation(summary = "批量上下架") @Operation(summary = "批量上下架")
@Parameter(name = "ids", description = "编号", required = true) @Parameter(name = "ids", description = "编号", required = true)
@Parameter(name = "isShelf", description = "是否上下架0下架 1上架", required = true) @Parameter(name = "isShelf", description = "是否上下架0下架 1上架", required = true)
@PermitAll @PermitAll
public CommonResult<Boolean> updateSkuShelfList(@RequestParam("id") List<Long> ids,@RequestParam("isShelf") Integer isShelf) { public CommonResult<Boolean> updateSkuShelfList(@RequestParam("ids") List<Long> ids,@RequestParam("isShelf") Integer isShelf) {
for(Long id:ids){ for(Long id:ids){
SkuDO sku = new SkuDO(); SkuDO sku = new SkuDO();
sku.setSkuId(id); sku.setSkuId(id);
@@ -164,6 +164,18 @@ public class SkuController {
return success(pageResult); return success(pageResult);
} }
@PostMapping("/restoreSkuList")
@Operation(summary = "恢复SKU")
@Parameter(name = "ids", description = "skuids", required = true)
@PermitAll
public CommonResult<Boolean> restoreSkuList(@RequestParam("ids") List<Long> ids) {
skuService.restoreSkuList(ids);
return success(true);
}
@PermitAll @PermitAll
@GetMapping("/getSkuPageList") @GetMapping("/getSkuPageList")
@Operation(summary = "获得SKU分页列表") @Operation(summary = "获得SKU分页列表")
@@ -173,6 +185,7 @@ public class SkuController {
} }
/* @PermitAll /* @PermitAll
@GetMapping("/getSkuRecycleBinPageList") @GetMapping("/getSkuRecycleBinPageList")
@Operation(summary = "获得SKU回收站分页列表") @Operation(summary = "获得SKU回收站分页列表")

View File

@@ -8,6 +8,7 @@ import com.tashow.cloud.common.pojo.PageResult;
import com.tashow.cloud.mybatis.mybatis.core.query.LambdaQueryWrapperX; import com.tashow.cloud.mybatis.mybatis.core.query.LambdaQueryWrapperX;
import com.tashow.cloud.mybatis.mybatis.core.mapper.BaseMapperX; import com.tashow.cloud.mybatis.mybatis.core.mapper.BaseMapperX;
import com.tashow.cloud.productapi.api.product.dto.*; 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.ProdPageReqVO;
import com.tashow.cloud.productapi.api.product.vo.prod.ProdServiceVO; import com.tashow.cloud.productapi.api.product.vo.prod.ProdServiceVO;
import com.tashow.cloud.productapi.api.product.vo.sku.SkuRecycleBinVO; import com.tashow.cloud.productapi.api.product.vo.sku.SkuRecycleBinVO;
@@ -47,7 +48,9 @@ public interface ProdMapper extends BaseMapperX<ProdDO> {
, @Param("weightSwitch") Integer weightSwitch , @Param("weightSwitch") Integer weightSwitch
); );
IPage<SkuRecycleBinVO> getProdRecycleBinPageList(Page<?> page,@Param("createTime") String[] createTime IPage<ProdListVO> getProdRecycleBinPageList(Page<?> page, @Param("createTime") String[] createTime
, @Param("prodName") String prodName); , @Param("prodName") String prodName);
void batchRestoreProd(@Param("ids") List<Long> ids);
} }

View File

@@ -29,4 +29,9 @@ public interface ProdPropValueMapper extends BaseMapperX<ProdPropValueDO> {
List<ProdPropValueDO> selectSalesValuesByState(@Param("prodId") Long prodId); List<ProdPropValueDO> selectSalesValuesByState(@Param("prodId") Long prodId);
void batchMarkDeleted(@Param("ids") List<Long> ids); void batchMarkDeleted(@Param("ids") List<Long> ids);
int deleteProdPropValueById( @Param("id")Long id);
List<ProdPropValueDO> selectRestoreProp(@Param("prodId") Long prodId);
} }

View File

@@ -27,4 +27,8 @@ public interface SkuMapper extends BaseMapperX<SkuDO> {
List<String> selectPropertiesByProdIdAndNotDeleted( @Param("prodId")Long prodId); List<String> selectPropertiesByProdIdAndNotDeleted( @Param("prodId")Long prodId);
List<String> selectPropertiesByProdIdShelf( @Param("prodId")Long prodId); List<String> selectPropertiesByProdIdShelf( @Param("prodId")Long prodId);
int deleteBySkuId( @Param("skuId")Long skuId);
void batchSkuDeleted(@Param("ids") List<Long> ids);
} }

View File

@@ -3,10 +3,7 @@ package com.tashow.cloud.product.service;
import java.util.*; import java.util.*;
import com.tashow.cloud.productapi.api.product.dto.ProdDO; import com.tashow.cloud.productapi.api.product.dto.ProdDO;
import com.tashow.cloud.productapi.api.product.vo.prod.ProdPageReqVO; import com.tashow.cloud.productapi.api.product.vo.prod.*;
import com.tashow.cloud.productapi.api.product.vo.prod.ProdRecycleBinVO;
import com.tashow.cloud.productapi.api.product.vo.prod.ProdSaveReqVO;
import com.tashow.cloud.productapi.api.product.vo.prod.ProdServiceVO;
import com.tashow.cloud.productapi.api.product.vo.sku.SkuRecycleBinVO; import com.tashow.cloud.productapi.api.product.vo.sku.SkuRecycleBinVO;
import jakarta.validation.*; import jakarta.validation.*;
import com.tashow.cloud.common.pojo.PageResult; import com.tashow.cloud.common.pojo.PageResult;
@@ -84,5 +81,12 @@ public interface ProdService {
*/ */
PageResult<ProdDO> getProdPage(ProdPageReqVO pageReqVO); PageResult<ProdDO> getProdPage(ProdPageReqVO pageReqVO);
PageResult<SkuRecycleBinVO> getProdRecycleBinPageList(ProdRecycleBinVO prodRecycleBinVO); PageResult<ProdListVO> getProdRecycleBinPageList(ProdRecycleBinVO prodRecycleBinVO);
/**
* 恢复商品
*
* @param ids
*/
void restoreProdList(List<Long> ids);
} }

View File

@@ -88,6 +88,13 @@ public interface SkuService {
*/ */
void deleteSkus(List<Long> ids); void deleteSkus(List<Long> ids);
/**
* 恢复SKU
*
* @param ids
*/
void restoreSkuList(List<Long> ids);
/** /**
* 删除单品SKU * 删除单品SKU

View File

@@ -54,7 +54,7 @@ public class ProdPropValueServiceImpl extends ServiceImpl<ProdPropValueMapper,
// 校验存在 // 校验存在
validateProdPropValueExists(id); validateProdPropValueExists(id);
// 删除 // 删除
prodPropValueMapper.deleteById(id); prodPropValueMapper.deleteProdPropValueById(id);
} }
private void validateProdPropValueExists(Long id) { private void validateProdPropValueExists(Long id) {

View File

@@ -11,10 +11,7 @@ import com.tashow.cloud.product.mapper.*;
import com.tashow.cloud.product.service.ProdPropService; import com.tashow.cloud.product.service.ProdPropService;
import com.tashow.cloud.product.service.ProdService; import com.tashow.cloud.product.service.ProdService;
import com.tashow.cloud.productapi.api.product.vo.prod.ProdPageReqVO; import com.tashow.cloud.productapi.api.product.vo.prod.*;
import com.tashow.cloud.productapi.api.product.vo.prod.ProdRecycleBinVO;
import com.tashow.cloud.productapi.api.product.vo.prod.ProdSaveReqVO;
import com.tashow.cloud.productapi.api.product.vo.prod.ProdServiceVO;
import com.tashow.cloud.productapi.api.product.vo.sku.SkuPageReqVO; import com.tashow.cloud.productapi.api.product.vo.sku.SkuPageReqVO;
import com.tashow.cloud.productapi.api.product.vo.sku.SkuRecycleBinVO; import com.tashow.cloud.productapi.api.product.vo.sku.SkuRecycleBinVO;
import com.tashow.cloud.productapi.enums.BaseEnum; import com.tashow.cloud.productapi.enums.BaseEnum;
@@ -183,65 +180,138 @@ public class ProdServiceImpl implements ProdService {
ProdDO prod = BeanUtils.toBean(prodServiceVO, ProdDO.class); ProdDO prod = BeanUtils.toBean(prodServiceVO, ProdDO.class);
//服务区域设置 //服务区域设置
if(Objects.equals(prodServiceVO.getRegionSwitch(),BaseEnum.YES_ONE.getKey())){ if(Objects.equals(prodServiceVO.getRegionSwitch(),BaseEnum.YES_ONE.getKey())){
ProdServiceOverAreaRulesDO overAreaRules= prodServiceOverAreaRulesMapper.selectOne(new LambdaQueryWrapper<ProdServiceOverAreaRulesDO>()
//保存区域设置信息 .eq(ProdServiceOverAreaRulesDO::getProdId, prodServiceVO.getProdId()));
ProdServiceOverAreaRulesDO prodServiceOverAreaRules = BeanUtils.toBean(prodServiceVO.getProdServiceAreasInfo(), ProdServiceOverAreaRulesDO.class); if(overAreaRules==null){
prodServiceOverAreaRules.setProdId(prodServiceVO.getProdId()); prod.setRegionSwitch(BaseEnum.YES_ONE.getKey());
prodServiceOverAreaRulesMapper.updateById(prodServiceOverAreaRules); //保存区域设置信息
//先批量删除区域关联表 ProdServiceOverAreaRulesDO prodServiceOverAreaRules = BeanUtils.toBean(prodServiceVO.getProdServiceAreasInfo(), ProdServiceOverAreaRulesDO.class);
prodServiceAreaRelevanceMapper.deleteRelevance(prodServiceVO.getProdId()); 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) ProdServiceAreasDO prodServiceAreas = prodServiceAreasMapper.selectOne(new LambdaQueryWrapper<ProdServiceAreasDO>()
); .eq(ProdServiceAreasDO::getAreaName, areaName)
if(prodServiceAreas == null){
//插入关联表
prodServiceAreaRelevanceMapper.insert(new ProdServiceAreaRelevanceDO()
.setProdId(prodServiceVO.getProdId())
.setAreaId(prodServiceAreas.getId())
); );
if(prodServiceAreas != null){
//插入关联表
prodServiceAreaRelevanceMapper.insert(new ProdServiceAreaRelevanceDO()
.setProdId(prod.getProdId())
.setAreaId(prodServiceAreas.getId())
);
}
}
}else {
//保存区域设置信息
ProdServiceOverAreaRulesDO prodServiceOverAreaRules = BeanUtils.toBean(prodServiceVO.getProdServiceAreasInfo(), ProdServiceOverAreaRulesDO.class);
prodServiceOverAreaRules.setProdId(prodServiceVO.getProdId());
prodServiceOverAreaRulesMapper.updateById(prodServiceOverAreaRules);
//先批量删除区域关联表
prodServiceAreaRelevanceMapper.deleteRelevance(prodServiceVO.getProdId());
//保存区域
List<String> areaNameList =prodServiceVO.getProdServiceAreasInfo().getAreaNameList();
for(String areaName : areaNameList){
//查询区域信息
ProdServiceAreasDO prodServiceAreas = prodServiceAreasMapper.selectOne(new LambdaQueryWrapper<ProdServiceAreasDO>()
.eq(ProdServiceAreasDO::getAreaName, areaName)
);
if(prodServiceAreas == null){
//插入关联表
prodServiceAreaRelevanceMapper.insert(new ProdServiceAreaRelevanceDO()
.setProdId(prodServiceVO.getProdId())
.setAreaId(prodServiceAreas.getId())
);
}
} }
} }
} }
//预约设置设置 //预约设置设置
if(Objects.equals(prodServiceVO.getReservationSwitch(),BaseEnum.YES_ONE.getKey())){ if(Objects.equals(prodServiceVO.getReservationSwitch(),BaseEnum.YES_ONE.getKey())){
prodReservationConfigMapper.updateById(prodServiceVO.prodReservationConfig); ProdReservationConfigDO reservationConfig= prodReservationConfigMapper.selectOne(new LambdaQueryWrapper<ProdReservationConfigDO>()
.eq(ProdReservationConfigDO::getProdId, prodServiceVO.getProdId()));
if(reservationConfig==null){
prod.setReservationSwitch(BaseEnum.YES_ONE.getKey());
ProdReservationConfigDO prodReservationConfigDO = prodServiceVO.getProdReservationConfig();
prodReservationConfigDO.setProdId(prod.getProdId());
prodReservationConfigMapper.insert(prodReservationConfigDO);
}else {
prodReservationConfigMapper.updateById(prodServiceVO.getProdReservationConfig());
}
} }
//紧急响应设置 //紧急响应设置
if(Objects.equals(prodServiceVO.getEmergencySwitch(),BaseEnum.YES_ONE.getKey())){ if(Objects.equals(prodServiceVO.getEmergencySwitch(),BaseEnum.YES_ONE.getKey())){
ProdEmergencyResponseDO prodEmergencyResponse = BeanUtils.toBean(prodServiceVO.prodEmergencyInfoVO, ProdEmergencyResponseDO.class); ProdEmergencyResponseDO rmergencyResponse= prodEmergencyResponseMapper.selectOne(new LambdaQueryWrapper<ProdEmergencyResponseDO>()
if(prodEmergencyResponse!=null){ .eq(ProdEmergencyResponseDO::getProdId, prodServiceVO.getProdId()));
prodEmergencyResponseMapper.updateById(prodEmergencyResponse); if(rmergencyResponse==null){
prodEmergencyResponseIntervalsMapper.deleteIntervals(prodEmergencyResponse.getId()); prod.setEmergencySwitch(BaseEnum.YES_ONE.getKey());
// 插入
ProdEmergencyResponseDO prodEmergencyResponse = BeanUtils.toBean(prodServiceVO.prodEmergencyInfoVO, ProdEmergencyResponseDO.class);
prodEmergencyResponse.setProdId(prod.getProdId());
prodEmergencyResponseMapper.insert(prodEmergencyResponse);
for (ProdEmergencyResponseIntervalsDO prodEmergencyResponseIntervals : prodServiceVO.prodEmergencyInfoVO.getProdEmergencyResponseIntervalsList()){ for (ProdEmergencyResponseIntervalsDO prodEmergencyResponseIntervals : prodServiceVO.prodEmergencyInfoVO.getProdEmergencyResponseIntervalsList()){
prodEmergencyResponseIntervals.setConfigId(prodEmergencyResponse.getId()); prodEmergencyResponseIntervals.setConfigId(prodEmergencyResponse.getId());
prodEmergencyResponseIntervalsMapper.insert(prodEmergencyResponseIntervals); prodEmergencyResponseIntervalsMapper.insert(prodEmergencyResponseIntervals);
} }
}else {
ProdEmergencyResponseDO prodEmergencyResponse = BeanUtils.toBean(prodServiceVO.prodEmergencyInfoVO, ProdEmergencyResponseDO.class);
if(prodEmergencyResponse!=null){
prodEmergencyResponseMapper.updateById(prodEmergencyResponse);
prodEmergencyResponseIntervalsMapper.deleteIntervals(prodEmergencyResponse.getId());
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())){
productOrderLimitMapper.updateById(prodServiceVO.productOrderLimitVO); ProductOrderLimitDO orderLimit= productOrderLimitMapper.selectOne(new LambdaQueryWrapper<ProductOrderLimitDO>()
.eq(ProductOrderLimitDO::getProdId, prodServiceVO.getProdId()));
if(orderLimit==null){
prod.setOrderLimitSwitch(BaseEnum.YES_ONE.getKey());
ProductOrderLimitDO productOrderLimit = prodServiceVO.getProductOrderLimitVO();
productOrderLimit.setProdId(prod.getProdId());
productOrderLimitMapper.insert(productOrderLimit);
}else {
productOrderLimitMapper.updateById(prodServiceVO.getProductOrderLimitVO());
}
} }
//特殊时段设置 //特殊时段设置
if(Objects.equals(prodServiceVO.getAdditionalSwitch(),BaseEnum.YES_ONE.getKey())){ if(Objects.equals(prodServiceVO.getAdditionalSwitch(),BaseEnum.YES_ONE.getKey())){
for (ProdAdditionalFeeDatesDO prodAdditionalFeeDates : prodServiceVO.getProdAdditionalFeeDatesList()){ for (ProdAdditionalFeeDatesDO prodAdditionalFeeDates : prodServiceVO.getProdAdditionalFeeDatesList()){
prodAdditionalFeeDatesMapper.updateById(prodAdditionalFeeDates); if(prodAdditionalFeeDates.getId()==null){
prodAdditionalFeeDates.setProdId(prodServiceVO.getProdId());
prodAdditionalFeeDatesMapper.insert(prodAdditionalFeeDates);
}else {
prodAdditionalFeeDatesMapper.updateById(prodAdditionalFeeDates);
}
} }
} }
//特殊日期设置 //特殊日期设置
if(Objects.equals(prodServiceVO.getAdditionalFeeSwitch(),BaseEnum.YES_ONE.getKey())){ if(Objects.equals(prodServiceVO.getAdditionalFeeSwitch(),BaseEnum.YES_ONE.getKey())){
for (ProdAdditionalFeePeriodsDO prodAdditionalFeePeriods : prodServiceVO.getProdAdditionalFeePeriodsList()){ for (ProdAdditionalFeePeriodsDO prodAdditionalFeePeriods : prodServiceVO.getProdAdditionalFeePeriodsList()){
prodAdditionalFeePeriodsMapper.updateById(prodAdditionalFeePeriods); if(prodAdditionalFeePeriods.getId()==null){
prodAdditionalFeePeriods.setProdId(prodServiceVO.getProdId());
prodAdditionalFeePeriodsMapper.insert(prodAdditionalFeePeriods);
}else {
prodAdditionalFeePeriodsMapper.updateById(prodAdditionalFeePeriods);
}
} }
} }
//体重设置 //体重设置
if(Objects.equals(prodServiceVO.getWeightSwitch(),BaseEnum.YES_ONE.getKey())){ if(Objects.equals(prodServiceVO.getWeightSwitch(),BaseEnum.YES_ONE.getKey())){
prodWeightRangePricesMapper.updateById(prodServiceVO.prodWeightConfig); 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());
}
} }
prodMapper.updateById(prod); prodMapper.updateById(prod);
} }
@@ -302,12 +372,17 @@ public class ProdServiceImpl implements ProdService {
} }
@Override @Override
public PageResult<SkuRecycleBinVO> getProdRecycleBinPageList(ProdRecycleBinVO prodRecycleBinVO){ public PageResult<ProdListVO> getProdRecycleBinPageList(ProdRecycleBinVO prodRecycleBinVO){
IPage<SkuRecycleBinVO> prodPageList = prodMapper.getProdRecycleBinPageList(MyBatisUtils.buildPage(prodRecycleBinVO), prodRecycleBinVO.getDeleteTime(), prodRecycleBinVO.getProdName()); IPage<ProdListVO> prodPageList = prodMapper.getProdRecycleBinPageList(MyBatisUtils.buildPage(prodRecycleBinVO), prodRecycleBinVO.getDeleteTime(), prodRecycleBinVO.getProdName());
for(SkuRecycleBinVO prodPage : prodPageList.getRecords()){ for(ProdListVO prodPage : prodPageList.getRecords()){
prodPage.setRemainingDays(DateUtils.getRemainingDays(prodPage.getDeleteTime())); prodPage.setRemainingDays(DateUtils.getRemainingDays(prodPage.getDeleteTime()));
} }
return new PageResult<>(prodPageList.getRecords(),prodPageList.getTotal()); return new PageResult<>(prodPageList.getRecords(),prodPageList.getTotal());
} }
@Override
public void restoreProdList(List<Long> ids) {
prodMapper.batchRestoreProd(ids);
}
} }

View File

@@ -23,6 +23,8 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import com.tashow.cloud.common.pojo.PageResult; import com.tashow.cloud.common.pojo.PageResult;
import com.tashow.cloud.common.pojo.PageParam; import com.tashow.cloud.common.pojo.PageParam;
import com.tashow.cloud.common.util.object.BeanUtils; import com.tashow.cloud.common.util.object.BeanUtils;
@@ -76,14 +78,14 @@ public class SkuServiceImpl implements SkuService {
@Transactional @Transactional
public void createSkuExtend(SkuExtendVO skuExtendVO) { public void createSkuExtend(SkuExtendVO skuExtendVO) {
//接运车辆配置 //接运车辆配置
if(Objects.equals(skuExtendVO.getTransportCarSwitch(),BaseEnum.YES_ONE.getKey())){ if (Objects.equals(skuExtendVO.getTransportCarSwitch(), BaseEnum.YES_ONE.getKey())) {
SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO(); SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO();
skuServicesFormDO.setServiceName(ServiceTypeEnum.TRANSPORT_CAR_CONFIG.getDescription()); skuServicesFormDO.setServiceName(ServiceTypeEnum.TRANSPORT_CAR_CONFIG.getDescription());
skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey());
skuServicesFormDO.setType(ServiceTypeEnum.TRANSPORT_CAR_CONFIG.getCode()); skuServicesFormDO.setType(ServiceTypeEnum.TRANSPORT_CAR_CONFIG.getCode());
skuServicesFormDO.setName(skuExtendVO.getSkuFormName()); skuServicesFormDO.setName(skuExtendVO.getSkuFormName());
skuServicesFormMapper.insert(skuServicesFormDO); skuServicesFormMapper.insert(skuServicesFormDO);
for(SkuServiceDetailsDO skuServiceDetailsDO:skuExtendVO.getTransportCarList()){ for (SkuServiceDetailsDO skuServiceDetailsDO : skuExtendVO.getTransportCarList()) {
skuServiceDetailsDO.setServiceId(skuServicesFormDO.getId()); skuServiceDetailsDO.setServiceId(skuServicesFormDO.getId());
skuServiceDetailsMapper.insert(skuServiceDetailsDO); skuServiceDetailsMapper.insert(skuServiceDetailsDO);
} }
@@ -93,20 +95,20 @@ public class SkuServiceImpl implements SkuService {
skuServicesForm.setType(ServiceTypeEnum.TRANSPORT_CAR_MATERIAL.getCode()); skuServicesForm.setType(ServiceTypeEnum.TRANSPORT_CAR_MATERIAL.getCode());
skuServicesForm.setName(skuExtendVO.getSkuFormName()); skuServicesForm.setName(skuExtendVO.getSkuFormName());
skuServicesFormMapper.insert(skuServicesForm); skuServicesFormMapper.insert(skuServicesForm);
for(SkuServiceMaterialDO skuServiceMaterialDO:skuExtendVO.getTransportCarMaterialList()){ for (SkuServiceMaterialDO skuServiceMaterialDO : skuExtendVO.getTransportCarMaterialList()) {
skuServiceMaterialDO.setServiceId(skuServicesForm.getId()); skuServiceMaterialDO.setServiceId(skuServicesForm.getId());
skuServiceMaterialMapper.insert(skuServiceMaterialDO); skuServiceMaterialMapper.insert(skuServiceMaterialDO);
} }
} }
//遗体运输目的地配置 //遗体运输目的地配置
if(Objects.equals(skuExtendVO.getTrafficSwitch(),BaseEnum.YES_ONE.getKey())){ if (Objects.equals(skuExtendVO.getTrafficSwitch(), BaseEnum.YES_ONE.getKey())) {
SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO(); SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO();
skuServicesFormDO.setServiceName(ServiceTypeEnum.BODY_TRANSPORT_CONFIG.getDescription()); skuServicesFormDO.setServiceName(ServiceTypeEnum.BODY_TRANSPORT_CONFIG.getDescription());
skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey());
skuServicesFormDO.setType(ServiceTypeEnum.BODY_TRANSPORT_CONFIG.getCode()); skuServicesFormDO.setType(ServiceTypeEnum.BODY_TRANSPORT_CONFIG.getCode());
skuServicesFormDO.setName(skuExtendVO.getSkuFormName()); skuServicesFormDO.setName(skuExtendVO.getSkuFormName());
skuServicesFormMapper.insert(skuServicesFormDO); skuServicesFormMapper.insert(skuServicesFormDO);
for(SkuServiceTransportDO skuServiceTransportDO:skuExtendVO.getTrafficList()){ for (SkuServiceTransportDO skuServiceTransportDO : skuExtendVO.getTrafficList()) {
skuServiceTransportDO.setServiceId(skuServicesFormDO.getId()); skuServiceTransportDO.setServiceId(skuServicesFormDO.getId());
skuServiceTransportMapper.insert(skuServiceTransportDO); skuServiceTransportMapper.insert(skuServiceTransportDO);
} }
@@ -116,20 +118,20 @@ public class SkuServiceImpl implements SkuService {
skuServicesForm.setType(ServiceTypeEnum.BODY_TRANSPORT_MATERIAL.getCode()); skuServicesForm.setType(ServiceTypeEnum.BODY_TRANSPORT_MATERIAL.getCode());
skuServicesForm.setName(skuExtendVO.getSkuFormName()); skuServicesForm.setName(skuExtendVO.getSkuFormName());
skuServicesFormMapper.insert(skuServicesForm); skuServicesFormMapper.insert(skuServicesForm);
for(SkuServiceMaterialDO skuServiceMaterialDO:skuExtendVO.getTrafficMaterialList()){ for (SkuServiceMaterialDO skuServiceMaterialDO : skuExtendVO.getTrafficMaterialList()) {
skuServiceMaterialDO.setServiceId(skuServicesForm.getId()); skuServiceMaterialDO.setServiceId(skuServicesForm.getId());
skuServiceMaterialMapper.insert(skuServiceMaterialDO); skuServiceMaterialMapper.insert(skuServiceMaterialDO);
} }
} }
//遗体清洁配置 //遗体清洁配置
if(Objects.equals(skuExtendVO.getCleanSwitch(),BaseEnum.YES_ONE.getKey())){ if (Objects.equals(skuExtendVO.getCleanSwitch(), BaseEnum.YES_ONE.getKey())) {
SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO(); SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO();
skuServicesFormDO.setServiceName(ServiceTypeEnum.BODY_CLEAN_CONFIG.getDescription()); skuServicesFormDO.setServiceName(ServiceTypeEnum.BODY_CLEAN_CONFIG.getDescription());
skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey());
skuServicesFormDO.setType(ServiceTypeEnum.BODY_CLEAN_CONFIG.getCode()); skuServicesFormDO.setType(ServiceTypeEnum.BODY_CLEAN_CONFIG.getCode());
skuServicesFormDO.setName(skuExtendVO.getSkuFormName()); skuServicesFormDO.setName(skuExtendVO.getSkuFormName());
skuServicesFormMapper.insert(skuServicesFormDO); skuServicesFormMapper.insert(skuServicesFormDO);
for(SkuServiceDetailsDO skuServiceDetails:skuExtendVO.getCleanList()){ for (SkuServiceDetailsDO skuServiceDetails : skuExtendVO.getCleanList()) {
skuServiceDetails.setServiceId(skuServicesFormDO.getId()); skuServiceDetails.setServiceId(skuServicesFormDO.getId());
skuServiceDetailsMapper.insert(skuServiceDetails); skuServiceDetailsMapper.insert(skuServiceDetails);
} }
@@ -139,20 +141,20 @@ public class SkuServiceImpl implements SkuService {
skuServicesForm.setType(ServiceTypeEnum.BODY_CLEAN_MATERIAL.getCode()); skuServicesForm.setType(ServiceTypeEnum.BODY_CLEAN_MATERIAL.getCode());
skuServicesForm.setName(skuExtendVO.getSkuFormName()); skuServicesForm.setName(skuExtendVO.getSkuFormName());
skuServicesFormMapper.insert(skuServicesForm); skuServicesFormMapper.insert(skuServicesForm);
for(SkuServiceMaterialDO skuServiceMaterialDO:skuExtendVO.getCleanMaterialList()){ for (SkuServiceMaterialDO skuServiceMaterialDO : skuExtendVO.getCleanMaterialList()) {
skuServiceMaterialDO.setServiceId(skuServicesForm.getId()); skuServiceMaterialDO.setServiceId(skuServicesForm.getId());
skuServiceMaterialMapper.insert(skuServiceMaterialDO); skuServiceMaterialMapper.insert(skuServiceMaterialDO);
} }
} }
//追思告别配置 //追思告别配置
if(Objects.equals(skuExtendVO.getReflectionSwitch(),BaseEnum.YES_ONE.getKey())){ if (Objects.equals(skuExtendVO.getReflectionSwitch(), BaseEnum.YES_ONE.getKey())) {
SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO(); SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO();
skuServicesFormDO.setServiceName(ServiceTypeEnum.MEMORIAL_CONFIG.getDescription()); skuServicesFormDO.setServiceName(ServiceTypeEnum.MEMORIAL_CONFIG.getDescription());
skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey());
skuServicesFormDO.setType(ServiceTypeEnum.MEMORIAL_CONFIG.getCode()); skuServicesFormDO.setType(ServiceTypeEnum.MEMORIAL_CONFIG.getCode());
skuServicesFormDO.setName(skuExtendVO.getSkuFormName()); skuServicesFormDO.setName(skuExtendVO.getSkuFormName());
skuServicesFormMapper.insert(skuServicesFormDO); skuServicesFormMapper.insert(skuServicesFormDO);
for(SkuServiceDetailsDO skuServiceDetails:skuExtendVO.getReflectionList()){ for (SkuServiceDetailsDO skuServiceDetails : skuExtendVO.getReflectionList()) {
skuServiceDetails.setServiceId(skuServicesFormDO.getId()); skuServiceDetails.setServiceId(skuServicesFormDO.getId());
skuServiceDetailsMapper.insert(skuServiceDetails); skuServiceDetailsMapper.insert(skuServiceDetails);
} }
@@ -162,21 +164,21 @@ public class SkuServiceImpl implements SkuService {
skuServicesForm.setType(ServiceTypeEnum.MEMORIAL_MATERIAL.getCode()); skuServicesForm.setType(ServiceTypeEnum.MEMORIAL_MATERIAL.getCode());
skuServicesForm.setName(skuExtendVO.getSkuFormName()); skuServicesForm.setName(skuExtendVO.getSkuFormName());
skuServicesFormMapper.insert(skuServicesForm); skuServicesFormMapper.insert(skuServicesForm);
for(SkuServiceMaterialDO skuServiceMaterialDO:skuExtendVO.getReflectionMaterialList()){ for (SkuServiceMaterialDO skuServiceMaterialDO : skuExtendVO.getReflectionMaterialList()) {
skuServiceMaterialDO.setServiceId(skuServicesForm.getId()); skuServiceMaterialDO.setServiceId(skuServicesForm.getId());
skuServiceMaterialMapper.insert(skuServiceMaterialDO); skuServiceMaterialMapper.insert(skuServiceMaterialDO);
} }
} }
//遗体火化配置 //遗体火化配置
if(Objects.equals(skuExtendVO.getCremationSwitch(),BaseEnum.YES_ONE.getKey())){ if (Objects.equals(skuExtendVO.getCremationSwitch(), BaseEnum.YES_ONE.getKey())) {
SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO(); SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO();
skuServicesFormDO.setServiceName(ServiceTypeEnum.CREMATION_CONFIG.getDescription()); skuServicesFormDO.setServiceName(ServiceTypeEnum.CREMATION_CONFIG.getDescription());
skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey());
skuServicesFormDO.setType(ServiceTypeEnum.CREMATION_CONFIG.getCode()); skuServicesFormDO.setType(ServiceTypeEnum.CREMATION_CONFIG.getCode());
skuServicesFormDO.setName(skuExtendVO.getSkuFormName()); skuServicesFormDO.setName(skuExtendVO.getSkuFormName());
skuServicesFormMapper.insert(skuServicesFormDO); skuServicesFormMapper.insert(skuServicesFormDO);
for(SkuServiceDetailsDO skuServiceDetails:skuExtendVO.getCremationList()){ for (SkuServiceDetailsDO skuServiceDetails : skuExtendVO.getCremationList()) {
skuServiceDetails.setServiceId(skuServicesFormDO.getId()); skuServiceDetails.setServiceId(skuServicesFormDO.getId());
skuServiceDetailsMapper.insert(skuServiceDetails); skuServiceDetailsMapper.insert(skuServiceDetails);
} }
@@ -186,21 +188,21 @@ public class SkuServiceImpl implements SkuService {
skuServicesForm.setType(ServiceTypeEnum.CREMATION_MATERIAL.getCode()); skuServicesForm.setType(ServiceTypeEnum.CREMATION_MATERIAL.getCode());
skuServicesForm.setName(skuExtendVO.getSkuFormName()); skuServicesForm.setName(skuExtendVO.getSkuFormName());
skuServicesFormMapper.insert(skuServicesForm); skuServicesFormMapper.insert(skuServicesForm);
for(SkuServiceMaterialDO skuServiceMaterialDO:skuExtendVO.getCremationMaterialList()){ for (SkuServiceMaterialDO skuServiceMaterialDO : skuExtendVO.getCremationMaterialList()) {
skuServiceMaterialDO.setServiceId(skuServicesForm.getId()); skuServiceMaterialDO.setServiceId(skuServicesForm.getId());
skuServiceMaterialMapper.insert(skuServiceMaterialDO); skuServiceMaterialMapper.insert(skuServiceMaterialDO);
} }
} }
//骨灰处理配置 //骨灰处理配置
if(Objects.equals(skuExtendVO.getAshProcessingSwitch(),BaseEnum.YES_ONE.getKey())){ if (Objects.equals(skuExtendVO.getAshProcessingSwitch(), BaseEnum.YES_ONE.getKey())) {
SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO(); SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO();
skuServicesFormDO.setServiceName(ServiceTypeEnum.ASH_PROCESSING_CONFIG.getDescription()); skuServicesFormDO.setServiceName(ServiceTypeEnum.ASH_PROCESSING_CONFIG.getDescription());
skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey());
skuServicesFormDO.setType(ServiceTypeEnum.ASH_PROCESSING_CONFIG.getCode()); skuServicesFormDO.setType(ServiceTypeEnum.ASH_PROCESSING_CONFIG.getCode());
skuServicesFormDO.setName(skuExtendVO.getSkuFormName()); skuServicesFormDO.setName(skuExtendVO.getSkuFormName());
skuServicesFormMapper.insert(skuServicesFormDO); skuServicesFormMapper.insert(skuServicesFormDO);
for(SkuServiceDetailsDO skuServiceDetails:skuExtendVO.getAshProcessingList()){ for (SkuServiceDetailsDO skuServiceDetails : skuExtendVO.getAshProcessingList()) {
skuServiceDetails.setServiceId(skuServicesFormDO.getId()); skuServiceDetails.setServiceId(skuServicesFormDO.getId());
skuServiceDetailsMapper.insert(skuServiceDetails); skuServiceDetailsMapper.insert(skuServiceDetails);
} }
@@ -210,7 +212,7 @@ public class SkuServiceImpl implements SkuService {
skuForm.setType(ServiceTypeEnum.ASH_PROCESSING_DELIVERY.getCode()); skuForm.setType(ServiceTypeEnum.ASH_PROCESSING_DELIVERY.getCode());
skuForm.setName(skuExtendVO.getSkuFormName()); skuForm.setName(skuExtendVO.getSkuFormName());
skuServicesFormMapper.insert(skuForm); skuServicesFormMapper.insert(skuForm);
for(SkuServiceDeliverDO skuServiceDeliverDO:skuExtendVO.getAshProcessingDeliverList()){ for (SkuServiceDeliverDO skuServiceDeliverDO : skuExtendVO.getAshProcessingDeliverList()) {
skuServiceDeliverDO.setServiceId(skuForm.getId()); skuServiceDeliverDO.setServiceId(skuForm.getId());
skuServiceDeliverMapper.insert(skuServiceDeliverDO); skuServiceDeliverMapper.insert(skuServiceDeliverDO);
} }
@@ -220,35 +222,35 @@ public class SkuServiceImpl implements SkuService {
skuServicesForm.setType(ServiceTypeEnum.ASH_PROCESSING_MATERIAL.getCode()); skuServicesForm.setType(ServiceTypeEnum.ASH_PROCESSING_MATERIAL.getCode());
skuServicesForm.setName(skuExtendVO.getSkuFormName()); skuServicesForm.setName(skuExtendVO.getSkuFormName());
skuServicesFormMapper.insert(skuServicesForm); skuServicesFormMapper.insert(skuServicesForm);
for(SkuServiceMaterialDO skuServiceMaterialDO:skuExtendVO.getAshProcessingMaterialList()){ for (SkuServiceMaterialDO skuServiceMaterialDO : skuExtendVO.getAshProcessingMaterialList()) {
skuServiceMaterialDO.setServiceId(skuServicesForm.getId()); skuServiceMaterialDO.setServiceId(skuServicesForm.getId());
skuServiceMaterialMapper.insert(skuServiceMaterialDO); skuServiceMaterialMapper.insert(skuServiceMaterialDO);
} }
} }
//骨灰装殓配置 //骨灰装殓配置
if(Objects.equals(skuExtendVO.getBoneashSwitch(),BaseEnum.YES_ONE.getKey())){ if (Objects.equals(skuExtendVO.getBoneashSwitch(), BaseEnum.YES_ONE.getKey())) {
SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO(); SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO();
skuServicesFormDO.setServiceName(ServiceTypeEnum.BONE_ASH_CONFIG.getDescription()); skuServicesFormDO.setServiceName(ServiceTypeEnum.BONE_ASH_CONFIG.getDescription());
skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey());
skuServicesFormDO.setType(ServiceTypeEnum.BONE_ASH_CONFIG.getCode()); skuServicesFormDO.setType(ServiceTypeEnum.BONE_ASH_CONFIG.getCode());
skuServicesFormDO.setName(skuExtendVO.getSkuFormName()); skuServicesFormDO.setName(skuExtendVO.getSkuFormName());
skuServicesFormMapper.insert(skuServicesFormDO); skuServicesFormMapper.insert(skuServicesFormDO);
for(SkuServiceDetailsDO skuServiceDetails:skuExtendVO.getBoneashList()){ for (SkuServiceDetailsDO skuServiceDetails : skuExtendVO.getBoneashList()) {
skuServiceDetails.setServiceId(skuServicesFormDO.getId()); skuServiceDetails.setServiceId(skuServicesFormDO.getId());
skuServiceDetailsMapper.insert(skuServiceDetails); skuServiceDetailsMapper.insert(skuServiceDetails);
} }
} }
//纪念品配置 //纪念品配置
if(Objects.equals(skuExtendVO.getSouvenirSwitch(),BaseEnum.YES_ONE.getKey())){ if (Objects.equals(skuExtendVO.getSouvenirSwitch(), BaseEnum.YES_ONE.getKey())) {
SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO(); SkuServicesFormDO skuServicesFormDO = new SkuServicesFormDO();
skuServicesFormDO.setServiceName(ServiceTypeEnum.SOUVENIR_CONFIG.getDescription()); skuServicesFormDO.setServiceName(ServiceTypeEnum.SOUVENIR_CONFIG.getDescription());
skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey()); skuServicesFormDO.setIsEnabled(BaseEnum.YES_ONE.getKey());
skuServicesFormDO.setType(ServiceTypeEnum.SOUVENIR_CONFIG.getCode()); skuServicesFormDO.setType(ServiceTypeEnum.SOUVENIR_CONFIG.getCode());
skuServicesFormDO.setName(skuExtendVO.getSkuFormName()); skuServicesFormDO.setName(skuExtendVO.getSkuFormName());
skuServicesFormMapper.insert(skuServicesFormDO); skuServicesFormMapper.insert(skuServicesFormDO);
for(SkuServiceDetailsDO skuServiceDetails:skuExtendVO.getSouvenirList()){ for (SkuServiceDetailsDO skuServiceDetails : skuExtendVO.getSouvenirList()) {
skuServiceDetails.setServiceId(skuServicesFormDO.getId()); skuServiceDetails.setServiceId(skuServicesFormDO.getId());
skuServiceDetailsMapper.insert(skuServiceDetails); skuServiceDetailsMapper.insert(skuServiceDetails);
} }
@@ -258,7 +260,7 @@ public class SkuServiceImpl implements SkuService {
skuForm.setType(ServiceTypeEnum.SOUVENIR_DELIVERY.getCode()); skuForm.setType(ServiceTypeEnum.SOUVENIR_DELIVERY.getCode());
skuForm.setName(skuExtendVO.getSkuFormName()); skuForm.setName(skuExtendVO.getSkuFormName());
skuServicesFormMapper.insert(skuForm); skuServicesFormMapper.insert(skuForm);
for(SkuServiceDeliverDO skuServiceDeliverDO:skuExtendVO.getSouvenirDeliverList()){ for (SkuServiceDeliverDO skuServiceDeliverDO : skuExtendVO.getSouvenirDeliverList()) {
skuServiceDeliverDO.setServiceId(skuForm.getId()); skuServiceDeliverDO.setServiceId(skuForm.getId());
skuServiceDeliverMapper.insert(skuServiceDeliverDO); skuServiceDeliverMapper.insert(skuServiceDeliverDO);
} }
@@ -374,6 +376,7 @@ public class SkuServiceImpl implements SkuService {
// 4. 返回组装好的对象 // 4. 返回组装好的对象
return skuExtendVO; return skuExtendVO;
} }
@Override @Override
public void updateSku(SkuSaveReqVO updateReqVO) { public void updateSku(SkuSaveReqVO updateReqVO) {
// 校验存在 // 校验存在
@@ -391,73 +394,77 @@ public class SkuServiceImpl implements SkuService {
List<SkuDO> skuList = skuPropVO.getSkuList(); List<SkuDO> skuList = skuPropVO.getSkuList();
List<SkuDO> skuListNew = new ArrayList<>(); List<SkuDO> skuListNew = new ArrayList<>();
List<SkuDO> skuListUpdate = new ArrayList<>(); List<SkuDO> skuListUpdate = new ArrayList<>();
for(SkuDO sku : skuList){ for (SkuDO sku : skuList) {
if(Objects.equals(BaseEnum.YES_ONE.getKey(), sku.getIsExist())){ if (Objects.equals(BaseEnum.YES_ONE.getKey(), sku.getIsExist())) {
sku.setProdId(skuPropVO.getProdId()); sku.setProdId(skuPropVO.getProdId());
skuListNew.add(sku); skuListNew.add(sku);
}else { } else {
skuListUpdate.add(sku); skuListUpdate.add(sku);
} }
} }
if(CollUtil.isNotEmpty(skuListNew)){ if (CollUtil.isNotEmpty(skuListNew)) {
skuMapper.insertBatch(skuListNew); skuMapper.insertBatch(skuListNew);
} }
if(CollUtil.isNotEmpty(skuListUpdate)){ if (CollUtil.isNotEmpty(skuListUpdate)) {
skuMapper.updateBatch(skuListUpdate); skuMapper.updateBatch(skuListUpdate);
} }
} }
prodExtendMapper.updateByProdId(skuPropVO.getProdId(),skuPropVO.getIsDisable(),skuPropVO.getIsExpire()); prodExtendMapper.updateByProdId(skuPropVO.getProdId(), skuPropVO.getIsDisable(), skuPropVO.getIsExpire());
//保存规格 //保存规格
prodPropService.updateProdPropAndValues(skuPropVO); prodPropService.updateProdPropAndValues(skuPropVO);
} }
@Override @Override
public void deleteProp(Long id) { public void deleteProp(Long id) {
ProdPropValueDO prodPropValueDO =prodPropValueService.getById(id); ProdPropValueDO prodPropValueDO = prodPropValueService.getById(id);
prodPropValueService.deleteProdPropValue(id); prodPropValueService.deleteProdPropValue(id);
List<SkuDO> skuDOList = skuMapper.getSkuListByName(prodPropValueDO.getPropValue()); List<SkuDO> skuDOList = skuMapper.getSkuListByName(prodPropValueDO.getPropValue());
List<SkuDO> skuDOList1 = new ArrayList<>(); List<Long> skuids = new ArrayList<>();
for(SkuDO skuDO : skuDOList){ for (SkuDO skuDO : skuDOList) {
if(skuDO.getProperties()!=null){ if (skuDO.getProperties() != null) {
String[] split = skuDO.getProperties().split(","); String[] split = skuDO.getProperties().split(",");
for (String s : split){ for (String s : split) {
if(s.equals(prodPropValueDO.getPropValue())){ if (s.equals(prodPropValueDO.getPropValue())) {
skuDOList1.add(skuDO); skuids.add(skuDO.getSkuId());
} }
} }
} }
} }
skuMapper.deleteByIds(skuDOList1); if (CollUtil.isNotEmpty(skuids)) {
skuMapper.batchSkuDeleted(skuids);
}
} }
@Override @Override
public void disableProp(Long id) { public void disableProp(Long id) {
ProdPropValueDO prodPropValueDO =prodPropValueService.getById(id); ProdPropValueDO prodPropValueDO = prodPropValueService.getById(id);
prodPropValueDO.setState(BaseEnum.YES_ONE.getKey()); prodPropValueDO.setState(BaseEnum.YES_ONE.getKey());
prodPropValueService.updateById(prodPropValueDO); prodPropValueService.updateById(prodPropValueDO);
List<SkuDO> skuDOList = skuMapper.getSkuListByName(prodPropValueDO.getPropValue()); List<SkuDO> skuDOList = skuMapper.getSkuListByName(prodPropValueDO.getPropValue());
List<SkuDO> skuDOList1 = new ArrayList<>(); List<SkuDO> skuDOList1 = new ArrayList<>();
for(SkuDO skuDO : skuDOList){ for (SkuDO skuDO : skuDOList) {
if(skuDO.getProperties()!=null){ if (skuDO.getProperties() != null) {
String[] split = skuDO.getProperties().split(","); String[] split = skuDO.getProperties().split(",");
for (String s : split){ for (String s : split) {
if(s.equals(prodPropValueDO.getPropValue())){ if (s.equals(prodPropValueDO.getPropValue())) {
skuDO.setIsShelf(BaseEnum.NO_ZERO.getKey()); skuDO.setIsShelf(BaseEnum.NO_ZERO.getKey());
skuDOList1.add(skuDO); skuDOList1.add(skuDO);
} }
} }
} }
} }
skuMapper.updateBatch(skuDOList1); if (CollUtil.isNotEmpty(skuDOList1)) {
skuMapper.updateBatch(skuDOList1);
}
} }
@Override @Override
public SkuPropInfoVO getSKuPropList(Long prodId) { public SkuPropInfoVO getSKuPropList(Long prodId) {
LambdaQueryWrapper<ProdPropDO> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ProdPropDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProdPropDO::getProdId,prodId); wrapper.eq(ProdPropDO::getProdId, prodId);
wrapper.eq(ProdPropDO::getState, BaseEnum.YES_ONE.getKey()) wrapper.eq(ProdPropDO::getState, BaseEnum.YES_ONE.getKey())
.orderByAsc(ProdPropDO::getSort); .orderByAsc(ProdPropDO::getSort);
List<ProdPropDO> list = prodPropService.list(wrapper); List<ProdPropDO> list = prodPropService.list(wrapper);
list.forEach(prop -> { list.forEach(prop -> {
List<ProdPropValueDO> values = prodPropValueService.list( List<ProdPropValueDO> values = prodPropValueService.list(
@@ -465,14 +472,6 @@ public class SkuServiceImpl implements SkuService {
.eq(ProdPropValueDO::getPropId, prop.getId()) .eq(ProdPropValueDO::getPropId, prop.getId())
.orderByAsc(ProdPropValueDO::getSort) .orderByAsc(ProdPropValueDO::getSort)
); );
/* LambdaQueryWrapper<ProdPropValueDO> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.eq(ProdPropValueDO::getPropId,prop.getPropId());
wrapper1.eq(ProdPropValueDO::getState, BaseEnum.YES_ONE.getKey());
if (merchantComm.getScore() != null) {
wrapper.eq("score", merchantComm.getScore());
}
wrapper1.orderByDesc(ProdPropValueDO::getSort);*/
prop.setProdPropValues(values); prop.setProdPropValues(values);
}); });
SkuPropInfoVO skuPropInfoVO = new SkuPropInfoVO(); SkuPropInfoVO skuPropInfoVO = new SkuPropInfoVO();
@@ -484,16 +483,146 @@ public class SkuServiceImpl implements SkuService {
return skuPropInfoVO; return skuPropInfoVO;
} }
/* @Override
public SkuPropInfoVO getSKuPropList(Long prodId, Integer isExpire, Integer state) {
if (prodId == null) {
throw new IllegalArgumentException("prodId 不能为空");
}
// 1. 查询商品扩展信息(用于默认值)
ProdExtendDO extendDO = prodExtendService.getOne(
new LambdaQueryWrapper<ProdExtendDO>().eq(ProdExtendDO::getProdId, prodId)
);
if (extendDO == null) {
// 如果没有扩展信息,可返回空 VO 或抛异常,根据业务决定
return buildEmptySkuPropInfoVO(prodId);
}
// 2. 设置默认值isExpire 和 state
Integer finalIsExpire = isExpire != null ? isExpire : extendDO.getIsExpire();
Integer finalState = state != null ? state : extendDO.getIsDisable(); // 注意:这里你用的是 isDisable 当 state需确认业务逻辑
// 3. 查询有效属性列表
LambdaQueryWrapper<ProdPropDO> propWrapper = new LambdaQueryWrapper<>();
propWrapper.eq(ProdPropDO::getProdId, prodId)
.eq(ProdPropDO::getState, BaseEnum.YES_ONE.getKey()) // 只查启用的属性
.orderByAsc(ProdPropDO::getSort);
List<ProdPropDO> propList = prodPropService.list(propWrapper);
if (propList.isEmpty()) {
return buildSkuPropInfoVO(prodId, propList, extendDO);
}
// 4. 提取所有属性 ID用于批量查询属性值
List<Long> propIds = propList.stream()
.map(ProdPropDO::getId)
.collect(Collectors.toList());
// 5. 构建属性值查询条件(批量查询)
LambdaQueryWrapper<ProdPropValueDO> valueWrapper = new LambdaQueryWrapper<>();
valueWrapper.in(ProdPropValueDO::getPropId, propIds)
.eq(ProdPropValueDO::getState, BaseEnum.YES_ONE.getKey()); // 启用状态
// 根据 isExpire 过滤(注意字段是 getIsExpire
if (BaseEnum.NO_ZERO.getKey().equals(finalIsExpire)) {
valueWrapper.eq(ProdPropValueDO::getIsExpire, BaseEnum.NO_ZERO.getKey());
} else {
valueWrapper.eq(ProdPropValueDO::getIsExpire, BaseEnum.YES_ONE.getKey());
}
// 根据 state 过滤(注意:这里你用的是 getState 字段)
if (BaseEnum.NO_ZERO.getKey().equals(finalState)) {
valueWrapper.eq(ProdPropValueDO::getState, BaseEnum.NO_ZERO.getKey());
} else {
valueWrapper.eq(ProdPropValueDO::getState, BaseEnum.YES_ONE.getKey());
}
valueWrapper.orderByDesc(ProdPropValueDO::getSort);
List<ProdPropValueDO> valueList = prodPropValueService.list(valueWrapper);
// 6. 按 propId 分组,便于后续关联
Map<Long, List<ProdPropValueDO>> valueMap = valueList.stream()
.collect(Collectors.groupingBy(ProdPropValueDO::getPropId));
// 7. 关联属性与属性值
propList.forEach(prop ->
prop.setProdPropValues(valueMap.getOrDefault(prop.getId(), Collections.emptyList()))
);
// 8. 构建并返回 VO
return buildSkuPropInfoVO(prodId, propList, extendDO);
}*/
/* @Override
public SkuPropInfoVO getSKuPropList(Long prodId,Integer isExpire,Integer state) {
LambdaQueryWrapper<ProdPropDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProdPropDO::getProdId,prodId);
wrapper.eq(ProdPropDO::getState, BaseEnum.YES_ONE.getKey())
.orderByAsc(ProdPropDO::getSort);
ProdExtendDO prodExtendDO = prodExtendService.getOne(new LambdaQueryWrapper<ProdExtendDO>().eq(ProdExtendDO::getProdId, prodId));
if(isExpire==null){
isExpire = prodExtendDO.getIsExpire();
}
if(state==null){
state = prodExtendDO.getIsDisable();
}
List<ProdPropDO> list = prodPropService.list(wrapper);
list.forEach(prop -> {
LambdaQueryWrapper<ProdPropValueDO> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.eq(ProdPropValueDO::getPropId,prop.getId());
wrapper1.eq(ProdPropValueDO::getState, BaseEnum.YES_ONE.getKey());
if (isExpire!= null&& Objects.equals(BaseEnum.NO_ZERO.getKey(),isExpire) ) {
wrapper1.eq(ProdPropValueDO::getIsExpire, BaseEnum.NO_ZERO.getKey());
}else {
wrapper1.eq(ProdPropValueDO::getIsExpire, BaseEnum.YES_ONE.getKey());
}
if (state!= null&& Objects.equals(BaseEnum.NO_ZERO.getKey(),state) ) {
wrapper1.eq(ProdPropValueDO::getState, BaseEnum.NO_ZERO.getKey());
}else {
wrapper1.eq(ProdPropValueDO::getState, BaseEnum.YES_ONE.getKey());
}
wrapper1.orderByDesc(ProdPropValueDO::getSort);
List<ProdPropValueDO> lists = prodPropValueService.list(wrapper1);
prop.setProdPropValues(lists);
});
SkuPropInfoVO skuPropInfoVO = new SkuPropInfoVO();
skuPropInfoVO.setProdId(prodId);
skuPropInfoVO.setProdPropSaveReqVO(list);
skuPropInfoVO.setIsDisable(prodExtendDO.getIsDisable());
skuPropInfoVO.setIsExpire(prodExtendDO.getIsExpire());
return skuPropInfoVO;
}*/
// 封装构建 VO 的逻辑,避免重复代码
private SkuPropInfoVO buildSkuPropInfoVO(Long prodId, List<ProdPropDO> propList, ProdExtendDO extendDO) {
SkuPropInfoVO vo = new SkuPropInfoVO();
vo.setProdId(prodId);
vo.setProdPropSaveReqVO(propList);
vo.setIsDisable(extendDO.getIsDisable());
vo.setIsExpire(extendDO.getIsExpire());
return vo;
}
// 空情况处理
private SkuPropInfoVO buildEmptySkuPropInfoVO(Long prodId) {
SkuPropInfoVO vo = new SkuPropInfoVO();
vo.setProdId(prodId);
vo.setProdPropSaveReqVO(Collections.emptyList());
vo.setIsDisable(BaseEnum.NO_ZERO.getKey()); // 默认值
vo.setIsExpire(BaseEnum.NO_ZERO.getKey());
return vo;
}
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void deleteSku(Long id) { public void deleteSku(Long id) {
// 校验存在 // 校验存在
validateSkuExists(id); validateSkuExists(id);
SkuDO sku = new SkuDO(); SkuDO prodSku = skuMapper.selectById(id);
sku.setSkuId(id);
sku.setDeleteTime(new Date());
SkuDO prodSku = skuMapper.selectById( id);
// Step 1: 获取该商品下所有未删除的 SKU 的 properties // Step 1: 获取该商品下所有未删除的 SKU 的 properties
List<String> activeProperties = skuMapper.selectPropertiesByProdIdAndNotDeleted(prodSku.getProdId()); List<String> activeProperties = skuMapper.selectPropertiesByProdIdAndNotDeleted(prodSku.getProdId());
@@ -508,7 +637,7 @@ public class SkuServiceImpl implements SkuService {
} }
} }
// 删除 // 删除
skuMapper.deleteById(sku); skuMapper.deleteBySkuId(id);
// Step 3: 查询该商品下所有 rule=1 的属性值(销售属性) // Step 3: 查询该商品下所有 rule=1 的属性值(销售属性)
List<ProdPropValueDO> allPropValues = prodPropValueMapper.selectSalesValuesByProdId(prodSku.getProdId()); List<ProdPropValueDO> allPropValues = prodPropValueMapper.selectSalesValuesByProdId(prodSku.getProdId());
// Step 4: 遍历每个属性值,检查是否还在被使用 // Step 4: 遍历每个属性值,检查是否还在被使用
@@ -518,7 +647,7 @@ public class SkuServiceImpl implements SkuService {
if (!currentlyUsedValues.contains(value)) { if (!currentlyUsedValues.contains(value)) {
// 可以安全删除该属性值 // 可以安全删除该属性值
// 可以安全禁用该属性值 // 可以安全禁用该属性值
ProdPropValueDO prodPropValueDO = new ProdPropValueDO(); ProdPropValueDO prodPropValueDO = new ProdPropValueDO();
prodPropValueDO.setId(pv.getId()); prodPropValueDO.setId(pv.getId());
prodPropValueDO.setIsExpire(BaseEnum.YES_ONE.getKey()); prodPropValueDO.setIsExpire(BaseEnum.YES_ONE.getKey());
prodPropValueDO.setDeleteTime(new Date()); prodPropValueDO.setDeleteTime(new Date());
@@ -533,30 +662,22 @@ public class SkuServiceImpl implements SkuService {
if (ids == null || ids.isEmpty()) { if (ids == null || ids.isEmpty()) {
return; return;
} }
// Step 1: 查询这些 SKU 的基本信息(主要是 prod_id // Step 1: 查询这些 SKU 的基本信息(主要是 prod_id
List<SkuDO> skuList = skuMapper.selectByIds(ids); List<SkuDO> skuList = skuMapper.selectByIds(ids);
if (skuList.isEmpty()) { if (skuList.isEmpty()) {
return; return;
} }
Long prodId = skuList.get(0).getProdId(); Long prodId = skuList.get(0).getProdId();
// 校验是否属于同一个商品(可选) // 校验是否属于同一个商品(可选)
boolean allSameProd = skuList.stream().allMatch(s -> s.getProdId().equals(prodId)); boolean allSameProd = skuList.stream().allMatch(s -> s.getProdId().equals(prodId));
if (!allSameProd) { if (!allSameProd) {
throw new IllegalArgumentException("批量删除的 SKU 必须属于同一个商品"); throw new IllegalArgumentException("批量删除的 SKU 必须属于同一个商品");
} }
// Step 3: 获取该商品下【当前仍然未删除】的 SKU 的 properties // Step 3: 获取该商品下【当前仍然未删除】的 SKU 的 properties
List<String> activeProperties = skuMapper.selectPropertiesByProdIdAndNotDeleted(prodId); List<String> activeProperties = skuMapper.selectPropertiesByProdIdAndNotDeleted(prodId);
for (Long id : ids) {
for(Long id:ids){
SkuDO sku = new SkuDO();
sku.setSkuId(id);
sku.setDeleteTime(new Date());
// 删除 // 删除
skuMapper.deleteById(sku); skuMapper.deleteBySkuId(id);
} }
// Step 4: 提取所有仍在使用的属性值(去重 + trim // Step 4: 提取所有仍在使用的属性值(去重 + trim
Set<String> currentlyUsedValues = new HashSet<>(); Set<String> currentlyUsedValues = new HashSet<>();
@@ -568,7 +689,6 @@ public class SkuServiceImpl implements SkuService {
} }
} }
} }
// Step 5: 查询该商品下所有 rule=1 的销售属性值(未删除的) // Step 5: 查询该商品下所有 rule=1 的销售属性值(未删除的)
List<ProdPropValueDO> allPropValues = prodPropValueMapper.selectSalesValuesByProdId(prodId); List<ProdPropValueDO> allPropValues = prodPropValueMapper.selectSalesValuesByProdId(prodId);
@@ -586,12 +706,47 @@ public class SkuServiceImpl implements SkuService {
} }
} }
//恢复SKU
@Override
@Transactional(rollbackFor = Exception.class)
public void restoreSkuList(List<Long> ids) {
List<SkuDO> skuList = skuMapper.selectByIds(ids);
if (skuList.isEmpty()) {
return;
}
Set<String> currentlyUsedValues = new HashSet<>();
for (SkuDO sku : skuList) {
sku.setDeleted(BaseEnum.NO_ZERO.getKey());
skuMapper.updateById(sku);
if (sku.getProperties() != null && !sku.getProperties().trim().isEmpty()) {
String[] values = sku.getProperties().split(",");
for (String v : values) {
currentlyUsedValues.add(v.trim());
}
}
}
//恢复被删除的属性值
if(!currentlyUsedValues.isEmpty()){
Long prodId = skuList.get(0).getProdId();
List<ProdPropValueDO> allPropValues =prodPropValueMapper.selectRestoreProp(prodId);
if(!allPropValues.isEmpty()){
for (ProdPropValueDO pv : allPropValues){
if (currentlyUsedValues.contains(pv.getPropValue())) {
pv.setIsExpire(BaseEnum.NO_ZERO.getKey());
prodPropValueMapper.updateById(pv);
}
}
}
}
}
@Override @Override
public void updatSkuIsShelf(Long id, Integer isShelf) { public void updatSkuIsShelf(Long id, Integer isShelf) {
// 校验存在 // 校验存在
validateSkuExists(id); validateSkuExists(id);
SkuDO prodSku = skuMapper.selectById( id); SkuDO prodSku = skuMapper.selectById(id);
// Step 1: 获取该商品下所有未禁用的 SKU 的 properties // Step 1: 获取该商品下所有未禁用的 SKU 的 properties
List<String> activeProperties = skuMapper.selectPropertiesByProdIdShelf(prodSku.getProdId()); List<String> activeProperties = skuMapper.selectPropertiesByProdIdShelf(prodSku.getProdId());
SkuDO sku = new SkuDO(); SkuDO sku = new SkuDO();
@@ -616,7 +771,7 @@ public class SkuServiceImpl implements SkuService {
// 如果当前属性值不在“活跃使用”列表中,说明没有未删除的 SKU 使用它 // 如果当前属性值不在“活跃使用”列表中,说明没有未删除的 SKU 使用它
if (!currentlyUsedValues.contains(value)) { if (!currentlyUsedValues.contains(value)) {
// 可以安全禁用该属性值 // 可以安全禁用该属性值
ProdPropValueDO prodPropValueDO = new ProdPropValueDO(); ProdPropValueDO prodPropValueDO = new ProdPropValueDO();
prodPropValueDO.setId(pv.getId()); prodPropValueDO.setId(pv.getId());
prodPropValueDO.setState(BaseEnum.NO_ZERO.getKey()); prodPropValueDO.setState(BaseEnum.NO_ZERO.getKey());
prodPropValueMapper.updateById(prodPropValueDO); prodPropValueMapper.updateById(prodPropValueDO);
@@ -647,7 +802,7 @@ public class SkuServiceImpl implements SkuService {
// Step 3: 获取该商品下【当前仍然未禁用】的 SKU 的 properties // Step 3: 获取该商品下【当前仍然未禁用】的 SKU 的 properties
List<String> activeProperties = skuMapper.selectPropertiesByProdIdShelf(prodId); List<String> activeProperties = skuMapper.selectPropertiesByProdIdShelf(prodId);
for(Long id:ids){ for (Long id : ids) {
SkuDO sku = new SkuDO(); SkuDO sku = new SkuDO();
sku.setSkuId(id); sku.setSkuId(id);
sku.setIsShelf(isShelf); sku.setIsShelf(isShelf);
@@ -694,23 +849,24 @@ public class SkuServiceImpl implements SkuService {
} }
@Override @Override
public PageResult<SkuRecycleBinVO> getSkuRecycleBinPageList(SkuPageReqVO pageReqVO){ public PageResult<SkuRecycleBinVO> getSkuRecycleBinPageList(SkuPageReqVO pageReqVO) {
IPage<SkuRecycleBinVO> prodPageList = skuMapper.getSkuRecycleBinPageList(MyBatisUtils.buildPage(pageReqVO), pageReqVO.getProdId(), pageReqVO.getProperties()); IPage<SkuRecycleBinVO> prodPageList = skuMapper.getSkuRecycleBinPageList(MyBatisUtils.buildPage(pageReqVO), pageReqVO.getProdId(), pageReqVO.getProperties());
for(SkuRecycleBinVO prodPage : prodPageList.getRecords()){ for (SkuRecycleBinVO prodPage : prodPageList.getRecords()) {
prodPage.setRemainingDays(DateUtils.getRemainingDays(prodPage.getDeleteTime())); 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 @Override
public PageResult<SkuDO> getSkuPageList(SkuPageReqVO pageReqVO){ public PageResult<SkuDO> getSkuPageList(SkuPageReqVO pageReqVO) {
IPage<SkuDO> prodPageList = skuMapper.getSkuPageList(MyBatisUtils.buildPage(pageReqVO), pageReqVO.getProdId(), pageReqVO.getSkuId(),pageReqVO.getProperties()); IPage<SkuDO> prodPageList = skuMapper.getSkuPageList(MyBatisUtils.buildPage(pageReqVO), pageReqVO.getProdId(), pageReqVO.getSkuId(), pageReqVO.getProperties());
return new PageResult<>(prodPageList.getRecords(),prodPageList.getTotal()); return new PageResult<>(prodPageList.getRecords(), prodPageList.getTotal());
} }
@Override @Override
public PageResult<SkuDO> getSkuPage(SkuPageReqVO pageReqVO) { public PageResult<SkuDO> getSkuPage(SkuPageReqVO pageReqVO) {
return null; return null;

View File

@@ -520,14 +520,65 @@
</select> </select>
<select id="getProdRecycleBinPageList" resultType="com.tashow.cloud.productapi.api.product.vo.sku.SkuRecycleBinVO" >
select * from tz_prod where deleted = 1
<!-- 结果映射:将数据库查询结果映射到 ProdServiceVO -->
<resultMap id="ProdRecycleBinMap" 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"/>
<collection property="areaNameList" ofType="string">
<result column="sa_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>
<select id="getProdRecycleBinPageList" resultMap="ProdRecycleBinMap" >
select tp.prod_id,tp.prod_name,tp.category_name,tp.shop_id,tsd.shop_name,tpsa.area_name
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 != ''"> <if test="properties != null and properties != ''">
and properties like concat('%', #{prodName}, '%') and tp.properties like concat('%', #{prodName}, '%')
</if> </if>
<if test="deleteTime != null and deleteTime.length == 2"> <if test="deleteTime != null and deleteTime.length == 2">
AND delete_time BETWEEN #{deleteTime[0]} AND #{deleteTime[1]} AND tp.delete_time BETWEEN #{deleteTime[0]} AND #{deleteTime[1]}
</if> </if>
</select> </select>
<update id="batchRestoreProd">
UPDATE tz_prod
SET deleted = 0
WHERE prod_id IN
<foreach item="id" collection="ids" open="(" separator="," close=")">
#{id}
</foreach>
</update>
</mapper> </mapper>

View File

@@ -22,7 +22,7 @@
SELECT SELECT
pp.id AS propId, pp.id AS propId,
pp.prop_name, pp.prop_name,
ppv.id AS valueId, ppv.id AS id,
ppv.prop_value ppv.prop_value
FROM tz_prod_prop pp FROM tz_prod_prop pp
JOIN tz_prod_prop_value ppv ON pp.id = ppv.prop_id JOIN tz_prod_prop_value ppv ON pp.id = ppv.prop_id
@@ -35,7 +35,7 @@
SELECT SELECT
pp.id AS propId, pp.id AS propId,
pp.prop_name, pp.prop_name,
ppv.id AS valueId, ppv.id AS id,
ppv.prop_value ppv.prop_value
FROM tz_prod_prop pp FROM tz_prod_prop pp
JOIN tz_prod_prop_value ppv ON pp.id = ppv.prop_id JOIN tz_prod_prop_value ppv ON pp.id = ppv.prop_id
@@ -54,7 +54,30 @@
SET is_expire = 1, delete_time = NOW() SET is_expire = 1, delete_time = NOW()
WHERE id IN WHERE id IN
<foreach item="id" collection="ids" open="(" separator="," close=")"> <foreach item="id" collection="ids" open="(" separator="," close=")">
#{ids} #{id}
</foreach> </foreach>
</update> </update>
<update id="deleteProdPropValueById">
UPDATE tz_prod_prop_value
SET
is_expire = 1, delete_time = NOW()
WHERE id = #{id}
</update>
<select id="selectRestoreProp" resultType="com.tashow.cloud.productapi.api.product.dto.ProdPropValueDO">
SELECT
ppv.id AS id,
ppv.prop_value
FROM tz_prod_prop pp
JOIN tz_prod_prop_value ppv ON pp.id = ppv.prop_id
WHERE pp.prod_id = #{prodId}
AND pp.rule = 1
AND ppv.is_expire = 1
</select>
</mapper> </mapper>

View File

@@ -26,14 +26,14 @@
and sku_id = #{skuId} and sku_id = #{skuId}
</if> </if>
<if test="properties != null and properties != ''"> <if test="properties != null and properties != ''">
and properties like concat('%', #{propertiesName}, '%') and properties like concat('%', #{properties}, '%')
</if> </if>
</select> </select>
<select id="getSkuListByName" resultType="com.tashow.cloud.productapi.api.product.dto.SkuDO" > <select id="getSkuListByName" resultType="com.tashow.cloud.productapi.api.product.dto.SkuDO" >
select sku_id, properties, delete_time,deleted from tz_sku select sku_id, properties, delete_time,deleted from tz_sku where deleted = 0
<if test="properties != null and properties != ''"> <if test="propertiesName != null and propertiesName != ''">
and properties like concat('%', #{propertiesName}, '%') and properties like concat('%', #{propertiesName}, '%')
</if> </if>
</select> </select>
@@ -55,5 +55,22 @@
and is_shelf =0 and is_shelf =0
</select> </select>
<update id="deleteBySkuId">
UPDATE tz_sku
SET
deleted = 1,
delete_time = now()
WHERE sku_id = #{skuId}
</update>
<update id="batchSkuDeleted">
UPDATE tz_sku
SET deleted = 1,
delete_time = now()
WHERE sku_id IN
<foreach item="id" collection="ids" open="(" separator="," close=")">
#{id}
</foreach>
</update>
</mapper> </mapper>