Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
pms-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
pms-ci-test
Commits
1f2b28f2
提交
1f2b28f2
authored
6月 05, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
后台:产品管理、商品管理、行业管理、品牌管理新增
上级
aa69692c
隐藏空白字符变更
内嵌
并排
正在显示
38 个修改的文件
包含
2288 行增加
和
281 行删除
+2288
-281
BackstageBrandManageController.java
...om/mmc/pms/controller/BackstageBrandManageController.java
+7
-7
BackstageGoodsManageController.java
...om/mmc/pms/controller/BackstageGoodsManageController.java
+1
-1
BackstageIndustrySpecController.java
...m/mmc/pms/controller/BackstageIndustrySpecController.java
+122
-0
BackstageProductSpecController.java
...om/mmc/pms/controller/BackstageProductSpecController.java
+13
-13
GoodsInfoDao.java
src/main/java/com/mmc/pms/dao/GoodsInfoDao.java
+12
-0
IndustrySpecDao.java
src/main/java/com/mmc/pms/dao/IndustrySpecDao.java
+96
-0
MiniProgramProductMallDao.java
src/main/java/com/mmc/pms/dao/MiniProgramProductMallDao.java
+17
-17
ProductDao.java
src/main/java/com/mmc/pms/dao/ProductDao.java
+29
-6
GoodsInfo.java
src/main/java/com/mmc/pms/entity/GoodsInfo.java
+5
-0
IndustrySku.java
src/main/java/com/mmc/pms/entity/IndustrySku.java
+58
-0
IndustrySpec.java
src/main/java/com/mmc/pms/entity/IndustrySpec.java
+94
-0
IndustrySpecDO.java
src/main/java/com/mmc/pms/entity/IndustrySpecDO.java
+33
-32
IndustrySpecPriceDO.java
src/main/java/com/mmc/pms/entity/IndustrySpecPriceDO.java
+36
-0
MallIndustrySkuInfoDO.java
src/main/java/com/mmc/pms/entity/MallIndustrySkuInfoDO.java
+44
-40
MallProdInfoDO.java
src/main/java/com/mmc/pms/entity/MallProdInfoDO.java
+7
-7
IndustrySkuDTO.java
src/main/java/com/mmc/pms/model/dto/IndustrySkuDTO.java
+35
-0
IndustrySpecCPQVO.java
src/main/java/com/mmc/pms/model/dto/IndustrySpecCPQVO.java
+30
-0
IndustrySpecDTO.java
src/main/java/com/mmc/pms/model/dto/IndustrySpecDTO.java
+36
-0
IndustrySpecPriceDTO.java
...main/java/com/mmc/pms/model/dto/IndustrySpecPriceDTO.java
+36
-0
RemoveSkuDTO.java
src/main/java/com/mmc/pms/model/dto/RemoveSkuDTO.java
+30
-0
SkuAndSpecDTO.java
src/main/java/com/mmc/pms/model/dto/SkuAndSpecDTO.java
+25
-0
IndustrySkuQO.java
src/main/java/com/mmc/pms/model/qo/IndustrySkuQO.java
+40
-0
IndustrySkuVO.java
src/main/java/com/mmc/pms/model/vo/IndustrySkuVO.java
+34
-0
IndustrySpecVO.java
src/main/java/com/mmc/pms/model/vo/IndustrySpecVO.java
+29
-29
BrandManageService.java
src/main/java/com/mmc/pms/service/BrandManageService.java
+2
-0
BrandManageServiceImpl.java
...java/com/mmc/pms/service/Impl/BrandManageServiceImpl.java
+20
-16
GoodsInfoServiceImpl.java
...n/java/com/mmc/pms/service/Impl/GoodsInfoServiceImpl.java
+144
-29
IndustrySpecServiceImpl.java
...ava/com/mmc/pms/service/Impl/IndustrySpecServiceImpl.java
+441
-0
MiniProgramProductMallServiceImpl.java
...c/pms/service/Impl/MiniProgramProductMallServiceImpl.java
+2
-2
ProductServiceImpl.java
...ain/java/com/mmc/pms/service/Impl/ProductServiceImpl.java
+80
-26
IndustrySpecService.java
src/main/java/com/mmc/pms/service/IndustrySpecService.java
+135
-0
ProductSkuService.java
src/main/java/com/mmc/pms/service/ProductSkuService.java
+3
-0
application-local.yml
src/main/resources/application-local.yml
+1
-1
GoodsInfoDao.xml
src/main/resources/mapper/GoodsInfoDao.xml
+79
-0
IndustrySpecDao.xml
src/main/resources/mapper/IndustrySpecDao.xml
+334
-0
MiniProgramProductMallDao.xml
src/main/resources/mapper/MiniProgramProductMallDao.xml
+22
-22
ProductDao.xml
src/main/resources/mapper/ProductDao.xml
+154
-31
WebProductMallDao.xml
src/main/resources/mapper/WebProductMallDao.xml
+2
-2
没有找到文件。
src/main/java/com/mmc/pms/controller/BackstageBrandManageController.java
浏览文件 @
1f2b28f2
...
...
@@ -17,7 +17,7 @@ import org.springframework.web.bind.annotation.RestController;
*/
@RestController
@RequestMapping
(
"/brand"
)
@Api
(
tags
=
{
"品牌管理-相关接口"
})
@Api
(
tags
=
{
"
后台-
品牌管理-相关接口"
})
public
class
BackstageBrandManageController
{
@Autowired
...
...
@@ -37,12 +37,12 @@ public class BackstageBrandManageController {
return
ResultBody
.
success
(
brandManageService
.
listBrandInfo
(
pageNo
,
pageSize
));
}
//
@ApiOperation(value = "删除品牌")
//
@GetMapping("deleteBrandInfo")
//
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
//
public ResultBody deleteBrandInfo(Integer id) {
//
return brandManageService.deleteBrandInfo(id);
//
}
@ApiOperation
(
value
=
"删除品牌"
)
@GetMapping
(
"deleteBrandInfo"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
ResultBody
deleteBrandInfo
(
Integer
id
)
{
return
brandManageService
.
deleteBrandInfo
(
id
);
}
@ApiOperation
(
value
=
"编辑品牌"
)
@GetMapping
(
"editBrandInfo"
)
...
...
src/main/java/com/mmc/pms/controller/BackstageGoodsManageController.java
浏览文件 @
1f2b28f2
...
...
@@ -21,7 +21,7 @@ import javax.annotation.Resource;
*/
@RestController
@RequestMapping
(
"/goods"
)
@Api
(
tags
=
{
"商品管理-相关接口"
})
@Api
(
tags
=
{
"
后台-
商品管理-相关接口"
})
public
class
BackstageGoodsManageController
{
@Resource
private
GoodsInfoService
goodsInfoService
;
...
...
src/main/java/com/mmc/pms/controller/BackstageIndustrySpecController.java
0 → 100644
浏览文件 @
1f2b28f2
package
com
.
mmc
.
pms
.
controller
;
import
com.mmc.pms.common.ResultBody
;
import
com.mmc.pms.model.dto.*
;
import
com.mmc.pms.model.qo.IndustrySkuQO
;
import
com.mmc.pms.model.vo.Create
;
import
com.mmc.pms.model.vo.IndustrySkuVO
;
import
com.mmc.pms.model.vo.IndustrySpecVO
;
import
com.mmc.pms.model.vo.Update
;
import
com.mmc.pms.service.IndustrySpecService
;
import
io.swagger.annotations.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
/**
* @Author LW
* @date 2022/10/8 10:57
* 概要:
*/
@RestController
@RequestMapping
(
"/industry/spec/"
)
@Api
(
tags
=
{
"后台-行业管理-相关接口"
})
public
class
BackstageIndustrySpecController
{
@Autowired
IndustrySpecService
industrySpecService
;
@ApiOperation
(
value
=
"新增行业sku"
)
@PostMapping
(
"addIndustrySku"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
ResultBody
addIndustrySku
(
@Validated
(
Create
.
class
)
@ApiParam
(
"行业skuVO"
)
@RequestBody
IndustrySkuVO
param
)
{
return
industrySpecService
.
addIndustrySku
(
param
);
}
@ApiOperation
(
value
=
"行业sku详情"
)
@GetMapping
(
"getIndustrySkuDetail"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
IndustrySkuVO
.
class
)})
public
ResultBody
getIndustrySkuDetail
(
@ApiParam
(
"id"
)
@RequestParam
(
value
=
"id"
)
Integer
id
)
{
return
industrySpecService
.
getIndustrySkuDetail
(
id
);
}
@ApiOperation
(
value
=
"行业sku管理---编辑行业sku"
)
@PostMapping
(
"editIndustrySku"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
ResultBody
editIndustrySku
(
@Validated
(
Update
.
class
)
@ApiParam
(
"行业skuVO"
)
@RequestBody
IndustrySkuVO
param
)
{
return
industrySpecService
.
editIndustrySku
(
param
);
}
@ApiOperation
(
value
=
"行业sku管理---分页列表"
)
@PostMapping
(
"listPageIndustrySku"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
IndustrySkuDTO
.
class
)})
public
ResultBody
listPageIndustrySku
(
@ApiParam
(
"条件参数"
)
@RequestBody
IndustrySkuQO
param
)
{
return
industrySpecService
.
listPageIndustrySku
(
param
);
}
@ApiOperation
(
value
=
"新增方案规格"
)
@PostMapping
(
"addIndustrySpec"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
ResultBody
addIndustrySpec
(
@Validated
(
Create
.
class
)
@ApiParam
(
"条件参数"
)
@RequestBody
IndustrySpecVO
param
)
{
return
industrySpecService
.
addIndustrySpec
(
param
);
}
@ApiOperation
(
value
=
"方案规格回显"
)
@GetMapping
(
"getIndustrySpecDetail"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
IndustrySpecDTO
.
class
)})
public
ResultBody
getIndustrySpecDetail
(
@ApiParam
(
"行业规格id"
)
@RequestParam
(
value
=
"industrySpecId"
)
Integer
industrySpecId
)
{
return
industrySpecService
.
getIndustrySpecDetail
(
industrySpecId
);
}
@ApiOperation
(
value
=
"编辑方案规格"
)
@PostMapping
(
"editIndustrySpec"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
ResultBody
editIndustrySpec
(
@Validated
(
Update
.
class
)
@ApiParam
(
"行业skuVO"
)
@RequestBody
IndustrySpecVO
param
)
{
return
industrySpecService
.
editIndustrySpec
(
param
);
}
@ApiOperation
(
value
=
"行业sku管理---方案规格管理---分页列表"
)
@GetMapping
(
"listPageIndustrySpec"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
IndustrySpecDTO
.
class
)})
public
ResultBody
listPageIndustrySpec
(
@ApiParam
(
value
=
"页码"
)
@RequestParam
(
value
=
"pageNo"
)
Integer
pageNo
,
@ApiParam
(
value
=
"每页显示数"
)
@RequestParam
(
value
=
"pageSize"
)
Integer
pageSize
,
@ApiParam
(
value
=
"产品skuId"
)
@RequestParam
(
value
=
"productSkuId"
)
Integer
industrySkuId
,
@ApiParam
(
value
=
"关键字"
)
@RequestParam
(
value
=
"keyword"
,
required
=
false
)
String
keyword
)
{
return
industrySpecService
.
listPageIndustrySpec
(
pageNo
,
pageSize
,
industrySkuId
,
keyword
);
}
@ApiOperation
(
value
=
"行业方案规格-价格配置"
)
@PostMapping
(
"industrySpecCPQ"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
ResultBody
industrySpecCPQ
(
@RequestBody
IndustrySpecCPQVO
industrySpecCPQQ
)
{
return
industrySpecService
.
industrySpecCPQ
(
industrySpecCPQQ
);
}
@ApiOperation
(
value
=
"行业方案规格管理-价格配置信息的修改"
)
@PostMapping
(
"updateIndustrySpecCPQ"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
ResultBody
updateIndustrySpecCPQ
(
@RequestBody
IndustrySpecCPQVO
industrySpecCPQQ
)
{
return
industrySpecService
.
updateIndustrySpecCPQ
(
industrySpecCPQQ
);
}
@ApiOperation
(
value
=
"行业sku管理---方案规格管理---获取价格配置信息"
)
@PostMapping
(
"getIndustrySpecCPQ"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
IndustrySpecPriceDTO
.
class
)})
public
ResultBody
getIndustrySpecCPQ
(
@RequestBody
IndustrySpecCPQVO
industrySpecCPQQ
)
{
return
industrySpecService
.
getIndustrySpecCPQ
(
industrySpecCPQQ
);
}
@ApiOperation
(
value
=
"行业sku管理---删除行业sku"
)
@GetMapping
(
"removeIndustrySku"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
ResultBody
removeIndustrySku
(
@ApiParam
(
"id"
)
@RequestParam
(
value
=
"id"
)
Integer
id
)
{
return
industrySpecService
.
removeIndustrySku
(
id
);
}
@ApiOperation
(
value
=
"行业sku管理---方案规格管理---删除行业规格"
)
@GetMapping
(
"removeIndustrySpec"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
RemoveSkuDTO
.
class
)})
public
ResultBody
removeIndustrySpec
(
@ApiParam
(
"id"
)
@RequestParam
(
value
=
"id"
)
Integer
id
)
{
return
industrySpecService
.
removeIndustrySpec
(
id
);
}
}
\ No newline at end of file
src/main/java/com/mmc/pms/controller/BackstageProductSpecController.java
浏览文件 @
1f2b28f2
...
...
@@ -52,13 +52,13 @@ public class BackstageProductSpecController {
return
productSkuService
.
listPageProductSku
(
productSkuQO
);
}
// @ApiOperation(value = "产品sku管理---
删除产品sku")
//
@GetMapping("removeProductSku")
//
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
//
public ResultBody removeProductSku(@ApiParam("id") @RequestParam(value = "id") Integer id) {
// return productSpec
Service.removeProductSku(id);
//
}
//
@ApiOperation
(
value
=
"
删除产品sku"
)
@GetMapping
(
"removeProductSku"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
ResultBody
removeProductSku
(
@ApiParam
(
"id"
)
@RequestParam
(
value
=
"id"
)
Integer
id
)
{
return
productSku
Service
.
removeProductSku
(
id
);
}
@ApiOperation
(
value
=
"新增or修改产品规格"
)
@PostMapping
(
"addOrEditProductSpec"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
...
...
@@ -112,12 +112,12 @@ public class BackstageProductSpecController {
// return productSpecService.getDefaultSettings(productSpecId);
// }
//
//
@ApiOperation(value = "产品规格管理---删除规格")
//
@GetMapping("removeProductSpec")
//
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = RemoveSkuDTO.class)})
//
public ResultBody removeProductSpec(@ApiParam("id") @RequestParam(value = "id") Integer id) {
// return productSpec
Service.removeProductSpec(id);
//
}
@ApiOperation
(
value
=
"产品规格管理---删除规格"
)
@GetMapping
(
"removeProductSpec"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
RemoveSkuDTO
.
class
)})
public
ResultBody
removeProductSpec
(
@ApiParam
(
"id"
)
@RequestParam
(
value
=
"id"
)
Integer
id
)
{
return
productSku
Service
.
removeProductSpec
(
id
);
}
//
// @ApiOperation(value = "feign根据渠道等级获取单价信息")
// @GetMapping("feignGetUnitPriceByTag")
...
...
src/main/java/com/mmc/pms/dao/GoodsInfoDao.java
浏览文件 @
1f2b28f2
...
...
@@ -42,6 +42,18 @@ public interface GoodsInfoDao {
void
deleteGoodsVideoById
(
Integer
id
);
void
deleteGoodsServiceByGoodsId
(
Integer
id
);
void
insertMallIndustrySkuInfo
(
MallIndustrySkuInfoDO
mallIndustrySkuInfoDO
);
void
insertMallIndustrySkuInfoSpec
(
MallIndustrySkuInfoSpecDO
mallIndustrySkuInfoSpecDO
);
List
<
MallProdInfoDO
>
getMallProSkuInfo
(
Integer
id
);
void
batchUpdateMallProductSku
(
List
<
Integer
>
delIds
);
void
batchUpdateMallProdSkuInfo
(
List
<
MallProdInfoDO
>
mallProdSkuInfoList
);
List
<
MallIndustrySkuInfoDO
>
getMallIndustrySkuInfo
(
Integer
id
);
}
...
...
src/main/java/com/mmc/pms/dao/IndustrySpecDao.java
0 → 100644
浏览文件 @
1f2b28f2
package
com
.
mmc
.
pms
.
dao
;
import
com.mmc.pms.entity.*
;
import
com.mmc.pms.model.dto.IndustrySpecCPQVO
;
import
com.mmc.pms.model.qo.IndustrySkuQO
;
import
com.mmc.pms.model.vo.IndustrySkuVO
;
import
com.mmc.pms.model.vo.IndustrySpecVO
;
import
com.mmc.pms.service.Impl.IndustryProductInventoryDO
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
import
java.util.Set
;
/**
* @Author LW
* @date 2022/10/8 10:58
* 概要:
*/
@Mapper
public
interface
IndustrySpecDao
{
int
countSkuName
(
IndustrySkuVO
param
);
int
insertIndustrySku
(
IndustrySku
industrySku
);
int
countIndustrySkuById
(
Integer
id
);
IndustrySku
getIndustrySkuById
(
Integer
id
);
int
updateIndustrySku
(
IndustrySku
industrySku
);
int
countListPageIndustrySku
(
IndustrySkuQO
param
);
List
<
IndustrySku
>
listPageIndustrySku
(
IndustrySkuQO
param
);
int
countSpecName
(
IndustrySpecVO
param
);
int
insertIndustrySpec
(
IndustrySpecDO
industrySpecDO
);
void
insertIndustryProductInventory
(
IndustryProductInventoryDO
industryProductInventoryDO
);
void
insertInventorySpec
(
InventorySpecDO
inventorySpecDO
);
int
countIndustrySpec
(
Integer
industrySpecId
);
IndustrySpecDO
getIndustrySpecById
(
Integer
industrySpecId
);
List
<
IndustryProductInventoryDO
>
getIndustryProductInventory
(
Integer
industrySpecId
);
int
updateIndustrySpec
(
IndustrySpecDO
industrySpecDO
);
void
batchDeleteInventorySpec
(
List
<
Integer
>
industryProductInventoryIds
);
void
deleteIndustryProductInventory
(
Integer
id
);
int
countListPageIndustrySpec
(
Integer
industrySkuId
,
String
keyword
);
List
<
IndustrySpecDO
>
listPageIndustrySpec
(
int
i
,
Integer
pageSize
,
Integer
industrySkuId
,
String
keyword
);
int
batchInsertSpecPrice
(
List
<
IndustrySpecPriceDO
>
list
);
void
removeIndustrySpecCPQ
(
IndustrySpecCPQVO
industrySpecCPQQ
);
void
batchInsertLeaseSpecPrice
(
List
<
IndustrySpecPriceDO
>
list
);
List
<
IndustrySpecPriceDO
>
getIndustrySpecCPQ
(
IndustrySpecCPQVO
industrySpecCPQQ
);
void
batchUpdateMallIndustrySpec
(
@Param
(
"list"
)
List
<
Integer
>
list
,
@Param
(
"id"
)
Integer
id
);
void
batchUpdateMallIndustrySku
(
@Param
(
"list"
)
List
<
Integer
>
list
);
void
batchUpdateMallIndustrySkuInfo
(
List
<
MallIndustrySkuInfoDO
>
mallIndustrySkuInfoList
);
List
<
MallIndustrySkuInfoSpecDO
>
listMallIndustrySpecInfo
(
List
<
Integer
>
mallSkuIds
);
void
batchUpdateMallIndustSpec
(
@Param
(
"list"
)
List
<
Integer
>
list
,
@Param
(
"id"
)
Integer
id
);
List
<
IndustryProductInventoryDO
>
listIndustryProdInventory
(
Set
<
Integer
>
inventoryIds
);
List
<
IndustrySpecDO
>
listIndustrySpec
(
Set
<
Integer
>
industrySpecIds
);
int
countIndustrySpecBySkuId
(
Integer
id
);
void
removeIndustrySku
(
Integer
id
);
List
<
MallIndustrySkuInfoSpecDO
>
listMallIndustrySpec
(
Integer
id
);
void
removeIndustryProductInventory
(
List
<
Integer
>
collect
);
List
<
InventorySpecDO
>
listInventorySpec
(
List
<
Integer
>
ids
);
void
removeInventorySpec
(
List
<
Integer
>
ids
);
void
removeIndustrySpec
(
Integer
id
);
}
src/main/java/com/mmc/pms/dao/MiniProgramProductMallDao.java
浏览文件 @
1f2b28f2
...
...
@@ -12,37 +12,37 @@ import java.util.List;
*/
@Mapper
public
interface
MiniProgramProductMallDao
{
GoodsInfoDO
getGoodsInfoByGoodsId
(
Integer
goodsId
);
GoodsInfoDO
getGoodsInfoByGoodsId
(
Integer
goodsId
);
List
<
GoodsImgDO
>
listGoodsInfoByGoodsId
(
Integer
goodsId
);
List
<
GoodsImgDO
>
listGoodsInfoByGoodsId
(
Integer
goodsId
);
GoodsDetailDO
getGoodsDetailByGoodsId
(
Integer
goodsId
);
GoodsDetailDO
getGoodsDetailByGoodsId
(
Integer
goodsId
);
List
<
GoodsQaDO
>
listGoodsQaInfoByGoodsId
(
Integer
goodsId
);
List
<
GoodsQaDO
>
listGoodsQaInfoByGoodsId
(
Integer
goodsId
);
List
<
GoodsServiceDO
>
listGoodsServiceByGoodsId
(
Integer
goodsId
);
List
<
GoodsServiceDO
>
listGoodsServiceByGoodsId
(
Integer
goodsId
);
List
<
MallProdSku
InfoDO
>
getMallProdInfoByGoodsId
(
Integer
goodsId
);
List
<
MallProd
InfoDO
>
getMallProdInfoByGoodsId
(
Integer
goodsId
);
List
<
MallProdSkuInfoSpecDO
>
listMallProdSkuInfoSpec
(
Integer
goodsId
);
List
<
MallProdSkuInfoSpecDO
>
listMallProdSkuInfoSpec
(
Integer
goodsId
);
List
<
ProductSpecDO
>
listProductSpecInfo
(
List
<
Integer
>
collect
);
List
<
ProductSpecDO
>
listProductSpecInfo
(
List
<
Integer
>
collect
);
List
<
MallIndustrySkuInfoDO
>
getMallIndustrySkuInfo
(
Integer
goodsInfoId
);
List
<
MallIndustrySkuInfoDO
>
getMallIndustrySkuInfo
(
Integer
goodsInfoId
);
List
<
MallIndustrySkuInfoSpecDO
>
getIndustrySkuInfoSpec
(
Integer
goodsInfoId
);
List
<
MallIndustrySkuInfoSpecDO
>
getIndustrySkuInfoSpec
(
Integer
goodsInfoId
);
int
countListGoodsByQO
(
GoodsInfoQO
param
);
int
countListGoodsByQO
(
GoodsInfoQO
param
);
List
<
GoodsInfoDO
>
listGoodsByQO
(
GoodsInfoQO
param
);
List
<
GoodsInfoDO
>
listGoodsByQO
(
GoodsInfoQO
param
);
List
<
GoodsTypeDO
>
listIndustryIdBySort
();
List
<
GoodsTypeDO
>
listIndustryIdBySort
();
List
<
IndustryProductInventoryDO
>
getIndustryProductInventory
(
Integer
industrySpecId
);
List
<
IndustryProductInventoryDO
>
getIndustryProductInventory
(
Integer
industrySpecId
);
List
<
InventorySpecDO
>
listInventorySpec
(
List
<
Integer
>
collect
);
List
<
InventorySpecDO
>
listInventorySpec
(
List
<
Integer
>
collect
);
ProductSpecDO
getProductSpecDetail
(
Integer
productSpecId
);
ProductSpecDO
getProductSpecDetail
(
Integer
productSpecId
);
ProductSkuDO
getProductSkuDetail
(
Integer
productSkuId
);
ProductSkuDO
getProductSkuDetail
(
Integer
productSkuId
);
}
src/main/java/com/mmc/pms/dao/Product
Sku
Dao.java
→
src/main/java/com/mmc/pms/dao/ProductDao.java
浏览文件 @
1f2b28f2
package
com
.
mmc
.
pms
.
dao
;
import
com.mmc.pms.entity.MallProdSkuInfoDO
;
import
com.mmc.pms.entity.ProductSkuDO
;
import
com.mmc.pms.entity.ProductSpecDO
;
import
com.mmc.pms.entity.ProductSpecPriceDO
;
import
com.mmc.pms.entity.*
;
import
com.mmc.pms.model.dto.ProductSkuVO
;
import
com.mmc.pms.model.dto.ProductSpecVO
;
import
com.mmc.pms.model.qo.ProductSkuQO
;
import
com.mmc.pms.model.vo.ProductSpecCPQVO
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
import
java.util.Set
;
/**
* @author 23214
...
...
@@ -19,7 +18,7 @@ import java.util.List;
* @Entity com.mmc.pms.entity.ProductSku
*/
@Mapper
public
interface
Product
Sku
Dao
{
public
interface
ProductDao
{
int
countSkuName
(
ProductSkuVO
param
);
...
...
@@ -58,7 +57,31 @@ public interface ProductSkuDao {
List
<
ProductSpecPriceDO
>
getProductSpecPrice
(
ProductSpecCPQVO
productSpecCPQVO
);
void
insertMallProdSkuInfo
(
MallProdSkuInfoDO
mallProdSkuInfoDO
);
void
insertMallProdSkuInfo
(
MallProdInfoDO
mallProdInfoDO
);
List
<
ProductSpecDO
>
listProductSpec
(
Integer
id
);
List
<
ProductSkuDO
>
listProductSkuDO
(
List
<
Integer
>
productSkuId
);
List
<
InventorySpecDO
>
listInventorySpecInfo
(
List
<
Integer
>
industryProductInventoryIds
);
List
<
ProductSpecDO
>
listProductSpecInfo
(
List
<
Integer
>
productSpecIds
);
void
batchUpdateMallProdSpec
(
List
<
Integer
>
delProductSpecId
);
int
countProductSpecByBrandId
(
Integer
id
);
int
countSpecByProdSkuId
(
Integer
id
);
void
removeProductSku
(
Integer
id
);
List
<
MallProdInfoDO
>
listMallProdInfo
(
String
id
);
void
removeProductSpec
(
Integer
id
);
List
<
IndustrySpecDO
>
listIndustrySpec
(
@Param
(
"industrySpecIds"
)
Set
<
Integer
>
industrySpecIds
);
List
<
InventorySpecDO
>
listInventorySpec
(
Integer
id
);
}
...
...
src/main/java/com/mmc/pms/entity/GoodsInfo.java
浏览文件 @
1f2b28f2
...
...
@@ -60,4 +60,8 @@ public class GoodsInfo implements Serializable {
this
.
ecoLabel
=
goodsAddVO
.
getTag
();
this
.
goodsType
=
goodsAddVO
.
getGoodsType
();
}
public
GoodsInfo
(
Integer
id
)
{
this
.
id
=
id
;
}
}
\ No newline at end of file
src/main/java/com/mmc/pms/entity/IndustrySku.java
0 → 100644
浏览文件 @
1f2b28f2
package
com
.
mmc
.
pms
.
entity
;
import
com.mmc.pms.model.dto.IndustrySkuDTO
;
import
com.mmc.pms.model.vo.IndustrySkuVO
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 行业sku表(IndustrySku)实体类
*
* @author makejava
* @since 2023-05-30 15:01:54
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
IndustrySku
implements
Serializable
{
private
static
final
long
serialVersionUID
=
165189738203335092L
;
private
Integer
id
;
private
String
solutionName
;
private
Integer
categoriesId
;
private
String
description
;
private
Date
createTime
;
private
Date
updateTime
;
private
Integer
deleted
;
private
String
typeName
;
public
IndustrySku
(
IndustrySkuVO
param
)
{
this
.
id
=
param
.
getId
();
this
.
solutionName
=
param
.
getSolutionName
();
this
.
categoriesId
=
param
.
getCategoryId
();
this
.
description
=
param
.
getDescription
();
}
public
IndustrySkuVO
buildIndustrySku
()
{
return
IndustrySkuVO
.
builder
().
id
(
this
.
id
).
description
(
this
.
description
)
.
categoryId
(
this
.
categoriesId
).
solutionName
(
this
.
solutionName
).
build
();
}
public
IndustrySkuDTO
buildIndustrySkuDTO
()
{
return
IndustrySkuDTO
.
builder
().
id
(
this
.
id
).
description
(
this
.
description
)
.
createTime
(
this
.
createTime
).
categoryId
(
this
.
categoriesId
)
.
categoryName
(
this
.
typeName
).
solutionName
(
this
.
solutionName
).
build
();
}
}
src/main/java/com/mmc/pms/entity/IndustrySpec.java
0 → 100644
浏览文件 @
1f2b28f2
package
com
.
mmc
.
pms
.
entity
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 行业规格表
* (IndustrySpec)实体类
*
* @author makejava
* @since 2023-05-30 15:02:08
*/
public
class
IndustrySpec
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
87945230737895634L
;
private
Integer
id
;
/**
* 行业sku id
*/
private
Integer
industrySkuId
;
/**
* 规格名称
*/
private
String
specName
;
/**
* 规格图片
*/
private
String
specImage
;
private
Date
createTime
;
private
Date
updateTime
;
private
Integer
isDeleted
;
public
Integer
getId
()
{
return
id
;
}
public
void
setId
(
Integer
id
)
{
this
.
id
=
id
;
}
public
Integer
getIndustrySkuId
()
{
return
industrySkuId
;
}
public
void
setIndustrySkuId
(
Integer
industrySkuId
)
{
this
.
industrySkuId
=
industrySkuId
;
}
public
String
getSpecName
()
{
return
specName
;
}
public
void
setSpecName
(
String
specName
)
{
this
.
specName
=
specName
;
}
public
String
getSpecImage
()
{
return
specImage
;
}
public
void
setSpecImage
(
String
specImage
)
{
this
.
specImage
=
specImage
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
public
Date
getUpdateTime
()
{
return
updateTime
;
}
public
void
setUpdateTime
(
Date
updateTime
)
{
this
.
updateTime
=
updateTime
;
}
public
Integer
getIsDeleted
()
{
return
isDeleted
;
}
public
void
setIsDeleted
(
Integer
isDeleted
)
{
this
.
isDeleted
=
isDeleted
;
}
}
src/main/java/com/mmc/pms/entity/IndustrySpecDO.java
浏览文件 @
1f2b28f2
package
com
.
mmc
.
pms
.
entity
;
import
com.mmc.pms.model.dto.IndustrySpecDTO
;
import
com.mmc.pms.model.dto.MallIndustrySpecDTO
;
import
com.mmc.pms.model.vo.IndustrySpecVO
;
import
lombok.AllArgsConstructor
;
...
...
@@ -16,40 +17,40 @@ import java.util.Date;
@NoArgsConstructor
@AllArgsConstructor
public
class
IndustrySpecDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
8701065950780976397L
;
private
Integer
id
;
private
Integer
industrySkuId
;
private
String
specName
;
private
String
specImage
;
private
Date
createTime
;
private
Date
updateTime
;
private
Integer
deleted
;
private
static
final
long
serialVersionUID
=
8701065950780976397L
;
private
Integer
id
;
private
Integer
industrySkuId
;
private
String
specName
;
private
String
specImage
;
private
Date
createTime
;
private
Date
updateTime
;
private
Integer
deleted
;
private
String
solutionName
;
private
String
solutionName
;
public
IndustrySpecDO
(
IndustrySpecVO
param
)
{
this
.
id
=
param
.
getId
();
this
.
industrySkuId
=
param
.
getIndustrySkuId
();
this
.
specName
=
param
.
getSpecName
();
this
.
specImage
=
param
.
getSpecImage
();
}
public
IndustrySpecDO
(
IndustrySpecVO
param
)
{
this
.
id
=
param
.
getId
();
this
.
industrySkuId
=
param
.
getIndustrySkuId
();
this
.
specName
=
param
.
getSpecName
();
this
.
specImage
=
param
.
getSpecImage
();
}
/*
public IndustrySpecDTO buildIndustrySpecDTO() {
return IndustrySpecDTO.builder()
.id(this.id)
.industrySkuId(this.industrySkuId)
.specImage(this.specImage)
.specName(this.specName)
.createTime(this.createTime)
.build();
}*/
public
IndustrySpecDTO
buildIndustrySpecDTO
()
{
return
IndustrySpecDTO
.
builder
()
.
id
(
this
.
id
)
.
industrySkuId
(
this
.
industrySkuId
)
.
specImage
(
this
.
specImage
)
.
specName
(
this
.
specName
)
.
createTime
(
this
.
createTime
)
.
build
();
}
public
MallIndustrySpecDTO
buildMallIndustrySpecDTO
()
{
return
MallIndustrySpecDTO
.
builder
()
.
industrySpecId
(
this
.
id
)
.
industrySkuId
(
this
.
industrySkuId
)
.
specImage
(
this
.
specImage
)
.
specName
(
this
.
specName
)
.
build
();
}
public
MallIndustrySpecDTO
buildMallIndustrySpecDTO
()
{
return
MallIndustrySpecDTO
.
builder
()
.
industrySpecId
(
this
.
id
)
.
industrySkuId
(
this
.
industrySkuId
)
.
specImage
(
this
.
specImage
)
.
specName
(
this
.
specName
)
.
build
();
}
}
src/main/java/com/mmc/pms/entity/IndustrySpecPriceDO.java
0 → 100644
浏览文件 @
1f2b28f2
package
com
.
mmc
.
pms
.
entity
;
import
com.mmc.pms.model.dto.IndustrySpecPriceDTO
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* @Author LW
* @date 2022/10/13 16:10
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
IndustrySpecPriceDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
6424007941913778680L
;
private
Integer
id
;
private
Integer
industrySpecId
;
private
Integer
cooperationTag
;
private
BigDecimal
price
;
private
Date
createTime
;
private
Date
updateTime
;
private
Integer
deleted
;
private
Integer
type
;
private
Integer
leaseTerm
;
public
IndustrySpecPriceDTO
buildIndustrySpecPriceDTO
()
{
return
IndustrySpecPriceDTO
.
builder
().
id
(
this
.
id
).
industrySpecId
(
this
.
industrySpecId
)
.
cooperationTag
(
this
.
cooperationTag
).
leaseTerm
(
leaseTerm
).
price
(
this
.
price
).
createTime
(
this
.
createTime
).
build
();
}
}
src/main/java/com/mmc/pms/entity/MallIndustrySkuInfoDO.java
浏览文件 @
1f2b28f2
package
com
.
mmc
.
pms
.
entity
;
import
com.mmc.pms.model.dto.GoodsSpecDTO
;
import
com.mmc.pms.model.vo.GoodsSpecVO
;
import
com.mmc.pms.model.vo.Goods
Prod
SpecVO
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
...
...
@@ -18,47 +18,51 @@ import java.util.Date;
@AllArgsConstructor
@Accessors
(
chain
=
true
)
public
class
MallIndustrySkuInfoDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1492322282696261487L
;
private
Integer
id
;
private
Integer
goodsInfoId
;
private
Integer
industrySkuId
;
private
String
industrySkuSpecName
;
private
Integer
goodsType
Id
;
private
Integer
chooseType
;
private
Integer
must
;
private
Integer
skuUnitId
;
private
Integer
deleted
;
private
Date
createTime
;
private
Date
updateTime
;
private
static
final
long
serialVersionUID
=
1492322282696261487L
;
private
Integer
id
;
private
Integer
goodsInfoId
;
private
Integer
industrySkuId
;
private
String
industrySkuSpecName
;
private
Integer
categories
Id
;
private
Integer
chooseType
;
private
Integer
must
;
private
Integer
skuUnitId
;
private
Integer
deleted
;
private
Date
createTime
;
private
Date
updateTime
;
/** 辅助字段start */
private
String
typeName
;
/**
* 辅助字段start
*/
private
String
typeName
;
private
String
unitName
;
private
String
industrySkuName
;
private
String
unitName
;
private
String
industrySkuName
;
/** 辅助字段end */
public
MallIndustrySkuInfoDO
(
GoodsSpecVO
goodsSpecVO
)
{
this
.
industrySkuId
=
goodsSpecVO
.
getSkuId
();
this
.
chooseType
=
goodsSpecVO
.
getChooseType
();
this
.
industrySkuSpecName
=
goodsSpecVO
.
getGoodsSpecName
();
this
.
skuUnitId
=
goodsSpecVO
.
getSkuUnitId
();
this
.
goodsTypeId
=
goodsSpecVO
.
getGoodsTypeId
();
this
.
must
=
goodsSpecVO
.
getMust
();
}
/**
* 辅助字段end
*/
public
MallIndustrySkuInfoDO
(
GoodsProdSpecVO
goodsSpecVO
)
{
this
.
industrySkuId
=
goodsSpecVO
.
getSkuId
();
this
.
chooseType
=
goodsSpecVO
.
getChooseType
();
this
.
industrySkuSpecName
=
goodsSpecVO
.
getGoodsSpecName
();
this
.
skuUnitId
=
goodsSpecVO
.
getSkuUnitId
();
this
.
categoriesId
=
goodsSpecVO
.
getCategoryId
();
this
.
must
=
goodsSpecVO
.
getMust
();
}
public
GoodsSpecDTO
buildGoodsSpecDTO
()
{
return
GoodsSpecDTO
.
builder
()
.
id
(
this
.
id
)
.
goodsSpecName
(
this
.
industrySkuSpecName
)
.
goodsTypeId
(
this
.
goodsType
Id
)
.
chooseType
(
this
.
chooseType
)
.
skuUnitId
(
skuUnitId
)
.
unitName
(
this
.
unitName
)
.
skuId
(
this
.
industrySkuId
)
.
typeName
(
this
.
typeName
)
.
skuName
(
this
.
industrySkuName
)
.
must
(
must
)
.
build
();
}
public
GoodsSpecDTO
buildGoodsSpecDTO
()
{
return
GoodsSpecDTO
.
builder
()
.
id
(
this
.
id
)
.
goodsSpecName
(
this
.
industrySkuSpecName
)
.
goodsTypeId
(
this
.
categories
Id
)
.
chooseType
(
this
.
chooseType
)
.
skuUnitId
(
skuUnitId
)
.
unitName
(
this
.
unitName
)
.
skuId
(
this
.
industrySkuId
)
.
typeName
(
this
.
typeName
)
.
skuName
(
this
.
industrySkuName
)
.
must
(
must
)
.
build
();
}
}
src/main/java/com/mmc/pms/entity/MallProd
Sku
InfoDO.java
→
src/main/java/com/mmc/pms/entity/MallProdInfoDO.java
浏览文件 @
1f2b28f2
package
com
.
mmc
.
pms
.
entity
;
import
com.mmc.pms.model.dto.GoodsSpecDTO
;
import
com.mmc.pms.model.vo.GoodsSpecVO
;
import
com.mmc.pms.model.vo.Goods
Prod
SpecVO
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
...
...
@@ -17,13 +17,13 @@ import java.util.Date;
@NoArgsConstructor
@AllArgsConstructor
@Accessors
(
chain
=
true
)
public
class
MallProd
Sku
InfoDO
implements
Serializable
{
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
categor
y
Id
;
private
Integer
categor
ies
Id
;
private
Integer
chooseType
;
private
Integer
must
;
private
Integer
skuUnitId
;
...
...
@@ -37,7 +37,7 @@ public class MallProdSkuInfoDO implements Serializable {
* 辅助字段 start
*/
private
String
typeName
;
private
String
goodsName
;
private
String
unitName
;
private
String
productSkuName
;
private
Integer
brandInfoId
;
...
...
@@ -45,8 +45,8 @@ public class MallProdSkuInfoDO implements Serializable {
/**
* 辅助字段 end
*/
public
MallProd
SkuInfoDO
(
Goods
SpecVO
goodsSpecVO
)
{
this
.
categor
yId
=
goodsSpecVO
.
getGoodsType
Id
();
public
MallProd
InfoDO
(
GoodsProd
SpecVO
goodsSpecVO
)
{
this
.
categor
iesId
=
goodsSpecVO
.
getCategory
Id
();
this
.
prodSkuSpecName
=
goodsSpecVO
.
getGoodsSpecName
();
this
.
chooseType
=
goodsSpecVO
.
getChooseType
();
this
.
skuUnitId
=
goodsSpecVO
.
getSkuUnitId
();
...
...
@@ -58,7 +58,7 @@ public class MallProdSkuInfoDO implements Serializable {
return
GoodsSpecDTO
.
builder
()
.
id
(
this
.
id
)
.
goodsSpecName
(
this
.
prodSkuSpecName
)
.
goodsTypeId
(
this
.
categor
y
Id
)
.
goodsTypeId
(
this
.
categor
ies
Id
)
.
chooseType
(
this
.
chooseType
)
.
skuUnitId
(
skuUnitId
)
.
unitName
(
this
.
unitName
)
...
...
src/main/java/com/mmc/pms/model/dto/IndustrySkuDTO.java
0 → 100644
浏览文件 @
1f2b28f2
package
com
.
mmc
.
pms
.
model
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @Author LW
* @date 2022/10/9 10:29
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
IndustrySkuDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
6371755036627825948L
;
@ApiModelProperty
(
value
=
"id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"方案名称"
)
private
String
solutionName
;
@ApiModelProperty
(
value
=
"所属行业id"
)
private
Integer
categoryId
;
@ApiModelProperty
(
value
=
"行业名称"
)
private
String
categoryName
;
@ApiModelProperty
(
value
=
"描述"
)
private
String
description
;
@ApiModelProperty
(
value
=
"创建时间"
)
private
Date
createTime
;
}
src/main/java/com/mmc/pms/model/dto/IndustrySpecCPQVO.java
0 → 100644
浏览文件 @
1f2b28f2
package
com
.
mmc
.
pms
.
model
.
dto
;
import
com.mmc.pms.model.vo.SpecPriceVO
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* @Author LW
* @date 2022/9/29 17:51
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
IndustrySpecCPQVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
1184938705010745010L
;
@ApiModelProperty
(
value
=
"行业规格id"
)
private
Integer
industrySpecId
;
@ApiModelProperty
(
value
=
"销售:0 租赁:1"
)
private
Integer
type
;
@ApiModelProperty
(
value
=
"租赁时限:(输入0:1-7天、输入1:8-15天、输入2:16-30天、输入3:30天以上)"
)
private
Integer
leaseTerm
;
@ApiModelProperty
(
value
=
"规格价格配置VO"
)
private
List
<
SpecPriceVO
>
specPrice
;
}
src/main/java/com/mmc/pms/model/dto/IndustrySpecDTO.java
0 → 100644
浏览文件 @
1f2b28f2
package
com
.
mmc
.
pms
.
model
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* @Author LW
* @date 2022/10/11 14:29
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
IndustrySpecDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
5476956071052692714L
;
@ApiModelProperty
(
value
=
"id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"行业skuId"
)
private
Integer
industrySkuId
;
@ApiModelProperty
(
value
=
"规格名称"
)
private
String
specName
;
@ApiModelProperty
(
value
=
"规格图片"
)
private
String
specImage
;
@ApiModelProperty
(
value
=
"产品清单"
)
private
List
<
ProductInventoryVO
>
productInventoryList
;
@ApiModelProperty
(
value
=
"创建时间"
)
private
Date
createTime
;
}
src/main/java/com/mmc/pms/model/dto/IndustrySpecPriceDTO.java
0 → 100644
浏览文件 @
1f2b28f2
package
com
.
mmc
.
pms
.
model
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* @Author LW
* @date 2022/10/8 10:22
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
IndustrySpecPriceDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
2319479581071699519L
;
@ApiModelProperty
(
value
=
"id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"规格id"
)
private
Integer
industrySpecId
;
@ApiModelProperty
(
value
=
"等级标签id"
)
private
Integer
cooperationTag
;
@ApiModelProperty
(
value
=
"价格"
)
private
BigDecimal
price
;
@ApiModelProperty
(
value
=
"租赁期限 (0:1-7天,1:8-15天,2:16-30天,3:30天以上)"
)
private
Integer
leaseTerm
;
@ApiModelProperty
(
value
=
"创建时间"
)
private
Date
createTime
;
}
src/main/java/com/mmc/pms/model/dto/RemoveSkuDTO.java
0 → 100644
浏览文件 @
1f2b28f2
package
com
.
mmc
.
pms
.
model
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* 删除sku dto
*
* @Author LW
* @date 2022/10/28 15:18
* 概要:
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public
class
RemoveSkuDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
6122488544731063648L
;
@ApiModelProperty
(
value
=
"关联的商品名称数组"
)
private
List
<
String
>
goodsName
;
@ApiModelProperty
(
value
=
"关联的行业sku名称数组"
)
private
List
<
SkuAndSpecDTO
>
industrySkuName
;
}
src/main/java/com/mmc/pms/model/dto/SkuAndSpecDTO.java
0 → 100644
浏览文件 @
1f2b28f2
package
com
.
mmc
.
pms
.
model
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
* @Author LW
* @date 2022/12/6 17:09
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Accessors
(
chain
=
true
)
public
class
SkuAndSpecDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
7551846102488434733L
;
private
String
industrySkuName
;
private
String
industrySpecNames
;
}
src/main/java/com/mmc/pms/model/qo/IndustrySkuQO.java
0 → 100644
浏览文件 @
1f2b28f2
package
com
.
mmc
.
pms
.
model
.
qo
;
import
com.mmc.pms.model.vo.Freeze
;
import
com.mmc.pms.page.Page
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* @Author LW
* @date 2022/9/26 11:13
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
IndustrySkuQO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
3016233395499711687L
;
@ApiModelProperty
(
value
=
"方案名称"
)
private
String
solutionName
;
@ApiModelProperty
(
value
=
"行业类型id"
)
private
Integer
categoryId
;
@ApiModelProperty
(
value
=
"页码"
,
required
=
true
)
@NotNull
(
message
=
"页码不能为空"
,
groups
=
{
Page
.
class
,
Freeze
.
class
})
@Min
(
value
=
1
,
groups
=
Page
.
class
)
private
Integer
pageNo
;
@ApiModelProperty
(
value
=
"每页显示数"
,
required
=
true
)
@NotNull
(
message
=
"每页显示数不能为空"
,
groups
=
{
Page
.
class
,
Freeze
.
class
})
@Min
(
value
=
1
,
groups
=
Page
.
class
)
private
Integer
pageSize
;
public
void
buildCurrentPage
()
{
this
.
pageNo
=
(
pageNo
-
1
)
*
pageSize
;
}
}
src/main/java/com/mmc/pms/model/vo/IndustrySkuVO.java
0 → 100644
浏览文件 @
1f2b28f2
package
com
.
mmc
.
pms
.
model
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* @Author LW
* @date 2022/10/8 14:41
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
IndustrySkuVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
6388977489810960843L
;
@ApiModelProperty
(
value
=
"id"
)
@NotNull
(
message
=
"id不能为空"
,
groups
=
{
Update
.
class
})
private
Integer
id
;
@ApiModelProperty
(
value
=
"方案名称"
)
@NotNull
(
message
=
"方案名称不能为空"
,
groups
=
{
Create
.
class
,
Update
.
class
})
private
String
solutionName
;
@NotNull
(
message
=
"行业分类id不能为空"
,
groups
=
{
Create
.
class
,
Update
.
class
})
@ApiModelProperty
(
value
=
"所属行业分类id"
)
private
Integer
categoryId
;
@ApiModelProperty
(
value
=
"描述"
)
private
String
description
;
}
src/main/java/com/mmc/pms/model/vo/IndustrySpecVO.java
浏览文件 @
1f2b28f2
...
...
@@ -17,33 +17,33 @@ import java.util.List;
@NoArgsConstructor
@AllArgsConstructor
public
class
IndustrySpecVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
5939041792432691119L
;
@ApiModelProperty
(
value
=
"id"
)
@NotNull
(
message
=
"修改时id不能为空"
,
groups
=
Update
.
class
)
private
Integer
id
;
@NotNull
(
message
=
"行业sku的id不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
@ApiModelProperty
(
value
=
"行业sku的id"
)
private
Integer
industrySkuId
;
@NotNull
(
message
=
"规格名称不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
@ApiModelProperty
(
value
=
"规格名称"
)
private
String
specName
;
@NotNull
(
message
=
"规格图片不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
@ApiModelProperty
(
value
=
"规格图片"
)
private
String
specImage
;
@NotNull
(
message
=
"产品清单不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
@ApiModelProperty
(
value
=
"产品清单"
)
private
List
<
ProductInventoryVO
>
productInventoryList
;
private
static
final
long
serialVersionUID
=
5939041792432691119L
;
@ApiModelProperty
(
value
=
"id"
)
@NotNull
(
message
=
"修改时id不能为空"
,
groups
=
Update
.
class
)
private
Integer
id
;
@NotNull
(
message
=
"行业sku的id不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
@ApiModelProperty
(
value
=
"行业sku的id"
)
private
Integer
industrySkuId
;
@NotNull
(
message
=
"规格名称不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
@ApiModelProperty
(
value
=
"规格名称"
)
private
String
specName
;
@NotNull
(
message
=
"规格图片不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
@ApiModelProperty
(
value
=
"规格图片"
)
private
String
specImage
;
@NotNull
(
message
=
"产品清单不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
@ApiModelProperty
(
value
=
"产品清单"
)
private
List
<
ProductInventoryVO
>
productInventoryList
;
}
src/main/java/com/mmc/pms/service/BrandManageService.java
浏览文件 @
1f2b28f2
...
...
@@ -44,4 +44,6 @@ public interface BrandManageService {
* @return {@link ResultBody}
*/
ResultBody
editBrandInfo
(
Integer
id
,
String
name
);
ResultBody
deleteBrandInfo
(
Integer
id
);
}
src/main/java/com/mmc/pms/service/Impl/BrandManageServiceImpl.java
浏览文件 @
1f2b28f2
...
...
@@ -3,6 +3,7 @@ package com.mmc.pms.service.Impl;
import
com.mmc.pms.common.ResultBody
;
import
com.mmc.pms.common.ResultEnum
;
import
com.mmc.pms.dao.BrandManageDao
;
import
com.mmc.pms.dao.ProductDao
;
import
com.mmc.pms.entity.BrandInfoDO
;
import
com.mmc.pms.model.dto.BrandInfoDTO
;
import
com.mmc.pms.page.PageResult
;
...
...
@@ -10,6 +11,7 @@ import com.mmc.pms.service.BrandManageService;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.List
;
import
java.util.stream.Collectors
;
...
...
@@ -23,6 +25,8 @@ public class BrandManageServiceImpl implements BrandManageService {
@Autowired
private
BrandManageDao
brandManageDao
;
@Resource
private
ProductDao
productDao
;
/**
...
...
@@ -62,22 +66,22 @@ public class BrandManageServiceImpl implements BrandManageService {
return
PageResult
.
buildPage
(
pageNo
,
pageSize
,
count
,
brandInfoList
);
}
//
/**
//
* 删除品牌信息
//
*
//
* @param id id
//
* @return {@link ResultBody}
//
*/
//
@Override
//
public ResultBody deleteBrandInfo(Integer id) {
//
// 判断该品牌是否绑定产品信息
// int count = productSpec
Dao.countProductSpecByBrandId(id);
//
if (count > 0) {
//
return ResultBody.error(ResultEnum.BRAND_DELETE_FAIL);
//
}
//
brandManageDao.removeBrandInfoById(id);
//
return ResultBody.success();
//
}
/**
* 删除品牌信息
*
* @param id id
* @return {@link ResultBody}
*/
@Override
public
ResultBody
deleteBrandInfo
(
Integer
id
)
{
// 判断该品牌是否绑定产品信息
int
count
=
product
Dao
.
countProductSpecByBrandId
(
id
);
if
(
count
>
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
BRAND_DELETE_FAIL
);
}
brandManageDao
.
removeBrandInfoById
(
id
);
return
ResultBody
.
success
();
}
@Override
public
ResultBody
editBrandInfo
(
Integer
id
,
String
brandName
)
{
...
...
src/main/java/com/mmc/pms/service/Impl/GoodsInfoServiceImpl.java
浏览文件 @
1f2b28f2
...
...
@@ -3,8 +3,10 @@ package com.mmc.pms.service.Impl;
import
com.mmc.pms.common.ResultBody
;
import
com.mmc.pms.common.ResultEnum
;
import
com.mmc.pms.dao.GoodsInfoDao
;
import
com.mmc.pms.dao.ProductSkuDao
;
import
com.mmc.pms.dao.IndustrySpecDao
;
import
com.mmc.pms.dao.ProductDao
;
import
com.mmc.pms.entity.*
;
import
com.mmc.pms.model.dto.ProductSpecVO
;
import
com.mmc.pms.model.vo.*
;
import
com.mmc.pms.service.GoodsInfoService
;
import
com.mmc.pms.util.CodeUtil
;
...
...
@@ -14,10 +16,8 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Set
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -32,10 +32,13 @@ public class GoodsInfoServiceImpl implements GoodsInfoService {
private
GoodsInfoDao
goodsInfoDao
;
@Resource
private
Product
SkuDao
productSku
Dao
;
private
Product
Dao
product
Dao
;
@Resource
private
ProductSkuServiceImpl
productSkuService
;
private
ProductServiceImpl
productSkuService
;
@Resource
private
IndustrySpecDao
industrySpecDao
;
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
...
@@ -69,13 +72,36 @@ public class GoodsInfoServiceImpl implements GoodsInfoService {
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
(
Integer
industrySpecId
:
goodsSpecVO
.
getSpecIds
())
{
// 构建商品对应的规格信息
MallIndustrySkuInfoSpecDO
mallIndustrySkuInfoSpecDO
=
new
MallIndustrySkuInfoSpecDO
()
.
setIndustrySpecId
(
industrySpecId
)
.
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
);
...
...
@@ -83,25 +109,25 @@ public class GoodsInfoServiceImpl implements GoodsInfoService {
// 遍历规格信息,获取其中非自定义的规格信息
List
<
GoodsProdSpecVO
>
goodsSpecList
=
productSpec
.
stream
().
filter
(
spec
->
spec
.
getFlag
().
equals
(
0
)).
collect
(
Collectors
.
toList
());
for
(
GoodsProdSpecVO
goodsSpec
:
goodsSpecList
)
{
MallProd
SkuInfoDO
mallProdSku
InfoDO
=
buildMallProdSkuInfo
(
goodsInfo
,
goodsSpec
,
goodsSpec
.
getSkuId
());
mallProd
Sku
InfoDO
.
setProductSpecIdList
(
goodsSpec
.
getSpecIds
().
stream
().
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
","
)));
MallProd
InfoDO
mallProd
InfoDO
=
buildMallProdSkuInfo
(
goodsInfo
,
goodsSpec
,
goodsSpec
.
getSkuId
());
mallProdInfoDO
.
setProductSpecIdList
(
goodsSpec
.
getSpecIds
().
stream
().
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
","
)));
// 插入数据库商品对应的sku信息
product
SkuDao
.
insertMallProdSkuInfo
(
mallProdSku
InfoDO
);
product
Dao
.
insertMallProdSkuInfo
(
mallProd
InfoDO
);
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
MallProd
Sku
InfoDO
buildMallProdSkuInfo
(
GoodsInfo
goodsInfo
,
GoodsProdSpecVO
goodsSpec
,
Integer
id
)
{
MallProd
SkuInfoDO
mallProdSkuInfoDO
=
new
MallProdSku
InfoDO
();
mallProd
Sku
InfoDO
.
setGoodsInfoId
(
goodsInfo
.
getId
());
mallProd
Sku
InfoDO
.
setProdSkuId
(
id
);
mallProd
Sku
InfoDO
.
setProdSkuSpecName
(
goodsSpec
.
getGoodsSpecName
());
mallProd
SkuInfoDO
.
setCategory
Id
(
goodsSpec
.
getCategoryId
());
mallProd
Sku
InfoDO
.
setChooseType
(
goodsSpec
.
getChooseType
());
mallProd
Sku
InfoDO
.
setMust
(
goodsSpec
.
getMust
());
mallProd
Sku
InfoDO
.
setFlag
(
goodsSpec
.
getFlag
());
mallProd
Sku
InfoDO
.
setSkuUnitId
(
goodsSpec
.
getSkuUnitId
());
return
mallProd
Sku
InfoDO
;
public
MallProdInfoDO
buildMallProdSkuInfo
(
GoodsInfo
goodsInfo
,
GoodsProdSpecVO
goodsSpec
,
Integer
id
)
{
MallProd
InfoDO
mallProdInfoDO
=
new
MallProd
InfoDO
();
mallProdInfoDO
.
setGoodsInfoId
(
goodsInfo
.
getId
());
mallProdInfoDO
.
setProdSkuId
(
id
);
mallProdInfoDO
.
setProdSkuSpecName
(
goodsSpec
.
getGoodsSpecName
());
mallProd
InfoDO
.
setCategories
Id
(
goodsSpec
.
getCategoryId
());
mallProdInfoDO
.
setChooseType
(
goodsSpec
.
getChooseType
());
mallProdInfoDO
.
setMust
(
goodsSpec
.
getMust
());
mallProdInfoDO
.
setFlag
(
goodsSpec
.
getFlag
());
mallProdInfoDO
.
setSkuUnitId
(
goodsSpec
.
getSkuUnitId
());
return
mallProdInfoDO
;
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
...
@@ -113,14 +139,14 @@ public class GoodsInfoServiceImpl implements GoodsInfoService {
.
setProductName
(
productSpec
.
getProductName
()).
setCustomize
(
1
)
.
setDirectoryId
(
goodsInfo
.
getDirectoryId
());
// 插入产品sku信息
product
Sku
Dao
.
insertProductSku
(
productSkuDO
);
productDao
.
insertProductSku
(
productSkuDO
);
// 先将自定的信息存储到数据库中
List
<
ProductSpecDO
>
customizeSpec
=
productSpec
.
getCustomizeInfo
().
stream
().
map
(
param
->
{
ProductSpecDO
productSpecDO
=
new
ProductSpecDO
().
setProductSkuId
(
productSkuDO
.
getId
())
.
setVersionDesc
(
"自定义"
).
setSpecImage
(
param
.
getSpecImage
())
.
setSpecName
(
param
.
getSpecName
()).
setPartNo
(
param
.
getPartNo
());
// 新增产品sku
product
Sku
Dao
.
insertProductSpec
(
productSpecDO
);
productDao
.
insertProductSpec
(
productSpecDO
);
// 批量配置价格信息
ProductSpecCPQVO
productSpecCPQVO
=
param
.
getProductSpecCPQVO
();
if
(
productSpecCPQVO
!=
null
)
{
...
...
@@ -130,10 +156,10 @@ public class GoodsInfoServiceImpl implements GoodsInfoService {
return
productSpecDO
;
}).
collect
(
Collectors
.
toList
());
List
<
Integer
>
ids
=
customizeSpec
.
stream
().
map
(
ProductSpecDO:
:
getId
).
collect
(
Collectors
.
toList
());
MallProd
SkuInfoDO
mallProdSku
InfoDO
=
buildMallProdSkuInfo
(
goodsInfo
,
productSpec
,
productSkuDO
.
getId
());
mallProd
Sku
InfoDO
.
setProductSpecIdList
(
ids
.
stream
().
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
","
)));
MallProd
InfoDO
mallProd
InfoDO
=
buildMallProdSkuInfo
(
goodsInfo
,
productSpec
,
productSkuDO
.
getId
());
mallProdInfoDO
.
setProductSpecIdList
(
ids
.
stream
().
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
","
)));
// 插入数据库商品对应的sku信息
product
SkuDao
.
insertMallProdSkuInfo
(
mallProdSku
InfoDO
);
product
Dao
.
insertMallProdSkuInfo
(
mallProd
InfoDO
);
}
}
...
...
@@ -198,11 +224,100 @@ public class GoodsInfoServiceImpl implements GoodsInfoService {
updateImageInfo
(
goodsAddVO
);
// 修改其他服务信息
updateOtherService
(
goodsAddVO
);
// 修改规格信息
if
(!
goodsAddVO
.
getDirectoryId
().
equals
(
2
))
{
updateMallProductSkuSpec
(
goodsAddVO
);
}
else
{
updateMallIndustrySkuSpec
(
goodsAddVO
);
}
return
null
;
}
private
void
updateOtherService
(
GoodsAddVO
goodsAddVO
)
{
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateMallIndustrySkuSpec
(
GoodsAddVO
goodsAddVO
)
{
// 从数据库获取该商品对应绑定的skuId的集合
List
<
MallIndustrySkuInfoDO
>
mallIndusSkuInfoList
=
goodsInfoDao
.
getMallIndustrySkuInfo
(
goodsAddVO
.
getId
());
List
<
Integer
>
skuIds
=
mallIndusSkuInfoList
.
stream
().
map
(
MallIndustrySkuInfoDO:
:
getId
).
collect
(
Collectors
.
toList
());
// 先删除所有商品绑定sku及spec信息
industrySpecDao
.
batchUpdateMallIndustrySpec
(
skuIds
,
goodsAddVO
.
getId
());
industrySpecDao
.
batchUpdateMallIndustrySku
(
skuIds
);
List
<
GoodsProdSpecVO
>
list
=
goodsAddVO
.
getProductSpec
().
stream
().
collect
(
Collectors
.
toList
());
industrySkuSpecOperation
(
new
GoodsInfo
(
goodsAddVO
.
getId
()),
list
);
}
@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
)
{
goodsInfoDao
.
batchUpdateMallProductSku
(
delIds
);
}
// 用途:修改商品规格前选项来源保留一份快照
Map
<
Integer
,
MallProdInfoDO
>
mallProSkuInfoMap
=
mallProSkuInfoList
.
stream
().
collect
(
Collectors
.
toMap
(
MallProdInfoDO:
:
getId
,
Function
.
identity
()));
// 修改商品绑定的sku信息
List
<
MallProdInfoDO
>
mallProdSkuInfoList
=
updateGoodsSpec
.
stream
().
map
(
d
->
{
MallProdInfoDO
mallProdSkuInfoById
=
mallProSkuInfoMap
.
get
(
d
.
getId
());
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
())
.
setProductSpecIdList
(
d
.
getSpecIds
().
stream
().
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
","
)))
.
setBeforeUpdateSpec
(
mallProdSkuInfoById
.
getProductSpecIdList
());
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
);
// 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
)
{
// 2.1先获取自定义的sku及规格(原来有的)
List
<
GoodsProdSpecVO
>
zdySpec
=
zdySpecInfo
.
stream
().
filter
(
d
->
d
.
getId
()
!=
null
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
zdySpec
))
{
// 根据获取到的自定义sku及规格进行操作
List
<
MallProdInfoDO
>
zdySpecList
=
zdySpec
.
stream
().
map
(
d
->
{
// 构建商品对应的sku信息
ProductSkuDO
productSkuDO
=
new
ProductSkuDO
().
setCategoriesId
(
d
.
getCategoryId
())
.
setProductName
(
d
.
getProductName
()).
setCustomize
(
1
);
productDao
.
updateProductSku
(
productSkuDO
);
if
(
CollectionUtils
.
isNotEmpty
(
d
.
getDelProductSpecId
()))
{
// 2.2删除这个sku下的spec
productDao
.
batchUpdateMallProdSpec
(
d
.
getDelProductSpecId
());
}
List
<
Integer
>
zdySpecIds
=
d
.
getCustomizeInfo
().
stream
().
map
(
ProductSpecVO:
:
getId
).
collect
(
Collectors
.
toList
());
return
new
MallProdInfoDO
(
d
).
setId
(
d
.
getId
()).
setProdSkuId
(
d
.
getSkuId
())
.
setProductSpecIdList
(
zdySpecIds
.
stream
().
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
","
)));
}).
collect
(
Collectors
.
toList
());
// 批量修改sku的信息
goodsInfoDao
.
batchUpdateMallProdSkuInfo
(
zdySpecList
);
}
// 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
());
// 插入其他服务
...
...
src/main/java/com/mmc/pms/service/Impl/IndustrySpecServiceImpl.java
0 → 100644
浏览文件 @
1f2b28f2
package
com
.
mmc
.
pms
.
service
.
Impl
;
import
com.mmc.pms.common.ResultBody
;
import
com.mmc.pms.common.ResultEnum
;
import
com.mmc.pms.dao.BrandManageDao
;
import
com.mmc.pms.dao.IndustrySpecDao
;
import
com.mmc.pms.dao.ProductDao
;
import
com.mmc.pms.entity.*
;
import
com.mmc.pms.model.dto.*
;
import
com.mmc.pms.model.qo.IndustrySkuQO
;
import
com.mmc.pms.model.vo.GoodsProductSkuVO
;
import
com.mmc.pms.model.vo.IndustrySkuVO
;
import
com.mmc.pms.model.vo.IndustrySpecVO
;
import
com.mmc.pms.page.PageResult
;
import
com.mmc.pms.service.IndustrySpecService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
/**
* @Author LW
* @date 2022/10/8 10:58
* 概要:
*/
@Service
public
class
IndustrySpecServiceImpl
implements
IndustrySpecService
{
@Autowired
IndustrySpecDao
industrySpecDao
;
@Autowired
ProductDao
productDao
;
@Autowired
private
BrandManageDao
brandManageDao
;
@Override
public
ResultBody
addIndustrySku
(
IndustrySkuVO
param
)
{
// 获取名称判断此前是否已经存在
int
count
=
industrySpecDao
.
countSkuName
(
param
);
if
(
count
>
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_CATEGORY_NAME_EXIST_ERROR
);
}
IndustrySku
industrySku
=
new
IndustrySku
(
param
);
// 新增产品sku
int
status
=
industrySpecDao
.
insertIndustrySku
(
industrySku
);
if
(
status
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
FAILED_TO_ADD_DATA
);
}
return
ResultBody
.
success
();
}
@Override
public
ResultBody
getIndustrySkuDetail
(
Integer
id
)
{
// 判断此sku是否还存在
int
count
=
industrySpecDao
.
countIndustrySkuById
(
id
);
if
(
count
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
SKU_DOES_NOT_EXIST_OR_HAS_BEEN_DELETED
);
}
IndustrySku
IndustrySku
=
industrySpecDao
.
getIndustrySkuById
(
id
);
return
ResultBody
.
success
(
IndustrySku
.
buildIndustrySku
());
}
@Override
public
ResultBody
editIndustrySku
(
IndustrySkuVO
param
)
{
// 判断此sku是否还存在
int
count
=
industrySpecDao
.
countIndustrySkuById
(
param
.
getId
());
if
(
count
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
SKU_DOES_NOT_EXIST_OR_HAS_BEEN_DELETED
);
}
// 获取名称判断此前是否已经存在
int
skuNameCount
=
industrySpecDao
.
countSkuName
(
param
);
if
(
skuNameCount
>
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_CATEGORY_NAME_EXIST_ERROR
);
}
IndustrySku
IndustrySku
=
new
IndustrySku
(
param
);
// 新增产品sku
int
status
=
industrySpecDao
.
updateIndustrySku
(
IndustrySku
);
if
(
status
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
FAILED_TO_EDIT_DATA
);
}
return
ResultBody
.
success
();
}
@Override
public
ResultBody
listPageIndustrySku
(
IndustrySkuQO
param
)
{
int
count
=
industrySpecDao
.
countListPageIndustrySku
(
param
);
if
(
count
==
0
)
{
return
ResultBody
.
success
(
PageResult
.
buildPage
(
param
.
getPageNo
(),
param
.
getPageSize
(),
count
));
}
Integer
pageNo
=
param
.
getPageNo
();
param
.
buildCurrentPage
();
List
<
IndustrySku
>
industrySkuList
=
industrySpecDao
.
listPageIndustrySku
(
param
);
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
param
.
getPageSize
(),
count
,
industrySkuList
.
stream
()
.
map
(
IndustrySku:
:
buildIndustrySkuDTO
)
.
collect
(
Collectors
.
toList
())));
}
/**
* 新增方案规格
*
* @param param
* @return
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ResultBody
addIndustrySpec
(
IndustrySpecVO
param
)
{
// 获取名称判断此前是否已经存在
int
count
=
industrySpecDao
.
countSpecName
(
param
);
if
(
count
>
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_CATEGORY_NAME_EXIST_ERROR
);
}
// 新增规格表信息
IndustrySpecDO
industrySpecDO
=
new
IndustrySpecDO
(
param
);
int
status
=
industrySpecDao
.
insertIndustrySpec
(
industrySpecDO
);
if
(
status
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
FAILED_TO_ADD_DATA
);
}
// 新增规格绑定产品sku表信息
addInventorySpec
(
param
,
industrySpecDO
);
return
ResultBody
.
success
();
}
private
void
addInventorySpec
(
IndustrySpecVO
param
,
IndustrySpecDO
industrySpecDO
)
{
for
(
ProductInventoryVO
d
:
param
.
getProductInventoryList
())
{
IndustryProductInventoryDO
industryProductInventoryDO
=
new
IndustryProductInventoryDO
(
d
);
industryProductInventoryDO
.
setIndustrySpecId
(
industrySpecDO
.
getId
());
industrySpecDao
.
insertIndustryProductInventory
(
industryProductInventoryDO
);
// 新增清单绑定的产品规格信息
// 判断该sku是否指定产品规格 0:未指定 1:指定
if
(
d
.
getSelect
().
equals
(
0
))
{
// 如果是表示不指定则要添加所有对sku下的所有产品规格
// 先查出该sku下的所有规格信息
List
<
ProductSpecDO
>
productSpecList
=
productDao
.
listProductSpec
(
d
.
getProductSku
().
getId
());
// 批量插入
for
(
ProductSpecDO
productSpecDO
:
productSpecList
)
{
InventorySpecDO
inventorySpecDO
=
new
InventorySpecDO
();
inventorySpecDO
.
setIndustryProductInventoryId
(
industryProductInventoryDO
.
getId
());
inventorySpecDO
.
setProductSpecId
(
productSpecDO
.
getId
());
inventorySpecDO
.
setProductSkuId
(
productSpecDO
.
getProductSkuId
());
industrySpecDao
.
insertInventorySpec
(
inventorySpecDO
);
}
}
else
{
// 指定的直接拿指定的数据
for
(
ProductSpecVO
productSpecVO
:
d
.
getProductSpecList
())
{
InventorySpecDO
inventorySpecDO
=
new
InventorySpecDO
();
inventorySpecDO
.
setIndustryProductInventoryId
(
industryProductInventoryDO
.
getId
());
inventorySpecDO
.
setProductSpecId
(
productSpecVO
.
getId
());
inventorySpecDO
.
setProductSkuId
(
productSpecVO
.
getProductSkuId
());
industrySpecDao
.
insertInventorySpec
(
inventorySpecDO
);
}
}
}
}
/**
* 获取行业规格信息
*
* @param industrySpecId
* @return
*/
@Override
public
ResultBody
getIndustrySpecDetail
(
Integer
industrySpecId
)
{
// 查询当前行业规格是否存在
int
count
=
industrySpecDao
.
countIndustrySpec
(
industrySpecId
);
if
(
count
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
SPEC_DOES_NOT_EXIST_OR_HAS_BEEN_DELETED
);
}
// 初始化行业规格DTO
IndustrySpecDTO
industrySpecDTO
;
// 获取行业规格的基本信息
IndustrySpecDO
industrySpec
=
industrySpecDao
.
getIndustrySpecById
(
industrySpecId
);
industrySpecDTO
=
industrySpec
.
buildIndustrySpecDTO
();
// 获取这个规格下的产品sku信息
List
<
IndustryProductInventoryDO
>
industryProductInventory
=
industrySpecDao
.
getIndustryProductInventory
(
industrySpecId
);
// 获取产品skuId
List
<
Integer
>
productSkuId
=
industryProductInventory
.
stream
().
map
(
IndustryProductInventoryDO:
:
getProductSkuId
).
collect
(
Collectors
.
toList
());
// 分别查出产品sku的详细信息
List
<
ProductSkuDO
>
productSkuList
=
productDao
.
listProductSkuDO
(
productSkuId
);
// 查出产品sku对应的品牌的信息
Set
<
Integer
>
brandInfoIds
=
productSkuList
.
stream
().
map
(
ProductSkuDO:
:
getBrandInfoId
).
collect
(
Collectors
.
toSet
());
List
<
BrandInfoDO
>
brandInfoList
=
brandManageDao
.
listBrandInfoByIds
(
brandInfoIds
);
// 拿到行业产品清单id的集合
List
<
Integer
>
industryProductInventoryIds
=
industryProductInventory
.
stream
().
map
(
IndustryProductInventoryDO:
:
getId
).
collect
(
Collectors
.
toList
());
// 再分别查出产品规格id
List
<
InventorySpecDO
>
inventorySpecList
=
productDao
.
listInventorySpecInfo
(
industryProductInventoryIds
);
if
(
inventorySpecList
.
size
()
!=
0
)
{
// 获取所有产品规格id
List
<
Integer
>
productSpecIds
=
inventorySpecList
.
stream
().
map
(
InventorySpecDO:
:
getProductSpecId
).
collect
(
Collectors
.
toList
());
// 根据这些规格id查询规格信息
List
<
ProductSpecDO
>
productSpecInfoList
=
productDao
.
listProductSpecInfo
(
productSpecIds
);
// 构建产品规格信息
List
<
ProductSpecVO
>
productSpecList
=
productSpecInfoList
.
stream
().
map
(
d
->
{
ProductSpecVO
productSpecVO
=
new
ProductSpecVO
();
productSpecVO
.
setSpecImage
(
d
.
getSpecImage
());
productSpecVO
.
setProductSkuId
(
d
.
getProductSkuId
());
productSpecVO
.
setSpecName
(
d
.
getSpecName
());
productSpecVO
.
setId
(
d
.
getId
());
productSpecVO
.
setPartNo
(
d
.
getPartNo
());
productSpecVO
.
setVersionDesc
(
d
.
getVersionDesc
());
return
productSpecVO
;
}).
collect
(
Collectors
.
toList
());
// 根据产品skuId分组
Map
<
Integer
,
List
<
ProductSpecVO
>>
maps
=
productSpecList
.
stream
().
collect
(
Collectors
.
groupingBy
(
ProductSpecVO:
:
getProductSkuId
));
// 构建其余产品清单的信息
List
<
ProductInventoryVO
>
list
=
new
ArrayList
<>();
for
(
IndustryProductInventoryDO
d
:
industryProductInventory
)
{
for
(
ProductSkuDO
e
:
productSkuList
)
{
GoodsProductSkuVO
goodsProductSkuVO
=
new
GoodsProductSkuVO
();
goodsProductSkuVO
.
setId
(
d
.
getId
());
goodsProductSkuVO
.
setProductName
(
e
.
getProductName
());
for
(
BrandInfoDO
b
:
brandInfoList
)
{
if
(
e
.
getBrandInfoId
().
equals
(
b
.
getId
()))
{
goodsProductSkuVO
.
setProductBrand
(
b
.
getBrandName
());
break
;
}
}
goodsProductSkuVO
.
setGoodsTypeId
(
e
.
getCategoriesId
());
goodsProductSkuVO
.
setModel
(
e
.
getModel
());
ProductInventoryVO
productInventoryVO
=
new
ProductInventoryVO
();
productInventoryVO
.
setProductSku
(
goodsProductSkuVO
);
if
(
d
.
getProductSkuId
().
equals
(
e
.
getId
()))
{
// 匹配分组之后id相等的数据构建到ProductInventoryVO对象中
List
<
ProductSpecVO
>
productSpecVOS
=
maps
.
get
(
e
.
getId
());
productInventoryVO
.
setProductSpecList
(
productSpecVOS
);
productInventoryVO
.
setSelect
(
d
.
getSelected
());
productInventoryVO
.
setProductSkuId
(
d
.
getProductSkuId
());
list
.
add
(
productInventoryVO
);
}
}
}
// 组装产品清单
industrySpecDTO
.
setProductInventoryList
(
list
);
}
return
ResultBody
.
success
(
industrySpecDTO
);
}
/**
* 编辑行业规格信息
*
* @param param
* @return
*/
@Override
public
ResultBody
editIndustrySpec
(
IndustrySpecVO
param
)
{
int
count
=
industrySpecDao
.
countIndustrySpec
(
param
.
getId
());
if
(
count
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
SPEC_DOES_NOT_EXIST_OR_HAS_BEEN_DELETED
);
}
// 获取名称判断此前是否已经存在
int
countName
=
industrySpecDao
.
countSpecName
(
param
);
if
(
countName
>
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_CATEGORY_NAME_EXIST_ERROR
);
}
// 修改行业规格基本信息
IndustrySpecDO
industrySpecDO
=
new
IndustrySpecDO
(
param
);
int
status
=
industrySpecDao
.
updateIndustrySpec
(
industrySpecDO
);
if
(
status
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
FAILED_TO_EDIT_DATA
);
}
// 先获取绑定的的产品skuId
List
<
IndustryProductInventoryDO
>
industryProductInventory
=
industrySpecDao
.
getIndustryProductInventory
(
param
.
getId
());
List
<
Integer
>
industryProductInventoryIds
=
industryProductInventory
.
stream
().
map
(
IndustryProductInventoryDO:
:
getId
).
collect
(
Collectors
.
toList
());
// 批量删除原来绑定的产品规格信息
if
(
industryProductInventoryIds
.
size
()
!=
0
)
{
industrySpecDao
.
batchDeleteInventorySpec
(
industryProductInventoryIds
);
}
// 批量删除绑定的产品sku信息
industrySpecDao
.
deleteIndustryProductInventory
(
param
.
getId
());
// 新增规格绑定产品sku表信息
addInventorySpec
(
param
,
industrySpecDO
);
return
ResultBody
.
success
();
}
/**
* 列表页面行业规范
*
* @param pageNo 页面没有
* @param pageSize 页面大小
* @param industrySkuId 行业sku id
* @param keyword 关键字
* @return {@link ResultBody}
*/
@Override
public
ResultBody
listPageIndustrySpec
(
Integer
pageNo
,
Integer
pageSize
,
Integer
industrySkuId
,
String
keyword
)
{
int
count
=
industrySpecDao
.
countListPageIndustrySpec
(
industrySkuId
,
keyword
);
if
(
count
==
0
)
{
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
pageSize
,
count
));
}
List
<
IndustrySpecDO
>
industrySpecList
=
industrySpecDao
.
listPageIndustrySpec
((
pageNo
-
1
)
*
pageSize
,
pageSize
,
industrySkuId
,
keyword
);
List
<
IndustrySpecDTO
>
list
=
industrySpecList
.
stream
().
map
(
IndustrySpecDO:
:
buildIndustrySpecDTO
).
collect
(
Collectors
.
toList
());
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
pageSize
,
count
,
list
));
}
/**
* 行业规格价格配置
*
* @param industrySpecCPQQ
* @return
*/
@Override
public
ResultBody
industrySpecCPQ
(
IndustrySpecCPQVO
industrySpecCPQQ
)
{
// 判断该规格是否存在
int
count
=
industrySpecDao
.
countIndustrySpec
(
industrySpecCPQQ
.
getIndustrySpecId
());
if
(
count
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
SPEC_DOES_NOT_EXIST_OR_HAS_BEEN_DELETED
);
}
// 批量插入规格价格
insertSpecPrice
(
industrySpecCPQQ
);
return
ResultBody
.
success
();
}
private
List
<
IndustrySpecPriceDO
>
getIndustrySpecPriceDOS
(
IndustrySpecCPQVO
industrySpecCPQQ
)
{
// 批量插入规格价格
return
industrySpecCPQQ
.
getSpecPrice
().
stream
().
map
(
d
->
{
IndustrySpecPriceDO
industrySpecPriceDO
=
new
IndustrySpecPriceDO
();
industrySpecPriceDO
.
setCooperationTag
(
d
.
getCooperationTag
());
industrySpecPriceDO
.
setType
(
industrySpecCPQQ
.
getType
());
industrySpecPriceDO
.
setPrice
(
d
.
getPrice
());
if
(
industrySpecCPQQ
.
getType
().
equals
(
1
))
{
industrySpecPriceDO
.
setLeaseTerm
(
industrySpecCPQQ
.
getLeaseTerm
());
}
industrySpecPriceDO
.
setIndustrySpecId
(
industrySpecCPQQ
.
getIndustrySpecId
());
return
industrySpecPriceDO
;
}).
collect
(
Collectors
.
toList
());
}
/**
* 行业规格价格配置修改
*
* @param industrySpecCPQQ
* @return
*/
@Override
public
ResultBody
updateIndustrySpecCPQ
(
IndustrySpecCPQVO
industrySpecCPQQ
)
{
// 先删除原来该规格下的所有价格配置信息
industrySpecDao
.
removeIndustrySpecCPQ
(
industrySpecCPQQ
);
// 批量插入规格价格
insertSpecPrice
(
industrySpecCPQQ
);
return
ResultBody
.
success
();
}
public
ResultBody
insertSpecPrice
(
IndustrySpecCPQVO
industrySpecCPQQ
)
{
List
<
IndustrySpecPriceDO
>
list
=
getIndustrySpecPriceDOS
(
industrySpecCPQQ
);
// 批量插入规格价格
if
(
industrySpecCPQQ
.
getType
().
equals
(
0
))
{
int
status
=
industrySpecDao
.
batchInsertSpecPrice
(
list
);
if
(
status
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
FAILED_TO_ADD_DATA
);
}
}
else
{
// 批量插入租赁价格
industrySpecDao
.
batchInsertLeaseSpecPrice
(
list
);
}
return
ResultBody
.
success
();
}
/**
* 获取配置价格信息
*
* @param industrySpecCPQQ 行业规范
* @return {@link ResultBody}
*/
@Override
public
ResultBody
getIndustrySpecCPQ
(
IndustrySpecCPQVO
industrySpecCPQQ
)
{
if
(
industrySpecCPQQ
.
getType
().
equals
(
1
)
&&
industrySpecCPQQ
.
getLeaseTerm
()
==
null
)
{
return
ResultBody
.
error
(
"租赁期限不能为空!"
);
}
List
<
IndustrySpecPriceDO
>
industrySpecPriceList
=
industrySpecDao
.
getIndustrySpecCPQ
(
industrySpecCPQQ
);
List
<
IndustrySpecPriceDTO
>
list
=
industrySpecPriceList
.
stream
()
.
map
(
IndustrySpecPriceDO:
:
buildIndustrySpecPriceDTO
).
collect
(
Collectors
.
toList
());
return
ResultBody
.
success
(
list
);
}
@Override
public
ResultBody
removeIndustrySku
(
Integer
id
)
{
// 查询该sku下是否有行业规格存在
int
specCount
=
industrySpecDao
.
countIndustrySpecBySkuId
(
id
);
if
(
specCount
<=
0
)
{
// 删除
industrySpecDao
.
removeIndustrySku
(
id
);
return
ResultBody
.
success
();
}
else
{
return
ResultBody
.
error
(
ResultEnum
.
SPEC_EXIST_UNDER_THE_SKU
);
}
}
/**
* 删除行业规格
*
* @param id id
* @return {@link ResultBody}
*/
@Override
public
ResultBody
removeIndustrySpec
(
Integer
id
)
{
// 判断该规格是否存在
int
count
=
industrySpecDao
.
countIndustrySpec
(
id
);
if
(
count
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
SPEC_DOES_NOT_EXIST_OR_HAS_BEEN_DELETED
);
}
// 获取该规格下绑定的商品的信息
RemoveSkuDTO
removeSkuDTO
=
new
RemoveSkuDTO
();
List
<
MallIndustrySkuInfoSpecDO
>
mallIndustrySkuInfoSpecList
=
industrySpecDao
.
listMallIndustrySpec
(
id
);
if
(
mallIndustrySkuInfoSpecList
.
size
()
!=
0
)
{
List
<
String
>
goodsName
=
new
ArrayList
<>();
mallIndustrySkuInfoSpecList
.
forEach
(
d
->
goodsName
.
add
(
d
.
getGoodsName
()));
removeSkuDTO
.
setGoodsName
(
goodsName
);
return
ResultBody
.
success
(
removeSkuDTO
);
}
else
{
// 根据规格id获取规格清单绑定的信息
List
<
IndustryProductInventoryDO
>
industryProductInventory
=
industrySpecDao
.
getIndustryProductInventory
(
id
);
if
(
industryProductInventory
.
size
()
!=
0
)
{
// 删除行业绑定的清单
industrySpecDao
.
removeIndustryProductInventory
(
industryProductInventory
.
stream
().
map
(
IndustryProductInventoryDO:
:
getId
).
collect
(
Collectors
.
toList
()));
List
<
Integer
>
ids
=
industryProductInventory
.
stream
().
map
(
IndustryProductInventoryDO:
:
getId
).
collect
(
Collectors
.
toList
());
List
<
InventorySpecDO
>
inventorySpecList
=
industrySpecDao
.
listInventorySpec
(
ids
);
// 删除
industrySpecDao
.
removeInventorySpec
(
inventorySpecList
.
stream
().
map
(
InventorySpecDO:
:
getId
).
collect
(
Collectors
.
toList
()));
}
industrySpecDao
.
removeIndustrySpec
(
id
);
return
ResultBody
.
success
();
}
}
//
// @Override
// public List<IndustrySpecPriceDTO> listAppGoodsPriceByTagId(Integer goodsInfoId, Integer tagInfoId) {
// List<IndustrySpecPriceDO> industrySpecPriceDOS = industrySpecDao.listAppGoodsPriceByTagId(goodsInfoId, tagInfoId);
// if (CollectionUtils.isEmpty(industrySpecPriceDOS)) {
// return null;
// }
// List<IndustrySpecPriceDTO> collect = industrySpecPriceDOS.stream().map(IndustrySpecPriceDO::buildIndustrySpecPriceDTO).collect(Collectors.toList());
// return collect;
// }
}
src/main/java/com/mmc/pms/service/Impl/MiniProgramProductMallServiceImpl.java
浏览文件 @
1f2b28f2
...
...
@@ -72,7 +72,7 @@ public class MiniProgramProductMallServiceImpl implements MiniProgramProductMall
// 判断商品是什么类型
if
(!
goodsInfoDO
.
getSortTypeId
().
equals
(
2
))
{
// 获取该商品绑定的sku信息
List
<
MallProd
Sku
InfoDO
>
mallProdSkuInfo
=
goodsInfoDao
.
getMallProdInfoByGoodsId
(
goodsId
);
List
<
MallProdInfoDO
>
mallProdSkuInfo
=
goodsInfoDao
.
getMallProdInfoByGoodsId
(
goodsId
);
// 获取该商品绑定的规格信息
List
<
MallProdSkuInfoSpecDO
>
mallProdSkuInfoSpecList
=
goodsInfoDao
.
listMallProdSkuInfoSpec
(
goodsId
);
...
...
@@ -114,7 +114,7 @@ public class MiniProgramProductMallServiceImpl implements MiniProgramProductMall
.
setGoodsSpecName
(
d
.
getProdSkuSpecName
())
.
setSkuName
(
d
.
getProductSkuName
())
.
setBrandInfoId
(
d
.
getBrandInfoId
())
.
setGoodsTypeId
(
d
.
getCategor
y
Id
())
.
setGoodsTypeId
(
d
.
getCategor
ies
Id
())
.
setTypeName
(
d
.
getTypeName
())
.
setChooseType
(
d
.
getChooseType
())
.
setSkuUnitId
(
d
.
getSkuUnitId
())
...
...
src/main/java/com/mmc/pms/service/Impl/ProductS
kuS
erviceImpl.java
→
src/main/java/com/mmc/pms/service/Impl/ProductServiceImpl.java
浏览文件 @
1f2b28f2
...
...
@@ -2,10 +2,9 @@ package com.mmc.pms.service.Impl;
import
com.mmc.pms.common.ResultBody
;
import
com.mmc.pms.common.ResultEnum
;
import
com.mmc.pms.dao.ProductSkuDao
;
import
com.mmc.pms.entity.ProductSkuDO
;
import
com.mmc.pms.entity.ProductSpecDO
;
import
com.mmc.pms.entity.ProductSpecPriceDO
;
import
com.mmc.pms.dao.IndustrySpecDao
;
import
com.mmc.pms.dao.ProductDao
;
import
com.mmc.pms.entity.*
;
import
com.mmc.pms.model.dto.*
;
import
com.mmc.pms.model.qo.ProductSkuQO
;
import
com.mmc.pms.model.vo.ProductSpecCPQVO
;
...
...
@@ -15,7 +14,9 @@ import org.jetbrains.annotations.NotNull;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -24,20 +25,22 @@ import java.util.stream.Collectors;
* @createDate 2023-05-25 14:55:56
*/
@Service
public
class
ProductS
kuS
erviceImpl
implements
ProductSkuService
{
public
class
ProductServiceImpl
implements
ProductSkuService
{
@Autowired
private
ProductSkuDao
productSkuDao
;
private
ProductDao
productDao
;
@Autowired
private
IndustrySpecDao
industrySpecDao
;
@Override
public
ResultBody
addProductSku
(
ProductSkuVO
param
)
{
// 获取名称判断此前是否已经存在
int
count
=
product
Sku
Dao
.
countSkuName
(
param
);
int
count
=
productDao
.
countSkuName
(
param
);
if
(
count
>
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_CATEGORY_NAME_EXIST_ERROR
);
}
ProductSkuDO
productSkuDO
=
new
ProductSkuDO
(
param
);
// 新增产品sku
int
status
=
product
Sku
Dao
.
insertProductSku
(
productSkuDO
);
int
status
=
productDao
.
insertProductSku
(
productSkuDO
);
if
(
status
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
FAILED_TO_ADD_DATA
);
}
...
...
@@ -47,23 +50,23 @@ public class ProductSkuServiceImpl implements ProductSkuService {
@Override
public
ResultBody
getProductSkuDetail
(
Integer
id
)
{
// 校验此sku是否还存在或已删除
int
count
=
product
Sku
Dao
.
countSkuIsExist
(
id
);
int
count
=
productDao
.
countSkuIsExist
(
id
);
if
(
count
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
SKU_DOES_NOT_EXIST_OR_HAS_BEEN_DELETED
);
}
ProductSkuDO
productSkuDO
=
product
Sku
Dao
.
getProductSkuDetail
(
id
);
ProductSkuDO
productSkuDO
=
productDao
.
getProductSkuDetail
(
id
);
return
ResultBody
.
success
(
productSkuDO
.
buildProductSkuDTO
());
}
@Override
public
ResultBody
editProductSku
(
ProductSkuVO
param
)
{
// 获取名称判断此前是否已经存在
int
count
=
product
Sku
Dao
.
countSkuName
(
param
);
int
count
=
productDao
.
countSkuName
(
param
);
if
(
count
>
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_CATEGORY_NAME_EXIST_ERROR
);
}
ProductSkuDO
productSkuDO
=
new
ProductSkuDO
(
param
);
int
status
=
product
Sku
Dao
.
updateProductSku
(
productSkuDO
);
int
status
=
productDao
.
updateProductSku
(
productSkuDO
);
if
(
status
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
FAILED_TO_EDIT_DATA
);
}
...
...
@@ -72,13 +75,13 @@ public class ProductSkuServiceImpl implements ProductSkuService {
@Override
public
ResultBody
listPageProductSku
(
ProductSkuQO
productSkuQO
)
{
int
count
=
product
Sku
Dao
.
countListPageProductSku
(
productSkuQO
);
int
count
=
productDao
.
countListPageProductSku
(
productSkuQO
);
if
(
count
==
0
)
{
return
ResultBody
.
success
(
PageResult
.
buildPage
(
productSkuQO
.
getPageNo
(),
productSkuQO
.
getPageSize
(),
count
));
}
Integer
pageNo
=
productSkuQO
.
getPageNo
();
productSkuQO
.
buildCurrentPage
();
List
<
ProductSkuDO
>
productSkuList
=
product
Sku
Dao
.
listPageProductSku
(
productSkuQO
);
List
<
ProductSkuDO
>
productSkuList
=
productDao
.
listPageProductSku
(
productSkuQO
);
List
<
ProductSkuDTO
>
list
=
productSkuList
.
stream
().
map
(
ProductSkuDO:
:
buildProductSkuDTO
).
collect
(
Collectors
.
toList
());
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
productSkuQO
.
getPageSize
(),
count
,
list
));
}
...
...
@@ -86,20 +89,20 @@ public class ProductSkuServiceImpl implements ProductSkuService {
@Override
public
ResultBody
addOrEditProductSpec
(
ProductSpecVO
param
)
{
// 获取名称判断此前是否已经存在
int
count
=
product
Sku
Dao
.
countSpecName
(
param
);
int
count
=
productDao
.
countSpecName
(
param
);
if
(
count
>
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_CATEGORY_NAME_EXIST_ERROR
);
}
if
(
param
.
getId
()
==
null
)
{
ProductSpecDO
productSpecDO
=
new
ProductSpecDO
(
param
);
// 新增产品sku
int
status
=
product
Sku
Dao
.
insertProductSpec
(
productSpecDO
);
int
status
=
productDao
.
insertProductSpec
(
productSpecDO
);
if
(
status
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
FAILED_TO_ADD_DATA
);
}
}
else
{
ProductSpecDO
productSpecDO
=
new
ProductSpecDO
(
param
);
int
status
=
product
Sku
Dao
.
updateProductSpec
(
productSpecDO
);
int
status
=
productDao
.
updateProductSpec
(
productSpecDO
);
if
(
status
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
FAILED_TO_EDIT_DATA
);
}
...
...
@@ -110,21 +113,21 @@ public class ProductSkuServiceImpl implements ProductSkuService {
@Override
public
ResultBody
getProductSpecDetail
(
Integer
id
)
{
// 校验此sku是否还存在或已删除
int
count
=
product
Sku
Dao
.
countSpecIsExist
(
id
);
int
count
=
productDao
.
countSpecIsExist
(
id
);
if
(
count
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
SPEC_DOES_NOT_EXIST_OR_HAS_BEEN_DELETED
);
}
ProductSpecDO
productSpecDO
=
product
Sku
Dao
.
getProductSpecDetail
(
id
);
ProductSpecDO
productSpecDO
=
productDao
.
getProductSpecDetail
(
id
);
return
ResultBody
.
success
(
productSpecDO
.
buildProductSpecDTO
());
}
@Override
public
ResultBody
listPageProductSpec
(
Integer
pageNo
,
Integer
pageSize
,
Integer
productSkuId
)
{
int
count
=
product
Sku
Dao
.
countListPageProductSpec
(
productSkuId
);
int
count
=
productDao
.
countListPageProductSpec
(
productSkuId
);
if
(
count
==
0
)
{
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
pageSize
,
count
));
}
List
<
ProductSpecDO
>
productSpecList
=
product
Sku
Dao
.
listPageProductSpec
((
pageNo
-
1
)
*
pageSize
,
pageSize
,
productSkuId
);
List
<
ProductSpecDO
>
productSpecList
=
productDao
.
listPageProductSpec
((
pageNo
-
1
)
*
pageSize
,
pageSize
,
productSkuId
);
List
<
ProductSpecDTO
>
list
=
productSpecList
.
stream
().
map
(
ProductSpecDO:
:
buildProductSpecDTO
).
collect
(
Collectors
.
toList
());
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
pageSize
,
count
,
list
));
}
...
...
@@ -132,7 +135,7 @@ public class ProductSkuServiceImpl implements ProductSkuService {
@Override
public
ResultBody
productSpecCPQ
(
ProductSpecCPQVO
productSpecCPQVO
)
{
// 判断该规格是否存在
int
count
=
product
Sku
Dao
.
countSpecIsExist
(
productSpecCPQVO
.
getProductSpecId
());
int
count
=
productDao
.
countSpecIsExist
(
productSpecCPQVO
.
getProductSpecId
());
if
(
count
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
SPEC_DOES_NOT_EXIST_OR_HAS_BEEN_DELETED
);
}
...
...
@@ -159,7 +162,7 @@ public class ProductSkuServiceImpl implements ProductSkuService {
@Override
public
ResultBody
updateProductSpecCPQ
(
ProductSpecCPQVO
productSpecCPQVO
)
{
// 先删除原来该规格下的所有价格配置信息
product
Sku
Dao
.
removeProductSpecCPQ
(
productSpecCPQVO
);
productDao
.
removeProductSpecCPQ
(
productSpecCPQVO
);
// 批量插入规格销售或租赁价格
return
insertSpecPrice
(
productSpecCPQVO
);
}
...
...
@@ -169,13 +172,13 @@ public class ProductSkuServiceImpl implements ProductSkuService {
List
<
ProductSpecPriceDO
>
list
=
getProductSpecPriceDOS
(
productSpecCPQVO
);
// 批量插入规格销售价格
if
(
productSpecCPQVO
.
getType
().
equals
(
0
))
{
int
status
=
product
Sku
Dao
.
batchInsertSpecPrice
(
list
);
int
status
=
productDao
.
batchInsertSpecPrice
(
list
);
if
(
status
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
FAILED_TO_ADD_DATA
);
}
}
else
{
// 批量插入租赁价格
product
Sku
Dao
.
batchInsertLeaseSpecPrice
(
list
);
productDao
.
batchInsertLeaseSpecPrice
(
list
);
}
return
ResultBody
.
success
();
}
...
...
@@ -186,11 +189,62 @@ public class ProductSkuServiceImpl implements ProductSkuService {
if
(
productSpecCPQVO
.
getType
().
equals
(
1
)
&&
productSpecCPQVO
.
getLeaseTerm
()
==
null
)
{
return
ResultBody
.
error
(
"租赁期限不能为空!"
);
}
List
<
ProductSpecPriceDO
>
productSpecPriceList
=
product
Sku
Dao
.
getProductSpecPrice
(
productSpecCPQVO
);
List
<
ProductSpecPriceDO
>
productSpecPriceList
=
productDao
.
getProductSpecPrice
(
productSpecCPQVO
);
List
<
ProductSpecPriceDTO
>
list
=
productSpecPriceList
.
stream
()
.
map
(
ProductSpecPriceDO:
:
buildProductSpecPriceDTO
).
collect
(
Collectors
.
toList
());
return
ResultBody
.
success
(
list
);
}
@Override
public
ResultBody
removeProductSku
(
Integer
id
)
{
// 判断该sku下是否有规格,没有则删除,有则不能删除
int
specCount
=
productDao
.
countSpecByProdSkuId
(
id
);
if
(
specCount
<=
0
)
{
// 删除
productDao
.
removeProductSku
(
id
);
return
ResultBody
.
success
();
}
else
{
return
ResultBody
.
error
(
ResultEnum
.
SPEC_EXIST_UNDER_THE_SKU
);
}
}
@Override
public
ResultBody
removeProductSpec
(
Integer
id
)
{
// 根据规格id查询绑定的商品或者行业的sku
RemoveSkuDTO
removeSkuDTO
=
new
RemoveSkuDTO
();
List
<
MallProdInfoDO
>
mallProdSkuInfoSpecList
=
productDao
.
listMallProdInfo
(
id
.
toString
());
// 拿到清单的id
List
<
InventorySpecDO
>
inventorySpecList
=
productDao
.
listInventorySpec
(
id
);
if
(
mallProdSkuInfoSpecList
.
size
()
!=
0
||
inventorySpecList
.
size
()
!=
0
)
{
if
(
inventorySpecList
.
size
()
!=
0
)
{
// 根据清单id 获取行业规格id
Set
<
Integer
>
inventoryIds
=
inventorySpecList
.
stream
().
map
(
InventorySpecDO:
:
getIndustryProductInventoryId
).
collect
(
Collectors
.
toSet
());
List
<
IndustryProductInventoryDO
>
industryProductInventoryList
=
industrySpecDao
.
listIndustryProdInventory
(
inventoryIds
);
// 获取行业规格id
Set
<
Integer
>
industrySpecIds
=
industryProductInventoryList
.
stream
().
map
(
IndustryProductInventoryDO:
:
getIndustrySpecId
).
collect
(
Collectors
.
toSet
());
// 分别获取规格对应的sku信息
List
<
IndustrySpecDO
>
industrySpecList
=
productDao
.
listIndustrySpec
(
industrySpecIds
);
List
<
SkuAndSpecDTO
>
industrySkuNameList
=
new
ArrayList
<>();
industrySpecList
.
stream
().
peek
(
d
->
{
SkuAndSpecDTO
skuAndSpecDTO
=
new
SkuAndSpecDTO
();
skuAndSpecDTO
.
setIndustrySkuName
(
d
.
getSolutionName
());
skuAndSpecDTO
.
setIndustrySpecNames
(
d
.
getSpecName
());
industrySkuNameList
.
add
(
skuAndSpecDTO
);
}).
collect
(
Collectors
.
toList
());
removeSkuDTO
.
setIndustrySkuName
(
industrySkuNameList
);
}
if
(
mallProdSkuInfoSpecList
.
size
()
!=
0
)
{
// 获取商品名称
List
<
String
>
goodsNameList
=
new
ArrayList
<>();
mallProdSkuInfoSpecList
.
forEach
(
d
->
goodsNameList
.
add
(
d
.
getGoodsName
()));
removeSkuDTO
.
setGoodsName
(
goodsNameList
);
}
return
ResultBody
.
success
(
removeSkuDTO
);
}
else
{
productDao
.
removeProductSpec
(
id
);
return
ResultBody
.
success
();
}
}
}
...
...
src/main/java/com/mmc/pms/service/IndustrySpecService.java
0 → 100644
浏览文件 @
1f2b28f2
package
com
.
mmc
.
pms
.
service
;
import
com.mmc.pms.common.ResultBody
;
import
com.mmc.pms.model.dto.IndustrySpecCPQVO
;
import
com.mmc.pms.model.qo.IndustrySkuQO
;
import
com.mmc.pms.model.vo.IndustrySkuVO
;
import
com.mmc.pms.model.vo.IndustrySpecVO
;
/**
* @Author LW
* @date 2022/10/8 10:58
* 概要:
*/
public
interface
IndustrySpecService
{
ResultBody
addIndustrySku
(
IndustrySkuVO
param
);
ResultBody
getIndustrySkuDetail
(
Integer
id
);
ResultBody
editIndustrySku
(
IndustrySkuVO
param
);
ResultBody
listPageIndustrySku
(
IndustrySkuQO
param
);
ResultBody
addIndustrySpec
(
IndustrySpecVO
param
);
ResultBody
getIndustrySpecDetail
(
Integer
industrySpecId
);
ResultBody
editIndustrySpec
(
IndustrySpecVO
param
);
ResultBody
listPageIndustrySpec
(
Integer
pageNo
,
Integer
pageSize
,
Integer
industrySkuId
,
String
keyword
);
ResultBody
industrySpecCPQ
(
IndustrySpecCPQVO
industrySpecCPQQ
);
ResultBody
updateIndustrySpecCPQ
(
IndustrySpecCPQVO
industrySpecCPQQ
);
ResultBody
getIndustrySpecCPQ
(
IndustrySpecCPQVO
industrySpecCPQQ
);
ResultBody
removeIndustrySku
(
Integer
id
);
ResultBody
removeIndustrySpec
(
Integer
id
);
// /**
// * 行业sku分页列表
// *
// * @param param
// * @return
// */
// ResultBody listPageIndustrySku(IndustrySkuQO param);
//
// /**
// * 新增方案规格
// *
// * @param param
// * @return
// */
// ResultBody addIndustrySpec(IndustrySpecVO param);
//
// /**
// * 获取行业规格信息
// *
// * @param industrySpecId
// * @return
// */
// ResultBody getIndustrySpecDetail(Integer industrySpecId);
//
// /**
// * 编辑行业规格信息
// *
// * @param param
// * @return
// */
// ResultBody editIndustrySpec(IndustrySpecVO param);
//
//
// /**
// * 列表页面行业规范
// *
// * @param pageNo 页面没有
// * @param pageSize 页面大小
// * @param industrySkuId 行业sku id
// * @param keyword 关键字
// * @return {@link ResultBody}
// */
// ResultBody listPageIndustrySpec(Integer pageNo, Integer pageSize, Integer industrySkuId, String keyword);
//
// /**
// * 行业规格价格配置
// *
// * @param industrySpecCPQQ
// * @return
// */
// ResultBody industrySpecCPQ(IndustrySpecCPQVO industrySpecCPQQ);
//
// /**
// * 行业规格价格配置修改
// *
// * @param industrySpecCPQQ
// * @return
// */
// ResultBody updateIndustrySpecCPQ(IndustrySpecCPQVO industrySpecCPQQ);
//
// /**
// * 获取配置价格信息
// *
// * @param industrySpecId
// * @return
// */
// ResultBody getIndustrySpecCPQ(Integer industrySpecId);
//
//
// /**
// * 删除行业sku
// *
// * @param id id
// * @return {@link ResultBody}
// */
// ResultBody removeIndustrySku(Integer id);
//
// /**
// * 删除行业规范
// *
// * @param id id
// * @return {@link ResultBody}
// */
// ResultBody removeIndustrySpec(Integer id);
//
// /**
// * 根据商品id和渠道id查询商品价格
// *
// * @param goodsInfoId
// * @param tagInfoId
// * @return
// */
// List<IndustrySpecPriceDTO> listAppGoodsPriceByTagId(Integer goodsInfoId, Integer tagInfoId);
}
src/main/java/com/mmc/pms/service/ProductSkuService.java
浏览文件 @
1f2b28f2
...
...
@@ -38,4 +38,7 @@ public interface ProductSkuService {
ResultBody
getProductSpecCPQ
(
ProductSpecCPQVO
productSpecCPQVO
);
ResultBody
removeProductSku
(
Integer
id
);
ResultBody
removeProductSpec
(
Integer
id
);
}
src/main/resources/application-local.yml
浏览文件 @
1f2b28f2
...
...
@@ -2,7 +2,7 @@ spring:
datasource
:
type
:
com.alibaba.druid.pool.DruidDataSource
driver-class-name
:
com.mysql.cj.jdbc.Driver
url
:
jdbc:mysql://rm-wz9dd796t4j1giz6t2o.mysql.rds.aliyuncs.com:3306/iuav_pms?characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
url
:
jdbc:mysql://rm-wz9dd796t4j1giz6t2o.mysql.rds.aliyuncs.com:3306/iuav_pms
_dev
?characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username
:
tmj
password
:
MMC@2022&MYSQL
redis
:
...
...
src/main/resources/mapper/GoodsInfoDao.xml
浏览文件 @
1f2b28f2
...
...
@@ -52,6 +52,17 @@
)
</foreach>
</insert>
<insert
id=
"insertMallIndustrySkuInfo"
useGeneratedKeys=
"true"
keyProperty=
"id"
parameterType=
"com.mmc.pms.entity.MallIndustrySkuInfoDO"
>
insert into mall_industry_sku_info(goods_info_id, industry_sku_id, industry_sku_spec_name, choose_type,
sku_unit_id, categories_id, is_must)
values (#{goodsInfoId}, #{industrySkuId}, #{industrySkuSpecName}, #{chooseType}, #{skuUnitId}, #{categoriesId},
#{must})
</insert>
<insert
id=
"insertMallIndustrySkuInfoSpec"
>
insert into mall_industry_sku_info_spec(mall_industry_sku_info_id, industry_spec_id, goods_info_id)
values (#{mallIndustrySkuInfoId}, #{industrySpecId}, #{goodsInfoId})
</insert>
<update
id=
"updateGoodsInfo"
>
update goods_info
...
...
@@ -80,6 +91,32 @@
set is_deleted = 1
where goods_info_id = #{goodsId}
</update>
<update
id=
"batchUpdateMallProductSku"
>
<foreach
collection=
"list"
item=
"d"
separator=
";"
>
update mall_prod_info
set is_deleted = 1
where id = #{d}
and is_deleted = 0
</foreach>
</update>
<update
id=
"batchUpdateMallProdSkuInfo"
>
<foreach
collection=
"list"
item=
"d"
separator=
";"
>
update mall_prod_info
<set>
prod_sku_id = #{d.prodSkuId},
categories_id = #{d.categoriesId},
prod_spec_name = #{d.prodSkuSpecName},
choose_type = #{d.chooseType},
sku_unit_id = #{d.skuUnitId},
is_must = #{d.must},
product_spec_id_list = #{d.productSpecIdList},
before_update_spec = #{d.beforeUpdateSpec}
</set>
<where>
id = #{d.id}
</where>
</foreach>
</update>
<delete
id=
"deleteGoodsServiceByGoodsId"
>
delete
from goods_service
...
...
@@ -113,4 +150,46 @@
WHERE is_deleted = 0
AND goods_info_id = #{id}
</select>
<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
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
WHERE mi.goods_info_id = #{id}
AND mi.is_deleted = 0
</select>
<select
id=
"getMallIndustrySkuInfo"
resultType=
"com.mmc.pms.entity.MallIndustrySkuInfoDO"
>
SELECT mi.id,
mi.industry_sku_id industrySkuId,
mi.industry_sku_spec_name industrySkuSpecName,
mi.choose_type chooseType,
mi.sku_unit_id skuUnitId,
mi.categories_id categoriesId,
mi.is_must must,
gt.type_name typeName,
su.unit_name unitName,
ins.solution_name industrySkuName
FROM mall_industry_sku_info mi
INNER JOIN categories gt ON gt.id = mi.categories_id
INNER JOIN sku_unit su ON su.id = mi.sku_unit_id
INNER JOIN industry_sku ins ON mi.industry_sku_id = ins.id
WHERE mi.goods_info_id = #{id}
AND mi.is_deleted = 0
</select>
</mapper>
src/main/resources/mapper/IndustrySpecDao.xml
0 → 100644
浏览文件 @
1f2b28f2
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.mmc.pms.dao.IndustrySpecDao"
>
<insert
id=
"insertIndustrySku"
>
insert into industry_sku (solution_name, categories_id, description)
values (#{solutionName}, #{categoriesId}, #{description})
</insert>
<insert
id=
"insertIndustrySpec"
>
insert into industry_spec (industry_sku_id, spec_name, spec_image)
values (#{industrySkuId}, #{specName}, #{specImage})
</insert>
<insert
id=
"insertIndustryProductInventory"
>
insert into industry_product_inventory (industry_spec_id, product_id, is_selected)
values (#{industrySpecId}, #{productSkuId}, #{selected})
</insert>
<insert
id=
"insertInventorySpec"
>
insert into inventory_spec (industry_product_inventory_id, product_spec_id, product_id)
values (#{industryProductInventoryId}, #{productSpecId}, #{productSkuId})
</insert>
<insert
id=
"batchInsertSpecPrice"
>
insert into industry_spec_price (industry_spec_id,tag_info_id,price,`type`)
values
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(#{item.industrySpecId},#{item.tagInfoId},#{item.price},#{item.type})
</foreach>
</insert>
<insert
id=
"batchInsertLeaseSpecPrice"
>
insert into industry_spec_price (industry_spec_id,tag_info_id,price,`type`,lease_term)
values
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(#{item.industrySpecId},#{item.tagInfoId},#{item.price},#{item.type},#{item.leaseTerm})
</foreach>
</insert>
<update
id=
"updateIndustrySku"
>
update industry_sku
set solution_name = #{solutionName},
categories_id = #{categoriesId},
description = #{description}
where id = #{id}
</update>
<update
id=
"updateIndustrySpec"
>
update industry_spec
set spec_name = #{specName},
spec_image = #{specImage}
where id = #{id}
</update>
<update
id=
"batchUpdateMallIndustrySpec"
>
<foreach
collection=
"list"
separator=
";"
item=
"d"
>
update mall_industry_sku_info_spec
set is_deleted = 1
where mall_industry_sku_info_id = #{d}
and goods_info_id =#{id}
and is_deleted = 0
</foreach>
</update>
<update
id=
"batchUpdateMallIndustrySku"
>
<foreach
collection=
"list"
item=
"d"
separator=
";"
>
update mall_industry_sku_info
set is_deleted = 1
where id = #{d}
and is_deleted = 0
</foreach>
</update>
<update
id=
"batchUpdateMallIndustrySkuInfo"
>
<foreach
collection=
"list"
item=
"d"
separator=
";"
>
update mall_industry_sku_info
<set>
industry_sku_id = #{d.industrySkuId},
categories_id = #{d.categoriesId},
industry_sku_spec_name = #{d.industrySkuSpecName},
choose_type = #{d.chooseType},
sku_unit_id = #{d.skuUnitId},
is_must = #{d.must}
</set>
<where>
id = #{d.id}
</where>
</foreach>
</update>
<update
id=
"batchUpdateMallIndustSpec"
>
<foreach
collection=
"list"
item=
"d"
separator=
";"
>
update mall_industry_sku_info_spec
set is_deleted = 1
where id = #{d} and goods_info_id = #{id}
and is_deleted = 0
</foreach>
</update>
<update
id=
"removeIndustrySku"
>
update industry_sku
set is_deleted = 1
where id = #{id}
</update>
<update
id=
"removeIndustryProductInventory"
>
<foreach
collection=
"list"
item=
"item"
index=
"index"
open=
""
close=
""
separator=
";"
>
update industry_product_inventory
set is_deleted = 1
where id = #{item}
</foreach>
</update>
<update
id=
"removeInventorySpec"
>
<foreach
collection=
"list"
item=
"item"
index=
"index"
open=
""
close=
""
separator=
";"
>
update inventory_spec
set is_deleted = 1
where id = #{item}
</foreach>
</update>
<update
id=
"removeIndustrySpec"
>
update industry_spec
set is_deleted = 1
where id = #{id}
</update>
<delete
id=
"batchDeleteInventorySpec"
>
delete from inventory_spec where industry_product_inventory_id in
<foreach
collection=
"list"
item=
"id"
separator=
","
open=
"("
close=
")"
>
#{id}
</foreach>
</delete>
<delete
id=
"deleteIndustryProductInventory"
>
delete
from industry_product_inventory
where industry_spec_id = #{id}
</delete>
<delete
id=
"removeIndustrySpecCPQ"
>
DELETE
FROM industry_spec_price
WHERE industry_spec_id = #{id}
and `type` = #{type}
</delete>
<select
id=
"countSkuName"
resultType=
"java.lang.Integer"
>
select count(*) from industry_sku
where solution_name = #{solutionName} and is_deleted = 0
<if
test=
"id !=null and id !=''"
>
and id
<![CDATA[<>]]>
#{id}
</if>
</select>
<select
id=
"countIndustrySkuById"
resultType=
"java.lang.Integer"
>
select count(*)
from industry_sku
where id = #{id}
and is_deleted = 0
</select>
<select
id=
"getIndustrySkuById"
resultType=
"com.mmc.pms.entity.IndustrySku"
>
SELECT id,
solution_name,
categories_id,
description,
create_time
FROM industry_sku
WHERE id = #{id}
</select>
<select
id=
"countListPageIndustrySku"
resultType=
"java.lang.Integer"
>
select count(*) from industry_sku
<where>
is_deleted = 0
<if
test=
"solutionName != null and solutionName != ''"
>
and solution_name like CONCAT('%',#{solutionName},'%')
</if>
<if
test=
"goodsTypeId != null"
>
and categories_id like CONCAT('%',#{categoryId},'%')
</if>
</where>
</select>
<select
id=
"listPageIndustrySku"
resultType=
"com.mmc.pms.entity.IndustrySku"
>
SELECT
ps.id,
ps.solution_name,
ps.categories_id,
ps.description,
ps.create_time,
c.type_name typeName
FROM
industry_sku ps
INNER JOIN categories c ON ps.categories_id = c.id
<where>
ps.is_deleted = 0
<if
test=
"solutionName != null and solutionName != ''"
>
and ps.solution_name like CONCAT('%',#{solutionName},'%')
</if>
<if
test=
"goodsTypeId != null"
>
and ps.goods_type_id like CONCAT('%',#{categoryId},'%')
</if>
</where>
order by ps.create_time desc
limit #{pageNo},#{pageSize}
</select>
<select
id=
"countSpecName"
resultType=
"java.lang.Integer"
>
select count(*) from industry_spec
where spec_name = #{specName} and is_deleted = 0
<if
test=
"id !=null and id !=''"
>
and id
<![CDATA[<>]]>
#{id}
</if>
<if
test=
"industrySkuId !=null and industrySkuId !=''"
>
and industry_sku_id = #{industrySkuId}
</if>
</select>
<select
id=
"countIndustrySpec"
resultType=
"java.lang.Integer"
>
select count(*)
from industry_spec
where id = #{industrySpecId}
and is_deleted = 0
</select>
<select
id=
"getIndustrySpecById"
resultType=
"com.mmc.pms.entity.IndustrySpecDO"
>
SELECT id,
industry_sku_id industrySkuId,
spec_name specName,
spec_image specImage,
create_time createTime
FROM industry_spec
WHERE id = #{id}
AND is_deleted = 0
</select>
<select
id=
"getIndustryProductInventory"
resultType=
"com.mmc.pms.service.Impl.IndustryProductInventoryDO"
>
SELECT id,
industry_spec_id industrySpecId,
product_id productSkuId,
is_selected selected
FROM industry_product_inventory
WHERE industry_spec_id = #{id}
AND is_deleted = 0
</select>
<select
id=
"countListPageIndustrySpec"
resultType=
"java.lang.Integer"
>
select count(*)
from industry_spec
<where>
is_deleted = 0
and industry_sku_id = #{id}
<if
test=
"keyword != null and keyword !=''"
>
and spec_name like CONCAT('%',#{keyword},'%')
</if>
</where>
</select>
<select
id=
"listPageIndustrySpec"
resultType=
"com.mmc.pms.entity.IndustrySpecDO"
>
select id,
industry_sku_id industrySkuId,
spec_name specName,
spec_image specImage,
create_time createTime
from industry_spec
<where>
is_deleted = 0
and industry_sku_id = #{industrySkuId}
<if
test=
"keyword != null and keyword !=''"
>
and spec_name like CONCAT('%',#{keyword},'%')
</if>
</where>
order by create_time desc
limit #{pageNo}, #{pageSize}
</select>
<select
id=
"getIndustrySpecCPQ"
resultType=
"com.mmc.pms.entity.IndustrySpecPriceDO"
>
select id,
industry_spec_id industrySpecId,
cooperation_tag cooperationTag,
price,
create_time createTime,
lease_term
from industry_spec_price
<where>
industry_spec_id = #{industrySpecId}
and `type` =#{type}
<if
test=
"leaseTerm != null"
>
and lease_term = #{leaseTerm}
</if>
</where>
</select>
<select
id=
"listMallIndustrySpecInfo"
resultType=
"com.mmc.pms.entity.MallIndustrySkuInfoSpecDO"
>
select id, goods_info_id goodsInfoId, mall_industry_sku_info_id mallIndustrySkuInfoId, industry_spec_id
industrySpecId
from mall_industry_sku_info_spec
where mall_industry_sku_info_id in
<foreach
collection=
"list"
separator=
","
item=
"d"
open=
"("
close=
")"
index=
"index"
>
#{d}
</foreach>
</select>
<select
id=
"listInventorySpec"
resultType=
"com.mmc.pms.entity.InventorySpecDO"
>
select id, industry_product_inventory_id industryProductInventoryId, product_spec_id productSpecId
from inventory_spec
where industry_product_inventory_id in (
<foreach
collection=
"list"
separator=
","
index=
"index"
item=
"d"
>
#{d}
</foreach>
)
</select>
<select
id=
"listIndustryProdInventory"
resultType=
"com.mmc.pms.service.Impl.IndustryProductInventoryDO"
>
SELECT
id,
industry_spec_id industrySpecId,
product_id productSkuId
FROM
industry_product_inventory
WHERE
id IN (
<foreach
collection=
"inventoryIds"
index=
"index"
item=
"id"
separator=
","
>
#{id}
</foreach>
)
AND is_deleted = 0
</select>
<select
id=
"listIndustrySpec"
resultType=
"com.mmc.pms.entity.IndustrySpecDO"
>
SELECT
ins.id,
ins.industry_sku_id industrySkuId,
ins.spec_image specImage,
ins.spec_name specName,
inds.solution_name solutionName
FROM
industry_spec ins
INNER JOIN industry_sku inds ON ins.industry_sku_id = inds.id
WHERE
ins.id IN (
<foreach
collection=
"industrySpecIds"
separator=
","
item=
"id"
index=
"index"
>
#{id}
</foreach>
)
AND ins.is_deleted = 0
</select>
<select
id=
"countIndustrySpecBySkuId"
resultType=
"java.lang.Integer"
>
select count(*)
from industry_spec
where industry_sku_id = #{id}
and is_deleted = 0
</select>
<select
id=
"listMallIndustrySpec"
resultType=
"com.mmc.pms.entity.MallIndustrySkuInfoSpecDO"
>
SELECT mi.id,
mi.goods_info_id goodsInfoId,
gi.goods_name goodsName
FROM mall_industry_sku_info_spec mi
INNER JOIN goods_info gi ON mi.goods_info_id = gi.id
WHERE mi.industry_spec_id = #{id}
AND mi.is_deleted = 0
AND gi.is_deleted = 0
</select>
</mapper>
\ No newline at end of file
src/main/resources/mapper/MiniProgramProductMallDao.xml
浏览文件 @
1f2b28f2
...
...
@@ -121,21 +121,21 @@
AND is_deleted = 0
</select>
<select
id=
"getMallProdInfoByGoodsId"
resultType=
"com.mmc.pms.entity.MallProd
Sku
InfoDO"
>
<select
id=
"getMallProdInfoByGoodsId"
resultType=
"com.mmc.pms.entity.MallProdInfoDO"
>
SELECT mp.id,
mp.prod_sku_id
prodSkuId,
mp.prod_s
ku_s
pec_name prodSkuSpecName,
mp.goods_type_id
goodsTypeId,
mp.choose_type
chooseType,
mp.is_must
must,
mp.sku_unit_id
skuUnitId,
su.unit_name
unitName,
ps.product_name
productSkuName,
ps.brand_info_id
brandInfoId,
gt.type_name
typeName
FROM mall_prod_
sku_
info mp
mp.prod_sku_id prodSkuId,
mp.prod_spec_name prodSkuSpecName,
mp.goods_type_id goodsTypeId,
mp.choose_type chooseType,
mp.is_must must,
mp.sku_unit_id skuUnitId,
su.unit_name unitName,
ps.product_name productSkuName,
ps.brand_info_id brandInfoId,
gt.type_name typeName
FROM mall_prod_info mp
INNER JOIN sku_unit su ON su.id = mp.sku_unit_id
INNER JOIN product
_sku
ps ON ps.id = mp.prod_sku_id
INNER JOIN product ps ON ps.id = mp.prod_sku_id
LEFT JOIN goods_type gt ON mp.goods_type_id = gt.id
WHERE mp.goods_info_id = #{goodsId}
AND mp.is_deleted = 0
...
...
@@ -153,7 +153,7 @@
<select
id=
"listProductSpecInfo"
resultType=
"com.mmc.pms.entity.ProductSpecDO"
>
SELECT
id,
product_
sku_
id productSkuId,
product_id productSkuId,
spec_name specName,
spec_image specImage,
part_no partNo,
...
...
@@ -318,7 +318,7 @@
<select
id=
"getIndustryProductInventory"
resultType=
"com.mmc.pms.service.Impl.IndustryProductInventoryDO"
>
SELECT id,
industry_spec_id industrySpecId,
product_
sku_id
productSkuId,
product_
id
productSkuId,
is_selected selected
FROM industry_product_inventory
WHERE industry_spec_id = #{industrySpecId}
...
...
@@ -336,12 +336,12 @@
<select
id=
"getProductSpecDetail"
resultType=
"com.mmc.pms.entity.ProductSpecDO"
>
select id,
product_
sku_id
productSkuId,
spec_name
specName,
spec_image
specImage,
part_no
partNo,
version_desc
versionDesc,
create_time
createTime
product_
id
productSkuId,
spec_name specName,
spec_image specImage,
part_no partNo,
version_desc versionDesc,
create_time createTime
from product_spec
where id = #{id}
</select>
...
...
@@ -356,7 +356,7 @@
bi.brand_name productBrand,
ps.sort_type_id sortTypeId,
st.sort_name sortName
FROM product
_sku
ps
FROM product ps
INNER JOIN goods_type gt ON ps.goods_type_id = gt.id
LEFT JOIN brand_info bi ON bi.id = ps.brand_info_id
LEFT JOIN sort_type st ON ps.goods_type_id = st.id
...
...
src/main/resources/mapper/Product
Sku
Dao.xml
→
src/main/resources/mapper/ProductDao.xml
浏览文件 @
1f2b28f2
...
...
@@ -2,15 +2,15 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.mmc.pms.dao.Product
Sku
Dao"
>
<mapper
namespace=
"com.mmc.pms.dao.ProductDao"
>
<insert
id=
"insertProductSku"
parameterType=
"com.mmc.pms.entity.ProductSkuDO"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into product
_sku
(product_name, categories_id, model, brand_info_id, directory_id)
insert into product (product_name, categories_id, model, brand_info_id, directory_id)
values (#{productName}, #{categoriesId}, #{model}, #{brandInfoId}, #{directoryId})
</insert>
<insert
id=
"insertProductSpec"
keyProperty=
"id"
useGeneratedKeys=
"true"
parameterType=
"com.mmc.pms.entity.ProductSpecDO"
>
insert into product_spec (product_
sku_
id, spec_name, spec_image, part_no, version_desc)
insert into product_spec (product_id, spec_name, spec_image, part_no, version_desc)
values (#{productSkuId}, #{specName}, #{specImage}, #{partNo}, #{versionDesc})
</insert>
<insert
id=
"batchInsertSpecPrice"
useGeneratedKeys=
"true"
...
...
@@ -29,13 +29,13 @@
</foreach>
</insert>
<insert
id=
"insertMallProdSkuInfo"
>
insert into mall_prod_
sku_info (goods_info_id, prod_sku_id, prod_sku
_spec_name, category_id, choose_type,
sku_unit_id, is_must, product_spec_id_list, flag)
insert into mall_prod_
info (goods_info_id, prod_sku_id, prod
_spec_name, category_id, choose_type,
sku_unit_id, is_must, product_spec_id_list, flag)
values (#{goodsInfoId}, #{prodSkuId}, #{prodSkuSpecName}, #{categoryId}, #{chooseType}, #{skuUnitId}, #{must},
#{productSpecIdList}, #{flag})
</insert>
<update
id=
"updateProductSku"
>
update product
_sku
update product
set product_name = #{productName},
categories_id = #{categoriesId},
model = #{model},
...
...
@@ -44,13 +44,29 @@
</update>
<update
id=
"updateProductSpec"
>
update product_spec
set spec_name
= #{specName},
spec_image
= #{specImage},
part_no
= #{partNo},
version_desc
= #{versionDesc},
product_
sku_id
= #{productSkuId}
set spec_name = #{specName},
spec_image = #{specImage},
part_no = #{partNo},
version_desc = #{versionDesc},
product_
id
= #{productSkuId}
where id = #{id}
</update>
<update
id=
"removeProductSku"
>
update product
set is_deleted = 1
where id = #{id}
</update>
<update
id=
"removeProductSpec"
>
update product_spec
set is_deleted = 1
where id = #{id}
</update>
<delete
id=
"batchUpdateMallProdSpec"
>
<foreach
collection=
"list"
item=
"d"
separator=
";"
>
delete from product_spec
where id = #{d}
</foreach>
</delete>
<delete
id=
"removeProductSpecCPQ"
>
DELETE
FROM product_spec_price
...
...
@@ -59,7 +75,7 @@
</delete>
<select
id=
"countSkuName"
resultType=
"java.lang.Integer"
>
select count(*) from product
_sku
select count(*) from product
where product_name = #{productName} and is_deleted = 0
<if
test=
"id !=null and id !=''"
>
and id
<![CDATA[<>]]>
#{id}
...
...
@@ -67,7 +83,7 @@
</select>
<select
id=
"countSkuIsExist"
resultType=
"java.lang.Integer"
>
select count(*)
from product
_sku
from product
where id = #{id}
and is_deleted = 0
</select>
...
...
@@ -79,14 +95,14 @@
c.`name` categoryName,
d.directory_name directoryName,
bi.brand_name brandName
FROM product
_sku
ps
FROM product ps
INNER JOIN categories c ON ps.categories_id = c.id
INNER JOIN `directory` d ON ps.directory_id = d.id
LEFT JOIN brand_info bi ON ps.brand_info_id = bi.id
WHERE ps.id = #{id}
</select>
<select
id=
"countListPageProductSku"
resultType=
"java.lang.Integer"
>
select count(*) from product
_sku
select count(*) from product
<where>
is_deleted = 0
and customize
<![CDATA[<>]]>
1
...
...
@@ -115,7 +131,7 @@
d.directory_name directoryName,
bi.brand_name brandName
FROM
product
_sku
ps
product ps
INNER JOIN categories c ON ps.categories_id = c.id
INNER JOIN `directory` d ON ps.directory_id = d.id
LEFT JOIN brand_info bi ON ps.brand_info_id = bi.id
...
...
@@ -137,7 +153,7 @@
</select>
<select
id=
"countSpecName"
resultType=
"java.lang.Integer"
>
select count(*) from product_spec
where spec_name = #{specName} and is_deleted = 0 and product_
sku_
id = #{productSkuId}
where spec_name = #{specName} and is_deleted = 0 and product_id = #{productSkuId}
<if
test=
"id !=null and id !=''"
>
and id
<![CDATA[<>]]>
#{id}
</if>
...
...
@@ -150,12 +166,12 @@
</select>
<select
id=
"getProductSpecDetail"
resultType=
"com.mmc.pms.entity.ProductSpecDO"
>
select id,
product_
sku_id
productSkuId,
spec_name
specName,
spec_image
specImage,
part_no
partNo,
version_desc
versionDesc,
create_time
createTime
product_
id
productSkuId,
spec_name specName,
spec_image specImage,
part_no partNo,
version_desc versionDesc,
create_time createTime
from product_spec
where id = #{id}
</select>
...
...
@@ -163,19 +179,19 @@
select count(*)
from product_spec
where is_deleted = 0
and product_
sku_
id = #{id}
and product_id = #{id}
</select>
<select
id=
"listPageProductSpec"
resultType=
"com.mmc.pms.entity.ProductSpecDO"
>
select id,
product_
sku_id
productSkuId,
spec_name
specName,
spec_image
specImage,
part_no
partNo,
version_desc
versionDesc,
create_time
createTime
product_
id
productSkuId,
spec_name specName,
spec_image specImage,
part_no partNo,
version_desc versionDesc,
create_time createTime
from product_spec
where is_deleted = 0
and product_
sku_
id = #{productSkuId}
and product_id = #{productSkuId}
order by create_time desc
limit #{pageNo}, #{pageSize}
</select>
...
...
@@ -195,4 +211,111 @@
</if>
</where>
</select>
<select
id=
"listProductSpec"
resultType=
"com.mmc.pms.entity.ProductSpecDO"
>
select id,
product_id,
spec_name,
spec_image,
part_no,
version_desc,
create_time
from product_spec
where is_deleted = 0
and product_id = #{productSkuId}
</select>
<select
id=
"listProductSkuDO"
resultType=
"com.mmc.pms.entity.ProductSkuDO"
>
SELECT ps.id,
ps.product_name productName,
ps.model,
ps.product_brand productBrand,
ps.brand_info_id brandInfoId,
ps.create_time createTime,
c.id categoriesId,
c.type_name categoryName
FROM product ps
INNER JOIN categories c ON ps.goods_type_id = c.id
where ps.id in
<foreach
collection=
"list"
item=
"item"
open=
"("
close=
")"
separator=
","
>
#{item}
</foreach>
</select>
<select
id=
"listInventorySpecInfo"
resultType=
"com.mmc.pms.entity.InventorySpecDO"
>
SELECT
id,
industry_product_inventory_id industryProductInventoryId,
product_spec_id productSpecId,
product_id productSkuId
FROM
inventory_spec
WHERE
industry_product_inventory_id IN
<foreach
collection=
"list"
separator=
","
open=
"("
close=
")"
item=
"item"
>
#{item}
</foreach>
AND is_deleted = 0
</select>
<select
id=
"listProductSpecInfo"
resultType=
"com.mmc.pms.entity.ProductSpecDO"
>
SELECT
id,
product_id productSkuId,
spec_name specName,
spec_image specImage,
part_no partNo,
version_desc versionDesc
FROM
product_spec
WHERE
id in
<foreach
collection=
"list"
item=
"item"
open=
"("
close=
")"
separator=
","
>
#{item}
</foreach>
</select>
<select
id=
"countProductSpecByBrandId"
resultType=
"java.lang.Integer"
>
select count(*)
from product
where brand_info_id = #{id}
and is_deleted = 0
</select>
<select
id=
"countSpecByProdSkuId"
resultType=
"java.lang.Integer"
>
</select>
<select
id=
"listMallProdInfo"
resultType=
"com.mmc.pms.entity.MallProdInfoDO"
>
SELECT mp.id,
mp.goods_info_id,
mp.product_id,
mp.prod_spec_name,
gi.goods_name goodsName
FROM mall_prod_info mp
INNER JOIN goods_info gi ON mp.goods_info_id = gi.id
WHERE mp.product_spec_id_list LIKE CONCAT('%', #{id}, '%')
</select>
<select
id=
"listIndustrySpec"
resultType=
"com.mmc.pms.entity.IndustrySpecDO"
>
SELECT
ins.id,
ins.industry_sku_id industrySkuId,
ins.spec_image specImage,
ins.spec_name specName,
inds.solution_name solutionName
FROM
industry_spec ins
INNER JOIN industry_sku inds ON ins.industry_sku_id = inds.id
WHERE
ins.id IN (
<foreach
collection=
"industrySpecIds"
separator=
","
item=
"id"
index=
"index"
>
#{id}
</foreach>
)
AND ins.is_deleted = 0
</select>
<select
id=
"listInventorySpec"
resultType=
"com.mmc.pms.entity.InventorySpecDO"
>
SELECT mp.id,
mp.goods_info_id goodsInfoId,
mp.mall_prod_info_id mallProdSkuInfoId,
gi.goods_name goodsName
FROM mall_prod_sku_info_spec mp
INNER JOIN goods_info gi ON gi.id = mp.goods_info_id
WHERE mp.product_spec_id = #{id}
AND mp.is_deleted = 0
AND gi.is_deleted = 0
</select>
</mapper>
src/main/resources/mapper/WebProductMallDao.xml
浏览文件 @
1f2b28f2
...
...
@@ -166,8 +166,8 @@
<select
id=
"findProduct"
resultType=
"java.lang.Integer"
>
SELECT count(1)
FROM goods_info gi
INNER JOIN mall_prod_
sku_
info mpsi ON mpsi.goods_info_id = gi.id
INNER JOIN product
_sku
ps ON mpsi.prod_sku_id = ps.id
INNER JOIN mall_prod_info mpsi ON mpsi.goods_info_id = gi.id
INNER JOIN product ps ON mpsi.prod_sku_id = ps.id
AND ps.is_deleted = 0
INNER JOIN brand_info bi ON ps.brand_info_id = bi.id
AND bi.is_delete = 0
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论