Commit 58f40d42 by zhangxingmin

分页列表查询-租户项目产品上架关系信息

parent 1cfd31d4
package com.yd.product.api.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.product.api.service.ApiRelProjectProductLaunchService;
import com.yd.product.feign.client.relprojectproductlaunch.ApiRelProjectProductLaunchFeignClient;
import com.yd.product.feign.request.relprojectproductlaunch.ApiRelProjectProductLaunchPageRequest;
import com.yd.product.feign.response.relprojectproductlaunch.ApiRelProjectProductLaunchPageResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 项目-产品上架关系信息
*
* @author zxm
* @since 2025-11-20
*/
@RestController
@RequestMapping("/relProjectProductLaunch")
@Validated
public class ApiRelProjectProductLaunchController implements ApiRelProjectProductLaunchFeignClient {
@Autowired
private ApiRelProjectProductLaunchService apiRelProjectProductLaunchService;
/**
* 分页列表查询-租户项目产品上架关系信息
* @param request
* @return
*/
@Override
public Result<IPage<ApiRelProjectProductLaunchPageResponse>> page(ApiRelProjectProductLaunchPageRequest request) {
return apiRelProjectProductLaunchService.page(request);
}
}
package com.yd.product.api.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 项目-产品上架信息关系表(新表) 前端控制器
* </p>
*
* @author zxm
* @since 2025-11-20
*/
@RestController
@RequestMapping("/relProjectProductLaunch")
public class RelProjectProductLaunchController {
}
......@@ -9,4 +9,6 @@ public interface ApiAttributeSettingService {
Result save(List<ApiAttributeSettingDto> apiAttributeSettingDtoList,
String productLaunchBizId);
List<ApiAttributeSettingDto> queryAttributeSettingDtoList(String productLaunchBizId);
}
package com.yd.product.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.product.feign.request.relprojectproductlaunch.ApiRelProjectProductLaunchPageRequest;
import com.yd.product.feign.response.relprojectproductlaunch.ApiRelProjectProductLaunchPageResponse;
public interface ApiRelProjectProductLaunchService {
Result<IPage<ApiRelProjectProductLaunchPageResponse>> page(ApiRelProjectProductLaunchPageRequest request);
}
......@@ -9,4 +9,6 @@ public interface ApiSpeciesPriceService {
Result save(List<ApiSpeciesPriceDto> apiSpeciesPriceDtoList,
String productLaunchBizId);
List<ApiSpeciesPriceDto> querySpeciesPriceDtoList(String productLaunchBizId);
}
......@@ -2,6 +2,7 @@ package com.yd.product.api.service;
import com.yd.common.result.Result;
import com.yd.product.feign.dto.ApiSpeciesSettingDto;
import com.yd.product.feign.dto.ApiSpeciesTypeDto;
import java.util.List;
......@@ -9,4 +10,6 @@ public interface ApiSpeciesSettingService {
Result save(List<ApiSpeciesSettingDto> apiSpeciesSettingDtoList,
String productLaunchBizId);
List<ApiSpeciesTypeDto> querySpeciesTypeDtoList(String productLaunchBizId);
}
......@@ -5,6 +5,7 @@ import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator;
import com.yd.product.api.service.ApiAttributeSettingService;
import com.yd.product.feign.response.productlaunch.ApiAttributeSettingDto;
import com.yd.product.service.dto.AttributeSettingDto;
import com.yd.product.service.model.AttributeSetting;
import com.yd.product.service.service.IAttributeSettingService;
import lombok.extern.slf4j.Slf4j;
......@@ -13,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
......@@ -47,4 +49,25 @@ public class ApiAttributeSettingServiceImpl implements ApiAttributeSettingServic
}
return Result.success();
}
/**
* 根据产品上架信息id查询产品属性(参数)配置列表
* @param productLaunchBizId
* @return
*/
@Override
public List<ApiAttributeSettingDto> queryAttributeSettingDtoList(String productLaunchBizId) {
List<ApiAttributeSettingDto> apiAttributeSettingDtoList = new ArrayList<>();
List<AttributeSetting> attributeSettingList = iAttributeSettingService.queryList(AttributeSettingDto.builder()
.productLaunchBizId(productLaunchBizId)
.build());
if (!CollectionUtils.isEmpty(attributeSettingList)) {
apiAttributeSettingDtoList = attributeSettingList.stream().map(dto -> {
ApiAttributeSettingDto settingDto = new ApiAttributeSettingDto();
BeanUtils.copyProperties(dto,settingDto);
return settingDto;
}).collect(Collectors.toList());
}
return apiAttributeSettingDtoList;
}
}
package com.yd.product.api.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.base.feign.client.relobjectcategory.ApiRelObjectCategoryFeignClient;
......@@ -12,7 +11,6 @@ import com.yd.common.utils.RandomStringGenerator;
import com.yd.product.api.service.*;
import com.yd.product.feign.dto.ApiProductLaunchDto;
import com.yd.product.feign.dto.ApiSpeciesPriceDto;
import com.yd.product.feign.dto.ApiSpeciesSettingDto;
import com.yd.product.feign.dto.ApiSpeciesTypeDto;
import com.yd.product.feign.enums.ProductCommonEnum;
import com.yd.product.feign.request.product.ApiProductAddRequest;
......@@ -22,9 +20,6 @@ import com.yd.product.feign.response.productlaunch.ApiAttributeSettingDto;
import com.yd.product.feign.response.productlaunch.ApiProductLaunchCategoryAddResponse;
import com.yd.product.feign.response.productlaunch.ApiProductLaunchDetailResponse;
import com.yd.product.feign.response.productlaunch.ApiProductLaunchPageResponse;
import com.yd.product.service.dto.AttributeSettingDto;
import com.yd.product.service.dto.SpeciesPriceDto;
import com.yd.product.service.dto.SpeciesSettingDto;
import com.yd.product.service.model.*;
import com.yd.product.service.service.*;
import com.yd.user.feign.client.reltenantproject.ApiRelTenantProjectFeignClient;
......@@ -53,15 +48,6 @@ public class ApiProductLaunchServiceImpl implements ApiProductLaunchService {
private IProductService iProductService;
@Autowired
private IAttributeSettingService iAttributeSettingService;
@Autowired
private ISpeciesSettingService iSpeciesSettingService;
@Autowired
private ISpeciesPriceService iSpeciesPriceService;
@Autowired
private ApiAttributeSettingService apiAttributeSettingService;
@Autowired
......@@ -166,68 +152,16 @@ public class ApiProductLaunchServiceImpl implements ApiProductLaunchService {
response.setApiProductLaunchDto(apiProductLaunchDto);
//设置的产品上架信息的参数列表
List<ApiAttributeSettingDto> apiAttributeSettingDtoList = new ArrayList<>();
List<AttributeSetting> attributeSettingList = iAttributeSettingService.queryList(AttributeSettingDto.builder()
.productLaunchBizId(productLaunchBizId)
.build());
if (!CollectionUtils.isEmpty(attributeSettingList)) {
apiAttributeSettingDtoList = attributeSettingList.stream().map(dto -> {
ApiAttributeSettingDto settingDto = new ApiAttributeSettingDto();
BeanUtils.copyProperties(dto,settingDto);
return settingDto;
}).collect(Collectors.toList());
}
List<ApiAttributeSettingDto> apiAttributeSettingDtoList = apiAttributeSettingService.queryAttributeSettingDtoList(productLaunchBizId);
response.setApiAttributeSettingDtoList(apiAttributeSettingDtoList);
//规格信息配置列表
// 规格信息配置列表 - 按规格类型分组
List<ApiSpeciesTypeDto> apiSpeciesTypeDtoList = new ArrayList<>();
List<SpeciesSetting> speciesSettingList = iSpeciesSettingService.queryList(SpeciesSettingDto.builder().productLaunchBizId(productLaunchBizId).build());
if (!CollectionUtils.isEmpty(speciesSettingList)) {
// 按规格类型分组
Map<String, List<SpeciesSetting>> speciesSettingByType = speciesSettingList.stream()
.collect(Collectors.groupingBy(SpeciesSetting::getSpeciesTypeBizId));
// 为每个规格类型创建DTO
apiSpeciesTypeDtoList = speciesSettingByType.entrySet().stream().map(entry -> {
List<SpeciesSetting> settingsInType = entry.getValue();
if (CollectionUtils.isEmpty(settingsInType)) {
return null;
}
// 取第一个设置项获取规格类型信息(同一类型下这些信息应该相同)
SpeciesSetting firstSetting = settingsInType.get(0);
ApiSpeciesTypeDto typeDto = new ApiSpeciesTypeDto();
typeDto.setSpeciesTypeBizId(firstSetting.getSpeciesTypeBizId());
typeDto.setTypeCode(firstSetting.getTypeCode());
typeDto.setTypeName(firstSetting.getTypeName());
// 转换该类型下的所有规格配置
List<ApiSpeciesSettingDto> speciesSettingDtos = settingsInType.stream().map(setting -> {
ApiSpeciesSettingDto speciesSettingDto = new ApiSpeciesSettingDto();
BeanUtils.copyProperties(setting, speciesSettingDto);
return speciesSettingDto;
}).collect(Collectors.toList());
typeDto.setApiSpeciesSettingDtoList(speciesSettingDtos);
return typeDto;
}).filter(Objects::nonNull).collect(Collectors.toList());
}
List<ApiSpeciesTypeDto> apiSpeciesTypeDtoList = apiSpeciesSettingService.querySpeciesTypeDtoList(productLaunchBizId);
response.setApiSpeciesTypeDtoList(apiSpeciesTypeDtoList);
//规格价格配置列表
List<ApiSpeciesPriceDto> apiSpeciesPriceDtoList = new ArrayList<>();
List<SpeciesPrice> speciesPriceList = iSpeciesPriceService.queryList(SpeciesPriceDto.builder().productLaunchBizId(productLaunchBizId).build());
if (!CollectionUtils.isEmpty(speciesPriceList)) {
apiSpeciesPriceDtoList = speciesPriceList.stream().map(dto -> {
ApiSpeciesPriceDto priceDto = new ApiSpeciesPriceDto();
BeanUtils.copyProperties(dto,priceDto);
priceDto.setApiSpeciesSettingDtoList(StringUtils.isNotBlank(dto.getSpeciesJson()) ? JSON.parseArray(dto.getSpeciesJson(), ApiSpeciesSettingDto.class) : new ArrayList<>());
return priceDto;
}).collect(Collectors.toList());
}
List<ApiSpeciesPriceDto> apiSpeciesPriceDtoList = apiSpeciesPriceService.querySpeciesPriceDtoList(productLaunchBizId);
response.setApiSpeciesPriceDtoList(apiSpeciesPriceDtoList);
return Result.success(response);
......
package com.yd.product.api.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.common.result.Result;
import com.yd.product.api.service.ApiAttributeSettingService;
import com.yd.product.api.service.ApiRelProjectProductLaunchService;
import com.yd.product.api.service.ApiSpeciesPriceService;
import com.yd.product.api.service.ApiSpeciesSettingService;
import com.yd.product.feign.dto.ApiSpeciesPriceDto;
import com.yd.product.feign.dto.ApiSpeciesTypeDto;
import com.yd.product.feign.request.relprojectproductlaunch.ApiRelProjectProductLaunchPageRequest;
import com.yd.product.feign.response.productlaunch.ApiAttributeSettingDto;
import com.yd.product.feign.response.relprojectproductlaunch.ApiRelProjectProductLaunchPageResponse;
import com.yd.product.service.service.IRelProjectProductLaunchService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
@Slf4j
@Service
public class ApiRelProjectProductLaunchServiceImpl implements ApiRelProjectProductLaunchService {
@Autowired
private IRelProjectProductLaunchService iRelProjectProductLaunchService;
@Autowired
private ApiAttributeSettingService apiAttributeSettingService;
@Autowired
private ApiSpeciesSettingService apiSpeciesSettingService;
@Autowired
private ApiSpeciesPriceService apiSpeciesPriceService;
/**
* 分页列表查询-租户项目产品上架关系信息
* @param request
* @return
*/
@Override
public Result<IPage<ApiRelProjectProductLaunchPageResponse>> page(ApiRelProjectProductLaunchPageRequest request) {
Page<ApiRelProjectProductLaunchPageResponse> page = new Page<>(request.getPageNo(), request.getPageSize());
IPage<ApiRelProjectProductLaunchPageResponse> iPage = iRelProjectProductLaunchService.page(page, request);
if (!CollectionUtils.isEmpty(iPage.getRecords())) {
List<ApiRelProjectProductLaunchPageResponse> responses = iPage.getRecords();
for (ApiRelProjectProductLaunchPageResponse response : responses) {
//设置的产品上架信息的参数列表
List<ApiAttributeSettingDto> apiAttributeSettingDtoList = apiAttributeSettingService.queryAttributeSettingDtoList(response.getProductLaunchBizId());
response.setApiAttributeSettingDtoList(apiAttributeSettingDtoList);
//规格信息配置列表
// 规格信息配置列表 - 按规格类型分组
List<ApiSpeciesTypeDto> apiSpeciesTypeDtoList = apiSpeciesSettingService.querySpeciesTypeDtoList(response.getProductLaunchBizId());
response.setApiSpeciesTypeDtoList(apiSpeciesTypeDtoList);
//规格价格配置列表
List<ApiSpeciesPriceDto> apiSpeciesPriceDtoList = apiSpeciesPriceService.querySpeciesPriceDtoList(response.getProductLaunchBizId());
response.setApiSpeciesPriceDtoList(apiSpeciesPriceDtoList);
}
iPage.setRecords(responses);
}
return Result.success(iPage);
}
}
......@@ -6,13 +6,18 @@ import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator;
import com.yd.product.api.service.ApiSpeciesPriceService;
import com.yd.product.feign.dto.ApiSpeciesPriceDto;
import com.yd.product.feign.dto.ApiSpeciesSettingDto;
import com.yd.product.service.dto.SpeciesPriceDto;
import com.yd.product.service.model.SpeciesPrice;
import com.yd.product.service.service.ISpeciesPriceService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
......@@ -52,4 +57,24 @@ public class ApiSpeciesPriceServiceImpl implements ApiSpeciesPriceService {
}
return Result.success();
}
/**
* 查询规格价格配置列表
* @param productLaunchBizId
* @return
*/
@Override
public List<ApiSpeciesPriceDto> querySpeciesPriceDtoList(String productLaunchBizId) {
List<ApiSpeciesPriceDto> apiSpeciesPriceDtoList = new ArrayList<>();
List<SpeciesPrice> speciesPriceList = iSpeciesPriceService.queryList(SpeciesPriceDto.builder().productLaunchBizId(productLaunchBizId).build());
if (!CollectionUtils.isEmpty(speciesPriceList)) {
apiSpeciesPriceDtoList = speciesPriceList.stream().map(dto -> {
ApiSpeciesPriceDto priceDto = new ApiSpeciesPriceDto();
BeanUtils.copyProperties(dto,priceDto);
priceDto.setApiSpeciesSettingDtoList(StringUtils.isNotBlank(dto.getSpeciesJson()) ? JSON.parseArray(dto.getSpeciesJson(), ApiSpeciesSettingDto.class) : new ArrayList<>());
return priceDto;
}).collect(Collectors.toList());
}
return apiSpeciesPriceDtoList;
}
}
......@@ -5,6 +5,8 @@ import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator;
import com.yd.product.api.service.ApiSpeciesSettingService;
import com.yd.product.feign.dto.ApiSpeciesSettingDto;
import com.yd.product.feign.dto.ApiSpeciesTypeDto;
import com.yd.product.service.dto.SpeciesSettingDto;
import com.yd.product.service.model.SpeciesSetting;
import com.yd.product.service.service.ISpeciesSettingService;
import lombok.extern.slf4j.Slf4j;
......@@ -12,7 +14,11 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
@Slf4j
......@@ -49,4 +55,48 @@ public class ApiSpeciesSettingServiceImpl implements ApiSpeciesSettingService {
}
return Result.success();
}
/**
* 查询产品上架规格类型分组列表
* @param productLaunchBizId
* @return
*/
@Override
public List<ApiSpeciesTypeDto> querySpeciesTypeDtoList(String productLaunchBizId) {
List<ApiSpeciesTypeDto> apiSpeciesTypeDtoList = new ArrayList<>();
List<SpeciesSetting> speciesSettingList = iSpeciesSettingService.queryList(SpeciesSettingDto.builder().productLaunchBizId(productLaunchBizId).build());
if (!CollectionUtils.isEmpty(speciesSettingList)) {
// 按规格类型分组
Map<String, List<SpeciesSetting>> speciesSettingByType = speciesSettingList.stream()
.collect(Collectors.groupingBy(SpeciesSetting::getSpeciesTypeBizId));
// 为每个规格类型创建DTO
apiSpeciesTypeDtoList = speciesSettingByType.entrySet().stream().map(entry -> {
List<SpeciesSetting> settingsInType = entry.getValue();
if (CollectionUtils.isEmpty(settingsInType)) {
return null;
}
// 取第一个设置项获取规格类型信息(同一类型下这些信息应该相同)
SpeciesSetting firstSetting = settingsInType.get(0);
ApiSpeciesTypeDto typeDto = new ApiSpeciesTypeDto();
typeDto.setSpeciesTypeBizId(firstSetting.getSpeciesTypeBizId());
typeDto.setTypeCode(firstSetting.getTypeCode());
typeDto.setTypeName(firstSetting.getTypeName());
// 转换该类型下的所有规格配置
List<ApiSpeciesSettingDto> speciesSettingDtos = settingsInType.stream().map(setting -> {
ApiSpeciesSettingDto speciesSettingDto = new ApiSpeciesSettingDto();
BeanUtils.copyProperties(setting, speciesSettingDto);
return speciesSettingDto;
}).collect(Collectors.toList());
typeDto.setApiSpeciesSettingDtoList(speciesSettingDtos);
return typeDto;
}).filter(Objects::nonNull).collect(Collectors.toList());
}
return apiSpeciesTypeDtoList;
}
}
package com.yd.product.feign.client.relprojectproductlaunch;
import com.yd.common.result.Result;
import com.yd.product.feign.fallback.relprojectproductlaunch.ApiRelProjectProductLaunchFeignFallbackFactory;
import com.yd.product.feign.request.relprojectproductlaunch.ApiRelProjectProductLaunchPageRequest;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* 产品服务-项目产品上架关系信息Feign客户端
*/
@FeignClient(name = "yd-product-api", fallbackFactory = ApiRelProjectProductLaunchFeignFallbackFactory.class)
public interface ApiRelProjectProductLaunchFeignClient {
/**
* 分页列表查询-租户项目产品上架关系信息
* @param request
* @return
*/
@PostMapping("/page")
Result page(@RequestBody ApiRelProjectProductLaunchPageRequest request);
}
package com.yd.product.feign.fallback.relprojectproductlaunch;
import com.yd.common.result.Result;
import com.yd.product.feign.client.relprojectproductlaunch.ApiRelProjectProductLaunchFeignClient;
import com.yd.product.feign.request.relprojectproductlaunch.ApiRelProjectProductLaunchPageRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
/**
* 产品服务-项目产品上架关系信息Feign降级处理
*/
@Slf4j
@Component
public class ApiRelProjectProductLaunchFeignFallbackFactory implements FallbackFactory<ApiRelProjectProductLaunchFeignClient> {
@Override
public ApiRelProjectProductLaunchFeignClient create(Throwable cause) {
return new ApiRelProjectProductLaunchFeignClient() {
@Override
public Result page(ApiRelProjectProductLaunchPageRequest request) {
return null;
}
};
}
}
package com.yd.product.feign.request.relprojectproductlaunch;
import com.yd.common.dto.PageDto;
import lombok.Data;
@Data
public class ApiRelProjectProductLaunchPageRequest extends PageDto {
/**
* 租户唯一业务ID
*/
private String tenantBizId;
/**
* 项目唯一业务ID
*/
private String projectBizId;
/**
* 产品名称
*/
private String productName;
}
package com.yd.product.feign.response.relprojectproductlaunch;
import com.yd.product.feign.dto.ApiSpeciesPriceDto;
import com.yd.product.feign.dto.ApiSpeciesTypeDto;
import com.yd.product.feign.response.productlaunch.ApiAttributeSettingDto;
import lombok.Data;
import java.util.List;
@Data
public class ApiRelProjectProductLaunchPageResponse {
/**
* 租户唯一业务ID
*/
private String tenantBizId;
/**
* 项目唯一业务ID
*/
private String projectBizId;
/**
* 产品上架信息表唯一业务ID
*/
private String productLaunchBizId;
/**
* 关联产品表唯一业务ID(上架的产品)
*/
private String productBizId;
/**
* 产品名称
*/
private String productName;
/**
* 标题
*/
private String title;
/**
* 短标题
*/
private String shortTitle;
/**
* 主图url(多个url用分号分隔)
*/
private String mainUrls;
/**
* 详情图(多个url用分号分隔)
*/
private String detailUrls;
/**
* 详情描述
*/
private String detailDescription;
/**
* 上架状态
*/
private String status;
/**
* 审核备注
*/
private String approvalRemark;
/**
* 设置的产品参数列表
*/
private List<ApiAttributeSettingDto> apiAttributeSettingDtoList;
/**
* 规格信息配置列表
*/
private List<ApiSpeciesTypeDto> apiSpeciesTypeDtoList;
/**
* 规格价格配置列表
*/
private List<ApiSpeciesPriceDto> apiSpeciesPriceDtoList;
}
package com.yd.product.service.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.product.feign.request.relprojectproductlaunch.ApiRelProjectProductLaunchPageRequest;
import com.yd.product.feign.response.relprojectproductlaunch.ApiRelProjectProductLaunchPageResponse;
import com.yd.product.service.model.RelProjectProductLaunch;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* <p>
......@@ -13,4 +18,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface RelProjectProductLaunchMapper extends BaseMapper<RelProjectProductLaunch> {
IPage<ApiRelProjectProductLaunchPageResponse> page(@Param("page") Page<ApiRelProjectProductLaunchPageResponse> page,
@Param("request") ApiRelProjectProductLaunchPageRequest request);
}
package com.yd.product.service.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.product.feign.request.relprojectproductlaunch.ApiRelProjectProductLaunchPageRequest;
import com.yd.product.feign.response.relprojectproductlaunch.ApiRelProjectProductLaunchPageResponse;
import com.yd.product.service.model.RelProjectProductLaunch;
import com.baomidou.mybatisplus.extension.service.IService;
......@@ -13,5 +17,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IRelProjectProductLaunchService extends IService<RelProjectProductLaunch> {
IPage<ApiRelProjectProductLaunchPageResponse> page(Page<ApiRelProjectProductLaunchPageResponse> page,
ApiRelProjectProductLaunchPageRequest request);
Boolean delByProductLaunchBizId(String productLaunchBizId);
}
package com.yd.product.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.product.feign.request.relprojectproductlaunch.ApiRelProjectProductLaunchPageRequest;
import com.yd.product.feign.response.relprojectproductlaunch.ApiRelProjectProductLaunchPageResponse;
import com.yd.product.service.model.RelProjectProductLaunch;
import com.yd.product.service.dao.RelProjectProductLaunchMapper;
import com.yd.product.service.service.IRelProjectProductLaunchService;
......@@ -19,6 +23,12 @@ import org.springframework.stereotype.Service;
public class RelProjectProductLaunchServiceImpl extends ServiceImpl<RelProjectProductLaunchMapper, RelProjectProductLaunch> implements IRelProjectProductLaunchService {
@Override
public IPage<ApiRelProjectProductLaunchPageResponse> page(Page<ApiRelProjectProductLaunchPageResponse> page,
ApiRelProjectProductLaunchPageRequest request) {
return baseMapper.page(page,request);
}
@Override
public Boolean delByProductLaunchBizId(String productLaunchBizId) {
return this.remove(new LambdaQueryWrapper<RelProjectProductLaunch>().eq(RelProjectProductLaunch::getProductLaunchBizId,productLaunchBizId));
}
......
......@@ -2,4 +2,23 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yd.product.service.dao.RelProjectProductLaunchMapper">
<select id="page"
resultType="com.yd.product.feign.response.relprojectproductlaunch.ApiRelProjectProductLaunchPageResponse">
select rppl.*,pl.*,p.product_name as productName
from rel_project_product_launch rppl
left join product_launch pl on pl.product_launch_biz_id = rppl.product_launch_biz_id and pl.is_deleted = 0
left join product p on p.product_biz_id = pl.product_biz_id and pl.is_deleted = 0
<where>
<if test="request.tenantBizId != null and request.tenantBizId != ''">
and rppl.tenant_biz_id = #{request.tenantBizId}
</if>
<if test="request.projectBizId != null and request.projectBizId != ''">
and rppl.project_biz_id = #{request.projectBizId}
</if>
<if test="request.productName != null and request.productName != ''">
and p.product_name like concat('%', #{request.productName}, '%')
</if>
and rppl.is_deleted = 0
</where>
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment