Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
pms-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
pms-ci-test
Commits
de246e24
提交
de246e24
authored
6月 09, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
新增:租赁设备详情及其他服务接口
上级
f20a6ca6
隐藏空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
1378 行增加
和
1056 行删除
+1378
-1056
BackstageGoodsManageController.java
...om/mmc/pms/controller/BackstageGoodsManageController.java
+70
-60
LeaseGoodsController.java
...a/com/mmc/pms/controller/common/LeaseGoodsController.java
+13
-4
GoodsInfoDao.java
src/main/java/com/mmc/pms/dao/GoodsInfoDao.java
+43
-45
ProductDao.java
src/main/java/com/mmc/pms/dao/ProductDao.java
+2
-0
MallProdInfoDO.java
src/main/java/com/mmc/pms/entity/MallProdInfoDO.java
+45
-50
SaleServiceDO.java
src/main/java/com/mmc/pms/entity/SaleServiceDO.java
+32
-0
LeaseGoodsDetailDTO.java
...java/com/mmc/pms/model/lease/dto/LeaseGoodsDetailDTO.java
+0
-70
MallGoodsDetailDTO.java
...n/java/com/mmc/pms/model/sale/dto/MallGoodsDetailDTO.java
+46
-29
SaleServiceDTO.java
src/main/java/com/mmc/pms/model/sale/dto/SaleServiceDTO.java
+25
-0
GoodsInfoService.java
src/main/java/com/mmc/pms/service/GoodsInfoService.java
+12
-10
GoodsInfoServiceImpl.java
...n/java/com/mmc/pms/service/Impl/GoodsInfoServiceImpl.java
+999
-753
WebDeviceServiceImpl.java
...n/java/com/mmc/pms/service/Impl/WebDeviceServiceImpl.java
+26
-0
WebDeviceService.java
src/main/java/com/mmc/pms/service/WebDeviceService.java
+16
-13
GoodsInfoDao.xml
src/main/resources/mapper/GoodsInfoDao.xml
+35
-19
ProductDao.xml
src/main/resources/mapper/ProductDao.xml
+11
-1
WebDeviceDao.xml
src/main/resources/mapper/WebDeviceDao.xml
+2
-2
not-check.yml
src/main/resources/not-check.yml
+1
-0
没有找到文件。
src/main/java/com/mmc/pms/controller/BackstageGoodsManageController.java
浏览文件 @
de246e24
...
...
@@ -13,85 +13,95 @@ import com.mmc.pms.service.GoodsInfoService;
import
io.swagger.annotations.*
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
springfox.documentation.annotations.ApiIgnore
;
import
javax.annotation.Resource
;
import
java.util.List
;
/**
* @Author LW
*
@date 2023/3/14 13:22
* 概要:
*
*
@date 2023/3/14 13:22
概要:
*/
@RestController
@RequestMapping
(
"/goods"
)
@Api
(
tags
=
{
"后台-商品管理-相关接口"
})
public
class
BackstageGoodsManageController
{
@Resource
private
GoodsInfoService
goodsInfoService
;
@Resource
private
GoodsInfoService
goodsInfoService
;
@ApiOperation
(
value
=
"新增(租赁/销售)商品"
)
@PostMapping
(
"addGoodsInfo"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
ResultBody
addGoods
(
@ApiParam
(
"商品信息VO"
)
@Validated
(
Create
.
class
)
@RequestBody
GoodsAddVO
goodsAddVO
)
{
return
goodsInfoService
.
addGoods
(
goodsAddVO
);
}
@ApiOperation
(
value
=
"新增(租赁/销售)商品"
)
@PostMapping
(
"addGoodsInfo"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
ResultBody
addGoods
(
@ApiParam
(
"商品信息VO"
)
@Validated
(
Create
.
class
)
@RequestBody
GoodsAddVO
goodsAddVO
)
{
return
goodsInfoService
.
addGoods
(
goodsAddVO
);
}
@ApiOperation
(
value
=
"修改(租赁/销售)商品"
)
@PostMapping
(
"editGoodsInfo"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
ResultBody
editGoodsInfo
(
@ApiParam
(
"商品信息VO"
)
@Validated
(
Update
.
class
)
@RequestBody
GoodsAddVO
goodsAddVO
)
{
return
goodsInfoService
.
editGoodsInfo
(
goodsAddVO
);
}
@ApiOperation
(
value
=
"修改(租赁/销售)商品"
)
@PostMapping
(
"editGoodsInfo"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
ResultBody
editGoodsInfo
(
@ApiParam
(
"商品信息VO"
)
@Validated
(
Update
.
class
)
@RequestBody
GoodsAddVO
goodsAddVO
)
{
return
goodsInfoService
.
editGoodsInfo
(
goodsAddVO
);
}
@ApiOperation
(
value
=
"PC端-商品详情"
)
@GetMapping
(
"getGoodsInfoDetail"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
MallGoodsDetailDTO
.
class
)})
public
ResultBody
getGoodsInfoDetail
(
@ApiParam
(
"商品id"
)
@RequestParam
Integer
goodsInfoId
)
{
return
goodsInfoService
.
getGoodsInfoDetail
(
goodsInfoId
);
}
@ApiOperation
(
value
=
"PC端-商品详情"
)
@GetMapping
(
"getGoodsInfoDetail"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
MallGoodsDetailDTO
.
class
)})
public
ResultBody
getGoodsInfoDetail
(
@ApiParam
(
"商品id"
)
@RequestParam
Integer
goodsInfoId
)
{
return
goodsInfoService
.
getGoodsInfoDetail
(
goodsInfoId
);
}
@ApiOperation
(
value
=
"单位信息"
)
@GetMapping
(
"getSkuUnit"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
SkuUnitDTO
.
class
)})
public
ResultBody
getSkuUnit
()
{
return
goodsInfoService
.
getSkuUnit
();
}
@ApiOperation
(
value
=
"单位信息"
)
@GetMapping
(
"getSkuUnit"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
SkuUnitDTO
.
class
)})
public
ResultBody
getSkuUnit
()
{
return
goodsInfoService
.
getSkuUnit
();
}
@ApiOperation
(
value
=
"feign根据购物车信息填充未知信息"
,
hidden
=
true
)
@PostMapping
(
"fillGoodsInfo
"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
MallGoodsShopCar
DTO
.
class
)})
public
List
<
MallGoodsShopCarDTO
>
fillGoodsInfo
(
@RequestBody
List
<
MallGoodsShopCarDTO
>
param
)
{
return
goodsInfoService
.
fillGoodsInfo
(
param
);
}
@ApiOperation
(
value
=
"PC端-其他服务-列表"
)
@GetMapping
(
"listOtherService
"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
SaleService
DTO
.
class
)})
public
ResultBody
listOtherService
(
)
{
return
goodsInfoService
.
getSaleServiceInfoToList
(
);
}
@ApiOperation
(
value
=
"feign根据渠道等级和产品规格id获取对应价格
"
,
hidden
=
true
)
@PostMapping
(
"feignListProductSpecPrice
"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
List
<
MallProductSpecPriceDTO
>
feignListProductSpecPrice
(
@RequestBody
ProductSpecPriceQO
productSpecPriceQO
)
{
return
goodsInfoService
.
feignListProductSpecPrice
(
productSpecPriceQO
);
}
@ApiOperation
(
value
=
"feign根据购物车信息填充未知信息
"
,
hidden
=
true
)
@PostMapping
(
"fillGoodsInfo
"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
MallGoodsShopCarDTO
.
class
)})
public
List
<
MallGoodsShopCarDTO
>
fillGoodsInfo
(
@RequestBody
List
<
MallGoodsShopCarDTO
>
param
)
{
return
goodsInfoService
.
fillGoodsInfo
(
param
);
}
@ApiOperation
(
value
=
"feign根据渠道等级获取单价信息
"
,
hidden
=
true
)
@GetMapping
(
"feignGetUnitPriceByTag
"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ProductSpecPriceDTO
.
class
)})
public
ProductSpecPriceDTO
feignGetUnitPriceByTag
(
@RequestParam
(
value
=
"specId"
)
Integer
specId
,
@RequestParam
(
value
=
"tagId"
)
Integer
tagId
)
{
return
goodsInfoService
.
feignGetUnitPriceByTag
(
specId
,
tagId
);
}
@ApiOperation
(
value
=
"feign根据渠道等级和产品规格id获取对应价格
"
,
hidden
=
true
)
@PostMapping
(
"feignListProductSpecPrice
"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
List
<
MallProductSpecPriceDTO
>
feignListProductSpecPrice
(
@RequestBody
ProductSpecPriceQO
productSpecPriceQO
)
{
return
goodsInfoService
.
feignListProductSpecPrice
(
productSpecPriceQO
);
}
@ApiOperation
(
value
=
"feign根据商品的产品规格id查询商品信息"
,
hidden
=
true
)
@PostMapping
(
"feignListProdGoodsSkuInfo"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
OrderGoodsProdDTO
.
class
)})
public
List
<
OrderGoodsProdDTO
>
feignListProdGoodsSkuInfo
(
@RequestBody
MallOrderGoodsInfoQO
mallOrderGoodsInfoQO
)
{
return
goodsInfoService
.
feignListProdGoodsSkuInfo
(
mallOrderGoodsInfoQO
);
}
@ApiOperation
(
value
=
"feign根据渠道等级获取单价信息"
,
hidden
=
true
)
@GetMapping
(
"feignGetUnitPriceByTag"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ProductSpecPriceDTO
.
class
)})
public
ProductSpecPriceDTO
feignGetUnitPriceByTag
(
@RequestParam
(
value
=
"specId"
)
Integer
specId
,
@RequestParam
(
value
=
"tagId"
)
Integer
tagId
)
{
return
goodsInfoService
.
feignGetUnitPriceByTag
(
specId
,
tagId
);
}
@ApiOperation
(
value
=
"feign根据商品的行业规格id查询商品清单信息"
,
hidden
=
true
)
@PostMapping
(
"feignListIndstGoodsSkuInfo"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
OrderGoodsProdDTO
.
class
)})
public
List
<
OrderGoodsIndstDTO
>
feignListIndstGoodsSkuInfo
(
@RequestBody
MallOrderGoodsInfoQO
mallOrderGoodsInfoQO
)
{
return
goodsInfoService
.
feignListIndstGoodsSkuInfo
(
mallOrderGoodsInfoQO
);
}
@ApiOperation
(
value
=
"feign根据商品的产品规格id查询商品信息"
,
hidden
=
true
)
@PostMapping
(
"feignListProdGoodsSkuInfo"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
OrderGoodsProdDTO
.
class
)})
public
List
<
OrderGoodsProdDTO
>
feignListProdGoodsSkuInfo
(
@RequestBody
MallOrderGoodsInfoQO
mallOrderGoodsInfoQO
)
{
return
goodsInfoService
.
feignListProdGoodsSkuInfo
(
mallOrderGoodsInfoQO
);
}
@ApiOperation
(
value
=
"feign根据商品的行业规格id查询商品清单信息"
,
hidden
=
true
)
@PostMapping
(
"feignListIndstGoodsSkuInfo"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
OrderGoodsProdDTO
.
class
)})
public
List
<
OrderGoodsIndstDTO
>
feignListIndstGoodsSkuInfo
(
@RequestBody
MallOrderGoodsInfoQO
mallOrderGoodsInfoQO
)
{
return
goodsInfoService
.
feignListIndstGoodsSkuInfo
(
mallOrderGoodsInfoQO
);
}
}
src/main/java/com/mmc/pms/controller/common/LeaseGoodsController.java
浏览文件 @
de246e24
...
...
@@ -6,6 +6,7 @@ import com.mmc.pms.constant.TokenConstant;
import
com.mmc.pms.controller.BaseController
;
import
com.mmc.pms.model.lease.dto.LeaseGoodsInfoDTO
;
import
com.mmc.pms.model.qo.WareInfoQO
;
import
com.mmc.pms.model.sale.dto.MallGoodsDetailDTO
;
import
com.mmc.pms.service.WebDeviceService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
...
...
@@ -13,10 +14,7 @@ import io.swagger.annotations.ApiResponse;
import
io.swagger.annotations.ApiResponses
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
...
...
@@ -42,4 +40,15 @@ public class LeaseGoodsController extends BaseController {
return
webDeviceService
.
listWareInfoPage
(
param
,
request
,
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
());
}
@ApiOperation
(
value
=
"设备设备详情"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
MallGoodsDetailDTO
.
class
)})
@GetMapping
(
"/getLeaseGoodsDetail"
)
public
ResultBody
listLeaseGoodsDetail
(
Integer
goodsId
,
HttpServletRequest
request
)
{
if
(
request
.
getHeader
(
TokenConstant
.
TOKEN
)
==
null
)
{
return
webDeviceService
.
listLeaseGoodsDetail
(
goodsId
,
null
,
null
);
}
return
webDeviceService
.
listLeaseGoodsDetail
(
goodsId
,
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
(),
request
);
}
}
src/main/java/com/mmc/pms/dao/GoodsInfoDao.java
浏览文件 @
de246e24
...
...
@@ -11,91 +11,89 @@ import java.util.Set;
/**
* @author 23214
* @description 针对表【goods_info(商品基本信息)】的数据库操作Mapper
* @createDate 2023-05-27 14:08:45
* @Entity com.mmc.pms.entity.GoodsInfo
* @createDate 2023-05-27 14:08:45 @Entity com.mmc.pms.entity.GoodsInfo
*/
@Mapper
public
interface
GoodsInfoDao
{
int
countGoodsInfoByName
(
GoodsAddVO
goodsAddVO
);
int
countGoodsInfoByName
(
GoodsAddVO
goodsAddVO
);
void
insertGoodsInfo
(
GoodsInfo
goodsInfo
);
void
insertGoodsInfo
(
GoodsInfo
goodsInfo
);
int
countGoodsInfo
();
int
countGoodsInfo
();
void
insertGoodsImgInfo
(
List
<
GoodsImgDO
>
list
);
void
insertGoodsImgInfo
(
List
<
GoodsImgDO
>
list
);
void
insertVideoInfo
(
GoodsVideoDO
goodsVideoDO
);
void
insertVideoInfo
(
GoodsVideoDO
goodsVideoDO
);
void
insertGoodsDetail
(
GoodsDetailDO
goodsDetailDO
);
void
insertGoodsDetail
(
GoodsDetailDO
goodsDetailDO
);
void
insertGoodsService
(
List
<
GoodsServiceDO
>
otherList
);
void
insertGoodsService
(
List
<
GoodsServiceDO
>
otherList
);
int
countGoodsInfoById
(
Integer
id
);
int
countGoodsInfoById
(
Integer
id
);
void
updateGoodsInfo
(
GoodsInfo
goodsInfo
);
void
updateGoodsInfo
(
GoodsInfo
goodsInfo
);
void
updateGoodsDetail
(
GoodsDetailDO
goodsDetailDO
);
void
updateGoodsDetail
(
GoodsDetailDO
goodsDetailDO
);
List
<
GoodsImgDO
>
listGoodsInfoByGoodsId
(
Integer
id
);
List
<
GoodsImgDO
>
listGoodsInfoByGoodsId
(
Integer
id
);
void
deleteImgByIds
(
List
<
Integer
>
deleteIds
);
void
deleteImgByIds
(
List
<
Integer
>
deleteIds
);
void
deleteGoodsVideoById
(
Integer
id
);
void
deleteGoodsVideoById
(
Integer
id
);
void
deleteGoodsServiceByGoodsId
(
Integer
id
);
void
deleteGoodsServiceByGoodsId
(
Integer
id
);
void
insertMallIndustrySkuInfo
(
MallIndustrySkuInfoDO
mallIndustrySkuInfoDO
);
void
insertMallIndustrySkuInfo
(
MallIndustrySkuInfoDO
mallIndustrySkuInfoDO
);
void
insertMallIndustrySkuInfoSpec
(
MallIndustrySkuInfoSpecDO
mallIndustrySkuInfoSpecDO
);
void
insertMallIndustrySkuInfoSpec
(
MallIndustrySkuInfoSpecDO
mallIndustrySkuInfoSpecDO
);
List
<
MallProdInfoDO
>
getMallProSkuInfo
(
Integer
id
);
List
<
MallProdInfoDO
>
getMallProSkuInfo
(
Integer
id
);
void
batchUpdateMallProductSku
(
List
<
Integer
>
delIds
);
void
batchUpdateMallProductSku
(
List
<
Integer
>
delIds
);
void
batchUpdateMallProdSkuInfo
(
List
<
MallProdInfoDO
>
mallProdSkuInfoList
);
void
batchUpdateMallProdSkuInfo
(
List
<
MallProdInfoDO
>
mallProdSkuInfoList
);
List
<
MallIndustrySkuInfoDO
>
getMallIndustrySkuInfo
(
Integer
id
);
List
<
MallIndustrySkuInfoDO
>
getMallIndustrySkuInfo
(
Integer
id
);
GoodsInfo
getGoodsSimpleInfo
(
Integer
goodsInfoId
);
GoodsInfo
getGoodsSimpleInfo
(
Integer
goodsInfoId
);
GoodsDetailDO
getGoodsDetailByGoodsId
(
Integer
goodsInfoId
);
GoodsDetailDO
getGoodsDetailByGoodsId
(
Integer
goodsInfoId
);
List
<
GoodsServiceDO
>
listGoodsServiceByGoodsId
(
Integer
goodsInfoId
);
List
<
GoodsServiceDO
>
listGoodsServiceByGoodsId
(
Integer
goodsInfoId
);
List
<
SkuUnitDO
>
getSkuUnit
();
List
<
SkuUnitDO
>
getSkuUnit
();
List
<
GoodsInfo
>
listSimpleGoodsInfoByIds
(
@Param
(
"ids"
)
Set
<
Integer
>
ids
);
List
<
GoodsInfo
>
listSimpleGoodsInfoByIds
(
@Param
(
"ids"
)
Set
<
Integer
>
ids
);
void
insertMallProdSkuInfo
(
MallProdInfoDO
mallProdSkuInfoDO
);
void
insertMallProdSkuInfo
(
MallProdInfoDO
mallProdSkuInfoDO
);
void
insertMallProdSkuInfoSpec
(
MallProdSkuInfoSpecDO
mallProdSkuInfoSpecDO
);
void
insertMallProdSkuInfoSpec
(
MallProdSkuInfoSpecDO
mallProdSkuInfoSpecDO
);
void
batchUpdateMallProSpec
(
@Param
(
"list"
)
List
<
Integer
>
list
,
@Param
(
"id"
)
Integer
id
);
void
batchUpdateMallProSpec
(
@Param
(
"list"
)
List
<
Integer
>
list
,
@Param
(
"id"
)
Integer
id
);
List
<
MallProdSkuInfoSpecDO
>
listMallProdSpecInfo
(
List
<
Integer
>
mallSkuIds
);
List
<
MallProdSkuInfoSpecDO
>
listMallProdSpecInfo
(
List
<
Integer
>
mallSkuIds
);
void
batchUpdateMallProdSpec
(
List
<
Integer
>
delSpecId
);
void
batchUpdateMallProdSpec
(
List
<
Integer
>
delSpecId
);
List
<
MallGoodsSpecInfoDO
>
listProdSpecInfo
(
@Param
(
"prodIds"
)
Set
<
Integer
>
prodIds
);
List
<
MallGoodsSpecInfoDO
>
listProdSpecInfo
(
@Param
(
"prodIds"
)
Set
<
Integer
>
prodIds
);
List
<
MallGoodsSpecInfoDO
>
listIndstSpecInfo
(
@Param
(
"indstIds"
)
Set
<
Integer
>
indstIds
);
List
<
MallGoodsSpecInfoDO
>
listIndstSpecInfo
(
@Param
(
"indstIds"
)
Set
<
Integer
>
indstIds
);
List
<
GoodsServiceDO
>
listGoodsService
(
List
<
Integer
>
goodsIds
);
List
<
GoodsServiceDO
>
listGoodsService
(
List
<
Integer
>
goodsIds
);
List
<
MallGoodsInfoSimpleDO
>
listMallGoodsIndstSimpleInfo
(
@Param
(
"indstSkuSpecIds"
)
Set
<
Integer
>
indstSkuSpecIds
);
List
<
MallGoodsInfoSimpleDO
>
listMallGoodsIndstSimpleInfo
(
@Param
(
"indstSkuSpecIds"
)
Set
<
Integer
>
indstSkuSpecIds
);
List
<
Integer
>
listIndustrySpecIds
(
Set
<
Integer
>
mallIndstSkuSpecIds
);
List
<
Integer
>
listIndustrySpecIds
(
Set
<
Integer
>
mallIndstSkuSpecIds
);
List
<
MallGoodsProductDO
>
listIndustryProductList
(
List
<
Integer
>
industrySpecIds
);
List
<
GoodsInfo
>
ListGoodsInfoByCategoryId
(
Integer
id
);
List
<
MallProdSkuInfoSpecDO
>
getMallProSkuInfoSpec
(
Integer
goodsInfoId
);
List
<
MallProdSkuInfoSpecDO
>
listMallprodSpecById
(
List
<
Integer
>
goodsIds
);
}
List
<
MallGoodsProductDO
>
listIndustryProductList
(
List
<
Integer
>
industrySpecIds
);
List
<
GoodsInfo
>
ListGoodsInfoByCategoryId
(
Integer
id
);
List
<
MallProdSkuInfoSpecDO
>
getMallProSkuInfoSpec
(
Integer
goodsInfoId
);
List
<
MallProdSkuInfoSpecDO
>
listMallprodSpecById
(
List
<
Integer
>
goodsIds
);
List
<
SaleServiceDO
>
listSaleServiceInfo
();
}
src/main/java/com/mmc/pms/dao/ProductDao.java
浏览文件 @
de246e24
...
...
@@ -116,4 +116,6 @@ public interface ProductDao {
List
<
MallProdSkuInfoSpecDO
>
listMallProductSpec
(
Integer
id
);
List
<
ProductSpecPriceDO
>
getProductSpecPriceList
(
List
<
Integer
>
specIds
);
ProductSpecPriceDO
getProductSpecPriceById
(
Integer
id
);
}
src/main/java/com/mmc/pms/entity/MallProdInfoDO.java
浏览文件 @
de246e24
...
...
@@ -18,56 +18,51 @@ import java.util.Date;
@AllArgsConstructor
@Accessors
(
chain
=
true
)
public
class
MallProdInfoDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
3667714765929443857L
;
private
Integer
id
;
private
Integer
goodsInfoId
;
private
Integer
prodSkuId
;
private
String
prodSkuSpecName
;
private
Integer
categoriesId
;
private
Integer
chooseType
;
private
Integer
must
;
private
Integer
skuUnitId
;
private
Integer
deleted
;
private
Date
createTime
;
private
Date
updateTime
;
private
Integer
flag
;
private
String
productSpecIdList
;
private
String
beforeUpdateSpec
;
/**
* 辅助字段 start
*/
private
String
typeName
;
private
String
goodsName
;
private
String
unitName
;
private
String
productSkuName
;
private
Integer
brandInfoId
;
private
static
final
long
serialVersionUID
=
3667714765929443857L
;
private
Integer
id
;
private
Integer
goodsInfoId
;
private
Integer
prodSkuId
;
private
String
prodSkuSpecName
;
private
Integer
categoriesId
;
private
Integer
chooseType
;
private
Integer
must
;
private
Integer
skuUnitId
;
private
Integer
deleted
;
private
Date
createTime
;
private
Date
updateTime
;
private
Integer
flag
;
/** 辅助字段 start */
private
String
typeName
;
/**
* 辅助字段 end
*/
public
MallProdInfoDO
(
GoodsProdSpecVO
goodsSpecVO
)
{
this
.
categoriesId
=
goodsSpecVO
.
getCategoryId
();
this
.
prodSkuSpecName
=
goodsSpecVO
.
getGoodsSpecName
();
this
.
chooseType
=
goodsSpecVO
.
getChooseType
();
this
.
skuUnitId
=
goodsSpecVO
.
getSkuUnitId
();
this
.
must
=
goodsSpecVO
.
getMust
();
this
.
flag
=
goodsSpecVO
.
getFlag
();
}
private
String
goodsName
;
private
String
unitName
;
private
String
productSkuName
;
private
Integer
brandInfoId
;
public
GoodsSpecDTO
buildGoodsSpecDTO
()
{
return
GoodsSpecDTO
.
builder
()
.
id
(
this
.
id
)
.
goodsSpecName
(
this
.
prodSkuSpecName
)
.
categoryId
(
this
.
categoriesId
)
.
chooseType
(
this
.
chooseType
)
.
skuUnitId
(
skuUnitId
)
.
unitName
(
this
.
unitName
)
.
skuId
(
this
.
prodSkuId
)
.
typeName
(
this
.
typeName
)
.
must
(
must
)
.
skuName
(
this
.
productSkuName
)
.
brandInfoId
(
brandInfoId
)
.
flag
(
flag
)
.
build
();
}
/** 辅助字段 end */
public
MallProdInfoDO
(
GoodsProdSpecVO
goodsSpecVO
)
{
this
.
categoriesId
=
goodsSpecVO
.
getCategoryId
();
this
.
prodSkuSpecName
=
goodsSpecVO
.
getGoodsSpecName
();
this
.
chooseType
=
goodsSpecVO
.
getChooseType
();
this
.
skuUnitId
=
goodsSpecVO
.
getSkuUnitId
();
this
.
must
=
goodsSpecVO
.
getMust
();
this
.
flag
=
goodsSpecVO
.
getFlag
();
}
public
GoodsSpecDTO
buildGoodsSpecDTO
()
{
return
GoodsSpecDTO
.
builder
()
.
id
(
this
.
id
)
.
goodsSpecName
(
this
.
prodSkuSpecName
)
.
categoryId
(
this
.
categoriesId
)
.
chooseType
(
this
.
chooseType
)
.
skuUnitId
(
skuUnitId
)
.
unitName
(
this
.
unitName
)
.
skuId
(
this
.
prodSkuId
)
.
typeName
(
this
.
typeName
)
.
must
(
must
)
.
skuName
(
this
.
productSkuName
)
.
brandInfoId
(
brandInfoId
)
.
flag
(
flag
)
.
build
();
}
}
src/main/java/com/mmc/pms/entity/SaleServiceDO.java
0 → 100644
浏览文件 @
de246e24
package
com
.
mmc
.
pms
.
entity
;
import
com.mmc.pms.model.sale.dto.SaleServiceDTO
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @Author LW
*
* @date 2022/3/28 10:24 概要:
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public
class
SaleServiceDO
implements
Serializable
{
private
Integer
id
;
private
String
serviceName
;
private
String
remark
;
private
Integer
deleted
;
private
Date
updateTime
;
private
Date
createTime
;
public
SaleServiceDTO
buildSaleServiceDTO
()
{
return
SaleServiceDTO
.
builder
().
id
(
this
.
id
).
saleServiceName
(
this
.
serviceName
).
build
();
}
}
src/main/java/com/mmc/pms/model/lease/dto/LeaseGoodsDetailDTO.java
deleted
100644 → 0
浏览文件 @
f20a6ca6
package
com
.
mmc
.
pms
.
model
.
lease
.
dto
;
import
com.mmc.pms.model.sale.dto.GoodsDetailInfoDTO
;
import
com.mmc.pms.model.sale.dto.GoodsImgDTO
;
import
com.mmc.pms.model.sale.dto.GoodsOtherServiceDTO
;
import
com.mmc.pms.model.sale.dto.GoodsSpecDTO
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* @Author LW
*
* @date 2022/11/8 15:57 概要:
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors
(
chain
=
true
)
public
class
LeaseGoodsDetailDTO
implements
Serializable
{
@ApiModelProperty
(
value
=
"id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"pid"
)
private
Integer
pid
;
@ApiModelProperty
(
value
=
"商品名称"
)
private
String
goodsName
;
@ApiModelProperty
(
value
=
"云享飞服务id"
)
private
Integer
shareFlyServiceId
;
@ApiModelProperty
(
value
=
"云仓配件id"
)
private
Integer
repoId
;
@ApiModelProperty
(
value
=
"规格信息"
)
private
List
<
GoodsSpecDTO
>
goodsSpec
;
@ApiModelProperty
(
value
=
"商品图片"
)
private
List
<
GoodsImgDTO
>
images
;
@ApiModelProperty
(
value
=
"商品视频"
)
private
String
goodsVideo
;
@ApiModelProperty
(
value
=
"商品视频id"
)
private
Integer
goodsVideoId
;
@ApiModelProperty
(
value
=
"商品详情"
)
private
GoodsDetailInfoDTO
goodsDetail
;
@ApiModelProperty
(
value
=
"所属目录"
)
private
Integer
sortTypeId
;
@ApiModelProperty
(
value
=
"一级分类id"
)
private
Integer
categoryByOne
;
@ApiModelProperty
(
value
=
"二级分类id"
)
private
Integer
categoryByTwo
;
@ApiModelProperty
(
value
=
"商品标签"
)
private
String
tag
;
@ApiModelProperty
(
value
=
"其他服务: 1:免费配送,2:专业飞手培训2日, 3:半年保修, 4:一年保修 "
)
private
List
<
GoodsOtherServiceDTO
>
otherService
;
}
src/main/java/com/mmc/pms/model/sale/dto/MallGoodsDetailDTO.java
浏览文件 @
de246e24
...
...
@@ -7,43 +7,60 @@ import lombok.NoArgsConstructor;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
* @Author LW
*
@date 2022/10/14 11:30
* 概要:
*
*
@date 2022/10/14 11:30
概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors
(
chain
=
true
)
public
class
MallGoodsDetailDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
7041502536618388167L
;
@ApiModelProperty
(
value
=
"id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"商品图片"
)
private
List
<
GoodsImgDTO
>
images
;
@ApiModelProperty
(
value
=
"商品视频"
)
private
String
goodsVideo
;
@ApiModelProperty
(
value
=
"商品视频id"
)
private
Integer
goodsVideoId
;
@ApiModelProperty
(
value
=
"商品名称"
)
private
String
goodsName
;
@ApiModelProperty
(
value
=
"商品详情"
)
private
GoodsDetailInfoDTO
goodsDetail
;
@ApiModelProperty
(
value
=
"所属目录"
)
private
Integer
directoryId
;
@ApiModelProperty
(
value
=
"一级分类id"
)
private
Integer
categoryByOne
;
@ApiModelProperty
(
value
=
"二级分类id"
)
private
Integer
categoryByTwo
;
@ApiModelProperty
(
value
=
"商品标签"
)
private
String
tag
;
@ApiModelProperty
(
value
=
"商品状态 0:下架 1:上架"
)
private
Integer
shelfStatus
;
@ApiModelProperty
(
value
=
"规格信息"
)
private
List
<
GoodsSpecDTO
>
goodsSpec
;
@ApiModelProperty
(
value
=
"其他服务: 1:免费配送,2:专业飞手培训2日, 3:半年保修, 4:一年保修 "
)
private
List
<
GoodsOtherServiceDTO
>
otherService
;
private
static
final
long
serialVersionUID
=
7041502536618388167L
;
@ApiModelProperty
(
value
=
"id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"商品图片"
)
private
List
<
GoodsImgDTO
>
images
;
@ApiModelProperty
(
value
=
"商品视频"
)
private
String
goodsVideo
;
@ApiModelProperty
(
value
=
"商品视频id"
)
private
Integer
goodsVideoId
;
@ApiModelProperty
(
value
=
"商品名称"
)
private
String
goodsName
;
@ApiModelProperty
(
value
=
"商品详情"
)
private
GoodsDetailInfoDTO
goodsDetail
;
@ApiModelProperty
(
value
=
"所属目录"
)
private
Integer
directoryId
;
@ApiModelProperty
(
value
=
"一级分类id"
)
private
Integer
categoryByOne
;
@ApiModelProperty
(
value
=
"二级分类id"
)
private
Integer
categoryByTwo
;
@ApiModelProperty
(
value
=
"商品标签"
)
private
String
tag
;
@ApiModelProperty
(
value
=
"商品状态 0:下架 1:上架"
)
private
Integer
shelfStatus
;
@ApiModelProperty
(
value
=
"规格信息"
)
private
List
<
GoodsSpecDTO
>
goodsSpec
;
@ApiModelProperty
(
value
=
"其他服务: 1:免费配送,2:专业飞手培训2日, 3:半年保修, 4:一年保修 "
)
private
List
<
GoodsOtherServiceDTO
>
otherService
;
@ApiModelProperty
(
value
=
"price(用于租赁商品)"
)
private
BigDecimal
price
;
}
src/main/java/com/mmc/pms/model/sale/dto/SaleServiceDTO.java
0 → 100644
浏览文件 @
de246e24
package
com
.
mmc
.
pms
.
model
.
sale
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @Author LW
* @date 2022/3/28 10:48
* 概要:
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel
(
value
=
"com.mmc.csf.mall.dto.SaleServiceDTO"
,
description
=
"其他服务信息DTO"
)
public
class
SaleServiceDTO
{
@ApiModelProperty
(
value
=
"id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"其他服务名称"
)
private
String
saleServiceName
;
}
src/main/java/com/mmc/pms/service/GoodsInfoService.java
浏览文件 @
de246e24
package
com
.
mmc
.
pms
.
service
;
import
com.mmc.pms.common.ResultBody
;
import
com.mmc.pms.model.sale.dto.ProductSpecPriceDTO
;
import
com.mmc.pms.model.order.dto.OrderGoodsIndstDTO
;
import
com.mmc.pms.model.order.dto.OrderGoodsProdDTO
;
import
com.mmc.pms.model.qo.MallOrderGoodsInfoQO
;
import
com.mmc.pms.model.qo.ProductSpecPriceQO
;
import
com.mmc.pms.model.sale.dto.MallGoodsShopCarDTO
;
import
com.mmc.pms.model.sale.dto.MallProductSpecPriceDTO
;
import
com.mmc.pms.model.sale.dto.ProductSpecPriceDTO
;
import
com.mmc.pms.model.sale.vo.GoodsAddVO
;
import
java.util.List
;
...
...
@@ -19,21 +19,23 @@ import java.util.List;
*/
public
interface
GoodsInfoService
{
ResultBody
addGoods
(
GoodsAddVO
goodsAddVO
);
ResultBody
addGoods
(
GoodsAddVO
goodsAddVO
);
ResultBody
editGoodsInfo
(
GoodsAddVO
goodsAddVO
);
ResultBody
editGoodsInfo
(
GoodsAddVO
goodsAddVO
);
ResultBody
getGoodsInfoDetail
(
Integer
goodsInfoId
);
ResultBody
getGoodsInfoDetail
(
Integer
goodsInfoId
);
ResultBody
getSkuUnit
(
);
ResultBody
getSkuUni
t
();
ResultBody
getSaleServiceInfoToLis
t
();
List
<
MallGoodsShopCarDTO
>
fillGoodsInfo
(
List
<
MallGoodsShopCarDTO
>
param
);
List
<
MallGoodsShopCarDTO
>
fillGoodsInfo
(
List
<
MallGoodsShopCarDTO
>
param
);
List
<
MallProductSpecPriceDTO
>
feignListProductSpecPrice
(
ProductSpecPriceQO
productSpecPriceQO
);
List
<
MallProductSpecPriceDTO
>
feignListProductSpecPrice
(
ProductSpecPriceQO
productSpecPriceQO
);
ProductSpecPriceDTO
feignGetUnitPriceByTag
(
Integer
specId
,
Integer
tagId
);
ProductSpecPriceDTO
feignGetUnitPriceByTag
(
Integer
specId
,
Integer
tagId
);
List
<
OrderGoodsProdDTO
>
feignListProdGoodsSkuInfo
(
MallOrderGoodsInfoQO
mallOrderGoodsInfoQO
);
List
<
OrderGoodsProdDTO
>
feignListProdGoodsSkuInfo
(
MallOrderGoodsInfoQO
mallOrderGoodsInfoQO
);
List
<
OrderGoodsIndstDTO
>
feignListIndstGoodsSkuInfo
(
MallOrderGoodsInfoQO
mallOrderGoodsInfoQO
);
List
<
OrderGoodsIndstDTO
>
feignListIndstGoodsSkuInfo
(
MallOrderGoodsInfoQO
mallOrderGoodsInfoQO
);
}
src/main/java/com/mmc/pms/service/Impl/GoodsInfoServiceImpl.java
浏览文件 @
de246e24
...
...
@@ -32,828 +32,1074 @@ import java.util.stream.Collectors;
@Service
public
class
GoodsInfoServiceImpl
implements
GoodsInfoService
{
@Resource
private
GoodsInfoDao
goodsInfoDao
;
@Resource
private
GoodsInfoDao
goodsInfoDao
;
@Resource
private
ProductDao
productDao
;
@Resource
private
ProductDao
productDao
;
@Resource
private
ProductServiceImpl
productSkuService
;
@Resource
private
ProductServiceImpl
productSkuService
;
@Resource
private
IndustrySpecDao
industrySpecDao
;
@Resource
private
IndustrySpecDao
industrySpecDao
;
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ResultBody
addGoods
(
GoodsAddVO
goodsAddVO
)
{
// 判断商品名称是否存在
if
(
goodsInfoDao
.
countGoodsInfoByName
(
goodsAddVO
)
>
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_CATEGORY_NAME_EXIST_ERROR
);
}
// 判断商品详情中描述是否为空
if
(
goodsAddVO
.
getGoodsDetailVO
().
getGoodsDesc
()
==
null
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_DESC_IS_NOT_NULL
);
}
String
YYYY_MM_DD_HH_MM_SS
=
"yyyyMMddHHmmss"
;
// 初始化商品对象,并构建对象
GoodsInfo
goodsInfo
=
new
GoodsInfo
(
goodsAddVO
);
goodsInfo
.
setGoodsNo
(
"IUAV"
+
TDateUtil
.
getDateStr
(
new
Date
(),
YYYY_MM_DD_HH_MM_SS
)
+
CodeUtil
.
getRandomNum
(
4
));
// 暂未接入用户默认传1
goodsInfo
.
setAddGoodsUserId
(
1
);
goodsInfo
.
setSort
(
goodsInfoDao
.
countGoodsInfo
()
+
1
);
// 插入商品基本信息
goodsInfoDao
.
insertGoodsInfo
(
goodsInfo
);
// 调用图片视频插入信息方法
addGoodsImageInfo
(
goodsInfo
.
getId
(),
goodsAddVO
);
// 调用商品详情信息方法
addGoodsDetail
(
goodsInfo
.
getId
(),
goodsAddVO
.
getGoodsDetailVO
());
// 判断其他服务是否为空,不为空则插入
if
(!
CollectionUtils
.
isEmpty
(
goodsAddVO
.
getOtherService
()))
{
addOtherService
(
goodsAddVO
.
getOtherService
(),
goodsInfo
.
getId
());
}
// 调用产品规格的新增方法
if
(!
goodsAddVO
.
getDirectoryId
().
equals
(
2
))
{
// 添加产品规格信息
productSkuSpecOperation
(
goodsInfo
,
goodsAddVO
.
getProductSpec
());
}
else
{
industrySkuSpecOperation
(
goodsInfo
,
goodsAddVO
.
getProductSpec
());
}
return
ResultBody
.
success
();
}
/**
* 插入行业sku及规格信息
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
industrySkuSpecOperation
(
GoodsInfo
goodsInfo
,
List
<
GoodsProdSpecVO
>
productSpec
)
{
for
(
GoodsProdSpecVO
goodsSpecVO
:
productSpec
)
{
MallIndustrySkuInfoDO
mallIndustrySkuInfoDO
=
new
MallIndustrySkuInfoDO
(
goodsSpecVO
).
setGoodsInfoId
(
goodsInfo
.
getId
());
// 插入数据库商品对应的sku信息
goodsInfoDao
.
insertMallIndustrySkuInfo
(
mallIndustrySkuInfoDO
);
for
(
MallProductSpecVO
mallProductSpecVO
:
goodsSpecVO
.
getSpecIds
())
{
// 构建商品对应的规格信息
MallIndustrySkuInfoSpecDO
mallIndustrySkuInfoSpecDO
=
new
MallIndustrySkuInfoSpecDO
()
.
setIndustrySpecId
(
mallProductSpecVO
.
getMallSpecId
())
.
setMallIndustrySkuInfoId
(
mallIndustrySkuInfoDO
.
getId
())
.
setGoodsInfoId
(
goodsInfo
.
getId
());
// 插入数据库商品对应的规格信息
goodsInfoDao
.
insertMallIndustrySkuInfoSpec
(
mallIndustrySkuInfoSpecDO
);
}
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ResultBody
addGoods
(
GoodsAddVO
goodsAddVO
)
{
// 判断商品名称是否存在
if
(
goodsInfoDao
.
countGoodsInfoByName
(
goodsAddVO
)
>
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_CATEGORY_NAME_EXIST_ERROR
);
}
// 判断商品详情中描述是否为空
if
(
goodsAddVO
.
getGoodsDetailVO
().
getGoodsDesc
()
==
null
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_DESC_IS_NOT_NULL
);
}
String
YYYY_MM_DD_HH_MM_SS
=
"yyyyMMddHHmmss"
;
// 初始化商品对象,并构建对象
GoodsInfo
goodsInfo
=
new
GoodsInfo
(
goodsAddVO
);
goodsInfo
.
setGoodsNo
(
"IUAV"
+
TDateUtil
.
getDateStr
(
new
Date
(),
YYYY_MM_DD_HH_MM_SS
)
+
CodeUtil
.
getRandomNum
(
4
));
// 暂未接入用户默认传1
goodsInfo
.
setAddGoodsUserId
(
1
);
goodsInfo
.
setSort
(
goodsInfoDao
.
countGoodsInfo
()
+
1
);
// 插入商品基本信息
goodsInfoDao
.
insertGoodsInfo
(
goodsInfo
);
// 调用图片视频插入信息方法
addGoodsImageInfo
(
goodsInfo
.
getId
(),
goodsAddVO
);
// 调用商品详情信息方法
addGoodsDetail
(
goodsInfo
.
getId
(),
goodsAddVO
.
getGoodsDetailVO
());
// 判断其他服务是否为空,不为空则插入
if
(!
CollectionUtils
.
isEmpty
(
goodsAddVO
.
getOtherService
()))
{
addOtherService
(
goodsAddVO
.
getOtherService
(),
goodsInfo
.
getId
());
}
// 调用产品规格的新增方法
if
(!
goodsAddVO
.
getDirectoryId
().
equals
(
2
))
{
// 添加产品规格信息
productSkuSpecOperation
(
goodsInfo
,
goodsAddVO
.
getProductSpec
());
}
else
{
industrySkuSpecOperation
(
goodsInfo
,
goodsAddVO
.
getProductSpec
());
}
return
ResultBody
.
success
();
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
productSkuSpecOperation
(
GoodsInfo
goodsInfo
,
List
<
GoodsProdSpecVO
>
productSpec
)
{
// 遍历规格信息,获取其中自定义的规格信息
List
<
GoodsProdSpecVO
>
customGoodsSpecList
=
productSpec
.
stream
().
filter
(
spec
->
spec
.
getFlag
().
equals
(
1
)).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
customGoodsSpecList
))
{
addCustomization
(
goodsInfo
,
customGoodsSpecList
);
}
// 遍历规格信息,获取其中非自定义的规格信息
List
<
GoodsProdSpecVO
>
goodsSpecList
=
productSpec
.
stream
().
filter
(
spec
->
spec
.
getFlag
().
equals
(
0
)).
collect
(
Collectors
.
toList
());
for
(
GoodsProdSpecVO
goodsSpecVO
:
goodsSpecList
)
{
MallProdInfoDO
mallProdSkuInfoDO
=
new
MallProdInfoDO
(
goodsSpecVO
)
.
setProdSkuId
(
goodsSpecVO
.
getSkuId
()).
setGoodsInfoId
(
goodsInfo
.
getId
());
// 插入数据库商品对应的sku信息
goodsInfoDao
.
insertMallProdSkuInfo
(
mallProdSkuInfoDO
);
for
(
MallProductSpecVO
mallProductSpecVO
:
goodsSpecVO
.
getSpecIds
())
{
// 构建商品对应的规格信息
MallProdSkuInfoSpecDO
mallProdSkuInfoSpecDO
=
new
MallProdSkuInfoSpecDO
()
.
setProductSpecId
(
mallProductSpecVO
.
getMallSpecId
())
.
setMallProdSkuInfoId
(
mallProdSkuInfoDO
.
getId
())
.
setGoodsInfoId
(
goodsInfo
.
getId
());
// 插入数据库商品对应的规格信息
goodsInfoDao
.
insertMallProdSkuInfoSpec
(
mallProdSkuInfoSpecDO
);
}
}
/** 插入行业sku及规格信息 */
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
industrySkuSpecOperation
(
GoodsInfo
goodsInfo
,
List
<
GoodsProdSpecVO
>
productSpec
)
{
for
(
GoodsProdSpecVO
goodsSpecVO
:
productSpec
)
{
MallIndustrySkuInfoDO
mallIndustrySkuInfoDO
=
new
MallIndustrySkuInfoDO
(
goodsSpecVO
).
setGoodsInfoId
(
goodsInfo
.
getId
());
// 插入数据库商品对应的sku信息
goodsInfoDao
.
insertMallIndustrySkuInfo
(
mallIndustrySkuInfoDO
);
for
(
MallProductSpecVO
mallProductSpecVO
:
goodsSpecVO
.
getSpecIds
())
{
// 构建商品对应的规格信息
MallIndustrySkuInfoSpecDO
mallIndustrySkuInfoSpecDO
=
new
MallIndustrySkuInfoSpecDO
()
.
setIndustrySpecId
(
mallProductSpecVO
.
getMallSpecId
())
.
setMallIndustrySkuInfoId
(
mallIndustrySkuInfoDO
.
getId
())
.
setGoodsInfoId
(
goodsInfo
.
getId
());
// 插入数据库商品对应的规格信息
goodsInfoDao
.
insertMallIndustrySkuInfoSpec
(
mallIndustrySkuInfoSpecDO
);
}
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
productSkuSpecOperation
(
GoodsInfo
goodsInfo
,
List
<
GoodsProdSpecVO
>
productSpec
)
{
// 遍历规格信息,获取其中自定义的规格信息
List
<
GoodsProdSpecVO
>
customGoodsSpecList
=
productSpec
.
stream
().
filter
(
spec
->
spec
.
getFlag
().
equals
(
1
)).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
customGoodsSpecList
))
{
addCustomization
(
goodsInfo
,
customGoodsSpecList
);
}
// 遍历规格信息,获取其中非自定义的规格信息
List
<
GoodsProdSpecVO
>
goodsSpecList
=
productSpec
.
stream
().
filter
(
spec
->
spec
.
getFlag
().
equals
(
0
)).
collect
(
Collectors
.
toList
());
for
(
GoodsProdSpecVO
goodsSpecVO
:
goodsSpecList
)
{
MallProdInfoDO
mallProdSkuInfoDO
=
new
MallProdInfoDO
(
goodsSpecVO
)
.
setProdSkuId
(
goodsSpecVO
.
getSkuId
())
.
setGoodsInfoId
(
goodsInfo
.
getId
());
// 插入数据库商品对应的sku信息
goodsInfoDao
.
insertMallProdSkuInfo
(
mallProdSkuInfoDO
);
for
(
MallProductSpecVO
mallProductSpecVO
:
goodsSpecVO
.
getSpecIds
())
{
// 构建商品对应的规格信息
MallProdSkuInfoSpecDO
mallProdSkuInfoSpecDO
=
new
MallProdSkuInfoSpecDO
()
.
setProductSpecId
(
mallProductSpecVO
.
getMallSpecId
())
.
setMallProdSkuInfoId
(
mallProdSkuInfoDO
.
getId
())
.
setGoodsInfoId
(
goodsInfo
.
getId
());
// 插入数据库商品对应的规格信息
goodsInfoDao
.
insertMallProdSkuInfoSpec
(
mallProdSkuInfoSpecDO
);
}
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
MallProdInfoDO
buildMallProdSkuInfo
(
GoodsInfo
goodsInfo
,
GoodsProdSpecVO
goodsSpec
,
Integer
id
)
{
MallProdInfoDO
mallProdInfoDO
=
new
MallProdInfoDO
();
mallProdInfoDO
.
setGoodsInfoId
(
goodsInfo
.
getId
());
mallProdInfoDO
.
setProdSkuId
(
id
);
mallProdInfoDO
.
setProdSkuSpecName
(
goodsSpec
.
getGoodsSpecName
());
mallProdInfoDO
.
setCategoriesId
(
goodsSpec
.
getCategoryId
());
mallProdInfoDO
.
setChooseType
(
goodsSpec
.
getChooseType
());
mallProdInfoDO
.
setMust
(
goodsSpec
.
getMust
());
mallProdInfoDO
.
setFlag
(
goodsSpec
.
getFlag
());
mallProdInfoDO
.
setSkuUnitId
(
goodsSpec
.
getSkuUnitId
());
return
mallProdInfoDO
;
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
addCustomization
(
GoodsInfo
goodsInfo
,
List
<
GoodsProdSpecVO
>
customGoodsSpecList
)
{
// 遍历自定义规格信息
for
(
GoodsProdSpecVO
productSpec
:
customGoodsSpecList
)
{
// 构建商品对应的sku信息
ProductSkuDO
productSkuDO
=
new
ProductSkuDO
().
setCategoriesId
(
productSpec
.
getCategoryId
())
.
setProductName
(
productSpec
.
getProductName
()).
setCustomize
(
1
)
.
setDirectoryId
(
goodsInfo
.
getDirectoryId
());
// 插入产品sku信息
productDao
.
insertProductSku
(
productSkuDO
);
MallProdInfoDO
mallProdInfoDO
=
buildMallProdSkuInfo
(
goodsInfo
,
productSpec
,
productSkuDO
.
getId
());
// 插入数据库商品对应的sku信息
productDao
.
insertMallProdSkuInfo
(
mallProdInfoDO
);
// 先将自定的信息存储到数据库中
productSpec
.
getCustomizeInfo
().
stream
().
peek
(
param
->
{
ProductSpecDO
productSpecDO
=
new
ProductSpecDO
().
setProductSkuId
(
productSkuDO
.
getId
())
.
setVersionDesc
(
"自定义"
).
setSpecImage
(
param
.
getSpecImage
())
.
setSpecName
(
param
.
getSpecName
()).
setPartNo
(
param
.
getPartNo
());
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
MallProdInfoDO
buildMallProdSkuInfo
(
GoodsInfo
goodsInfo
,
GoodsProdSpecVO
goodsSpec
,
Integer
id
)
{
MallProdInfoDO
mallProdInfoDO
=
new
MallProdInfoDO
();
mallProdInfoDO
.
setGoodsInfoId
(
goodsInfo
.
getId
());
mallProdInfoDO
.
setProdSkuId
(
id
);
mallProdInfoDO
.
setProdSkuSpecName
(
goodsSpec
.
getGoodsSpecName
());
mallProdInfoDO
.
setCategoriesId
(
goodsSpec
.
getCategoryId
());
mallProdInfoDO
.
setChooseType
(
goodsSpec
.
getChooseType
());
mallProdInfoDO
.
setMust
(
goodsSpec
.
getMust
());
mallProdInfoDO
.
setFlag
(
goodsSpec
.
getFlag
());
mallProdInfoDO
.
setSkuUnitId
(
goodsSpec
.
getSkuUnitId
());
return
mallProdInfoDO
;
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
addCustomization
(
GoodsInfo
goodsInfo
,
List
<
GoodsProdSpecVO
>
customGoodsSpecList
)
{
// 遍历自定义规格信息
for
(
GoodsProdSpecVO
productSpec
:
customGoodsSpecList
)
{
// 构建商品对应的sku信息
ProductSkuDO
productSkuDO
=
new
ProductSkuDO
()
.
setCategoriesId
(
productSpec
.
getCategoryId
())
.
setProductName
(
productSpec
.
getProductName
())
.
setCustomize
(
1
)
.
setDirectoryId
(
goodsInfo
.
getDirectoryId
());
// 插入产品sku信息
productDao
.
insertProductSku
(
productSkuDO
);
MallProdInfoDO
mallProdInfoDO
=
buildMallProdSkuInfo
(
goodsInfo
,
productSpec
,
productSkuDO
.
getId
());
// 插入数据库商品对应的sku信息
productDao
.
insertMallProdSkuInfo
(
mallProdInfoDO
);
// 先将自定的信息存储到数据库中
productSpec
.
getCustomizeInfo
().
stream
()
.
peek
(
param
->
{
ProductSpecDO
productSpecDO
=
new
ProductSpecDO
()
.
setProductSkuId
(
productSkuDO
.
getId
())
.
setVersionDesc
(
"自定义"
)
.
setSpecImage
(
param
.
getSpecImage
())
.
setSpecName
(
param
.
getSpecName
())
.
setPartNo
(
param
.
getPartNo
());
// 新增产品sku
productDao
.
insertProductSpec
(
productSpecDO
);
// 批量配置价格信息
ProductSpecCPQVO
productSpecCPQVO
=
param
.
getProductSpecCPQVO
();
if
(
productSpecCPQVO
!=
null
)
{
productSpecCPQVO
.
setProductSpecId
(
productSpecDO
.
getId
());
productSkuService
.
insertSpecPrice
(
productSpecCPQVO
);
productSpecCPQVO
.
setProductSpecId
(
productSpecDO
.
getId
());
productSkuService
.
insertSpecPrice
(
productSpecCPQVO
);
}
// 构建商品对应的规格信息
MallProdSkuInfoSpecDO
mallProdSkuInfoSpecDO
=
new
MallProdSkuInfoSpecDO
()
MallProdSkuInfoSpecDO
mallProdSkuInfoSpecDO
=
new
MallProdSkuInfoSpecDO
()
.
setProductSpecId
(
productSpecDO
.
getId
())
.
setMallProdSkuInfoId
(
mallProdInfoDO
.
getId
())
.
setGoodsInfoId
(
goodsInfo
.
getId
());
// 插入数据库商品对应的规格信息
goodsInfoDao
.
insertMallProdSkuInfoSpec
(
mallProdSkuInfoSpecDO
);
}).
collect
(
Collectors
.
toList
());
}
})
.
collect
(
Collectors
.
toList
());
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
addOtherService
(
List
<
Integer
>
otherService
,
Integer
goodsId
)
{
// 插入其他服务
List
<
GoodsServiceDO
>
otherList
=
otherService
.
stream
().
map
(
d
->
{
GoodsServiceDO
goodsServiceDO
=
new
GoodsServiceDO
();
goodsServiceDO
.
setGoodsInfoId
(
goodsId
);
goodsServiceDO
.
setSaleServiceId
(
d
);
return
goodsServiceDO
;
}).
collect
(
Collectors
.
toList
());
goodsInfoDao
.
insertGoodsService
(
otherList
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
addGoodsDetail
(
Integer
goodsId
,
GoodsDetailVO
goodsDetailVO
)
{
GoodsDetailDO
goodsDetailDO
=
new
GoodsDetailDO
(
goodsDetailVO
);
goodsDetailDO
.
setGoodsInfoId
(
goodsId
);
goodsInfoDao
.
insertGoodsDetail
(
goodsDetailDO
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
addGoodsImageInfo
(
Integer
goodsId
,
GoodsAddVO
goodsAddVO
)
{
List
<
GoodsImgDO
>
list
=
goodsAddVO
.
getImages
().
stream
().
map
(
d
->
{
GoodsImgDO
goodsImgDO
=
new
GoodsImgDO
(
d
);
goodsImgDO
.
setGoodsInfoId
(
goodsId
);
return
goodsImgDO
;
}).
collect
(
Collectors
.
toList
());
// 插入图片信息
goodsInfoDao
.
insertGoodsImgInfo
(
list
);
// 插入商品视频信息
if
(
goodsAddVO
.
getGoodsVideo
()
!=
null
)
{
GoodsVideoDO
goodsVideoDO
=
new
GoodsVideoDO
().
setGoodsInfoId
(
goodsId
).
setVideoUrl
(
goodsAddVO
.
getGoodsVideo
());
goodsInfoDao
.
insertVideoInfo
(
goodsVideoDO
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
addOtherService
(
List
<
Integer
>
otherService
,
Integer
goodsId
)
{
// 插入其他服务
List
<
GoodsServiceDO
>
otherList
=
otherService
.
stream
()
.
map
(
d
->
{
GoodsServiceDO
goodsServiceDO
=
new
GoodsServiceDO
();
goodsServiceDO
.
setGoodsInfoId
(
goodsId
);
goodsServiceDO
.
setSaleServiceId
(
d
);
return
goodsServiceDO
;
})
.
collect
(
Collectors
.
toList
());
goodsInfoDao
.
insertGoodsService
(
otherList
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
addGoodsDetail
(
Integer
goodsId
,
GoodsDetailVO
goodsDetailVO
)
{
GoodsDetailDO
goodsDetailDO
=
new
GoodsDetailDO
(
goodsDetailVO
);
goodsDetailDO
.
setGoodsInfoId
(
goodsId
);
goodsInfoDao
.
insertGoodsDetail
(
goodsDetailDO
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
addGoodsImageInfo
(
Integer
goodsId
,
GoodsAddVO
goodsAddVO
)
{
List
<
GoodsImgDO
>
list
=
goodsAddVO
.
getImages
().
stream
()
.
map
(
d
->
{
GoodsImgDO
goodsImgDO
=
new
GoodsImgDO
(
d
);
goodsImgDO
.
setGoodsInfoId
(
goodsId
);
return
goodsImgDO
;
})
.
collect
(
Collectors
.
toList
());
// 插入图片信息
goodsInfoDao
.
insertGoodsImgInfo
(
list
);
// 插入商品视频信息
if
(
goodsAddVO
.
getGoodsVideo
()
!=
null
)
{
GoodsVideoDO
goodsVideoDO
=
new
GoodsVideoDO
().
setGoodsInfoId
(
goodsId
).
setVideoUrl
(
goodsAddVO
.
getGoodsVideo
());
goodsInfoDao
.
insertVideoInfo
(
goodsVideoDO
);
}
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ResultBody
editGoodsInfo
(
GoodsAddVO
goodsAddVO
)
{
// 判断商品是否还存在
int
count
=
goodsInfoDao
.
countGoodsInfoById
(
goodsAddVO
.
getId
());
if
(
count
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_NOT_EXIST_OR_ALREADY_DOWN_SHELF
);
}
// 判断商品名称是否存在
if
(
goodsInfoDao
.
countGoodsInfoByName
(
goodsAddVO
)
>
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_CATEGORY_NAME_EXIST_ERROR
);
}
// 判断商品详情中描述是否为空
if
(
goodsAddVO
.
getGoodsDetailVO
().
getGoodsDesc
()
==
null
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_DESC_IS_NOT_NULL
);
}
// 初始化商品对象,并构建对象
GoodsInfo
goodsInfo
=
new
GoodsInfo
(
goodsAddVO
);
// 插入商品基本信息
goodsInfoDao
.
updateGoodsInfo
(
goodsInfo
);
// 修改商品详情信息
updateGoodsDetail
(
goodsAddVO
);
// 修改商品图片及视频信息
updateImageInfo
(
goodsAddVO
);
// 修改其他服务信息
updateOtherService
(
goodsAddVO
);
// 修改规格信息
if
(!
goodsAddVO
.
getDirectoryId
().
equals
(
2
))
{
updateMallProductSkuSpec
(
goodsAddVO
);
}
else
{
updateMallIndustrySkuSpec
(
goodsAddVO
);
}
return
null
;
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateMallIndustrySkuSpec
(
GoodsAddVO
goodsAddVO
)
{
// 先获取用户输入的商品绑定sku的id集合
Set
<
Integer
>
inputMallSkuIds
=
goodsAddVO
.
getProductSpec
().
stream
().
map
(
GoodsProdSpecVO:
:
getId
).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toSet
());
// 从数据库获取该商品对应绑定的skuId的集合
List
<
MallIndustrySkuInfoDO
>
mallIndusSkuInfoList
=
goodsInfoDao
.
getMallIndustrySkuInfo
(
goodsAddVO
.
getId
());
List
<
Integer
>
dbMallSkuIds
=
mallIndusSkuInfoList
.
stream
().
map
(
MallIndustrySkuInfoDO:
:
getId
).
collect
(
Collectors
.
toList
());
// 对比数据库id如果不在就删除
List
<
Integer
>
delIds
=
dbMallSkuIds
.
stream
().
filter
(
id
->
!
inputMallSkuIds
.
contains
(
id
)).
collect
(
Collectors
.
toList
());
if
(
delIds
.
size
()
!=
0
)
{
// 先删除商品绑定sku下的spec信息
industrySpecDao
.
batchUpdateMallIndustrySpec
(
delIds
,
goodsAddVO
.
getId
());
industrySpecDao
.
batchUpdateMallIndustrySku
(
delIds
);
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ResultBody
editGoodsInfo
(
GoodsAddVO
goodsAddVO
)
{
// 判断商品是否还存在
int
count
=
goodsInfoDao
.
countGoodsInfoById
(
goodsAddVO
.
getId
());
if
(
count
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_NOT_EXIST_OR_ALREADY_DOWN_SHELF
);
}
// 判断商品名称是否存在
if
(
goodsInfoDao
.
countGoodsInfoByName
(
goodsAddVO
)
>
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_CATEGORY_NAME_EXIST_ERROR
);
}
// 判断商品详情中描述是否为空
if
(
goodsAddVO
.
getGoodsDetailVO
().
getGoodsDesc
()
==
null
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_DESC_IS_NOT_NULL
);
}
// 初始化商品对象,并构建对象
GoodsInfo
goodsInfo
=
new
GoodsInfo
(
goodsAddVO
);
// 插入商品基本信息
goodsInfoDao
.
updateGoodsInfo
(
goodsInfo
);
// 修改商品详情信息
updateGoodsDetail
(
goodsAddVO
);
// 修改商品图片及视频信息
updateImageInfo
(
goodsAddVO
);
// 修改其他服务信息
updateOtherService
(
goodsAddVO
);
// 修改规格信息
if
(!
goodsAddVO
.
getDirectoryId
().
equals
(
2
))
{
updateMallProductSkuSpec
(
goodsAddVO
);
}
else
{
updateMallIndustrySkuSpec
(
goodsAddVO
);
}
return
null
;
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateMallIndustrySkuSpec
(
GoodsAddVO
goodsAddVO
)
{
// 先获取用户输入的商品绑定sku的id集合
Set
<
Integer
>
inputMallSkuIds
=
goodsAddVO
.
getProductSpec
().
stream
()
.
map
(
GoodsProdSpecVO:
:
getId
)
.
filter
(
Objects:
:
nonNull
)
.
collect
(
Collectors
.
toSet
());
// 从数据库获取该商品对应绑定的skuId的集合
List
<
MallIndustrySkuInfoDO
>
mallIndusSkuInfoList
=
goodsInfoDao
.
getMallIndustrySkuInfo
(
goodsAddVO
.
getId
());
List
<
Integer
>
dbMallSkuIds
=
mallIndusSkuInfoList
.
stream
()
.
map
(
MallIndustrySkuInfoDO:
:
getId
)
.
collect
(
Collectors
.
toList
());
// 对比数据库id如果不在就删除
List
<
Integer
>
delIds
=
dbMallSkuIds
.
stream
()
.
filter
(
id
->
!
inputMallSkuIds
.
contains
(
id
))
.
collect
(
Collectors
.
toList
());
if
(
delIds
.
size
()
!=
0
)
{
// 先删除商品绑定sku下的spec信息
industrySpecDao
.
batchUpdateMallIndustrySpec
(
delIds
,
goodsAddVO
.
getId
());
industrySpecDao
.
batchUpdateMallIndustrySku
(
delIds
);
}
// 修改商品绑定的sku信息
List
<
GoodsProdSpecVO
>
updateGoodsSpec
=
goodsAddVO
.
getProductSpec
().
stream
().
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
List
<
MallIndustrySkuInfoDO
>
mallIndustrySkuInfoList
=
updateGoodsSpec
.
stream
()
.
map
(
d
->
{
MallIndustrySkuInfoDO
mallIndustrySkuInfoDO
=
new
MallIndustrySkuInfoDO
();
mallIndustrySkuInfoDO
.
setId
(
d
.
getId
())
.
setIndustrySkuId
(
d
.
getSkuId
())
.
setCategoriesId
(
d
.
getCategoryId
())
.
setIndustrySkuSpecName
(
d
.
getGoodsSpecName
())
.
setChooseType
(
d
.
getChooseType
())
.
setSkuUnitId
(
d
.
getSkuUnitId
())
.
setMust
(
d
.
getMust
());
return
mallIndustrySkuInfoDO
;
})
.
collect
(
Collectors
.
toList
());
// 批量修改sku的信息
industrySpecDao
.
batchUpdateMallIndustrySkuInfo
(
mallIndustrySkuInfoList
);
// 获取新的sku信息
List
<
GoodsProdSpecVO
>
list
=
goodsAddVO
.
getProductSpec
().
stream
()
.
filter
(
d
->
d
.
getId
()
==
null
)
.
collect
(
Collectors
.
toList
());
industrySkuSpecOperation
(
new
GoodsInfo
(
goodsAddVO
.
getId
()),
list
);
// 获取商品对应的skuId
List
<
Integer
>
mallSkuIds
=
goodsAddVO
.
getProductSpec
().
stream
()
.
map
(
GoodsProdSpecVO:
:
getId
)
.
filter
(
Objects:
:
nonNull
)
.
collect
(
Collectors
.
toList
());
// 根据这些id查出下面对应的规格信息
List
<
MallIndustrySkuInfoSpecDO
>
mallIndustrySkuInfoSpecList
=
industrySpecDao
.
listMallIndustrySpecInfo
(
mallSkuIds
);
// 分组
Map
<
Integer
,
List
<
MallIndustrySkuInfoSpecDO
>>
dbSpecMap
=
mallIndustrySkuInfoSpecList
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
MallIndustrySkuInfoSpecDO:
:
getMallIndustrySkuInfoId
));
List
<
GoodsProdSpecVO
>
goodsSpecList
=
goodsAddVO
.
getProductSpec
().
stream
()
.
filter
(
d
->
d
.
getId
()
!=
null
)
.
collect
(
Collectors
.
toList
());
for
(
GoodsProdSpecVO
goodsSpecVO
:
goodsSpecList
)
{
// 分组后的每一条商品绑定的规格信息
List
<
MallIndustrySkuInfoSpecDO
>
dbMallIndustrySkuSpecList
=
dbSpecMap
.
get
(
goodsSpecVO
.
getId
());
Set
<
Integer
>
inputMallSpecIds
=
goodsSpecVO
.
getSpecIds
().
stream
()
.
map
(
MallProductSpecVO:
:
getId
)
.
filter
(
Objects:
:
nonNull
)
.
collect
(
Collectors
.
toSet
());
List
<
Integer
>
delSpecId
=
dbMallIndustrySkuSpecList
.
stream
()
.
map
(
MallIndustrySkuInfoSpecDO:
:
getId
)
.
filter
(
id
->
!
inputMallSpecIds
.
contains
(
id
))
.
collect
(
Collectors
.
toList
());
if
(
delSpecId
.
size
()
!=
0
)
{
// 删除多余的spec信息
industrySpecDao
.
batchUpdateMallIndustSpec
(
delSpecId
,
goodsAddVO
.
getId
());
}
// 新增spec的信息
for
(
MallProductSpecVO
mallProductSpecVO
:
goodsSpecVO
.
getSpecIds
())
{
if
(
mallProductSpecVO
.
getId
()
==
null
)
{
MallIndustrySkuInfoSpecDO
mallIndustrySkuInfoSpecDO
=
new
MallIndustrySkuInfoSpecDO
()
.
setIndustrySpecId
(
mallProductSpecVO
.
getMallSpecId
())
.
setMallIndustrySkuInfoId
(
goodsSpecVO
.
getId
())
.
setGoodsInfoId
(
goodsAddVO
.
getId
());
// 插入数据库商品对应的规格信息
goodsInfoDao
.
insertMallIndustrySkuInfoSpec
(
mallIndustrySkuInfoSpecDO
);
}
// 修改商品绑定的sku信息
List
<
GoodsProdSpecVO
>
updateGoodsSpec
=
goodsAddVO
.
getProductSpec
().
stream
().
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
List
<
MallIndustrySkuInfoDO
>
mallIndustrySkuInfoList
=
updateGoodsSpec
.
stream
().
map
(
d
->
{
MallIndustrySkuInfoDO
mallIndustrySkuInfoDO
=
new
MallIndustrySkuInfoDO
();
mallIndustrySkuInfoDO
.
setId
(
d
.
getId
()).
setIndustrySkuId
(
d
.
getSkuId
())
.
setCategoriesId
(
d
.
getCategoryId
()).
setIndustrySkuSpecName
(
d
.
getGoodsSpecName
())
.
setChooseType
(
d
.
getChooseType
()).
setSkuUnitId
(
d
.
getSkuUnitId
()).
setMust
(
d
.
getMust
());
return
mallIndustrySkuInfoDO
;
}).
collect
(
Collectors
.
toList
());
// 批量修改sku的信息
industrySpecDao
.
batchUpdateMallIndustrySkuInfo
(
mallIndustrySkuInfoList
);
// 获取新的sku信息
List
<
GoodsProdSpecVO
>
list
=
goodsAddVO
.
getProductSpec
().
stream
().
filter
(
d
->
d
.
getId
()
==
null
).
collect
(
Collectors
.
toList
());
industrySkuSpecOperation
(
new
GoodsInfo
(
goodsAddVO
.
getId
()),
list
);
// 获取商品对应的skuId
List
<
Integer
>
mallSkuIds
=
goodsAddVO
.
getProductSpec
().
stream
().
map
(
GoodsProdSpecVO:
:
getId
).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
}
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateMallProductSkuSpec
(
GoodsAddVO
goodsAddVO
)
{
// 1、普通的sku修改逻辑
List
<
GoodsProdSpecVO
>
specInfo
=
goodsAddVO
.
getProductSpec
().
stream
()
.
filter
(
spec
->
!
spec
.
getFlag
().
equals
(
1
))
.
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
specInfo
))
{
// 1.1先获取用户输入的商品绑定sku的id集合
List
<
GoodsProdSpecVO
>
updateGoodsSpec
=
specInfo
.
stream
().
filter
(
d
->
d
.
getId
()
!=
null
).
collect
(
Collectors
.
toList
());
List
<
Integer
>
inputMallSkuIds
=
updateGoodsSpec
.
stream
().
map
(
GoodsProdSpecVO:
:
getId
).
collect
(
Collectors
.
toList
());
// 1.2从数据库获取该商品对应绑定的skuId的集合
List
<
MallProdInfoDO
>
mallProSkuInfoList
=
goodsInfoDao
.
getMallProSkuInfo
(
goodsAddVO
.
getId
());
List
<
Integer
>
dbMallSkuIds
=
mallProSkuInfoList
.
stream
().
map
(
MallProdInfoDO:
:
getId
).
collect
(
Collectors
.
toList
());
// 对比数据库id如果不在就删除
List
<
Integer
>
delIds
=
dbMallSkuIds
.
stream
()
.
filter
(
id
->
!
inputMallSkuIds
.
contains
(
id
))
.
collect
(
Collectors
.
toList
());
if
(
delIds
.
size
()
!=
0
)
{
// 先删除商品绑定sku下的spec信息
goodsInfoDao
.
batchUpdateMallProSpec
(
delIds
,
goodsAddVO
.
getId
());
goodsInfoDao
.
batchUpdateMallProductSku
(
delIds
);
}
// 修改商品绑定的sku信息
List
<
MallProdInfoDO
>
mallProdSkuInfoList
=
updateGoodsSpec
.
stream
()
.
map
(
d
->
{
MallProdInfoDO
mallProdInfoDO
=
new
MallProdInfoDO
();
mallProdInfoDO
.
setId
(
d
.
getId
())
.
setProdSkuId
(
d
.
getSkuId
())
.
setCategoriesId
(
d
.
getCategoryId
())
.
setProdSkuSpecName
(
d
.
getGoodsSpecName
())
.
setChooseType
(
d
.
getChooseType
())
.
setSkuUnitId
(
d
.
getSkuUnitId
())
.
setMust
(
d
.
getMust
());
return
mallProdInfoDO
;
})
.
collect
(
Collectors
.
toList
());
// 1.3批量修改sku的信息
goodsInfoDao
.
batchUpdateMallProdSkuInfo
(
mallProdSkuInfoList
);
// 1.4对新的sku进行操作
List
<
GoodsProdSpecVO
>
list
=
specInfo
.
stream
().
filter
(
d
->
d
.
getId
()
==
null
).
collect
(
Collectors
.
toList
());
productSkuSpecOperation
(
new
GoodsInfo
(
goodsAddVO
.
getId
()),
list
);
// 获取商品对应的skuId
List
<
Integer
>
mallSkuIds
=
goodsAddVO
.
getProductSpec
().
stream
()
.
filter
(
d
->
d
.
getId
()
!=
null
)
.
map
(
GoodsProdSpecVO:
:
getId
)
.
collect
(
Collectors
.
toList
());
if
(
mallSkuIds
.
size
()
>
0
)
{
// 根据这些id查出下面对应的规格信息
List
<
MallIndustrySkuInfoSpecDO
>
mallIndustrySkuInfoSpecList
=
industrySpecDao
.
listMallIndustrySpecInfo
(
mallSkuIds
);
List
<
MallProdSkuInfoSpecDO
>
mallProdSkuInfoSpecList
=
goodsInfoDao
.
listMallProdSpecInfo
(
mallSkuIds
);
// 分组
Map
<
Integer
,
List
<
MallIndustrySkuInfoSpecDO
>>
dbSpecMap
=
mallIndustrySkuInfoSpecList
.
stream
().
collect
(
Collectors
.
groupingBy
(
MallIndustrySkuInfoSpecDO:
:
getMallIndustrySkuInfoId
));
List
<
GoodsProdSpecVO
>
goodsSpecList
=
goodsAddVO
.
getProductSpec
().
stream
().
filter
(
d
->
d
.
getId
()
!=
null
).
collect
(
Collectors
.
toList
());
for
(
GoodsProdSpecVO
goodsSpecVO
:
goodsSpecList
)
{
// 分组后的每一条商品绑定的规格信息
List
<
MallIndustrySkuInfoSpecDO
>
dbMallIndustrySkuSpecList
=
dbSpecMap
.
get
(
goodsSpecVO
.
getId
());
Set
<
Integer
>
inputMallSpecIds
=
goodsSpecVO
.
getSpecIds
().
stream
().
map
(
MallProductSpecVO:
:
getId
).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toSet
());
List
<
Integer
>
delSpecId
=
dbMallIndustrySkuSpecList
.
stream
().
map
(
MallIndustrySkuInfoSpecDO:
:
getId
).
filter
(
id
->
!
inputMallSpecIds
.
contains
(
id
)).
collect
(
Collectors
.
toList
());
if
(
delSpecId
.
size
()
!=
0
)
{
// 删除多余的spec信息
industrySpecDao
.
batchUpdateMallIndustSpec
(
delSpecId
,
goodsAddVO
.
getId
());
}
// 新增spec的信息
for
(
MallProductSpecVO
mallProductSpecVO
:
goodsSpecVO
.
getSpecIds
())
{
if
(
mallProductSpecVO
.
getId
()
==
null
)
{
MallIndustrySkuInfoSpecDO
mallIndustrySkuInfoSpecDO
=
new
MallIndustrySkuInfoSpecDO
()
.
setIndustrySpecId
(
mallProductSpecVO
.
getMallSpecId
())
.
setMallIndustrySkuInfoId
(
goodsSpecVO
.
getId
())
.
setGoodsInfoId
(
goodsAddVO
.
getId
());
// 插入数据库商品对应的规格信息
goodsInfoDao
.
insertMallIndustrySkuInfoSpec
(
mallIndustrySkuInfoSpecDO
);
}
Map
<
Integer
,
List
<
MallProdSkuInfoSpecDO
>>
dbSpecMap
=
mallProdSkuInfoSpecList
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
MallProdSkuInfoSpecDO:
:
getMallProdSkuInfoId
));
for
(
GoodsProdSpecVO
goodsSpecVO
:
updateGoodsSpec
)
{
// 分组后的每一条商品绑定的规格信息
List
<
MallProdSkuInfoSpecDO
>
dbMallProdSkuSpecList
=
dbSpecMap
.
get
(
goodsSpecVO
.
getId
());
Set
<
Integer
>
inputMallSpecIds
=
goodsSpecVO
.
getSpecIds
().
stream
()
.
map
(
MallProductSpecVO:
:
getId
)
.
filter
(
Objects:
:
nonNull
)
.
collect
(
Collectors
.
toSet
());
List
<
Integer
>
delSpecId
=
dbMallProdSkuSpecList
.
stream
()
.
map
(
MallProdSkuInfoSpecDO:
:
getId
)
.
filter
(
id
->
!
inputMallSpecIds
.
contains
(
id
))
.
collect
(
Collectors
.
toList
());
if
(
delSpecId
.
size
()
!=
0
)
{
// 删除多余的spec信息
goodsInfoDao
.
batchUpdateMallProdSpec
(
delSpecId
);
}
// 新增spec的信息
for
(
MallProductSpecVO
mallProductSpecVO
:
goodsSpecVO
.
getSpecIds
())
{
if
(
mallProductSpecVO
.
getId
()
==
null
)
{
MallProdSkuInfoSpecDO
mallProdSkuInfoSpecDO
=
new
MallProdSkuInfoSpecDO
()
.
setProductSpecId
(
mallProductSpecVO
.
getMallSpecId
())
.
setMallProdSkuInfoId
(
goodsSpecVO
.
getId
())
.
setGoodsInfoId
(
goodsAddVO
.
getId
());
// 插入数据库商品对应的规格信息
goodsInfoDao
.
insertMallProdSkuInfoSpec
(
mallProdSkuInfoSpecDO
);
}
}
}
}
// 2、对自定义的sku进行操作
List
<
GoodsProdSpecVO
>
zdySpecInfo
=
goodsAddVO
.
getProductSpec
().
stream
()
.
filter
(
spec
->
spec
.
getFlag
().
equals
(
1
))
.
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
zdySpecInfo
))
{
updateCustomize
(
zdySpecInfo
,
goodsAddVO
.
getId
());
}
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateMallProductSkuSpec
(
GoodsAddVO
goodsAddVO
)
{
// 1、普通的sku修改逻辑
List
<
GoodsProdSpecVO
>
specInfo
=
goodsAddVO
.
getProductSpec
().
stream
().
filter
(
spec
->
!
spec
.
getFlag
().
equals
(
1
)).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
specInfo
))
{
// 1.1先获取用户输入的商品绑定sku的id集合
List
<
GoodsProdSpecVO
>
updateGoodsSpec
=
specInfo
.
stream
().
filter
(
d
->
d
.
getId
()
!=
null
).
collect
(
Collectors
.
toList
());
List
<
Integer
>
inputMallSkuIds
=
updateGoodsSpec
.
stream
().
map
(
GoodsProdSpecVO:
:
getId
).
collect
(
Collectors
.
toList
());
// 1.2从数据库获取该商品对应绑定的skuId的集合
List
<
MallProdInfoDO
>
mallProSkuInfoList
=
goodsInfoDao
.
getMallProSkuInfo
(
goodsAddVO
.
getId
());
List
<
Integer
>
dbMallSkuIds
=
mallProSkuInfoList
.
stream
().
map
(
MallProdInfoDO:
:
getId
).
collect
(
Collectors
.
toList
());
// 对比数据库id如果不在就删除
List
<
Integer
>
delIds
=
dbMallSkuIds
.
stream
().
filter
(
id
->
!
inputMallSkuIds
.
contains
(
id
)).
collect
(
Collectors
.
toList
());
if
(
delIds
.
size
()
!=
0
)
{
// 先删除商品绑定sku下的spec信息
goodsInfoDao
.
batchUpdateMallProSpec
(
delIds
,
goodsAddVO
.
getId
());
goodsInfoDao
.
batchUpdateMallProductSku
(
delIds
);
}
// 修改商品绑定的sku信息
List
<
MallProdInfoDO
>
mallProdSkuInfoList
=
updateGoodsSpec
.
stream
().
map
(
d
->
{
MallProdInfoDO
mallProdInfoDO
=
new
MallProdInfoDO
();
mallProdInfoDO
.
setId
(
d
.
getId
()).
setProdSkuId
(
d
.
getSkuId
())
.
setCategoriesId
(
d
.
getCategoryId
()).
setProdSkuSpecName
(
d
.
getGoodsSpecName
())
.
setChooseType
(
d
.
getChooseType
()).
setSkuUnitId
(
d
.
getSkuUnitId
()).
setMust
(
d
.
getMust
());
return
mallProdInfoDO
;
}).
collect
(
Collectors
.
toList
());
// 1.3批量修改sku的信息
goodsInfoDao
.
batchUpdateMallProdSkuInfo
(
mallProdSkuInfoList
);
// 1.4对新的sku进行操作
List
<
GoodsProdSpecVO
>
list
=
specInfo
.
stream
().
filter
(
d
->
d
.
getId
()
==
null
).
collect
(
Collectors
.
toList
());
productSkuSpecOperation
(
new
GoodsInfo
(
goodsAddVO
.
getId
()),
list
);
// 获取商品对应的skuId
List
<
Integer
>
mallSkuIds
=
goodsAddVO
.
getProductSpec
().
stream
().
filter
(
d
->
d
.
getId
()
!=
null
).
map
(
GoodsProdSpecVO:
:
getId
).
collect
(
Collectors
.
toList
());
if
(
mallSkuIds
.
size
()
>
0
)
{
// 根据这些id查出下面对应的规格信息
List
<
MallProdSkuInfoSpecDO
>
mallProdSkuInfoSpecList
=
goodsInfoDao
.
listMallProdSpecInfo
(
mallSkuIds
);
// 分组
Map
<
Integer
,
List
<
MallProdSkuInfoSpecDO
>>
dbSpecMap
=
mallProdSkuInfoSpecList
.
stream
().
collect
(
Collectors
.
groupingBy
(
MallProdSkuInfoSpecDO:
:
getMallProdSkuInfoId
));
for
(
GoodsProdSpecVO
goodsSpecVO
:
updateGoodsSpec
)
{
// 分组后的每一条商品绑定的规格信息
List
<
MallProdSkuInfoSpecDO
>
dbMallProdSkuSpecList
=
dbSpecMap
.
get
(
goodsSpecVO
.
getId
());
Set
<
Integer
>
inputMallSpecIds
=
goodsSpecVO
.
getSpecIds
().
stream
().
map
(
MallProductSpecVO:
:
getId
).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toSet
());
List
<
Integer
>
delSpecId
=
dbMallProdSkuSpecList
.
stream
().
map
(
MallProdSkuInfoSpecDO:
:
getId
).
filter
(
id
->
!
inputMallSpecIds
.
contains
(
id
)).
collect
(
Collectors
.
toList
());
if
(
delSpecId
.
size
()
!=
0
)
{
// 删除多余的spec信息
goodsInfoDao
.
batchUpdateMallProdSpec
(
delSpecId
);
}
// 新增spec的信息
for
(
MallProductSpecVO
mallProductSpecVO
:
goodsSpecVO
.
getSpecIds
())
{
if
(
mallProductSpecVO
.
getId
()
==
null
)
{
MallProdSkuInfoSpecDO
mallProdSkuInfoSpecDO
=
new
MallProdSkuInfoSpecDO
()
.
setProductSpecId
(
mallProductSpecVO
.
getMallSpecId
())
.
setMallProdSkuInfoId
(
goodsSpecVO
.
getId
())
.
setGoodsInfoId
(
goodsAddVO
.
getId
());
// 插入数据库商品对应的规格信息
goodsInfoDao
.
insertMallProdSkuInfoSpec
(
mallProdSkuInfoSpecDO
);
}
}
}
}
// 2、对自定义的sku进行操作
List
<
GoodsProdSpecVO
>
zdySpecInfo
=
goodsAddVO
.
getProductSpec
().
stream
().
filter
(
spec
->
spec
.
getFlag
().
equals
(
1
)).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
zdySpecInfo
))
{
updateCustomize
(
zdySpecInfo
,
goodsAddVO
.
getId
());
}
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateCustomize
(
List
<
GoodsProdSpecVO
>
zdySpecInfo
,
Integer
id
)
{
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateCustomize
(
List
<
GoodsProdSpecVO
>
zdySpecInfo
,
Integer
id
)
{
// 先获取自定义的sku及规格(原来有的)
List
<
GoodsProdSpecVO
>
zdySpec
=
zdySpecInfo
.
stream
().
filter
(
d
->
d
.
getId
()
!=
null
).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
zdySpec
))
{
// 根据获取到的自定义sku及规格进行操作
List
<
MallProdInfoDO
>
zdySpecList
=
zdySpec
.
stream
().
map
(
d
->
{
// 构建商品对应的sku信息
ProductSkuDO
productSkuDO
=
new
ProductSkuDO
().
setId
(
d
.
getSkuId
()).
setCategoriesId
(
d
.
getCategoryId
()).
setProductName
(
d
.
getProductName
());
productDao
.
updateProductSku
(
productSkuDO
);
return
new
MallProdInfoDO
(
d
).
setId
(
d
.
getId
()).
setProdSkuId
(
d
.
getSkuId
());
}).
collect
(
Collectors
.
toList
());
// 批量修改sku的信息
goodsInfoDao
.
batchUpdateMallProdSkuInfo
(
zdySpecList
);
}
for
(
GoodsProdSpecVO
goodsSpecVO
:
zdySpec
)
{
// 【1】获取输入的自定义规格信息// id不为空则修改
List
<
ProductSpecVO
>
customizeInfoList
=
goodsSpecVO
.
getCustomizeInfo
().
stream
().
filter
(
d
->
d
.
getId
()
!=
null
).
collect
(
Collectors
.
toList
());
for
(
ProductSpecVO
d
:
customizeInfoList
)
{
// ①修改价格配置
ProductSpecCPQVO
productSpecCPQVO
=
d
.
getProductSpecCPQVO
();
// 删除所有的随后在新增
productDao
.
removeProductSpecCPQ
(
productSpecCPQVO
);
productSkuService
.
insertSpecPrice
(
productSpecCPQVO
);
// ②在修改自定义的数据
productDao
.
updateProductSpec
(
new
ProductSpecDO
(
d
));
}
// 【2】删除多余的自定义规格
if
(!
CollectionUtils
.
isEmpty
(
goodsSpecVO
.
getDelProductSpecId
()))
{
// 批量查出spec的数据
List
<
MallProdSkuInfoSpecDO
>
prodSkuInfoSpecList
=
productDao
.
getProductSpecByIds
(
goodsSpecVO
.
getDelProductSpecId
());
for
(
MallProdSkuInfoSpecDO
mallProdSkuInfoSpecDO
:
prodSkuInfoSpecList
)
{
productDao
.
removeProductSpec
(
mallProdSkuInfoSpecDO
.
getProductSpecId
());
}
goodsInfoDao
.
batchUpdateMallProdSpec
(
goodsSpecVO
.
getDelProductSpecId
());
}
// 【3】新增最新的自定义规格
List
<
ProductSpecVO
>
collect
=
goodsSpecVO
.
getCustomizeInfo
().
stream
().
filter
(
d
->
d
.
getId
()
==
null
).
collect
(
Collectors
.
toList
());
for
(
ProductSpecVO
param
:
collect
)
{
ProductSpecDO
productSpecDO
=
new
ProductSpecDO
(
param
);
// 新增产品sku
productDao
.
insertProductSpec
(
productSpecDO
);
// 批量配置价格信息
ProductSpecCPQVO
productSpecCPQVO
=
param
.
getProductSpecCPQVO
();
productSpecCPQVO
.
setProductSpecId
(
productSpecDO
.
getId
());
productSkuService
.
insertSpecPrice
(
productSpecCPQVO
);
// 构建商品对应的规格信息
MallProdSkuInfoSpecDO
mallProdSkuInfoSpecDO
=
new
MallProdSkuInfoSpecDO
()
.
setProductSpecId
(
productSpecDO
.
getId
())
.
setMallProdSkuInfoId
(
goodsSpecVO
.
getId
())
.
setGoodsInfoId
(
id
);
// 插入数据库商品对应的规格信息
goodsInfoDao
.
insertMallProdSkuInfoSpec
(
mallProdSkuInfoSpecDO
);
}
}
// 2.2 新增新的自定义规格信息
List
<
GoodsProdSpecVO
>
newZdySpec
=
zdySpecInfo
.
stream
().
filter
(
d
->
d
.
getId
()
==
null
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
newZdySpec
))
{
productSkuSpecOperation
(
new
GoodsInfo
(
id
),
newZdySpec
);
// 先获取自定义的sku及规格(原来有的)
List
<
GoodsProdSpecVO
>
zdySpec
=
zdySpecInfo
.
stream
().
filter
(
d
->
d
.
getId
()
!=
null
).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
zdySpec
))
{
// 根据获取到的自定义sku及规格进行操作
List
<
MallProdInfoDO
>
zdySpecList
=
zdySpec
.
stream
()
.
map
(
d
->
{
// 构建商品对应的sku信息
ProductSkuDO
productSkuDO
=
new
ProductSkuDO
()
.
setId
(
d
.
getSkuId
())
.
setCategoriesId
(
d
.
getCategoryId
())
.
setProductName
(
d
.
getProductName
());
productDao
.
updateProductSku
(
productSkuDO
);
return
new
MallProdInfoDO
(
d
).
setId
(
d
.
getId
()).
setProdSkuId
(
d
.
getSkuId
());
})
.
collect
(
Collectors
.
toList
());
// 批量修改sku的信息
goodsInfoDao
.
batchUpdateMallProdSkuInfo
(
zdySpecList
);
}
for
(
GoodsProdSpecVO
goodsSpecVO
:
zdySpec
)
{
// 【1】获取输入的自定义规格信息// id不为空则修改
List
<
ProductSpecVO
>
customizeInfoList
=
goodsSpecVO
.
getCustomizeInfo
().
stream
()
.
filter
(
d
->
d
.
getId
()
!=
null
)
.
collect
(
Collectors
.
toList
());
for
(
ProductSpecVO
d
:
customizeInfoList
)
{
// ①修改价格配置
ProductSpecCPQVO
productSpecCPQVO
=
d
.
getProductSpecCPQVO
();
// 删除所有的随后在新增
productDao
.
removeProductSpecCPQ
(
productSpecCPQVO
);
productSkuService
.
insertSpecPrice
(
productSpecCPQVO
);
// ②在修改自定义的数据
productDao
.
updateProductSpec
(
new
ProductSpecDO
(
d
));
}
// 【2】删除多余的自定义规格
if
(!
CollectionUtils
.
isEmpty
(
goodsSpecVO
.
getDelProductSpecId
()))
{
// 批量查出spec的数据
List
<
MallProdSkuInfoSpecDO
>
prodSkuInfoSpecList
=
productDao
.
getProductSpecByIds
(
goodsSpecVO
.
getDelProductSpecId
());
for
(
MallProdSkuInfoSpecDO
mallProdSkuInfoSpecDO
:
prodSkuInfoSpecList
)
{
productDao
.
removeProductSpec
(
mallProdSkuInfoSpecDO
.
getProductSpecId
());
}
goodsInfoDao
.
batchUpdateMallProdSpec
(
goodsSpecVO
.
getDelProductSpecId
());
}
// 【3】新增最新的自定义规格
List
<
ProductSpecVO
>
collect
=
goodsSpecVO
.
getCustomizeInfo
().
stream
()
.
filter
(
d
->
d
.
getId
()
==
null
)
.
collect
(
Collectors
.
toList
());
for
(
ProductSpecVO
param
:
collect
)
{
ProductSpecDO
productSpecDO
=
new
ProductSpecDO
(
param
);
// 新增产品sku
productDao
.
insertProductSpec
(
productSpecDO
);
// 批量配置价格信息
ProductSpecCPQVO
productSpecCPQVO
=
param
.
getProductSpecCPQVO
();
productSpecCPQVO
.
setProductSpecId
(
productSpecDO
.
getId
());
productSkuService
.
insertSpecPrice
(
productSpecCPQVO
);
// 构建商品对应的规格信息
MallProdSkuInfoSpecDO
mallProdSkuInfoSpecDO
=
new
MallProdSkuInfoSpecDO
()
.
setProductSpecId
(
productSpecDO
.
getId
())
.
setMallProdSkuInfoId
(
goodsSpecVO
.
getId
())
.
setGoodsInfoId
(
id
);
// 插入数据库商品对应的规格信息
goodsInfoDao
.
insertMallProdSkuInfoSpec
(
mallProdSkuInfoSpecDO
);
}
}
// 2.2 新增新的自定义规格信息
List
<
GoodsProdSpecVO
>
newZdySpec
=
zdySpecInfo
.
stream
().
filter
(
d
->
d
.
getId
()
==
null
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
newZdySpec
))
{
productSkuSpecOperation
(
new
GoodsInfo
(
id
),
newZdySpec
);
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateOtherService
(
GoodsAddVO
goodsAddVO
)
{
// 删除其他服务
goodsInfoDao
.
deleteGoodsServiceByGoodsId
(
goodsAddVO
.
getId
());
// 插入其他服务
if
(!
CollectionUtils
.
isEmpty
(
goodsAddVO
.
getOtherService
()))
{
List
<
Integer
>
other
=
goodsAddVO
.
getOtherService
();
List
<
GoodsServiceDO
>
otherList
=
other
.
stream
().
map
(
d
->
{
GoodsServiceDO
goodsServiceDO
=
new
GoodsServiceDO
();
goodsServiceDO
.
setGoodsInfoId
(
goodsAddVO
.
getId
());
goodsServiceDO
.
setSaleServiceId
(
d
);
return
goodsServiceDO
;
}).
collect
(
Collectors
.
toList
());
goodsInfoDao
.
insertGoodsService
(
otherList
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateOtherService
(
GoodsAddVO
goodsAddVO
)
{
// 删除其他服务
goodsInfoDao
.
deleteGoodsServiceByGoodsId
(
goodsAddVO
.
getId
());
// 插入其他服务
if
(!
CollectionUtils
.
isEmpty
(
goodsAddVO
.
getOtherService
()))
{
List
<
Integer
>
other
=
goodsAddVO
.
getOtherService
();
List
<
GoodsServiceDO
>
otherList
=
other
.
stream
()
.
map
(
d
->
{
GoodsServiceDO
goodsServiceDO
=
new
GoodsServiceDO
();
goodsServiceDO
.
setGoodsInfoId
(
goodsAddVO
.
getId
());
goodsServiceDO
.
setSaleServiceId
(
d
);
return
goodsServiceDO
;
})
.
collect
(
Collectors
.
toList
());
goodsInfoDao
.
insertGoodsService
(
otherList
);
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateImageInfo
(
GoodsAddVO
goodsAddVO
)
{
Set
<
Integer
>
imgIds
=
goodsAddVO
.
getImages
().
stream
().
map
(
GoodsImgVO:
:
getId
).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toSet
());
List
<
GoodsImgDO
>
dbImgList
=
goodsInfoDao
.
listGoodsInfoByGoodsId
(
goodsAddVO
.
getId
());
List
<
Integer
>
deleteIds
=
dbImgList
.
stream
().
map
(
GoodsImgDO:
:
getId
).
filter
(
id
->
!
imgIds
.
contains
(
id
)).
collect
(
Collectors
.
toList
());
if
(
deleteIds
.
size
()
!=
0
)
{
// 删除多余的图片
goodsInfoDao
.
deleteImgByIds
(
deleteIds
);
}
// 新增图片
List
<
GoodsImgDO
>
imgDOList
=
goodsAddVO
.
getImages
().
stream
().
filter
(
d
->
d
.
getId
()
==
null
).
map
(
d
->
{
GoodsImgDO
goodsImgDO
=
new
GoodsImgDO
(
d
);
goodsImgDO
.
setGoodsInfoId
(
goodsAddVO
.
getId
());
return
goodsImgDO
;
}).
collect
(
Collectors
.
toList
());
if
(
imgDOList
.
size
()
!=
0
)
{
goodsInfoDao
.
insertGoodsImgInfo
(
imgDOList
);
}
// 删除视频
goodsInfoDao
.
deleteGoodsVideoById
(
goodsAddVO
.
getId
());
// 插入视频
if
(
goodsAddVO
.
getGoodsVideo
()
!=
null
)
{
GoodsVideoDO
goodsVideoDO
=
new
GoodsVideoDO
();
goodsVideoDO
.
setGoodsInfoId
(
goodsAddVO
.
getId
());
goodsVideoDO
.
setVideoUrl
(
goodsAddVO
.
getGoodsVideo
());
goodsInfoDao
.
insertVideoInfo
(
goodsVideoDO
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateImageInfo
(
GoodsAddVO
goodsAddVO
)
{
Set
<
Integer
>
imgIds
=
goodsAddVO
.
getImages
().
stream
()
.
map
(
GoodsImgVO:
:
getId
)
.
filter
(
Objects:
:
nonNull
)
.
collect
(
Collectors
.
toSet
());
List
<
GoodsImgDO
>
dbImgList
=
goodsInfoDao
.
listGoodsInfoByGoodsId
(
goodsAddVO
.
getId
());
List
<
Integer
>
deleteIds
=
dbImgList
.
stream
()
.
map
(
GoodsImgDO:
:
getId
)
.
filter
(
id
->
!
imgIds
.
contains
(
id
))
.
collect
(
Collectors
.
toList
());
if
(
deleteIds
.
size
()
!=
0
)
{
// 删除多余的图片
goodsInfoDao
.
deleteImgByIds
(
deleteIds
);
}
// 新增图片
List
<
GoodsImgDO
>
imgDOList
=
goodsAddVO
.
getImages
().
stream
()
.
filter
(
d
->
d
.
getId
()
==
null
)
.
map
(
d
->
{
GoodsImgDO
goodsImgDO
=
new
GoodsImgDO
(
d
);
goodsImgDO
.
setGoodsInfoId
(
goodsAddVO
.
getId
());
return
goodsImgDO
;
})
.
collect
(
Collectors
.
toList
());
if
(
imgDOList
.
size
()
!=
0
)
{
goodsInfoDao
.
insertGoodsImgInfo
(
imgDOList
);
}
// 删除视频
goodsInfoDao
.
deleteGoodsVideoById
(
goodsAddVO
.
getId
());
// 插入视频
if
(
goodsAddVO
.
getGoodsVideo
()
!=
null
)
{
GoodsVideoDO
goodsVideoDO
=
new
GoodsVideoDO
();
goodsVideoDO
.
setGoodsInfoId
(
goodsAddVO
.
getId
());
goodsVideoDO
.
setVideoUrl
(
goodsAddVO
.
getGoodsVideo
());
goodsInfoDao
.
insertVideoInfo
(
goodsVideoDO
);
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateGoodsDetail
(
GoodsAddVO
goodsAddVO
)
{
GoodsDetailDO
goodsDetailDO
=
new
GoodsDetailDO
(
goodsAddVO
.
getGoodsDetailVO
()).
setGoodsInfoId
(
goodsAddVO
.
getId
());
// 商品详情修改
goodsInfoDao
.
updateGoodsDetail
(
goodsDetailDO
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateGoodsDetail
(
GoodsAddVO
goodsAddVO
)
{
GoodsDetailDO
goodsDetailDO
=
new
GoodsDetailDO
(
goodsAddVO
.
getGoodsDetailVO
()).
setGoodsInfoId
(
goodsAddVO
.
getId
());
// 商品详情修改
goodsInfoDao
.
updateGoodsDetail
(
goodsDetailDO
);
@Override
public
ResultBody
getGoodsInfoDetail
(
Integer
goodsInfoId
)
{
// 判断此商品是否还存在
int
count
=
goodsInfoDao
.
countGoodsInfoById
(
goodsInfoId
);
if
(
count
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_NOT_EXIST_OR_ALREADY_DOWN_SHELF
);
}
// 初始化商品返回信息的对象
MallGoodsDetailDTO
mallGoodsDetail
=
new
MallGoodsDetailDTO
();
// 获取商品基本信息
GoodsInfo
goodsInfo
=
goodsInfoDao
.
getGoodsSimpleInfo
(
goodsInfoId
);
mallGoodsDetail
.
setId
(
goodsInfo
.
getId
())
.
setGoodsName
(
goodsInfo
.
getGoodsName
())
.
setCategoryByOne
(
goodsInfo
.
getCategoryByOne
())
.
setGoodsVideo
(
goodsInfo
.
getVideoUrl
())
.
setDirectoryId
(
goodsInfo
.
getDirectoryId
())
.
setCategoryByTwo
(
goodsInfo
.
getCategoryByTwo
())
.
setTag
(
goodsInfo
.
getEcoLabel
())
.
setShelfStatus
(
goodsInfo
.
getShelfStatus
())
.
setGoodsVideoId
(
goodsInfo
.
getGoodsVideoId
());
// 获取商品图片信息
mallGoodsDetail
.
setImages
(
getGoodsImageInfo
(
goodsInfoId
));
// 获取商品详细信息
mallGoodsDetail
.
setGoodsDetail
(
getGoodsDetail
(
goodsInfoId
));
// 获取其他服务信息
mallGoodsDetail
.
setOtherService
(
getOtherServiceInfo
(
goodsInfoId
));
// 获取规格信息
if
(!
goodsInfo
.
getDirectoryId
().
equals
(
2
))
{
// 获取产品规格信息
mallGoodsDetail
.
setGoodsSpec
(
getProductSpecInfo
(
goodsInfoId
));
}
else
{
// 获取行业规格信息
mallGoodsDetail
.
setGoodsSpec
(
getIndustrySpecInfo
(
goodsInfoId
));
}
return
ResultBody
.
success
(
mallGoodsDetail
);
}
private
List
<
GoodsSpecDTO
>
getIndustrySpecInfo
(
Integer
goodsInfoId
)
{
// 获取商品对应绑定的行业sku信息
List
<
MallIndustrySkuInfoDO
>
mallIndustrySkuInfoList
=
goodsInfoDao
.
getMallIndustrySkuInfo
(
goodsInfoId
);
List
<
GoodsSpecDTO
>
list
=
mallIndustrySkuInfoList
.
stream
()
.
map
(
MallIndustrySkuInfoDO:
:
buildGoodsSpecDTO
)
.
collect
(
Collectors
.
toList
());
// 根据商品id查出该商品下绑定的规格信息
List
<
MallIndustrySkuInfoSpecDO
>
mallIndustrySkuInfoSpec
=
industrySpecDao
.
getIndustrySkuInfoSpec
(
goodsInfoId
);
list
=
list
.
stream
()
.
peek
(
d
->
{
List
<
MallIndustrySpecDTO
>
industrySpec
=
new
ArrayList
<>();
for
(
MallIndustrySkuInfoSpecDO
e
:
mallIndustrySkuInfoSpec
)
{
if
(
d
.
getId
().
equals
(
e
.
getMallIndustrySkuInfoId
()))
{
IndustrySpecDO
industrySpecDO
=
e
.
getIndustrySpecDO
();
MallIndustrySpecDTO
industrySpecDTO
=
industrySpecDO
.
buildMallIndustrySpecDTO
();
industrySpecDTO
.
setId
(
e
.
getId
());
industrySpecDTO
.
setIndustrySpecId
(
e
.
getIndustrySpecId
());
industrySpecDTO
.
setIndustrySkuId
(
d
.
getSkuId
());
industrySpec
.
add
(
industrySpecDTO
);
}
}
d
.
setIndustrySpecList
(
industrySpec
);
})
.
collect
(
Collectors
.
toList
());
return
list
;
}
@Override
public
ResultBody
getGoodsInfoDetail
(
Integer
goodsInfoId
)
{
// 判断此商品是否还存在
int
count
=
goodsInfoDao
.
countGoodsInfoById
(
goodsInfoId
);
if
(
count
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_NOT_EXIST_OR_ALREADY_DOWN_SHELF
);
}
// 初始化商品返回信息的对象
MallGoodsDetailDTO
mallGoodsDetail
=
new
MallGoodsDetailDTO
();
// 获取商品基本信息
GoodsInfo
goodsInfo
=
goodsInfoDao
.
getGoodsSimpleInfo
(
goodsInfoId
);
mallGoodsDetail
.
setId
(
goodsInfo
.
getId
()).
setGoodsName
(
goodsInfo
.
getGoodsName
())
.
setCategoryByOne
(
goodsInfo
.
getCategoryByOne
()).
setGoodsVideo
(
goodsInfo
.
getVideoUrl
())
.
setDirectoryId
(
goodsInfo
.
getDirectoryId
()).
setCategoryByTwo
(
goodsInfo
.
getCategoryByTwo
())
.
setTag
(
goodsInfo
.
getEcoLabel
()).
setShelfStatus
(
goodsInfo
.
getShelfStatus
())
.
setGoodsVideoId
(
goodsInfo
.
getGoodsVideoId
());
// 获取商品图片信息
mallGoodsDetail
.
setImages
(
getGoodsImageInfo
(
goodsInfoId
));
// 获取商品详细信息
mallGoodsDetail
.
setGoodsDetail
(
getGoodsDetail
(
goodsInfoId
));
// 获取其他服务信息
mallGoodsDetail
.
setOtherService
(
getOtherServiceInfo
(
goodsInfoId
));
// 获取规格信息
if
(!
goodsInfo
.
getDirectoryId
().
equals
(
2
))
{
// 获取产品规格信息
mallGoodsDetail
.
setGoodsSpec
(
getProductSpecInfo
(
goodsInfoId
));
}
else
{
// 获取行业规格信息
mallGoodsDetail
.
setGoodsSpec
(
getIndustrySpecInfo
(
goodsInfoId
));
}
return
ResultBody
.
success
(
mallGoodsDetail
);
}
private
List
<
GoodsSpecDTO
>
getIndustrySpecInfo
(
Integer
goodsInfoId
)
{
// 获取商品对应绑定的行业sku信息
List
<
MallIndustrySkuInfoDO
>
mallIndustrySkuInfoList
=
goodsInfoDao
.
getMallIndustrySkuInfo
(
goodsInfoId
);
List
<
GoodsSpecDTO
>
list
=
mallIndustrySkuInfoList
.
stream
().
map
(
MallIndustrySkuInfoDO:
:
buildGoodsSpecDTO
).
collect
(
Collectors
.
toList
());
// 根据商品id查出该商品下绑定的规格信息
List
<
MallIndustrySkuInfoSpecDO
>
mallIndustrySkuInfoSpec
=
industrySpecDao
.
getIndustrySkuInfoSpec
(
goodsInfoId
);
list
=
list
.
stream
().
peek
(
d
->
{
List
<
MallIndustrySpecDTO
>
industrySpec
=
new
ArrayList
<>();
for
(
MallIndustrySkuInfoSpecDO
e
:
mallIndustrySkuInfoSpec
)
{
if
(
d
.
getId
().
equals
(
e
.
getMallIndustrySkuInfoId
()))
{
IndustrySpecDO
industrySpecDO
=
e
.
getIndustrySpecDO
();
MallIndustrySpecDTO
industrySpecDTO
=
industrySpecDO
.
buildMallIndustrySpecDTO
();
industrySpecDTO
.
setId
(
e
.
getId
());
industrySpecDTO
.
setIndustrySpecId
(
e
.
getIndustrySpecId
());
industrySpecDTO
.
setIndustrySkuId
(
d
.
getSkuId
());
industrySpec
.
add
(
industrySpecDTO
);
}
}
d
.
setIndustrySpecList
(
industrySpec
);
}).
collect
(
Collectors
.
toList
());
return
list
;
}
private
List
<
GoodsSpecDTO
>
getProductSpecInfo
(
Integer
goodsInfoId
)
{
// 获取商品对应绑定sku的信息
List
<
MallProdInfoDO
>
mallProdSkuInfoList
=
goodsInfoDao
.
getMallProSkuInfo
(
goodsInfoId
);
List
<
GoodsSpecDTO
>
list
=
mallProdSkuInfoList
.
stream
().
map
(
MallProdInfoDO:
:
buildGoodsSpecDTO
).
collect
(
Collectors
.
toList
());
// 获取规格来源详细信息
List
<
MallProdSkuInfoSpecDO
>
mallProdSkuInfoSpec
=
goodsInfoDao
.
getMallProSkuInfoSpec
(
goodsInfoId
);
// 根据id查询出规格的具体信息
list
=
list
.
stream
().
peek
(
d
->
{
List
<
MallProductSpecDTO
>
specList
=
new
ArrayList
<>();
for
(
MallProdSkuInfoSpecDO
e
:
mallProdSkuInfoSpec
)
{
if
(
d
.
getId
().
equals
(
e
.
getMallProdSkuInfoId
()))
{
// 构建规格对象
ProductSpecDO
productSpecDO
=
e
.
getProductSpecDO
();
MallProductSpecDTO
productSpecDTO
=
productSpecDO
.
buildMallProductSpecDTO
();
productSpecDTO
.
setProductSkuId
(
d
.
getSkuId
());
productSpecDTO
.
setId
(
e
.
getId
());
productSpecDTO
.
setProductSpec
(
e
.
getProductSpecId
());
if
(
d
.
getFlag
().
equals
(
1
))
{
private
List
<
GoodsSpecDTO
>
getProductSpecInfo
(
Integer
goodsInfoId
)
{
// 获取商品对应绑定sku的信息
List
<
MallProdInfoDO
>
mallProdSkuInfoList
=
goodsInfoDao
.
getMallProSkuInfo
(
goodsInfoId
);
List
<
GoodsSpecDTO
>
list
=
mallProdSkuInfoList
.
stream
()
.
map
(
MallProdInfoDO:
:
buildGoodsSpecDTO
)
.
collect
(
Collectors
.
toList
());
// 获取规格来源详细信息
List
<
MallProdSkuInfoSpecDO
>
mallProdSkuInfoSpec
=
goodsInfoDao
.
getMallProSkuInfoSpec
(
goodsInfoId
);
// 根据id查询出规格的具体信息
list
=
list
.
stream
()
.
peek
(
d
->
{
List
<
MallProductSpecDTO
>
specList
=
new
ArrayList
<>();
for
(
MallProdSkuInfoSpecDO
e
:
mallProdSkuInfoSpec
)
{
if
(
d
.
getId
().
equals
(
e
.
getMallProdSkuInfoId
()))
{
// 构建规格对象
ProductSpecDO
productSpecDO
=
e
.
getProductSpecDO
();
MallProductSpecDTO
productSpecDTO
=
productSpecDO
.
buildMallProductSpecDTO
();
productSpecDTO
.
setProductSkuId
(
d
.
getSkuId
());
productSpecDTO
.
setId
(
e
.
getId
());
productSpecDTO
.
setProductSpec
(
e
.
getProductSpecId
());
if
(
d
.
getFlag
().
equals
(
1
))
{
// 获取自定义sku下规格的价格配置信息
ProductSpecCPQVO
productSpecCPQVO
=
new
ProductSpecCPQVO
();
productSpecCPQVO
.
setProductSpecId
(
e
.
getProductSpecId
());
List
<
ProductSpecPriceDO
>
productSpecPrice
=
productDao
.
getProductSpecPrice
(
productSpecCPQVO
);
List
<
SpecPriceVO
>
collect
=
productSpecPrice
.
stream
().
map
(
m
->
{
SpecPriceVO
specPriceVO
=
new
SpecPriceVO
();
specPriceVO
.
setId
(
m
.
getId
());
specPriceVO
.
setPrice
(
m
.
getPrice
());
specPriceVO
.
setCooperationTag
(
m
.
getCooperationTag
());
return
specPriceVO
;
}).
collect
(
Collectors
.
toList
());
List
<
ProductSpecPriceDO
>
productSpecPrice
=
productDao
.
getProductSpecPrice
(
productSpecCPQVO
);
List
<
SpecPriceVO
>
collect
=
productSpecPrice
.
stream
()
.
map
(
m
->
{
SpecPriceVO
specPriceVO
=
new
SpecPriceVO
();
specPriceVO
.
setId
(
m
.
getId
());
specPriceVO
.
setPrice
(
m
.
getPrice
());
specPriceVO
.
setCooperationTag
(
m
.
getCooperationTag
());
return
specPriceVO
;
})
.
collect
(
Collectors
.
toList
());
productSpecCPQVO
.
setSpecPrice
(
collect
);
productSpecDTO
.
setProductSpecCPQVO
(
productSpecCPQVO
);
}
specList
.
add
(
productSpecDTO
);
}
specList
.
add
(
productSpecDTO
);
}
}
d
.
setProductSpecList
(
specList
);
}).
collect
(
Collectors
.
toList
());
return
list
;
}
}
d
.
setProductSpecList
(
specList
);
})
.
collect
(
Collectors
.
toList
());
return
list
;
}
private
List
<
GoodsOtherServiceDTO
>
getOtherServiceInfo
(
Integer
goodsInfoId
)
{
List
<
GoodsServiceDO
>
goodsServiceDO
=
goodsInfoDao
.
listGoodsServiceByGoodsId
(
goodsInfoId
);
return
goodsServiceDO
.
stream
().
map
(
GoodsServiceDO:
:
buildGoodsOtherServiceDTO
).
collect
(
Collectors
.
toList
());
}
public
List
<
GoodsOtherServiceDTO
>
getOtherServiceInfo
(
Integer
goodsInfoId
)
{
List
<
GoodsServiceDO
>
goodsServiceDO
=
goodsInfoDao
.
listGoodsServiceByGoodsId
(
goodsInfoId
);
return
goodsServiceDO
.
stream
()
.
map
(
GoodsServiceDO:
:
buildGoodsOtherServiceDTO
)
.
collect
(
Collectors
.
toList
());
}
private
GoodsDetailInfoDTO
getGoodsDetail
(
Integer
goodsInfoId
)
{
GoodsDetailDO
goodsDetail
=
goodsInfoDao
.
getGoodsDetailByGoodsId
(
goodsInfoId
);
return
goodsDetail
.
buildGoodsDetailInfoDTO
();
}
public
GoodsDetailInfoDTO
getGoodsDetail
(
Integer
goodsInfoId
)
{
GoodsDetailDO
goodsDetail
=
goodsInfoDao
.
getGoodsDetailByGoodsId
(
goodsInfoId
);
return
goodsDetail
.
buildGoodsDetailInfoDTO
();
}
private
List
<
GoodsImgDTO
>
getGoodsImageInfo
(
Integer
goodsInfoId
)
{
List
<
GoodsImgDO
>
goodsImgList
=
goodsInfoDao
.
listGoodsInfoByGoodsId
(
goodsInfoId
);
return
goodsImgList
.
stream
().
map
(
GoodsImgDO:
:
buildGoodsImgDTO
).
collect
(
Collectors
.
toList
());
}
public
List
<
GoodsImgDTO
>
getGoodsImageInfo
(
Integer
goodsInfoId
)
{
List
<
GoodsImgDO
>
goodsImgList
=
goodsInfoDao
.
listGoodsInfoByGoodsId
(
goodsInfoId
);
return
goodsImgList
.
stream
().
map
(
GoodsImgDO:
:
buildGoodsImgDTO
).
collect
(
Collectors
.
toList
());
}
@Override
public
ResultBody
getSaleServiceInfoToList
()
{
List
<
SaleServiceDO
>
list
=
goodsInfoDao
.
listSaleServiceInfo
();
List
<
SaleServiceDTO
>
serviceDTOList
=
list
.
stream
().
map
(
d
->
d
.
buildSaleServiceDTO
()).
collect
(
Collectors
.
toList
());
return
ResultBody
.
success
(
serviceDTOList
);
}
@Override
public
ResultBody
getSkuUnit
()
{
List
<
SkuUnitDO
>
skuUnitList
=
goodsInfoDao
.
getSkuUnit
();
List
<
SkuUnitDTO
>
list
=
skuUnitList
.
stream
().
map
(
SkuUnitDO:
:
buildSkuUnitDTO
).
collect
(
Collectors
.
toList
());
return
ResultBody
.
success
(
list
);
}
@Override
public
ResultBody
getSkuUnit
()
{
List
<
SkuUnitDO
>
skuUnitList
=
goodsInfoDao
.
getSkuUnit
();
List
<
SkuUnitDTO
>
list
=
skuUnitList
.
stream
().
map
(
SkuUnitDO:
:
buildSkuUnitDTO
).
collect
(
Collectors
.
toList
());
return
ResultBody
.
success
(
list
);
}
/**
* 根据商品id,商品规格id查询并填充相关信息
*
* @param param
* @return
*/
@Override
public
List
<
MallGoodsShopCarDTO
>
fillGoodsInfo
(
List
<
MallGoodsShopCarDTO
>
param
)
{
Set
<
Integer
>
goodsIds
=
new
HashSet
<>();
//获取商品id
for
(
MallGoodsShopCarDTO
mallGoodsShopCarDTO
:
param
)
{
goodsIds
.
add
(
mallGoodsShopCarDTO
.
getGoodsInfoId
());
}
//查询出商品信息后进行填充
List
<
GoodsInfo
>
goodsInfoDOList
=
goodsInfoDao
.
listSimpleGoodsInfoByIds
(
goodsIds
);
for
(
MallGoodsShopCarDTO
mallGoodsShopCarDTO
:
param
)
{
for
(
GoodsInfo
goodsInfo
:
goodsInfoDOList
)
{
if
(
mallGoodsShopCarDTO
.
getGoodsInfoId
().
toString
().
equals
(
goodsInfo
.
getId
().
toString
()))
{
mallGoodsShopCarDTO
.
setDirectoryId
(
goodsInfo
.
getDirectoryId
());
mallGoodsShopCarDTO
.
setShelfStatus
(
goodsInfo
.
getShelfStatus
());
mallGoodsShopCarDTO
.
setGoodsName
(
goodsInfo
.
getGoodsName
());
mallGoodsShopCarDTO
.
setMainImg
(
goodsInfo
.
getMainImg
());
break
;
}
}
/**
* 根据商品id,商品规格id查询并填充相关信息
*
* @param param
* @return
*/
@Override
public
List
<
MallGoodsShopCarDTO
>
fillGoodsInfo
(
List
<
MallGoodsShopCarDTO
>
param
)
{
Set
<
Integer
>
goodsIds
=
new
HashSet
<>();
// 获取商品id
for
(
MallGoodsShopCarDTO
mallGoodsShopCarDTO
:
param
)
{
goodsIds
.
add
(
mallGoodsShopCarDTO
.
getGoodsInfoId
());
}
// 查询出商品信息后进行填充
List
<
GoodsInfo
>
goodsInfoDOList
=
goodsInfoDao
.
listSimpleGoodsInfoByIds
(
goodsIds
);
for
(
MallGoodsShopCarDTO
mallGoodsShopCarDTO
:
param
)
{
for
(
GoodsInfo
goodsInfo
:
goodsInfoDOList
)
{
if
(
mallGoodsShopCarDTO
.
getGoodsInfoId
().
toString
().
equals
(
goodsInfo
.
getId
().
toString
()))
{
mallGoodsShopCarDTO
.
setDirectoryId
(
goodsInfo
.
getDirectoryId
());
mallGoodsShopCarDTO
.
setShelfStatus
(
goodsInfo
.
getShelfStatus
());
mallGoodsShopCarDTO
.
setGoodsName
(
goodsInfo
.
getGoodsName
());
mallGoodsShopCarDTO
.
setMainImg
(
goodsInfo
.
getMainImg
());
break
;
}
}
}
//对产品和行业的规格id进行分类
Set
<
Integer
>
prodIds
=
new
HashSet
<>();
Set
<
Integer
>
indstIds
=
new
HashSet
<>();
for
(
MallGoodsShopCarDTO
mallGoodsShopCarDTO
:
param
)
{
if
(
mallGoodsShopCarDTO
.
getDirectoryId
().
equals
(
1
))
{
for
(
MallSkuInfoSpecDTO
mallSkuInfoSpecDTO
:
mallGoodsShopCarDTO
.
getSkuList
())
{
prodIds
.
add
(
mallSkuInfoSpecDTO
.
getMallSkuInfoSpecId
());
}
}
else
if
(
mallGoodsShopCarDTO
.
getDirectoryId
().
equals
(
2
))
{
for
(
MallSkuInfoSpecDTO
mallSkuInfoSpecDTO
:
mallGoodsShopCarDTO
.
getSkuList
())
{
indstIds
.
add
(
mallSkuInfoSpecDTO
.
getMallSkuInfoSpecId
());
}
}
}
//根据规格id查找规格信息
List
<
MallGoodsSpecInfoDO
>
goodsSpecInfoDOList
=
new
ArrayList
<>();
if
(!
CollectionUtils
.
isEmpty
(
prodIds
))
{
List
<
MallGoodsSpecInfoDO
>
goodsProdSpecInfoDOList
=
goodsInfoDao
.
listProdSpecInfo
(
prodIds
);
goodsSpecInfoDOList
.
addAll
(
goodsProdSpecInfoDOList
);
// 对产品和行业的规格id进行分类
Set
<
Integer
>
prodIds
=
new
HashSet
<>();
Set
<
Integer
>
indstIds
=
new
HashSet
<>();
for
(
MallGoodsShopCarDTO
mallGoodsShopCarDTO
:
param
)
{
if
(
mallGoodsShopCarDTO
.
getDirectoryId
().
equals
(
1
))
{
for
(
MallSkuInfoSpecDTO
mallSkuInfoSpecDTO
:
mallGoodsShopCarDTO
.
getSkuList
())
{
prodIds
.
add
(
mallSkuInfoSpecDTO
.
getMallSkuInfoSpecId
());
}
if
(!
CollectionUtils
.
isEmpty
(
indstIds
))
{
List
<
MallGoodsSpecInfoDO
>
goodsIndstSpecInfoDOList
=
goodsInfoDao
.
listIndstSpecInfo
(
indstIds
);
goodsSpecInfoDOList
.
addAll
(
goodsIndstSpecInfoDOList
);
}
else
if
(
mallGoodsShopCarDTO
.
getDirectoryId
().
equals
(
2
))
{
for
(
MallSkuInfoSpecDTO
mallSkuInfoSpecDTO
:
mallGoodsShopCarDTO
.
getSkuList
())
{
indstIds
.
add
(
mallSkuInfoSpecDTO
.
getMallSkuInfoSpecId
()
);
}
//根据查出来的sku,填充到MallGoodsShopCarDTO里面
for
(
MallGoodsShopCarDTO
mallGoodsShopCarDTO
:
param
)
{
for
(
MallGoodsSpecInfoDO
mallGoodsSpecInfoDO
:
goodsSpecInfoDOList
)
{
//找到对应商品
if
(
mallGoodsShopCarDTO
.
getGoodsInfoId
().
toString
().
equals
(
mallGoodsSpecInfoDO
.
getId
().
toString
())
&&
mallGoodsShopCarDTO
.
getDirectoryId
().
toString
().
equals
(
mallGoodsSpecInfoDO
.
getDirectoryId
().
toString
()))
{
for
(
SkuSpecDO
skuSpecDO
:
mallGoodsSpecInfoDO
.
getSkuSpecDOList
())
{
for
(
MallSkuInfoSpecDTO
mallSkuInfoSpecDTO
:
mallGoodsShopCarDTO
.
getSkuList
())
{
//根据对应规格进行填充
if
(
skuSpecDO
.
getId
().
toString
().
equals
(
mallSkuInfoSpecDTO
.
getMallSkuInfoSpecId
().
toString
()))
{
mallSkuInfoSpecDTO
.
setSpecName
(
skuSpecDO
.
getSpecName
());
mallSkuInfoSpecDTO
.
setDeleted
(
skuSpecDO
.
getSkuSpecDeleted
());
mallSkuInfoSpecDTO
.
setValid
(
skuSpecDO
.
getSkuSpecDeleted
()
==
0
&&
skuSpecDO
.
getSpecDeleted
()
==
0
);
break
;
}
}
}
break
;
}
}
}
// 根据规格id查找规格信息
List
<
MallGoodsSpecInfoDO
>
goodsSpecInfoDOList
=
new
ArrayList
<>();
if
(!
CollectionUtils
.
isEmpty
(
prodIds
))
{
List
<
MallGoodsSpecInfoDO
>
goodsProdSpecInfoDOList
=
goodsInfoDao
.
listProdSpecInfo
(
prodIds
);
goodsSpecInfoDOList
.
addAll
(
goodsProdSpecInfoDOList
);
}
if
(!
CollectionUtils
.
isEmpty
(
indstIds
))
{
List
<
MallGoodsSpecInfoDO
>
goodsIndstSpecInfoDOList
=
goodsInfoDao
.
listIndstSpecInfo
(
indstIds
);
goodsSpecInfoDOList
.
addAll
(
goodsIndstSpecInfoDOList
);
}
// 根据查出来的sku,填充到MallGoodsShopCarDTO里面
for
(
MallGoodsShopCarDTO
mallGoodsShopCarDTO
:
param
)
{
for
(
MallGoodsSpecInfoDO
mallGoodsSpecInfoDO
:
goodsSpecInfoDOList
)
{
// 找到对应商品
if
(
mallGoodsShopCarDTO
.
getGoodsInfoId
()
.
toString
()
.
equals
(
mallGoodsSpecInfoDO
.
getId
().
toString
())
&&
mallGoodsShopCarDTO
.
getDirectoryId
()
.
toString
()
.
equals
(
mallGoodsSpecInfoDO
.
getDirectoryId
().
toString
()))
{
for
(
SkuSpecDO
skuSpecDO
:
mallGoodsSpecInfoDO
.
getSkuSpecDOList
())
{
for
(
MallSkuInfoSpecDTO
mallSkuInfoSpecDTO
:
mallGoodsShopCarDTO
.
getSkuList
())
{
// 根据对应规格进行填充
if
(
skuSpecDO
.
getId
()
.
toString
()
.
equals
(
mallSkuInfoSpecDTO
.
getMallSkuInfoSpecId
().
toString
()))
{
mallSkuInfoSpecDTO
.
setSpecName
(
skuSpecDO
.
getSpecName
());
mallSkuInfoSpecDTO
.
setDeleted
(
skuSpecDO
.
getSkuSpecDeleted
());
mallSkuInfoSpecDTO
.
setValid
(
skuSpecDO
.
getSkuSpecDeleted
()
==
0
&&
skuSpecDO
.
getSpecDeleted
()
==
0
);
break
;
}
}
}
break
;
}
return
param
;
}
@Override
public
List
<
MallProductSpecPriceDTO
>
feignListProductSpecPrice
(
ProductSpecPriceQO
productSpecPriceQO
)
{
Set
<
Integer
>
ids
=
new
HashSet
<>(
productSpecPriceQO
.
getProductSpecIds
());
List
<
MallProductSpecPriceDTO
>
mallProductSpecPriceDTOS
=
productSpecPriceQO
.
getProductSpecIds
().
stream
().
map
(
d
->
{
MallProductSpecPriceDTO
mallProductSpecPriceDTO
=
new
MallProductSpecPriceDTO
();
mallProductSpecPriceDTO
.
setProductSpecId
(
d
);
return
mallProductSpecPriceDTO
;
}).
collect
(
Collectors
.
toList
());
//分别找出渠道价格和市场价格
List
<
ProductSpecPriceDO
>
productSpecPriceDOS
=
productDao
.
listProductSpecPrice
(
productSpecPriceQO
.
getChannelClass
(),
ids
);
List
<
ProductSpecPriceDO
>
productSpecPriceDOS1
=
productDao
.
listProductSpecPrice
(
0
,
ids
);
//设置合作价格
for
(
ProductSpecPriceDO
productSpecPriceDO
:
productSpecPriceDOS
)
{
for
(
MallProductSpecPriceDTO
mallProductSpecPriceDTO
:
mallProductSpecPriceDTOS
)
{
if
(
mallProductSpecPriceDTO
.
getProductSpecId
().
equals
(
productSpecPriceDO
.
getProductSpecId
()))
{
mallProductSpecPriceDTO
.
setOpPrice
(
productSpecPriceDO
.
getPrice
());
break
;
}
}
}
}
return
param
;
}
@Override
public
List
<
MallProductSpecPriceDTO
>
feignListProductSpecPrice
(
ProductSpecPriceQO
productSpecPriceQO
)
{
Set
<
Integer
>
ids
=
new
HashSet
<>(
productSpecPriceQO
.
getProductSpecIds
());
List
<
MallProductSpecPriceDTO
>
mallProductSpecPriceDTOS
=
productSpecPriceQO
.
getProductSpecIds
().
stream
()
.
map
(
d
->
{
MallProductSpecPriceDTO
mallProductSpecPriceDTO
=
new
MallProductSpecPriceDTO
();
mallProductSpecPriceDTO
.
setProductSpecId
(
d
);
return
mallProductSpecPriceDTO
;
})
.
collect
(
Collectors
.
toList
());
// 分别找出渠道价格和市场价格
List
<
ProductSpecPriceDO
>
productSpecPriceDOS
=
productDao
.
listProductSpecPrice
(
productSpecPriceQO
.
getChannelClass
(),
ids
);
List
<
ProductSpecPriceDO
>
productSpecPriceDOS1
=
productDao
.
listProductSpecPrice
(
0
,
ids
);
// 设置合作价格
for
(
ProductSpecPriceDO
productSpecPriceDO
:
productSpecPriceDOS
)
{
for
(
MallProductSpecPriceDTO
mallProductSpecPriceDTO
:
mallProductSpecPriceDTOS
)
{
if
(
mallProductSpecPriceDTO
.
getProductSpecId
()
.
equals
(
productSpecPriceDO
.
getProductSpecId
()))
{
mallProductSpecPriceDTO
.
setOpPrice
(
productSpecPriceDO
.
getPrice
());
break
;
}
//设置市场价格
for
(
ProductSpecPriceDO
productSpecPriceDO
:
productSpecPriceDOS1
)
{
for
(
MallProductSpecPriceDTO
mallProductSpecPriceDTO
:
mallProductSpecPriceDTOS
)
{
if
(
mallProductSpecPriceDTO
.
getProductSpecId
().
equals
(
productSpecPriceDO
.
getProductSpecId
()))
{
mallProductSpecPriceDTO
.
setMkPrice
(
productSpecPriceDO
.
getPrice
());
break
;
}
}
}
}
// 设置市场价格
for
(
ProductSpecPriceDO
productSpecPriceDO
:
productSpecPriceDOS1
)
{
for
(
MallProductSpecPriceDTO
mallProductSpecPriceDTO
:
mallProductSpecPriceDTOS
)
{
if
(
mallProductSpecPriceDTO
.
getProductSpecId
()
.
equals
(
productSpecPriceDO
.
getProductSpecId
()))
{
mallProductSpecPriceDTO
.
setMkPrice
(
productSpecPriceDO
.
getPrice
());
break
;
}
return
mallProductSpecPriceDTOS
;
}
}
return
mallProductSpecPriceDTOS
;
}
@Override
public
ProductSpecPriceDTO
feignGetUnitPriceByTag
(
Integer
id
,
Integer
tagId
)
{
ProductSpecPriceDTO
price
=
productDao
.
feignGetUnitPrice
(
id
,
tagId
);
return
price
;
@Override
public
ProductSpecPriceDTO
feignGetUnitPriceByTag
(
Integer
id
,
Integer
tagId
)
{
ProductSpecPriceDTO
price
=
productDao
.
feignGetUnitPrice
(
id
,
tagId
);
return
price
;
}
@Override
public
List
<
OrderGoodsProdDTO
>
feignListProdGoodsSkuInfo
(
MallOrderGoodsInfoQO
mallOrderGoodsInfoQO
)
{
// 查询渠道等级对应的商品价格
Set
<
Integer
>
prodSkuSpecIds
=
productDao
.
listProductSpecIds
(
mallOrderGoodsInfoQO
.
getMallProdSkuSpecIds
());
List
<
ProductSpecPriceDO
>
productSpecPriceDOS
=
productDao
.
listProductSpecPrice
(
mallOrderGoodsInfoQO
.
getCooperationTagId
(),
prodSkuSpecIds
);
// 查询商品信息
List
<
OrderGoodsProdDTO
>
orderGoodsProdDTOList
=
productDao
.
listProdGoodsSkuInfo
(
mallOrderGoodsInfoQO
);
if
(!
CollectionUtils
.
isEmpty
(
productSpecPriceDOS
))
{
// 填充渠道价格
this
.
fillOrderGoodsProdPrice
(
orderGoodsProdDTOList
,
productSpecPriceDOS
,
prodSkuSpecIds
);
}
// 商品没有设置渠道价格的,按照市场价设置
if
(!
CollectionUtils
.
isEmpty
(
prodSkuSpecIds
))
{
// 查询市场价格,tagInfoId为0
List
<
ProductSpecPriceDO
>
prodMarketPrice
=
productDao
.
listProductSpecPrice
(
0
,
prodSkuSpecIds
);
// 填充市场价格
this
.
fillOrderGoodsProdPrice
(
orderGoodsProdDTOList
,
prodMarketPrice
,
prodSkuSpecIds
);
}
// 还需配置商品规格金额, 单个商品skuSpecAmount, 全部小sku金额
List
<
Integer
>
goodsIds
=
orderGoodsProdDTOList
.
stream
()
.
map
(
OrderGoodsProdDTO:
:
getGoodsInfoId
)
.
collect
(
Collectors
.
toList
());
// 拼装商品服务
List
<
GoodsServiceDTO
>
services
=
goodsInfoDao
.
listGoodsService
(
goodsIds
).
stream
()
.
map
(
d
->
d
.
buildGoodsServiceDTO
())
.
collect
(
Collectors
.
toList
());
Map
<
Integer
,
List
<
GoodsServiceDTO
>>
mapGoodsService
=
org
.
springframework
.
util
.
CollectionUtils
.
isEmpty
(
services
)
?
null
:
services
.
stream
().
collect
(
Collectors
.
groupingBy
(
GoodsServiceDTO:
:
getGoodsInfoId
));
List
<
OrderGoodsProdDTO
>
collect
=
orderGoodsProdDTOList
.
stream
()
.
map
(
d
->
{
OrderGoodsProdDTO
orderGoodsProdDTO
=
d
;
if
(
mapGoodsService
!=
null
&&
mapGoodsService
.
containsKey
(
d
.
getGoodsInfoId
()))
{
orderGoodsProdDTO
.
setServices
(
mapGoodsService
.
get
(
d
.
getGoodsInfoId
()));
}
return
orderGoodsProdDTO
;
})
.
collect
(
Collectors
.
toList
());
return
collect
;
}
@Override
public
List
<
OrderGoodsProdDTO
>
feignListProdGoodsSkuInfo
(
MallOrderGoodsInfoQO
mallOrderGoodsInfoQO
)
{
//查询渠道等级对应的商品价格
Set
<
Integer
>
prodSkuSpecIds
=
productDao
.
listProductSpecIds
(
mallOrderGoodsInfoQO
.
getMallProdSkuSpecIds
());
List
<
ProductSpecPriceDO
>
productSpecPriceDOS
=
productDao
.
listProductSpecPrice
(
mallOrderGoodsInfoQO
.
getCooperationTagId
(),
prodSkuSpecIds
);
//查询商品信息
List
<
OrderGoodsProdDTO
>
orderGoodsProdDTOList
=
productDao
.
listProdGoodsSkuInfo
(
mallOrderGoodsInfoQO
);
if
(!
CollectionUtils
.
isEmpty
(
productSpecPriceDOS
))
{
//填充渠道价格
this
.
fillOrderGoodsProdPrice
(
orderGoodsProdDTOList
,
productSpecPriceDOS
,
prodSkuSpecIds
);
}
//商品没有设置渠道价格的,按照市场价设置
if
(!
CollectionUtils
.
isEmpty
(
prodSkuSpecIds
))
{
//查询市场价格,tagInfoId为0
List
<
ProductSpecPriceDO
>
prodMarketPrice
=
productDao
.
listProductSpecPrice
(
0
,
prodSkuSpecIds
);
//填充市场价格
this
.
fillOrderGoodsProdPrice
(
orderGoodsProdDTOList
,
prodMarketPrice
,
prodSkuSpecIds
);
}
//还需配置商品规格金额, 单个商品skuSpecAmount, 全部小sku金额
List
<
Integer
>
goodsIds
=
orderGoodsProdDTOList
.
stream
().
map
(
OrderGoodsProdDTO:
:
getGoodsInfoId
).
collect
(
Collectors
.
toList
());
// 拼装商品服务
List
<
GoodsServiceDTO
>
services
=
goodsInfoDao
.
listGoodsService
(
goodsIds
).
stream
().
map
(
d
->
d
.
buildGoodsServiceDTO
()).
collect
(
Collectors
.
toList
());
Map
<
Integer
,
List
<
GoodsServiceDTO
>>
mapGoodsService
=
org
.
springframework
.
util
.
CollectionUtils
.
isEmpty
(
services
)
?
null
:
services
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
GoodsServiceDTO:
:
getGoodsInfoId
));
List
<
OrderGoodsProdDTO
>
collect
=
orderGoodsProdDTOList
.
stream
().
map
(
d
->
{
OrderGoodsProdDTO
orderGoodsProdDTO
=
d
;
if
(
mapGoodsService
!=
null
&&
mapGoodsService
.
containsKey
(
d
.
getGoodsInfoId
()))
{
orderGoodsProdDTO
.
setServices
(
mapGoodsService
.
get
(
d
.
getGoodsInfoId
()));
}
return
orderGoodsProdDTO
;
}).
collect
(
Collectors
.
toList
());
return
collect
;
}
/**
* 填充产品规格价格
*
* @param orderGoodsProdDTOList
* @param productSpecPriceDOS
* @param prodSkuSpecIds
* @return
*/
private
List
<
OrderGoodsProdDTO
>
fillOrderGoodsProdPrice
(
List
<
OrderGoodsProdDTO
>
orderGoodsProdDTOList
,
List
<
ProductSpecPriceDO
>
productSpecPriceDOS
,
Set
<
Integer
>
prodSkuSpecIds
)
{
for
(
OrderGoodsProdDTO
orderGoodsProdDTO
:
orderGoodsProdDTOList
)
{
for
(
OrderGoodsProdDetailDTO
orderGoodsProdDetailDTO
:
orderGoodsProdDTO
.
getOrderGoodsProdDetailDTOS
())
{
//配置价格
for
(
ProductSpecPriceDO
productSpecPriceDO
:
productSpecPriceDOS
)
{
//找到规格对应的价格
if
(
productSpecPriceDO
.
getProductSpecId
().
toString
().
equals
(
orderGoodsProdDetailDTO
.
getProductSpecId
().
toString
()))
{
orderGoodsProdDetailDTO
.
setUnitPrice
(
productSpecPriceDO
.
getPrice
());
//配置价格后移除,剩余没有配置的
prodSkuSpecIds
.
removeIf
(
d
->
d
.
toString
().
equals
(
orderGoodsProdDetailDTO
.
getProductSpecId
().
toString
()));
break
;
}
}
}
}
return
orderGoodsProdDTOList
;
}
@Override
public
List
<
OrderGoodsIndstDTO
>
feignListIndstGoodsSkuInfo
(
MallOrderGoodsInfoQO
mallOrderGoodsInfoQO
)
{
//查询商品信息
List
<
MallGoodsInfoSimpleDO
>
mallGoodsInfoSimpleDOS
=
goodsInfoDao
.
listMallGoodsIndstSimpleInfo
(
mallOrderGoodsInfoQO
.
getMallIndstSkuSpecIds
());
List
<
Integer
>
industrySpecIds
=
goodsInfoDao
.
listIndustrySpecIds
(
mallOrderGoodsInfoQO
.
getMallIndstSkuSpecIds
());
//查询商品价格
List
<
IndustrySpecPriceDO
>
industrySpecPriceDOS
=
industrySpecDao
.
listIndustrySpecPrice
(
mallOrderGoodsInfoQO
.
getCooperationTagId
(),
industrySpecIds
);
//查询商品行业规格对应的产品清单
List
<
MallGoodsProductDO
>
mallGoodsProductDOS
=
goodsInfoDao
.
listIndustryProductList
(
industrySpecIds
);
//配置商品行业规格价格
this
.
fillOrderGoodsIndstPrice
(
mallGoodsInfoSimpleDOS
,
industrySpecPriceDOS
,
industrySpecIds
);
if
(!
CollectionUtils
.
isEmpty
(
industrySpecIds
))
{
//查询商品价格,找出市场价
List
<
IndustrySpecPriceDO
>
industryMarketPrice
=
industrySpecDao
.
listIndustrySpecPrice
(
0
,
industrySpecIds
);
this
.
fillOrderGoodsIndstPrice
(
mallGoodsInfoSimpleDOS
,
industryMarketPrice
,
industrySpecIds
);
/**
* 填充产品规格价格
*
* @param orderGoodsProdDTOList
* @param productSpecPriceDOS
* @param prodSkuSpecIds
* @return
*/
private
List
<
OrderGoodsProdDTO
>
fillOrderGoodsProdPrice
(
List
<
OrderGoodsProdDTO
>
orderGoodsProdDTOList
,
List
<
ProductSpecPriceDO
>
productSpecPriceDOS
,
Set
<
Integer
>
prodSkuSpecIds
)
{
for
(
OrderGoodsProdDTO
orderGoodsProdDTO
:
orderGoodsProdDTOList
)
{
for
(
OrderGoodsProdDetailDTO
orderGoodsProdDetailDTO
:
orderGoodsProdDTO
.
getOrderGoodsProdDetailDTOS
())
{
// 配置价格
for
(
ProductSpecPriceDO
productSpecPriceDO
:
productSpecPriceDOS
)
{
// 找到规格对应的价格
if
(
productSpecPriceDO
.
getProductSpecId
()
.
toString
()
.
equals
(
orderGoodsProdDetailDTO
.
getProductSpecId
().
toString
()))
{
orderGoodsProdDetailDTO
.
setUnitPrice
(
productSpecPriceDO
.
getPrice
());
// 配置价格后移除,剩余没有配置的
prodSkuSpecIds
.
removeIf
(
d
->
d
.
toString
().
equals
(
orderGoodsProdDetailDTO
.
getProductSpecId
().
toString
()));
break
;
}
}
//配置产品清单
for
(
MallGoodsInfoSimpleDO
mallGoodsInfoSimpleDO
:
mallGoodsInfoSimpleDOS
)
{
for
(
MallGoodsSpecSimpleDO
mallGoodsSpecSimpleDO
:
mallGoodsInfoSimpleDO
.
getMallGoodsSpecSimpleDOS
())
{
mallGoodsSpecSimpleDO
.
setMallGoodsProductDOS
(
new
ArrayList
<
MallGoodsProductDO
>());
//从产品清单中拿出对应的方案规格里面
for
(
MallGoodsProductDO
mallGoodsProductDO
:
mallGoodsProductDOS
)
{
if
(
mallGoodsProductDO
.
getIndustrySpecId
().
toString
().
equals
(
mallGoodsSpecSimpleDO
.
getIndustrySpecId
().
toString
()))
{
mallGoodsSpecSimpleDO
.
getMallGoodsProductDOS
().
add
(
mallGoodsProductDO
);
}
}
}
}
}
return
orderGoodsProdDTOList
;
}
@Override
public
List
<
OrderGoodsIndstDTO
>
feignListIndstGoodsSkuInfo
(
MallOrderGoodsInfoQO
mallOrderGoodsInfoQO
)
{
// 查询商品信息
List
<
MallGoodsInfoSimpleDO
>
mallGoodsInfoSimpleDOS
=
goodsInfoDao
.
listMallGoodsIndstSimpleInfo
(
mallOrderGoodsInfoQO
.
getMallIndstSkuSpecIds
());
List
<
Integer
>
industrySpecIds
=
goodsInfoDao
.
listIndustrySpecIds
(
mallOrderGoodsInfoQO
.
getMallIndstSkuSpecIds
());
// 查询商品价格
List
<
IndustrySpecPriceDO
>
industrySpecPriceDOS
=
industrySpecDao
.
listIndustrySpecPrice
(
mallOrderGoodsInfoQO
.
getCooperationTagId
(),
industrySpecIds
);
// 查询商品行业规格对应的产品清单
List
<
MallGoodsProductDO
>
mallGoodsProductDOS
=
goodsInfoDao
.
listIndustryProductList
(
industrySpecIds
);
// 配置商品行业规格价格
this
.
fillOrderGoodsIndstPrice
(
mallGoodsInfoSimpleDOS
,
industrySpecPriceDOS
,
industrySpecIds
);
if
(!
CollectionUtils
.
isEmpty
(
industrySpecIds
))
{
// 查询商品价格,找出市场价
List
<
IndustrySpecPriceDO
>
industryMarketPrice
=
industrySpecDao
.
listIndustrySpecPrice
(
0
,
industrySpecIds
);
this
.
fillOrderGoodsIndstPrice
(
mallGoodsInfoSimpleDOS
,
industryMarketPrice
,
industrySpecIds
);
}
// 配置产品清单
for
(
MallGoodsInfoSimpleDO
mallGoodsInfoSimpleDO
:
mallGoodsInfoSimpleDOS
)
{
for
(
MallGoodsSpecSimpleDO
mallGoodsSpecSimpleDO
:
mallGoodsInfoSimpleDO
.
getMallGoodsSpecSimpleDOS
())
{
mallGoodsSpecSimpleDO
.
setMallGoodsProductDOS
(
new
ArrayList
<
MallGoodsProductDO
>());
// 从产品清单中拿出对应的方案规格里面
for
(
MallGoodsProductDO
mallGoodsProductDO
:
mallGoodsProductDOS
)
{
if
(
mallGoodsProductDO
.
getIndustrySpecId
()
.
toString
()
.
equals
(
mallGoodsSpecSimpleDO
.
getIndustrySpecId
().
toString
()))
{
mallGoodsSpecSimpleDO
.
getMallGoodsProductDOS
().
add
(
mallGoodsProductDO
);
}
}
//转换对象
List
<
OrderGoodsIndstDTO
>
collect
=
mallGoodsInfoSimpleDOS
.
stream
().
map
(
d
->
d
.
buildOrderGoodsIndstDTO
()).
collect
(
Collectors
.
toList
());
// 拼装商品服务
List
<
Integer
>
goodsIds
=
collect
.
stream
().
map
(
OrderGoodsIndstDTO:
:
getGoodsInfoId
).
collect
(
Collectors
.
toList
());
List
<
GoodsServiceDTO
>
services
=
goodsInfoDao
.
listGoodsService
(
goodsIds
).
stream
().
map
(
d
->
d
.
buildGoodsServiceDTO
()).
collect
(
Collectors
.
toList
());
Map
<
Integer
,
List
<
GoodsServiceDTO
>>
mapGoodsService
=
org
.
springframework
.
util
.
CollectionUtils
.
isEmpty
(
services
)
?
null
:
services
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
GoodsServiceDTO:
:
getGoodsInfoId
));
List
<
OrderGoodsIndstDTO
>
resultList
=
collect
.
stream
().
map
(
d
->
{
OrderGoodsIndstDTO
orderGoodsIndstDTO
=
d
;
if
(
mapGoodsService
!=
null
&&
mapGoodsService
.
containsKey
(
d
.
getGoodsInfoId
()))
{
orderGoodsIndstDTO
.
setServices
(
mapGoodsService
.
get
(
d
.
getGoodsInfoId
()));
}
return
orderGoodsIndstDTO
;
}).
collect
(
Collectors
.
toList
());
return
resultList
;
}
private
List
<
MallGoodsInfoSimpleDO
>
fillOrderGoodsIndstPrice
(
List
<
MallGoodsInfoSimpleDO
>
mallGoodsInfoSimpleDOS
,
List
<
IndustrySpecPriceDO
>
industrySpecPriceDOS
,
List
<
Integer
>
industrySpecIds
)
{
//配置商品行业规格价格
for
(
MallGoodsInfoSimpleDO
mallGoodsInfoSimpleDO
:
mallGoodsInfoSimpleDOS
)
{
for
(
MallGoodsSpecSimpleDO
mallGoodsSpecSimpleDO
:
mallGoodsInfoSimpleDO
.
getMallGoodsSpecSimpleDOS
())
{
//查询规格进行配置
for
(
IndustrySpecPriceDO
industrySpecPriceDO
:
industrySpecPriceDOS
)
{
if
(
mallGoodsSpecSimpleDO
.
getIndustrySpecId
().
toString
().
equals
(
industrySpecPriceDO
.
getIndustrySpecId
().
toString
()))
{
mallGoodsSpecSimpleDO
.
setUnitPrice
(
industrySpecPriceDO
.
getPrice
());
industrySpecIds
.
removeIf
(
d
->
d
.
toString
().
equals
(
industrySpecPriceDO
.
getIndustrySpecId
().
toString
()));
break
;
}
}
}
}
}
// 转换对象
List
<
OrderGoodsIndstDTO
>
collect
=
mallGoodsInfoSimpleDOS
.
stream
()
.
map
(
d
->
d
.
buildOrderGoodsIndstDTO
())
.
collect
(
Collectors
.
toList
());
// 拼装商品服务
List
<
Integer
>
goodsIds
=
collect
.
stream
().
map
(
OrderGoodsIndstDTO:
:
getGoodsInfoId
).
collect
(
Collectors
.
toList
());
List
<
GoodsServiceDTO
>
services
=
goodsInfoDao
.
listGoodsService
(
goodsIds
).
stream
()
.
map
(
d
->
d
.
buildGoodsServiceDTO
())
.
collect
(
Collectors
.
toList
());
Map
<
Integer
,
List
<
GoodsServiceDTO
>>
mapGoodsService
=
org
.
springframework
.
util
.
CollectionUtils
.
isEmpty
(
services
)
?
null
:
services
.
stream
().
collect
(
Collectors
.
groupingBy
(
GoodsServiceDTO:
:
getGoodsInfoId
));
List
<
OrderGoodsIndstDTO
>
resultList
=
collect
.
stream
()
.
map
(
d
->
{
OrderGoodsIndstDTO
orderGoodsIndstDTO
=
d
;
if
(
mapGoodsService
!=
null
&&
mapGoodsService
.
containsKey
(
d
.
getGoodsInfoId
()))
{
orderGoodsIndstDTO
.
setServices
(
mapGoodsService
.
get
(
d
.
getGoodsInfoId
()));
}
return
orderGoodsIndstDTO
;
})
.
collect
(
Collectors
.
toList
());
return
resultList
;
}
private
List
<
MallGoodsInfoSimpleDO
>
fillOrderGoodsIndstPrice
(
List
<
MallGoodsInfoSimpleDO
>
mallGoodsInfoSimpleDOS
,
List
<
IndustrySpecPriceDO
>
industrySpecPriceDOS
,
List
<
Integer
>
industrySpecIds
)
{
// 配置商品行业规格价格
for
(
MallGoodsInfoSimpleDO
mallGoodsInfoSimpleDO
:
mallGoodsInfoSimpleDOS
)
{
for
(
MallGoodsSpecSimpleDO
mallGoodsSpecSimpleDO
:
mallGoodsInfoSimpleDO
.
getMallGoodsSpecSimpleDOS
())
{
// 查询规格进行配置
for
(
IndustrySpecPriceDO
industrySpecPriceDO
:
industrySpecPriceDOS
)
{
if
(
mallGoodsSpecSimpleDO
.
getIndustrySpecId
()
.
toString
()
.
equals
(
industrySpecPriceDO
.
getIndustrySpecId
().
toString
()))
{
mallGoodsSpecSimpleDO
.
setUnitPrice
(
industrySpecPriceDO
.
getPrice
());
industrySpecIds
.
removeIf
(
d
->
d
.
toString
().
equals
(
industrySpecPriceDO
.
getIndustrySpecId
().
toString
()));
break
;
}
}
return
mallGoodsInfoSimpleDOS
;
}
}
return
mallGoodsInfoSimpleDOS
;
}
}
src/main/java/com/mmc/pms/service/Impl/WebDeviceServiceImpl.java
浏览文件 @
de246e24
...
...
@@ -15,6 +15,7 @@ import com.mmc.pms.model.other.dto.AdDTO;
import
com.mmc.pms.model.other.dto.DistrictInfoDTO
;
import
com.mmc.pms.model.other.dto.ModelDTO
;
import
com.mmc.pms.model.qo.WareInfoQO
;
import
com.mmc.pms.model.sale.dto.MallGoodsDetailDTO
;
import
com.mmc.pms.model.sale.dto.SkuInfoDTO
;
import
com.mmc.pms.page.PageResult
;
import
com.mmc.pms.service.WebDeviceService
;
...
...
@@ -40,6 +41,7 @@ public class WebDeviceServiceImpl implements WebDeviceService {
@Autowired
ProductDao
productDao
;
@Autowired
GoodsInfoDao
goodsInfoDao
;
@Autowired
GoodsInfoServiceImpl
goodsInfoService
;
@Override
public
ResultBody
listSecondDistrict
()
{
...
...
@@ -214,6 +216,30 @@ public class WebDeviceServiceImpl implements WebDeviceService {
}
@Override
public
ResultBody
listLeaseGoodsDetail
(
Integer
goodsInfoId
,
Integer
userAccountId
,
HttpServletRequest
request
)
{
int
count
=
goodsInfoDao
.
countGoodsInfoById
(
goodsInfoId
);
if
(
count
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_NOT_EXIST_OR_ALREADY_DOWN_SHELF
);
}
// 初始化商品返回信息的对象
ResultBody
goodsInfoDetail
=
goodsInfoService
.
getGoodsInfoDetail
(
goodsInfoId
);
MallGoodsDetailDTO
result
=
(
MallGoodsDetailDTO
)
goodsInfoDetail
.
getResult
();
if
(
userAccountId
!=
null
)
{
UserAccountSimpleDTO
userAccountSimpleDTO
=
userAppApi
.
feignGetUserSimpleInfo
(
userAccountId
,
request
.
getHeader
(
TokenConstant
.
TOKEN
));
if
(
userAccountSimpleDTO
.
getCooperationTagId
()
!=
null
)
{
if
(!
result
.
getDirectoryId
().
equals
(
2
))
{
Integer
id
=
result
.
getGoodsSpec
().
get
(
0
).
getProductSpecList
().
get
(
0
).
getProductSpec
();
ProductSpecPriceDO
price
=
productDao
.
getProductSpecPriceById
(
id
);
result
.
setPrice
(
price
.
getPrice
());
}
}
}
return
ResultBody
.
success
(
result
);
}
@Override
public
WareInfoDTO
getWareInfoById
(
Integer
id
)
{
WareInfoDO
wareInfoDO
=
webDeviceDao
.
getWareInfoById
(
id
);
WareDetailDO
wareDetailDO
=
webDeviceDao
.
getWareDetailById
(
id
);
...
...
src/main/java/com/mmc/pms/service/WebDeviceService.java
浏览文件 @
de246e24
...
...
@@ -14,29 +14,32 @@ import java.util.List;
* @Author small @Date 2023/5/15 14:28 @Version 1.0
*/
public
interface
WebDeviceService
{
ResultBody
listSecondDistrict
();
ResultBody
listSecondDistrict
();
ResultBody
category
();
ResultBody
category
();
ResultBody
brand
();
ResultBody
brand
();
ResultBody
deviceBrand
();
ResultBody
deviceBrand
();
ResultBody
model
();
ResultBody
model
();
ResultBody
deviceModel
();
ResultBody
deviceModel
();
ResultBody
deviceList
(
Integer
districtId
,
Integer
categoryId
,
Integer
brandId
,
Integer
modelId
);
ResultBody
deviceList
(
Integer
districtId
,
Integer
categoryId
,
Integer
brandId
,
Integer
modelId
);
ResultBody
update
(
LeaseVo
param
);
ResultBody
update
(
LeaseVo
param
);
ResultBody
detail
(
Integer
id
);
ResultBody
detail
(
Integer
id
);
ResultBody
listWareInfoPage
(
WareInfoQO
param
,
HttpServletRequest
request
,
Integer
userAccountId
);
ResultBody
listWareInfoPage
(
WareInfoQO
param
,
HttpServletRequest
request
,
Integer
userAccountId
);
WareInfoDTO
getWareInfoById
(
Integer
id
);
WareInfoDTO
getWareInfoById
(
Integer
id
);
ResultBody
<
AdDTO
>
ad
();
ResultBody
<
AdDTO
>
ad
();
List
<
SkuInfoDTO
>
listWareSkuById
(
Integer
id
);
List
<
SkuInfoDTO
>
listWareSkuById
(
Integer
id
);
ResultBody
listLeaseGoodsDetail
(
Integer
goodsId
,
Integer
userAccountId
,
HttpServletRequest
request
);
}
src/main/resources/mapper/GoodsInfoDao.xml
浏览文件 @
de246e24
...
...
@@ -65,10 +65,10 @@
</insert>
<insert
id=
"insertMallProdSkuInfo"
parameterType=
"com.mmc.pms.entity.MallProdInfoDO"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into mall_prod_
sku_info (goods_info_id, product_id, prod_sku
_spec_name, categories_id, choose_type,
sku_unit_id, is_must, flag)
insert into mall_prod_
info (goods_info_id, product_id, prod
_spec_name, categories_id, choose_type,
sku_unit_id, is_must, flag)
values (#{goodsInfoId}, #{prodSkuId}, #{prodSkuSpecName}, #{categoriesId}, #{chooseType}, #{skuUnitId}, #{must},
#{flag})
>
#{flag})
</insert>
<insert
id=
"insertMallProdSkuInfoSpec"
>
insert into mall_prod_info_spec (goods_info_id, mall_prod_info_id, product_spec_id)
...
...
@@ -179,24 +179,22 @@
<select
id=
"getMallProSkuInfo"
resultType=
"com.mmc.pms.entity.MallProdInfoDO"
>
SELECT mi.id,
mi.goods_info_id,
mi.prod_sku_id,
mi.prod_spec_name,
mi.categories_id,
mi.choose_type,
mi.sku_unit_id,
mi.is_must,
mi.product_spec_id_list,
mi.before_update_spec,
mi.flag,
mi.create_time createTime,
c.type_name typeName,
su.id skuUnitId,
su.unit_name unitName,
ps.product_name productSkuName
mi.product_id prodSkuId,
mi.prod_spec_name prodSkuSpecName,
mi.categories_id categoriesId,
mi.choose_type chooseType,
mi.sku_unit_id skuUnitId,
mi.is_must must,
mi.flag flag,
mi.create_time createTime,
c.name typeName,
su.id skuUnitId,
su.unit_name unitName,
ps.product_name productSkuName
FROM mall_prod_info mi
INNER JOIN categories c ON c.id = mi.categories_id
INNER JOIN sku_unit su ON mi.sku_unit_id = su.id
INNER JOIN product ps ON ps.id = mi.prod
_sku
_id
INNER JOIN product ps ON ps.id = mi.prod
uct
_id
WHERE mi.goods_info_id = #{id}
AND mi.is_deleted = 0
</select>
...
...
@@ -440,7 +438,19 @@
AND im.img_type = 0
WHERE gi.category_by_one = #{id}
</select>
<select
id=
"getMallProSkuInfoSpec"
resultType=
"com.mmc.pms.entity.MallProdSkuInfoSpecDO"
>
<resultMap
id=
"resultMallProdSkuInfoSpecMap"
type=
"com.mmc.pms.entity.MallProdSkuInfoSpecDO"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"mallProdSkuInfoId"
column=
"mall_prod_info_id"
/>
<result
property=
"productSpecId"
column=
"product_spec_id"
/>
<association
property=
"productSpecDO"
resultMap=
"resultProductSpecMap"
/>
</resultMap>
<resultMap
id=
"resultProductSpecMap"
type=
"com.mmc.pms.entity.ProductSpecDO"
>
<result
property=
"specImage"
column=
"spec_image"
/>
<result
property=
"partNo"
column=
"part_no"
/>
<result
property=
"specName"
column=
"spec_name"
/>
<result
property=
"versionDesc"
column=
"version_desc"
/>
</resultMap>
<select
id=
"getMallProSkuInfoSpec"
resultMap=
"resultMallProdSkuInfoSpecMap"
>
SELECT mp.id,
mp.mall_prod_info_id,
mp.product_spec_id,
...
...
@@ -464,6 +474,7 @@
LEFT JOIN product_spec_price psp ON mp.product_spec_id = psp.product_spec_id
AND psp.cooperation_tag = 0
AND psp.type = 0
and psp.lease_term = 0
<where>
mp.is_deleted = 0
<foreach
collection=
"list"
separator=
","
open=
" and mp.goods_info_id in ("
close=
")"
index=
"index"
item=
"d"
>
...
...
@@ -471,4 +482,9 @@
</foreach>
</where>
</select>
<select
id=
"listSaleServiceInfo"
resultType=
"com.mmc.pms.entity.SaleServiceDO"
>
SELECT id, service_name
FROM sale_service
WHERE is_deleted = 0
</select>
</mapper>
src/main/resources/mapper/ProductDao.xml
浏览文件 @
de246e24
...
...
@@ -180,7 +180,7 @@
from product_spec
<where>
is_deleted = 0
and product_
sku_
id = #{id}
and product_id = #{id}
<if
test=
"keyword != null and keyword != ''"
>
and spec_name like CONCAT('%',#{keyword},'%')
</if>
...
...
@@ -502,4 +502,14 @@
#{d}
</foreach>
)
</select>
<select
id=
"getProductSpecPriceById"
resultType=
"com.mmc.pms.entity.ProductSpecPriceDO"
>
SELECT product_spec_id,
cooperation_tag,
price
FROM product_spec_price
WHERE product_spec_id = #{id}
AND cooperation_tag = 0
AND type = 1
and lease_term = 0
</select>
</mapper>
src/main/resources/mapper/WebDeviceDao.xml
浏览文件 @
de246e24
...
...
@@ -157,7 +157,7 @@
FROM goods_info gi
INNER JOIN goods_img img ON gi.id = img.goods_info_id
<where>
gi.is_deleted = 0 and gi.shelf_status = 0
gi.is_deleted = 0 and gi.shelf_status = 0
and gi.goods_type = 1
<if
test=
"categoryIds != null and categoryIds.size != 0"
>
<foreach
collection=
"categoryIds"
item=
"item"
index=
"index"
open=
"and gi.category_by_one IN ("
close=
")"
separator=
","
>
...
...
@@ -180,7 +180,7 @@
goods_info gi
INNER JOIN goods_img img ON gi.id = img.goods_info_id and img.img_type = 0
<where>
gi.is_deleted = 0 and gi.shelf_status = 0
gi.is_deleted = 0 and gi.shelf_status = 0
and gi.goods_type = 1
<if
test=
"categoryIds != null"
>
<foreach
collection=
"categoryIds"
item=
"item"
index=
"index"
open=
"and gi.category_by_one IN ("
close=
")"
separator=
","
>
...
...
src/main/resources/not-check.yml
浏览文件 @
de246e24
...
...
@@ -9,3 +9,4 @@ data-filter:
-
/pms/product/spec/feignGetSpecLeaseUnitPrice
-
/pms//lease/goods/deviceList
-
/pms/classify/queryCategoryInfoByType
-
/pms/lease/goods/getLeaseGoodsDetail
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论