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
1cfd31d4
Commit
1cfd31d4
authored
Nov 26, 2025
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
产品服务相关接口
parent
d2637944
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
531 additions
and
32 deletions
+531
-32
yd-product-api/src/main/java/com/yd/product/api/controller/ApiExpectedCommissionRatioController.java
+11
-0
yd-product-api/src/main/java/com/yd/product/api/controller/ApiProductLaunchController.java
+21
-3
yd-product-api/src/main/java/com/yd/product/api/service/ApiExpectedCommissionRatioService.java
+3
-0
yd-product-api/src/main/java/com/yd/product/api/service/ApiProductLaunchService.java
+6
-4
yd-product-api/src/main/java/com/yd/product/api/service/impl/ApiExpectedCommissionRatioServiceImpl.java
+38
-0
yd-product-api/src/main/java/com/yd/product/api/service/impl/ApiProductLaunchServiceImpl.java
+166
-12
yd-product-feign/src/main/java/com/yd/product/feign/client/expectedcommissionratio/ApiExpectedCommissionRatioFeignClient.java
+10
-0
yd-product-feign/src/main/java/com/yd/product/feign/client/productlaunch/ApiProductLaunchFeignClient.java
+19
-7
yd-product-feign/src/main/java/com/yd/product/feign/dto/ApiExpectedCommissionRatioDto.java
+90
-0
yd-product-feign/src/main/java/com/yd/product/feign/dto/ApiProductLaunchDto.java
+5
-0
yd-product-feign/src/main/java/com/yd/product/feign/enums/ProductCommonEnum.java
+39
-0
yd-product-feign/src/main/java/com/yd/product/feign/fallback/expectedcommissionratio/ApiExpectedCommissionRatioFeignFallbackFactory.java
+6
-0
yd-product-feign/src/main/java/com/yd/product/feign/fallback/productlaunch/ApiProductLaunchFeignFallbackFactory.java
+11
-3
yd-product-feign/src/main/java/com/yd/product/feign/request/expectedcommissionratio/ApiExpectedCommissionRatioSaveRequest.java
+24
-0
yd-product-feign/src/main/java/com/yd/product/feign/request/productlaunch/ApiProductLaunchApprovalRequest.java
+25
-0
yd-product-feign/src/main/java/com/yd/product/feign/request/productlaunch/ApiProductLaunchEditStatusRequest.java
+21
-0
yd-product-service/src/main/java/com/yd/product/service/model/Product.java
+1
-1
yd-product-service/src/main/java/com/yd/product/service/model/ProductLaunch.java
+14
-2
yd-product-service/src/main/java/com/yd/product/service/service/IExpectedCommissionRatioService.java
+2
-0
yd-product-service/src/main/java/com/yd/product/service/service/IRelProjectProductLaunchService.java
+1
-0
yd-product-service/src/main/java/com/yd/product/service/service/IRelTenantProductLaunchService.java
+1
-0
yd-product-service/src/main/java/com/yd/product/service/service/impl/ExpectedCommissionRatioServiceImpl.java
+6
-0
yd-product-service/src/main/java/com/yd/product/service/service/impl/RelProjectProductLaunchServiceImpl.java
+5
-0
yd-product-service/src/main/java/com/yd/product/service/service/impl/RelTenantProductLaunchServiceImpl.java
+6
-0
No files found.
yd-product-api/src/main/java/com/yd/product/api/controller/ApiExpectedCommissionRatioController.java
View file @
1cfd31d4
...
...
@@ -5,6 +5,7 @@ import com.yd.common.result.Result;
import
com.yd.product.api.service.ApiExpectedCommissionRatioService
;
import
com.yd.product.feign.client.expectedcommissionratio.ApiExpectedCommissionRatioFeignClient
;
import
com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioPageRequest
;
import
com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioSaveRequest
;
import
com.yd.product.feign.response.expectedcommissionratio.ApiExpectedCommissionRatioPageResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
...
...
@@ -35,4 +36,14 @@ public class ApiExpectedCommissionRatioController implements ApiExpectedCommissi
return
apiExpectedCommissionRatioService
.
page
(
request
);
}
/**
* 保存-预计来佣比率信息
* @param request
* @return
*/
@Override
public
Result
save
(
ApiExpectedCommissionRatioSaveRequest
request
)
{
return
apiExpectedCommissionRatioService
.
save
(
request
);
}
}
yd-product-api/src/main/java/com/yd/product/api/controller/ApiProductLaunchController.java
View file @
1cfd31d4
...
...
@@ -4,9 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import
com.yd.common.result.Result
;
import
com.yd.product.api.service.ApiProductLaunchService
;
import
com.yd.product.feign.client.productlaunch.ApiProductLaunchFeignClient
;
import
com.yd.product.feign.request.productlaunch.ApiProductLaunchCategoryAddRequest
;
import
com.yd.product.feign.request.productlaunch.ApiProductLaunchPageRequest
;
import
com.yd.product.feign.request.productlaunch.ApiProductLaunchSaveRequest
;
import
com.yd.product.feign.request.productlaunch.*
;
import
com.yd.product.feign.response.productlaunch.ApiProductLaunchCategoryAddResponse
;
import
com.yd.product.feign.response.productlaunch.ApiProductLaunchDetailResponse
;
import
com.yd.product.feign.response.productlaunch.ApiProductLaunchPageResponse
;
...
...
@@ -69,5 +67,25 @@ public class ApiProductLaunchController implements ApiProductLaunchFeignClient {
return
apiProductLaunchService
.
save
(
request
);
}
/**
* 审核-产品上架信息
* @param request
* @return
*/
@Override
public
Result
approval
(
ApiProductLaunchApprovalRequest
request
)
{
return
apiProductLaunchService
.
approval
(
request
);
}
/**
* 编辑-产品上架状态
* @param request
* @return
*/
@Override
public
Result
editStatus
(
ApiProductLaunchEditStatusRequest
request
)
{
return
apiProductLaunchService
.
editStatus
(
request
);
}
}
yd-product-api/src/main/java/com/yd/product/api/service/ApiExpectedCommissionRatioService.java
View file @
1cfd31d4
...
...
@@ -3,8 +3,11 @@ 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.expectedcommissionratio.ApiExpectedCommissionRatioPageRequest
;
import
com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioSaveRequest
;
import
com.yd.product.feign.response.expectedcommissionratio.ApiExpectedCommissionRatioPageResponse
;
public
interface
ApiExpectedCommissionRatioService
{
Result
<
IPage
<
ApiExpectedCommissionRatioPageResponse
>>
page
(
ApiExpectedCommissionRatioPageRequest
request
);
Result
save
(
ApiExpectedCommissionRatioSaveRequest
request
);
}
yd-product-api/src/main/java/com/yd/product/api/service/ApiProductLaunchService.java
View file @
1cfd31d4
...
...
@@ -2,9 +2,7 @@ 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.productlaunch.ApiProductLaunchCategoryAddRequest
;
import
com.yd.product.feign.request.productlaunch.ApiProductLaunchPageRequest
;
import
com.yd.product.feign.request.productlaunch.ApiProductLaunchSaveRequest
;
import
com.yd.product.feign.request.productlaunch.*
;
import
com.yd.product.feign.response.productlaunch.ApiProductLaunchCategoryAddResponse
;
import
com.yd.product.feign.response.productlaunch.ApiProductLaunchDetailResponse
;
import
com.yd.product.feign.response.productlaunch.ApiProductLaunchPageResponse
;
...
...
@@ -19,5 +17,9 @@ public interface ApiProductLaunchService {
Result
save
(
ApiProductLaunchSaveRequest
request
);
Result
<
ProductLaunch
>
checkProductLaunchIsExist
(
String
productBizId
);
Result
approval
(
ApiProductLaunchApprovalRequest
request
);
Result
editStatus
(
ApiProductLaunchEditStatusRequest
request
);
Result
<
ProductLaunch
>
checkProductLaunchIsExist
(
String
productLaunchBizId
);
}
yd-product-api/src/main/java/com/yd/product/api/service/impl/ApiExpectedCommissionRatioServiceImpl.java
View file @
1cfd31d4
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.common.result.Result
;
import
com.yd.product.api.service.ApiExpectedCommissionRatioService
;
import
com.yd.product.api.service.ApiProductLaunchService
;
import
com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioPageRequest
;
import
com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioSaveRequest
;
import
com.yd.product.feign.response.expectedcommissionratio.ApiExpectedCommissionRatioPageResponse
;
import
com.yd.product.service.model.ExpectedCommissionRatio
;
import
com.yd.product.service.model.ProductLaunch
;
import
com.yd.product.service.service.IExpectedCommissionRatioService
;
import
lombok.extern.slf4j.Slf4j
;
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.List
;
import
java.util.stream.Collectors
;
@Slf4j
@Service
...
...
@@ -18,6 +28,9 @@ public class ApiExpectedCommissionRatioServiceImpl implements ApiExpectedCommiss
@Autowired
private
IExpectedCommissionRatioService
iExpectedCommissionRatioService
;
@Autowired
private
ApiProductLaunchService
apiProductLaunchService
;
/**
* 分页列表查询-预计来佣比率信息
* @param request
...
...
@@ -30,4 +43,29 @@ public class ApiExpectedCommissionRatioServiceImpl implements ApiExpectedCommiss
return
Result
.
success
(
iPage
);
}
/**
* 保存-预计来佣比率信息
* @param request
* @return
*/
@Override
public
Result
save
(
ApiExpectedCommissionRatioSaveRequest
request
)
{
//校验产品上架信息是否存在
Result
<
ProductLaunch
>
result
=
apiProductLaunchService
.
checkProductLaunchIsExist
(
request
.
getProductLaunchBizId
());
ProductLaunch
productLaunch
=
result
.
getData
();
//先删后新增
//删除
iExpectedCommissionRatioService
.
delByProductLaunchBizId
(
request
.
getProductLaunchBizId
());
//新增
List
<
ExpectedCommissionRatio
>
expectedCommissionRatioList
=
request
.
getApiExpectedCommissionRatioDtoList
()
.
stream
().
map
(
dto
->
{
ExpectedCommissionRatio
ratio
=
new
ExpectedCommissionRatio
();
BeanUtils
.
copyProperties
(
dto
,
ratio
);
ratio
.
setSpeciesJson
(!
CollectionUtils
.
isEmpty
(
dto
.
getApiSpeciesSettingDtoList
())
?
JSON
.
toJSONString
(
dto
.
getApiSpeciesSettingDtoList
())
:
""
);
return
ratio
;
}).
collect
(
Collectors
.
toList
());
iExpectedCommissionRatioService
.
saveBatch
(
expectedCommissionRatioList
);
return
Result
.
success
();
}
}
yd-product-api/src/main/java/com/yd/product/api/service/impl/ApiProductLaunchServiceImpl.java
View file @
1cfd31d4
...
...
@@ -14,11 +14,10 @@ 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
;
import
com.yd.product.feign.request.product.ApiProductEditRequest
;
import
com.yd.product.feign.request.productlaunch.ApiProductLaunchCategoryAddRequest
;
import
com.yd.product.feign.request.productlaunch.ApiProductLaunchPageRequest
;
import
com.yd.product.feign.request.productlaunch.ApiProductLaunchSaveRequest
;
import
com.yd.product.feign.request.productlaunch.*
;
import
com.yd.product.feign.response.productlaunch.ApiAttributeSettingDto
;
import
com.yd.product.feign.response.productlaunch.ApiProductLaunchCategoryAddResponse
;
import
com.yd.product.feign.response.productlaunch.ApiProductLaunchDetailResponse
;
...
...
@@ -28,16 +27,16 @@ 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
;
import
com.yd.user.feign.request.reltenantproject.QueryRelTenantProjectListRequest
;
import
com.yd.user.feign.response.reltenantproject.QueryRelTenantProjectListResponse
;
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.Arrays
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.*
;
import
java.util.stream.Collectors
;
@Slf4j
...
...
@@ -72,8 +71,17 @@ public class ApiProductLaunchServiceImpl implements ApiProductLaunchService {
private
ApiSpeciesPriceService
apiSpeciesPriceService
;
@Autowired
private
IRelTenantProductLaunchService
iRelTenantProductLaunchService
;
@Autowired
private
IRelProjectProductLaunchService
iRelProjectProductLaunchService
;
@Autowired
private
ApiRelObjectCategoryFeignClient
apiRelObjectCategoryFeignClient
;
@Autowired
private
ApiRelTenantProjectFeignClient
apiRelTenantProjectFeignClient
;
@Override
public
Result
<
IPage
<
ApiProductLaunchPageResponse
>>
page
(
ApiProductLaunchPageRequest
request
)
{
Page
<
ApiProductLaunchPageResponse
>
page
=
new
Page
<
ApiProductLaunchPageResponse
>(
request
.
getPageNo
(),
request
.
getPageSize
());
...
...
@@ -120,7 +128,7 @@ public class ApiProductLaunchServiceImpl implements ApiProductLaunchService {
//产品上架信息表唯一业务ID
productLaunch
.
setProductLaunchBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_PRODUCT_LAUNCH
.
getCode
()));
//待审核
productLaunch
.
setStatus
(
0
);
productLaunch
.
setStatus
(
ProductCommonEnum
.
PRODUCT_LAUNCH_STATUS_DSH
.
getItemValue
()
);
iProductLaunchService
.
saveOrUpdate
(
productLaunch
);
//添加产品上架对象分类关系信息
ApiRelObjectCategoryListAddRequest
addRequest
=
new
ApiRelObjectCategoryListAddRequest
();
...
...
@@ -172,14 +180,40 @@ public class ApiProductLaunchServiceImpl implements ApiProductLaunchService {
response
.
setApiAttributeSettingDtoList
(
apiAttributeSettingDtoList
);
//规格信息配置列表
// 规格信息配置列表 - 按规格类型分组
List
<
ApiSpeciesTypeDto
>
apiSpeciesTypeDtoList
=
new
ArrayList
<>();
List
<
SpeciesSetting
>
speciesSettingList
=
iSpeciesSettingService
.
queryList
(
SpeciesSettingDto
.
builder
().
productLaunchBizId
(
productLaunchBizId
).
build
());
if
(!
CollectionUtils
.
isEmpty
(
speciesSettingList
))
{
apiSpeciesTypeDtoList
=
speciesSettingList
.
stream
().
map
(
dto
->
{
// 按规格类型分组
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
();
BeanUtils
.
copyProperties
(
dto
,
typeDto
);
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
;
}).
collect
(
Collectors
.
toList
());
}).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
}
response
.
setApiSpeciesTypeDtoList
(
apiSpeciesTypeDtoList
);
...
...
@@ -209,11 +243,12 @@ public class ApiProductLaunchServiceImpl implements ApiProductLaunchService {
ApiProductLaunchDto
apiProductLaunchDto
=
request
.
getApiProductLaunchDto
();
//校验产品上架信息是否存在
Result
<
ProductLaunch
>
result
=
checkProductLaunchIsExist
(
apiProductLaunchDto
.
getProductLaunchBizId
());
//更新产品上架主信息
ProductLaunch
productLaunch
=
result
.
getData
();
//更新产品上架主信息
BeanUtils
.
copyProperties
(
apiProductLaunchDto
,
productLaunch
);
productLaunch
.
setMainUrls
(!
CollectionUtils
.
isEmpty
(
apiProductLaunchDto
.
getMainUrlsList
())
?
String
.
join
(
";"
,
apiProductLaunchDto
.
getMainUrlsList
())
:
""
);
productLaunch
.
setDetailUrls
(!
CollectionUtils
.
isEmpty
(
apiProductLaunchDto
.
getDetailUrlsList
())
?
String
.
join
(
";"
,
apiProductLaunchDto
.
getDetailUrlsList
())
:
""
);
productLaunch
.
setProjectBizIdList
(!
CollectionUtils
.
isEmpty
(
apiProductLaunchDto
.
getProjectBizIdList
())
?
String
.
join
(
";"
,
apiProductLaunchDto
.
getProjectBizIdList
())
:
""
);
iProductLaunchService
.
saveOrUpdate
(
productLaunch
);
//设置产品上架信息参数列表
...
...
@@ -228,6 +263,125 @@ public class ApiProductLaunchServiceImpl implements ApiProductLaunchService {
}
/**
* 审核-产品上架信息
* @param request
* @return
*/
@Override
public
Result
approval
(
ApiProductLaunchApprovalRequest
request
)
{
//校验产品上架信息是否存在
Result
<
ProductLaunch
>
result
=
checkProductLaunchIsExist
(
request
.
getProductLaunchBizId
());
ProductLaunch
productLaunch
=
result
.
getData
();
//审核备注
productLaunch
.
setApprovalRemark
(
request
.
getApprovalRemark
());
if
(
ProductCommonEnum
.
APPROVAL_STATUS_TG
.
getItemValue
().
equals
(
request
.
getApprovalStatus
())){
//审核通过 -> 更新上架状态和更新租户/项目产品上架关系数据
//更新上架状态为在售状态
productLaunch
.
setStatus
(
ProductCommonEnum
.
PRODUCT_LAUNCH_STATUS_ZS
.
getItemValue
());
iProductLaunchService
.
saveOrUpdate
(
productLaunch
);
//更新租户/项目产品上架关系数据
List
<
String
>
projectBizIdList
=
StringUtils
.
isNotBlank
(
productLaunch
.
getProjectBizIdList
())
?
Arrays
.
asList
(
productLaunch
.
getProjectBizIdList
().
split
(
";"
).
clone
())
:
new
ArrayList
<>();
if
(!
CollectionUtils
.
isEmpty
(
projectBizIdList
))
{
//根据项目业务ID列表查询租户项目关系列表
Result
<
List
<
QueryRelTenantProjectListResponse
>>
listResult
=
queryRelTenantProjectList
(
projectBizIdList
);
List
<
QueryRelTenantProjectListResponse
>
list
=
listResult
.
getData
();
//保存项目产品上架信息关系列表
saveRelProjectProductLaunchList
(
list
,
productLaunch
.
getProductLaunchBizId
());
//保存租户产品上架信息关系列表
saveRelTenantProductLaunchList
(
list
,
productLaunch
.
getProductLaunchBizId
());
}
}
else
if
(
ProductCommonEnum
.
APPROVAL_STATUS_WTG
.
getItemValue
().
equals
(
request
.
getApprovalStatus
()))
{
//审核未通过
//更新上架状态为审核失败状态
productLaunch
.
setStatus
(
ProductCommonEnum
.
PRODUCT_LAUNCH_STATUS_SB
.
getItemValue
());
iProductLaunchService
.
saveOrUpdate
(
productLaunch
);
//审核未通过要清空租户/项目产品上架关系数据
//根据产品业务ID删除项目产品关系
iRelProjectProductLaunchService
.
delByProductLaunchBizId
(
productLaunch
.
getProductLaunchBizId
());
//根据产品业务ID删除租户产品关系
iRelTenantProductLaunchService
.
delByProductLaunchBizId
(
productLaunch
.
getProductLaunchBizId
());
}
return
Result
.
success
();
}
/**
* 编辑-产品上架状态
* @param request
* @return
*/
@Override
public
Result
editStatus
(
ApiProductLaunchEditStatusRequest
request
)
{
//校验产品上架信息是否存在
Result
<
ProductLaunch
>
result
=
checkProductLaunchIsExist
(
request
.
getProductLaunchBizId
());
ProductLaunch
productLaunch
=
result
.
getData
();
productLaunch
.
setStatus
(
request
.
getStatus
());
iProductLaunchService
.
saveOrUpdate
(
productLaunch
);
return
Result
.
success
();
}
/**
* 根据项目业务ID列表查询租户项目关系列表
* @return
*/
public
Result
<
List
<
QueryRelTenantProjectListResponse
>>
queryRelTenantProjectList
(
List
<
String
>
projectBizIdList
)
{
QueryRelTenantProjectListRequest
request
=
new
QueryRelTenantProjectListRequest
();
request
.
setProjectBizIdList
(
projectBizIdList
);
return
apiRelTenantProjectFeignClient
.
queryRelTenantProjectList
(
request
);
}
/**
* 保存租户产品上架信息关系列表
* @param responses
* @param productLaunchBizId
* @return
*/
public
Result
saveRelTenantProductLaunchList
(
List
<
QueryRelTenantProjectListResponse
>
responses
,
String
productLaunchBizId
)
{
//先删后新增
//根据产品业务ID删除租户产品关系
iRelTenantProductLaunchService
.
delByProductLaunchBizId
(
productLaunchBizId
);
//新增租户产品关系
if
(!
CollectionUtils
.
isEmpty
(
responses
))
{
List
<
RelTenantProductLaunch
>
saveList
=
responses
.
stream
().
map
(
dto
->
{
RelTenantProductLaunch
relTenantProductLaunch
=
new
RelTenantProductLaunch
();
relTenantProductLaunch
.
setProductLaunchBizId
(
productLaunchBizId
);
relTenantProductLaunch
.
setTenantBizId
(
dto
.
getTenantBizId
());
return
relTenantProductLaunch
;
}).
collect
(
Collectors
.
toList
());
iRelTenantProductLaunchService
.
saveOrUpdateBatch
(
saveList
);
}
return
Result
.
success
();
}
/**
* 保存项目产品上架信息关系列表
* @return
*/
public
Result
saveRelProjectProductLaunchList
(
List
<
QueryRelTenantProjectListResponse
>
responses
,
String
productLaunchBizId
)
{
//先删后新增
//根据产品业务ID删除项目产品关系
iRelProjectProductLaunchService
.
delByProductLaunchBizId
(
productLaunchBizId
);
//新增项目产品关系
if
(!
CollectionUtils
.
isEmpty
(
responses
))
{
List
<
RelProjectProductLaunch
>
saveList
=
responses
.
stream
().
map
(
dto
->
{
RelProjectProductLaunch
relProjectProductLaunch
=
new
RelProjectProductLaunch
();
relProjectProductLaunch
.
setProductLaunchBizId
(
productLaunchBizId
);
relProjectProductLaunch
.
setTenantBizId
(
dto
.
getTenantBizId
());
relProjectProductLaunch
.
setProjectBizId
(
dto
.
getProjectBizId
());
return
relProjectProductLaunch
;
}).
collect
(
Collectors
.
toList
());
iRelProjectProductLaunchService
.
saveOrUpdateBatch
(
saveList
);
}
return
Result
.
success
();
}
/**
* 校验产品上架信息是否存在
* @param productLaunchBizId
* @return
...
...
yd-product-feign/src/main/java/com/yd/product/feign/client/expectedcommissionratio/ApiExpectedCommissionRatioFeignClient.java
View file @
1cfd31d4
...
...
@@ -3,7 +3,9 @@ package com.yd.product.feign.client.expectedcommissionratio;
import
com.yd.common.result.Result
;
import
com.yd.product.feign.fallback.expectedcommissionratio.ApiExpectedCommissionRatioFeignFallbackFactory
;
import
com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioPageRequest
;
import
com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioSaveRequest
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
...
...
@@ -20,4 +22,12 @@ public interface ApiExpectedCommissionRatioFeignClient {
*/
@PostMapping
(
"/page"
)
Result
page
(
@RequestBody
ApiExpectedCommissionRatioPageRequest
request
);
/**
* 保存-预计来佣比率信息
* @param request
* @return
*/
@PostMapping
(
"/save"
)
Result
save
(
@Validated
@RequestBody
ApiExpectedCommissionRatioSaveRequest
request
);
}
yd-product-feign/src/main/java/com/yd/product/feign/client/productlaunch/ApiProductLaunchFeignClient.java
View file @
1cfd31d4
...
...
@@ -2,17 +2,13 @@ package com.yd.product.feign.client.productlaunch;
import
com.yd.common.result.Result
;
import
com.yd.product.feign.fallback.productlaunch.ApiProductLaunchFeignFallbackFactory
;
import
com.yd.product.feign.request.productlaunch.ApiProductLaunchCategoryAddRequest
;
import
com.yd.product.feign.request.productlaunch.ApiProductLaunchPageRequest
;
import
com.yd.product.feign.request.productlaunch.ApiProductLaunchSaveRequest
;
import
com.yd.product.feign.request.productlaunch.*
;
import
com.yd.product.feign.response.productlaunch.ApiProductLaunchCategoryAddResponse
;
import
com.yd.product.feign.response.productlaunch.ApiProductLaunchDetailResponse
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.*
;
import
javax.validation.constraints.NotBlank
;
/**
...
...
@@ -52,4 +48,20 @@ public interface ApiProductLaunchFeignClient {
*/
@PostMapping
(
"/save"
)
Result
save
(
@Validated
@RequestBody
ApiProductLaunchSaveRequest
request
);
/**
* 审核-产品上架信息
* @param request
* @return
*/
@PutMapping
(
"/approval"
)
Result
approval
(
@Validated
@RequestBody
ApiProductLaunchApprovalRequest
request
);
/**
* 编辑-产品上架状态
* @param request
* @return
*/
@PutMapping
(
"/edit/status"
)
Result
editStatus
(
@Validated
@RequestBody
ApiProductLaunchEditStatusRequest
request
);
}
yd-product-feign/src/main/java/com/yd/product/feign/dto/ApiExpectedCommissionRatioDto.java
0 → 100644
View file @
1cfd31d4
package
com
.
yd
.
product
.
feign
.
dto
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.List
;
@Data
public
class
ApiExpectedCommissionRatioDto
{
/**
* 预计来佣比率表唯一业务ID
*/
private
String
expectedCommissionRatioBizId
;
/**
* 产品上架信息表唯一业务ID
*/
private
String
productLaunchBizId
;
/**
* 产品唯一业务ID
*/
private
String
productBizId
;
/**
* 规格条件列表JSON串
*/
private
String
speciesJson
;
/**
* 上架产品规格配置表信息JSON串对应转化的列表
*/
private
List
<
ApiSpeciesSettingDto
>
apiSpeciesSettingDtoList
;
/**
* 保障年限(固定规格条件)
*/
private
String
warrantyPeriod
;
/**
* 期数(固定规格条件)
*/
private
String
issueNumber
;
/**
* 标保折算比例
*/
private
BigDecimal
discountRatio
;
/**
* 计算基数(保费/保费*折算比例)
*/
private
BigDecimal
cardinalNumber
;
/**
* 来佣类型
*/
private
String
commissionType
;
/**
* 来佣比例
*/
private
BigDecimal
commissionRatio
;
/**
* 出单渠道
*/
private
String
channel
;
/**
* 有效开始时间
*/
private
LocalDateTime
effectiveStart
;
/**
* 有效结束时间
*/
private
LocalDateTime
effectiveEnd
;
/**
* 来佣日规则
*/
private
String
rules
;
/**
* 通用备注
*/
private
String
remark
;
}
yd-product-feign/src/main/java/com/yd/product/feign/dto/ApiProductLaunchDto.java
View file @
1cfd31d4
...
...
@@ -49,4 +49,9 @@ public class ApiProductLaunchDto {
* 状态:0-待审核 1-审核成功 2-审核失败 3-在售 4-停售 5-下架 6-预售
*/
private
Integer
status
;
/**
* 上架到对应的项目列表
*/
private
List
<
String
>
projectBizIdList
;
}
yd-product-feign/src/main/java/com/yd/product/feign/enums/ProductCommonEnum.java
0 → 100644
View file @
1cfd31d4
package
com
.
yd
.
product
.
feign
.
enums
;
/**
* 产品服务公共枚举
*/
public
enum
ProductCommonEnum
{
//产品上架状态枚举
PRODUCT_LAUNCH_STATUS_DSH
(
"待审核"
,
"DSH"
),
PRODUCT_LAUNCH_STATUS_CG
(
"审核成功"
,
"CG"
),
PRODUCT_LAUNCH_STATUS_SB
(
"审核失败"
,
"SB"
),
PRODUCT_LAUNCH_STATUS_ZS
(
"在售"
,
"ZS"
),
PRODUCT_LAUNCH_STATUS_TS
(
"停售"
,
"TS"
),
PRODUCT_LAUNCH_STATUS_XJ
(
"下架"
,
"XJ"
),
PRODUCT_LAUNCH_STATUS_YS
(
"预售"
,
"YS"
),
//审核操作状态
APPROVAL_STATUS_TG
(
"通过"
,
"TG"
),
APPROVAL_STATUS_WTG
(
"未通过"
,
"WTG"
),
;
//字典项标签(名称)
private
String
itemLabel
;
//字典项值
private
String
itemValue
;
//构造函数
ProductCommonEnum
(
String
itemLabel
,
String
itemValue
)
{
this
.
itemLabel
=
itemLabel
;
this
.
itemValue
=
itemValue
;
}
public
String
getItemLabel
()
{
return
itemLabel
;
}
public
String
getItemValue
()
{
return
itemValue
;
}
}
yd-product-feign/src/main/java/com/yd/product/feign/fallback/expectedcommissionratio/ApiExpectedCommissionRatioFeignFallbackFactory.java
View file @
1cfd31d4
...
...
@@ -3,6 +3,7 @@ package com.yd.product.feign.fallback.expectedcommissionratio;
import
com.yd.common.result.Result
;
import
com.yd.product.feign.client.expectedcommissionratio.ApiExpectedCommissionRatioFeignClient
;
import
com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioPageRequest
;
import
com.yd.product.feign.request.expectedcommissionratio.ApiExpectedCommissionRatioSaveRequest
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.cloud.openfeign.FallbackFactory
;
import
org.springframework.stereotype.Component
;
...
...
@@ -20,6 +21,11 @@ public class ApiExpectedCommissionRatioFeignFallbackFactory implements FallbackF
public
Result
page
(
ApiExpectedCommissionRatioPageRequest
request
)
{
return
null
;
}
@Override
public
Result
save
(
ApiExpectedCommissionRatioSaveRequest
request
)
{
return
null
;
}
};
}
}
yd-product-feign/src/main/java/com/yd/product/feign/fallback/productlaunch/ApiProductLaunchFeignFallbackFactory.java
View file @
1cfd31d4
...
...
@@ -2,9 +2,7 @@ package com.yd.product.feign.fallback.productlaunch;
import
com.yd.common.result.Result
;
import
com.yd.product.feign.client.productlaunch.ApiProductLaunchFeignClient
;
import
com.yd.product.feign.request.productlaunch.ApiProductLaunchCategoryAddRequest
;
import
com.yd.product.feign.request.productlaunch.ApiProductLaunchPageRequest
;
import
com.yd.product.feign.request.productlaunch.ApiProductLaunchSaveRequest
;
import
com.yd.product.feign.request.productlaunch.*
;
import
com.yd.product.feign.response.productlaunch.ApiProductLaunchCategoryAddResponse
;
import
com.yd.product.feign.response.productlaunch.ApiProductLaunchDetailResponse
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -39,6 +37,16 @@ public class ApiProductLaunchFeignFallbackFactory implements FallbackFactory<Api
public
Result
save
(
ApiProductLaunchSaveRequest
request
)
{
return
null
;
}
@Override
public
Result
approval
(
ApiProductLaunchApprovalRequest
request
)
{
return
null
;
}
@Override
public
Result
editStatus
(
ApiProductLaunchEditStatusRequest
request
)
{
return
null
;
}
};
}
}
yd-product-feign/src/main/java/com/yd/product/feign/request/expectedcommissionratio/ApiExpectedCommissionRatioSaveRequest.java
0 → 100644
View file @
1cfd31d4
package
com
.
yd
.
product
.
feign
.
request
.
expectedcommissionratio
;
import
com.yd.product.feign.dto.ApiExpectedCommissionRatioDto
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotEmpty
;
import
java.util.List
;
@Data
public
class
ApiExpectedCommissionRatioSaveRequest
{
/**
* 产品上架信息表唯一业务ID
*/
@NotBlank
(
message
=
"产品上架信息表唯一业务ID不能为空"
)
private
String
productLaunchBizId
;
/**
* 预计来佣比率配置列表信息
*/
@NotEmpty
(
message
=
"预计来佣比率配置列表信息不能为空"
)
private
List
<
ApiExpectedCommissionRatioDto
>
apiExpectedCommissionRatioDtoList
;
}
yd-product-feign/src/main/java/com/yd/product/feign/request/productlaunch/ApiProductLaunchApprovalRequest.java
0 → 100644
View file @
1cfd31d4
package
com
.
yd
.
product
.
feign
.
request
.
productlaunch
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
@Data
public
class
ApiProductLaunchApprovalRequest
{
/**
* 产品上架信息表唯一业务ID
*/
@NotBlank
(
message
=
"产品上架信息表唯一业务ID不能为空"
)
private
String
productLaunchBizId
;
/**
* 审核状态 TG-审核通过 WTG-审核未通过
*/
@NotBlank
(
message
=
"审核状态不能为空"
)
private
String
approvalStatus
;
/**
* 审核备注
*/
private
String
approvalRemark
;
}
yd-product-feign/src/main/java/com/yd/product/feign/request/productlaunch/ApiProductLaunchEditStatusRequest.java
0 → 100644
View file @
1cfd31d4
package
com
.
yd
.
product
.
feign
.
request
.
productlaunch
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
@Data
public
class
ApiProductLaunchEditStatusRequest
{
/**
* 产品上架信息表唯一业务ID
*/
@NotBlank
(
message
=
"产品上架信息表唯一业务ID不能为空"
)
private
String
productLaunchBizId
;
/**
* 上架状态(字典)
*/
@NotBlank
(
message
=
"上架状态不能为空"
)
private
String
status
;
}
yd-product-service/src/main/java/com/yd/product/service/model/Product.java
View file @
1cfd31d4
...
...
@@ -49,7 +49,7 @@ public class Product implements Serializable {
private
String
productCode
;
/**
* 状态
:0=下架,1=在售 2=预售 3=停售
* 状态
(0:禁用 1:启用)
*/
@TableField
(
"status"
)
private
Integer
status
;
...
...
yd-product-service/src/main/java/com/yd/product/service/model/ProductLaunch.java
View file @
1cfd31d4
...
...
@@ -91,10 +91,22 @@ public class ProductLaunch implements Serializable {
private
String
projectBizId
;
/**
*
状态:0-待审核 1-审核成功 2-审核失败 3-在售 4-停售 5-下架 6-预售
*
上架状态
*/
@TableField
(
"status"
)
private
Integer
status
;
private
String
status
;
/**
* 审核备注
*/
@TableField
(
"approval_remark"
)
private
String
approvalRemark
;
/**
* 上架到对应的项目列表(多个项目id分号分隔)
*/
@TableField
(
"project_biz_id_list"
)
private
String
projectBizIdList
;
/**
* 通用备注
...
...
yd-product-service/src/main/java/com/yd/product/service/service/IExpectedCommissionRatioService.java
View file @
1cfd31d4
...
...
@@ -19,4 +19,6 @@ public interface IExpectedCommissionRatioService extends IService<ExpectedCommis
IPage
<
ApiExpectedCommissionRatioPageResponse
>
page
(
Page
<
ApiExpectedCommissionRatioPageResponse
>
page
,
ApiExpectedCommissionRatioPageRequest
request
);
Boolean
delByProductLaunchBizId
(
String
productLaunchBizId
);
}
yd-product-service/src/main/java/com/yd/product/service/service/IRelProjectProductLaunchService.java
View file @
1cfd31d4
...
...
@@ -13,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public
interface
IRelProjectProductLaunchService
extends
IService
<
RelProjectProductLaunch
>
{
Boolean
delByProductLaunchBizId
(
String
productLaunchBizId
);
}
yd-product-service/src/main/java/com/yd/product/service/service/IRelTenantProductLaunchService.java
View file @
1cfd31d4
...
...
@@ -13,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public
interface
IRelTenantProductLaunchService
extends
IService
<
RelTenantProductLaunch
>
{
Boolean
delByProductLaunchBizId
(
String
productLaunchBizId
);
}
yd-product-service/src/main/java/com/yd/product/service/service/impl/ExpectedCommissionRatioServiceImpl.java
View file @
1cfd31d4
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.expectedcommissionratio.ApiExpectedCommissionRatioPageRequest
;
...
...
@@ -26,4 +27,9 @@ public class ExpectedCommissionRatioServiceImpl extends ServiceImpl<ExpectedComm
ApiExpectedCommissionRatioPageRequest
request
)
{
return
baseMapper
.
page
(
page
,
request
);
}
@Override
public
Boolean
delByProductLaunchBizId
(
String
productLaunchBizId
)
{
return
this
.
remove
(
new
LambdaQueryWrapper
<
ExpectedCommissionRatio
>().
eq
(
ExpectedCommissionRatio:
:
getProductLaunchBizId
,
productLaunchBizId
));
}
}
yd-product-service/src/main/java/com/yd/product/service/service/impl/RelProjectProductLaunchServiceImpl.java
View file @
1cfd31d4
package
com
.
yd
.
product
.
service
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.yd.product.service.model.RelProjectProductLaunch
;
import
com.yd.product.service.dao.RelProjectProductLaunchMapper
;
import
com.yd.product.service.service.IRelProjectProductLaunchService
;
...
...
@@ -17,4 +18,8 @@ import org.springframework.stereotype.Service;
@Service
public
class
RelProjectProductLaunchServiceImpl
extends
ServiceImpl
<
RelProjectProductLaunchMapper
,
RelProjectProductLaunch
>
implements
IRelProjectProductLaunchService
{
@Override
public
Boolean
delByProductLaunchBizId
(
String
productLaunchBizId
)
{
return
this
.
remove
(
new
LambdaQueryWrapper
<
RelProjectProductLaunch
>().
eq
(
RelProjectProductLaunch:
:
getProductLaunchBizId
,
productLaunchBizId
));
}
}
yd-product-service/src/main/java/com/yd/product/service/service/impl/RelTenantProductLaunchServiceImpl.java
View file @
1cfd31d4
package
com
.
yd
.
product
.
service
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.yd.common.result.Result
;
import
com.yd.product.service.model.RelTenantProductLaunch
;
import
com.yd.product.service.dao.RelTenantProductLaunchMapper
;
import
com.yd.product.service.service.IRelTenantProductLaunchService
;
...
...
@@ -17,4 +19,8 @@ import org.springframework.stereotype.Service;
@Service
public
class
RelTenantProductLaunchServiceImpl
extends
ServiceImpl
<
RelTenantProductLaunchMapper
,
RelTenantProductLaunch
>
implements
IRelTenantProductLaunchService
{
@Override
public
Boolean
delByProductLaunchBizId
(
String
productLaunchBizId
)
{
return
this
.
remove
(
new
LambdaQueryWrapper
<
RelTenantProductLaunch
>().
eq
(
RelTenantProductLaunch:
:
getProductLaunchBizId
,
productLaunchBizId
));
}
}
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