获取服务配置

This commit is contained in:
xuelijun
2025-08-15 18:27:57 +08:00
parent 7afa85b941
commit ce643990d8
26 changed files with 462 additions and 196 deletions

View File

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

View File

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

View File

@@ -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);
/**
* 恢复商品

View File

@@ -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);
@@ -96,23 +97,23 @@ public class ProdServiceImpl implements ProdService {
@Override
@Transactional
public void createProdService(ProdServiceVO prodServiceVO) {
ProdDO prodDO = new ProdDO();
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 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 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()){
prodEmergencyResponseIntervals.setConfigId(prodEmergencyResponse.getId());
prodEmergencyResponseIntervalsMapper.insert(prodEmergencyResponseIntervals);
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()){
prodEmergencyResponseIntervals.setConfigId(prodEmergencyResponse.getId());
prodEmergencyResponseIntervalsMapper.insert(prodEmergencyResponseIntervals);
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){
prodAdditionalFeeDates.setProdId(prodServiceVO.getProdId());
prodAdditionalFeeDatesMapper.insert(prodAdditionalFeeDates);
}else {
prodAdditionalFeeDatesMapper.updateById(prodAdditionalFeeDates);
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 {
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()){
prodPage.setRemainingDays(DateUtils.getRemainingDays(prodPage.getDeleteTime()));
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

View File

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