Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-product
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xingmin
yd-product
Commits
58f40d42
Commit
58f40d42
authored
Nov 26, 2025
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
分页列表查询-租户项目产品上架关系信息
parent
1cfd31d4
Show whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
424 additions
and
87 deletions
+424
-87
yd-product-api/src/main/java/com/yd/product/api/controller/ApiRelProjectProductLaunchController.java
+39
-0
yd-product-api/src/main/java/com/yd/product/api/controller/RelProjectProductLaunchController.java
+0
-18
yd-product-api/src/main/java/com/yd/product/api/service/ApiAttributeSettingService.java
+2
-0
yd-product-api/src/main/java/com/yd/product/api/service/ApiRelProjectProductLaunchService.java
+10
-0
yd-product-api/src/main/java/com/yd/product/api/service/ApiSpeciesPriceService.java
+2
-0
yd-product-api/src/main/java/com/yd/product/api/service/ApiSpeciesSettingService.java
+3
-0
yd-product-api/src/main/java/com/yd/product/api/service/impl/ApiAttributeSettingServiceImpl.java
+23
-0
yd-product-api/src/main/java/com/yd/product/api/service/impl/ApiProductLaunchServiceImpl.java
+3
-69
yd-product-api/src/main/java/com/yd/product/api/service/impl/ApiRelProjectProductLaunchServiceImpl.java
+67
-0
yd-product-api/src/main/java/com/yd/product/api/service/impl/ApiSpeciesPriceServiceImpl.java
+25
-0
yd-product-api/src/main/java/com/yd/product/api/service/impl/ApiSpeciesSettingServiceImpl.java
+50
-0
yd-product-feign/src/main/java/com/yd/product/feign/client/relprojectproductlaunch/ApiRelProjectProductLaunchFeignClient.java
+23
-0
yd-product-feign/src/main/java/com/yd/product/feign/fallback/relprojectproductlaunch/ApiRelProjectProductLaunchFeignFallbackFactory.java
+25
-0
yd-product-feign/src/main/java/com/yd/product/feign/request/relprojectproductlaunch/ApiRelProjectProductLaunchPageRequest.java
+23
-0
yd-product-feign/src/main/java/com/yd/product/feign/response/relprojectproductlaunch/ApiRelProjectProductLaunchPageResponse.java
+86
-0
yd-product-service/src/main/java/com/yd/product/service/dao/RelProjectProductLaunchMapper.java
+7
-0
yd-product-service/src/main/java/com/yd/product/service/service/IRelProjectProductLaunchService.java
+7
-0
yd-product-service/src/main/java/com/yd/product/service/service/impl/RelProjectProductLaunchServiceImpl.java
+10
-0
yd-product-service/src/main/resources/mappers/RelProjectProductLaunchMapper.xml
+19
-0
No files found.
yd-product-api/src/main/java/com/yd/product/api/controller/ApiRelProjectProductLaunchController.java
0 → 100644
View file @
58f40d42
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
);
}
}
yd-product-api/src/main/java/com/yd/product/api/controller/RelProjectProductLaunchController.java
deleted
100644 → 0
View file @
1cfd31d4
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
{
}
yd-product-api/src/main/java/com/yd/product/api/service/ApiAttributeSettingService.java
View file @
58f40d42
...
@@ -9,4 +9,6 @@ public interface ApiAttributeSettingService {
...
@@ -9,4 +9,6 @@ public interface ApiAttributeSettingService {
Result
save
(
List
<
ApiAttributeSettingDto
>
apiAttributeSettingDtoList
,
Result
save
(
List
<
ApiAttributeSettingDto
>
apiAttributeSettingDtoList
,
String
productLaunchBizId
);
String
productLaunchBizId
);
List
<
ApiAttributeSettingDto
>
queryAttributeSettingDtoList
(
String
productLaunchBizId
);
}
}
yd-product-api/src/main/java/com/yd/product/api/service/ApiRelProjectProductLaunchService.java
0 → 100644
View file @
58f40d42
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
);
}
yd-product-api/src/main/java/com/yd/product/api/service/ApiSpeciesPriceService.java
View file @
58f40d42
...
@@ -9,4 +9,6 @@ public interface ApiSpeciesPriceService {
...
@@ -9,4 +9,6 @@ public interface ApiSpeciesPriceService {
Result
save
(
List
<
ApiSpeciesPriceDto
>
apiSpeciesPriceDtoList
,
Result
save
(
List
<
ApiSpeciesPriceDto
>
apiSpeciesPriceDtoList
,
String
productLaunchBizId
);
String
productLaunchBizId
);
List
<
ApiSpeciesPriceDto
>
querySpeciesPriceDtoList
(
String
productLaunchBizId
);
}
}
yd-product-api/src/main/java/com/yd/product/api/service/ApiSpeciesSettingService.java
View file @
58f40d42
...
@@ -2,6 +2,7 @@ package com.yd.product.api.service;
...
@@ -2,6 +2,7 @@ package com.yd.product.api.service;
import
com.yd.common.result.Result
;
import
com.yd.common.result.Result
;
import
com.yd.product.feign.dto.ApiSpeciesSettingDto
;
import
com.yd.product.feign.dto.ApiSpeciesSettingDto
;
import
com.yd.product.feign.dto.ApiSpeciesTypeDto
;
import
java.util.List
;
import
java.util.List
;
...
@@ -9,4 +10,6 @@ public interface ApiSpeciesSettingService {
...
@@ -9,4 +10,6 @@ public interface ApiSpeciesSettingService {
Result
save
(
List
<
ApiSpeciesSettingDto
>
apiSpeciesSettingDtoList
,
Result
save
(
List
<
ApiSpeciesSettingDto
>
apiSpeciesSettingDtoList
,
String
productLaunchBizId
);
String
productLaunchBizId
);
List
<
ApiSpeciesTypeDto
>
querySpeciesTypeDtoList
(
String
productLaunchBizId
);
}
}
yd-product-api/src/main/java/com/yd/product/api/service/impl/ApiAttributeSettingServiceImpl.java
View file @
58f40d42
...
@@ -5,6 +5,7 @@ import com.yd.common.result.Result;
...
@@ -5,6 +5,7 @@ import com.yd.common.result.Result;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.product.api.service.ApiAttributeSettingService
;
import
com.yd.product.api.service.ApiAttributeSettingService
;
import
com.yd.product.feign.response.productlaunch.ApiAttributeSettingDto
;
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.model.AttributeSetting
;
import
com.yd.product.service.service.IAttributeSettingService
;
import
com.yd.product.service.service.IAttributeSettingService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -13,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -13,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -47,4 +49,25 @@ public class ApiAttributeSettingServiceImpl implements ApiAttributeSettingServic
...
@@ -47,4 +49,25 @@ public class ApiAttributeSettingServiceImpl implements ApiAttributeSettingServic
}
}
return
Result
.
success
();
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
;
}
}
}
yd-product-api/src/main/java/com/yd/product/api/service/impl/ApiProductLaunchServiceImpl.java
View file @
58f40d42
package
com
.
yd
.
product
.
api
.
service
.
impl
;
package
com
.
yd
.
product
.
api
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.base.feign.client.relobjectcategory.ApiRelObjectCategoryFeignClient
;
import
com.yd.base.feign.client.relobjectcategory.ApiRelObjectCategoryFeignClient
;
...
@@ -12,7 +11,6 @@ import com.yd.common.utils.RandomStringGenerator;
...
@@ -12,7 +11,6 @@ import com.yd.common.utils.RandomStringGenerator;
import
com.yd.product.api.service.*
;
import
com.yd.product.api.service.*
;
import
com.yd.product.feign.dto.ApiProductLaunchDto
;
import
com.yd.product.feign.dto.ApiProductLaunchDto
;
import
com.yd.product.feign.dto.ApiSpeciesPriceDto
;
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.dto.ApiSpeciesTypeDto
;
import
com.yd.product.feign.enums.ProductCommonEnum
;
import
com.yd.product.feign.enums.ProductCommonEnum
;
import
com.yd.product.feign.request.product.ApiProductAddRequest
;
import
com.yd.product.feign.request.product.ApiProductAddRequest
;
...
@@ -22,9 +20,6 @@ import com.yd.product.feign.response.productlaunch.ApiAttributeSettingDto;
...
@@ -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.ApiProductLaunchCategoryAddResponse
;
import
com.yd.product.feign.response.productlaunch.ApiProductLaunchDetailResponse
;
import
com.yd.product.feign.response.productlaunch.ApiProductLaunchDetailResponse
;
import
com.yd.product.feign.response.productlaunch.ApiProductLaunchPageResponse
;
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.model.*
;
import
com.yd.product.service.service.*
;
import
com.yd.product.service.service.*
;
import
com.yd.user.feign.client.reltenantproject.ApiRelTenantProjectFeignClient
;
import
com.yd.user.feign.client.reltenantproject.ApiRelTenantProjectFeignClient
;
...
@@ -53,15 +48,6 @@ public class ApiProductLaunchServiceImpl implements ApiProductLaunchService {
...
@@ -53,15 +48,6 @@ public class ApiProductLaunchServiceImpl implements ApiProductLaunchService {
private
IProductService
iProductService
;
private
IProductService
iProductService
;
@Autowired
@Autowired
private
IAttributeSettingService
iAttributeSettingService
;
@Autowired
private
ISpeciesSettingService
iSpeciesSettingService
;
@Autowired
private
ISpeciesPriceService
iSpeciesPriceService
;
@Autowired
private
ApiAttributeSettingService
apiAttributeSettingService
;
private
ApiAttributeSettingService
apiAttributeSettingService
;
@Autowired
@Autowired
...
@@ -166,68 +152,16 @@ public class ApiProductLaunchServiceImpl implements ApiProductLaunchService {
...
@@ -166,68 +152,16 @@ public class ApiProductLaunchServiceImpl implements ApiProductLaunchService {
response
.
setApiProductLaunchDto
(
apiProductLaunchDto
);
response
.
setApiProductLaunchDto
(
apiProductLaunchDto
);
//设置的产品上架信息的参数列表
//设置的产品上架信息的参数列表
List
<
ApiAttributeSettingDto
>
apiAttributeSettingDtoList
=
new
ArrayList
<>();
List
<
ApiAttributeSettingDto
>
apiAttributeSettingDtoList
=
apiAttributeSettingService
.
queryAttributeSettingDtoList
(
productLaunchBizId
);
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
());
}
response
.
setApiAttributeSettingDtoList
(
apiAttributeSettingDtoList
);
response
.
setApiAttributeSettingDtoList
(
apiAttributeSettingDtoList
);
//规格信息配置列表
//规格信息配置列表
// 规格信息配置列表 - 按规格类型分组
// 规格信息配置列表 - 按规格类型分组
List
<
ApiSpeciesTypeDto
>
apiSpeciesTypeDtoList
=
new
ArrayList
<>();
List
<
ApiSpeciesTypeDto
>
apiSpeciesTypeDtoList
=
apiSpeciesSettingService
.
querySpeciesTypeDtoList
(
productLaunchBizId
);
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
());
}
response
.
setApiSpeciesTypeDtoList
(
apiSpeciesTypeDtoList
);
response
.
setApiSpeciesTypeDtoList
(
apiSpeciesTypeDtoList
);
//规格价格配置列表
//规格价格配置列表
List
<
ApiSpeciesPriceDto
>
apiSpeciesPriceDtoList
=
new
ArrayList
<>();
List
<
ApiSpeciesPriceDto
>
apiSpeciesPriceDtoList
=
apiSpeciesPriceService
.
querySpeciesPriceDtoList
(
productLaunchBizId
);
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
());
}
response
.
setApiSpeciesPriceDtoList
(
apiSpeciesPriceDtoList
);
response
.
setApiSpeciesPriceDtoList
(
apiSpeciesPriceDtoList
);
return
Result
.
success
(
response
);
return
Result
.
success
(
response
);
...
...
yd-product-api/src/main/java/com/yd/product/api/service/impl/ApiRelProjectProductLaunchServiceImpl.java
0 → 100644
View file @
58f40d42
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
);
}
}
yd-product-api/src/main/java/com/yd/product/api/service/impl/ApiSpeciesPriceServiceImpl.java
View file @
58f40d42
...
@@ -6,13 +6,18 @@ import com.yd.common.result.Result;
...
@@ -6,13 +6,18 @@ import com.yd.common.result.Result;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.product.api.service.ApiSpeciesPriceService
;
import
com.yd.product.api.service.ApiSpeciesPriceService
;
import
com.yd.product.feign.dto.ApiSpeciesPriceDto
;
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.model.SpeciesPrice
;
import
com.yd.product.service.service.ISpeciesPriceService
;
import
com.yd.product.service.service.ISpeciesPriceService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -52,4 +57,24 @@ public class ApiSpeciesPriceServiceImpl implements ApiSpeciesPriceService {
...
@@ -52,4 +57,24 @@ public class ApiSpeciesPriceServiceImpl implements ApiSpeciesPriceService {
}
}
return
Result
.
success
();
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
;
}
}
}
yd-product-api/src/main/java/com/yd/product/api/service/impl/ApiSpeciesSettingServiceImpl.java
View file @
58f40d42
...
@@ -5,6 +5,8 @@ import com.yd.common.result.Result;
...
@@ -5,6 +5,8 @@ import com.yd.common.result.Result;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.product.api.service.ApiSpeciesSettingService
;
import
com.yd.product.api.service.ApiSpeciesSettingService
;
import
com.yd.product.feign.dto.ApiSpeciesSettingDto
;
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.model.SpeciesSetting
;
import
com.yd.product.service.service.ISpeciesSettingService
;
import
com.yd.product.service.service.ISpeciesSettingService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -12,7 +14,11 @@ import org.springframework.beans.BeanUtils;
...
@@ -12,7 +14,11 @@ import org.springframework.beans.BeanUtils;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
@Slf4j
@Slf4j
...
@@ -49,4 +55,48 @@ public class ApiSpeciesSettingServiceImpl implements ApiSpeciesSettingService {
...
@@ -49,4 +55,48 @@ public class ApiSpeciesSettingServiceImpl implements ApiSpeciesSettingService {
}
}
return
Result
.
success
();
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
;
}
}
}
yd-product-feign/src/main/java/com/yd/product/feign/client/relprojectproductlaunch/ApiRelProjectProductLaunchFeignClient.java
0 → 100644
View file @
58f40d42
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
);
}
yd-product-feign/src/main/java/com/yd/product/feign/fallback/relprojectproductlaunch/ApiRelProjectProductLaunchFeignFallbackFactory.java
0 → 100644
View file @
58f40d42
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
;
}
};
}
}
yd-product-feign/src/main/java/com/yd/product/feign/request/relprojectproductlaunch/ApiRelProjectProductLaunchPageRequest.java
0 → 100644
View file @
58f40d42
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
;
}
yd-product-feign/src/main/java/com/yd/product/feign/response/relprojectproductlaunch/ApiRelProjectProductLaunchPageResponse.java
0 → 100644
View file @
58f40d42
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
;
}
yd-product-service/src/main/java/com/yd/product/service/dao/RelProjectProductLaunchMapper.java
View file @
58f40d42
package
com
.
yd
.
product
.
service
.
dao
;
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.yd.product.service.model.RelProjectProductLaunch
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Param
;
/**
/**
* <p>
* <p>
...
@@ -13,4 +18,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
...
@@ -13,4 +18,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
*/
public
interface
RelProjectProductLaunchMapper
extends
BaseMapper
<
RelProjectProductLaunch
>
{
public
interface
RelProjectProductLaunchMapper
extends
BaseMapper
<
RelProjectProductLaunch
>
{
IPage
<
ApiRelProjectProductLaunchPageResponse
>
page
(
@Param
(
"page"
)
Page
<
ApiRelProjectProductLaunchPageResponse
>
page
,
@Param
(
"request"
)
ApiRelProjectProductLaunchPageRequest
request
);
}
}
yd-product-service/src/main/java/com/yd/product/service/service/IRelProjectProductLaunchService.java
View file @
58f40d42
package
com
.
yd
.
product
.
service
.
service
;
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.yd.product.service.model.RelProjectProductLaunch
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
...
@@ -13,5 +17,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
...
@@ -13,5 +17,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
*/
public
interface
IRelProjectProductLaunchService
extends
IService
<
RelProjectProductLaunch
>
{
public
interface
IRelProjectProductLaunchService
extends
IService
<
RelProjectProductLaunch
>
{
IPage
<
ApiRelProjectProductLaunchPageResponse
>
page
(
Page
<
ApiRelProjectProductLaunchPageResponse
>
page
,
ApiRelProjectProductLaunchPageRequest
request
);
Boolean
delByProductLaunchBizId
(
String
productLaunchBizId
);
Boolean
delByProductLaunchBizId
(
String
productLaunchBizId
);
}
}
yd-product-service/src/main/java/com/yd/product/service/service/impl/RelProjectProductLaunchServiceImpl.java
View file @
58f40d42
package
com
.
yd
.
product
.
service
.
service
.
impl
;
package
com
.
yd
.
product
.
service
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
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.model.RelProjectProductLaunch
;
import
com.yd.product.service.dao.RelProjectProductLaunchMapper
;
import
com.yd.product.service.dao.RelProjectProductLaunchMapper
;
import
com.yd.product.service.service.IRelProjectProductLaunchService
;
import
com.yd.product.service.service.IRelProjectProductLaunchService
;
...
@@ -19,6 +23,12 @@ import org.springframework.stereotype.Service;
...
@@ -19,6 +23,12 @@ import org.springframework.stereotype.Service;
public
class
RelProjectProductLaunchServiceImpl
extends
ServiceImpl
<
RelProjectProductLaunchMapper
,
RelProjectProductLaunch
>
implements
IRelProjectProductLaunchService
{
public
class
RelProjectProductLaunchServiceImpl
extends
ServiceImpl
<
RelProjectProductLaunchMapper
,
RelProjectProductLaunch
>
implements
IRelProjectProductLaunchService
{
@Override
@Override
public
IPage
<
ApiRelProjectProductLaunchPageResponse
>
page
(
Page
<
ApiRelProjectProductLaunchPageResponse
>
page
,
ApiRelProjectProductLaunchPageRequest
request
)
{
return
baseMapper
.
page
(
page
,
request
);
}
@Override
public
Boolean
delByProductLaunchBizId
(
String
productLaunchBizId
)
{
public
Boolean
delByProductLaunchBizId
(
String
productLaunchBizId
)
{
return
this
.
remove
(
new
LambdaQueryWrapper
<
RelProjectProductLaunch
>().
eq
(
RelProjectProductLaunch:
:
getProductLaunchBizId
,
productLaunchBizId
));
return
this
.
remove
(
new
LambdaQueryWrapper
<
RelProjectProductLaunch
>().
eq
(
RelProjectProductLaunch:
:
getProductLaunchBizId
,
productLaunchBizId
));
}
}
...
...
yd-product-service/src/main/resources/mappers/RelProjectProductLaunchMapper.xml
View file @
58f40d42
...
@@ -2,4 +2,23 @@
...
@@ -2,4 +2,23 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!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"
>
<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>
</mapper>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment