Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
pms
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
iuav
pms
Commits
aeb6b386
提交
aeb6b386
authored
5月 26, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
产品管理及品牌
上级
be517ab5
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
27 个修改的文件
包含
1313 行增加
和
253 行删除
+1313
-253
BrandManageController.java
...in/java/com/mmc/pms/controller/BrandManageController.java
+54
-0
ProductSpecController.java
...in/java/com/mmc/pms/controller/ProductSpecController.java
+130
-0
BrandManageDao.java
src/main/java/com/mmc/pms/dao/BrandManageDao.java
+74
-0
ProductSkuDao.java
src/main/java/com/mmc/pms/dao/ProductSkuDao.java
+63
-0
BrandInfoDO.java
src/main/java/com/mmc/pms/entity/BrandInfoDO.java
+36
-0
ProductSkuDO.java
src/main/java/com/mmc/pms/entity/ProductSkuDO.java
+46
-44
ProductSpecPriceDO.java
src/main/java/com/mmc/pms/entity/ProductSpecPriceDO.java
+53
-0
BrandInfoDTO.java
src/main/java/com/mmc/pms/model/dto/BrandInfoDTO.java
+27
-0
GoodsInfoDO.java
src/main/java/com/mmc/pms/model/dto/GoodsInfoDO.java
+0
-65
ProductInventoryVO.java
src/main/java/com/mmc/pms/model/dto/ProductInventoryVO.java
+10
-9
ProductSkuDTO.java
src/main/java/com/mmc/pms/model/dto/ProductSkuDTO.java
+22
-26
ProductSkuVO.java
src/main/java/com/mmc/pms/model/dto/ProductSkuVO.java
+23
-32
ProductSpecDTO.java
src/main/java/com/mmc/pms/model/dto/ProductSpecDTO.java
+15
-19
ProductSpecPriceDTO.java
src/main/java/com/mmc/pms/model/dto/ProductSpecPriceDTO.java
+10
-10
ProductSpecVO.java
src/main/java/com/mmc/pms/model/dto/ProductSpecVO.java
+23
-38
ProductSkuQO.java
src/main/java/com/mmc/pms/model/qo/ProductSkuQO.java
+42
-0
GoodsProductSkuVO.java
src/main/java/com/mmc/pms/model/vo/GoodsProductSkuVO.java
+38
-0
ProductSpecCPQVO.java
src/main/java/com/mmc/pms/model/vo/ProductSpecCPQVO.java
+9
-6
SpecPriceVO.java
src/main/java/com/mmc/pms/model/vo/SpecPriceVO.java
+4
-4
BrandManageService.java
src/main/java/com/mmc/pms/service/BrandManageService.java
+47
-0
BrandManageServiceImpl.java
...java/com/mmc/pms/service/Impl/BrandManageServiceImpl.java
+94
-0
MiniProgramProductMallServiceImpl.java
...c/pms/service/Impl/MiniProgramProductMallServiceImpl.java
+0
-0
ProductSkuServiceImpl.java
.../java/com/mmc/pms/service/Impl/ProductSkuServiceImpl.java
+198
-0
ProductSkuService.java
src/main/java/com/mmc/pms/service/ProductSkuService.java
+41
-0
application-local.yml
src/main/resources/application-local.yml
+12
-0
BrandManageDao.xml
src/main/resources/mapper/BrandManageDao.xml
+52
-0
ProductSkuDao.xml
src/main/resources/mapper/ProductSkuDao.xml
+190
-0
没有找到文件。
src/main/java/com/mmc/pms/controller/BrandManageController.java
0 → 100644
浏览文件 @
aeb6b386
package
com
.
mmc
.
pms
.
controller
;
import
com.mmc.pms.common.ResultBody
;
import
com.mmc.pms.model.dto.BrandInfoDTO
;
import
com.mmc.pms.service.BrandManageService
;
import
io.swagger.annotations.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* @Author LW
* @date 2023/3/14 13:22
* 概要:
*/
@RestController
@RequestMapping
(
"/brand"
)
@Api
(
tags
=
{
"品牌管理-相关接口"
})
public
class
BrandManageController
{
@Autowired
private
BrandManageService
brandManageService
;
@ApiOperation
(
value
=
"新增品牌"
)
@GetMapping
(
"addBrandInfo"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
ResultBody
addBrandInfo
(
@ApiParam
(
value
=
"品牌名称"
)
@RequestParam
String
brandName
)
{
return
brandManageService
.
addBrandInfo
(
brandName
);
}
@ApiOperation
(
value
=
"品牌列表"
)
@GetMapping
(
"listBrandInfo"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
BrandInfoDTO
.
class
)})
public
ResultBody
listBrandInfo
(
@RequestParam
Integer
pageNo
,
@RequestParam
Integer
pageSize
)
{
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
(
"editBrandInfo"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
ResultBody
editBrandInfo
(
Integer
id
,
String
brandName
)
{
return
brandManageService
.
editBrandInfo
(
id
,
brandName
);
}
}
src/main/java/com/mmc/pms/controller/ProductSpecController.java
0 → 100644
浏览文件 @
aeb6b386
package
com
.
mmc
.
pms
.
controller
;
import
com.mmc.pms.common.ResultBody
;
import
com.mmc.pms.model.dto.*
;
import
com.mmc.pms.model.qo.ProductSkuQO
;
import
com.mmc.pms.model.vo.Create
;
import
com.mmc.pms.model.vo.ProductSpecCPQVO
;
import
com.mmc.pms.model.vo.Update
;
import
com.mmc.pms.service.ProductSkuService
;
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/9/22 10:28
* 概要:
*/
@RestController
@RequestMapping
(
"/product/spec/"
)
@Api
(
tags
=
{
"产品管理模块-相关接口"
})
public
class
ProductSpecController
{
@Autowired
private
ProductSkuService
productSkuService
;
@ApiOperation
(
value
=
"新增产品sku"
)
@PostMapping
(
"addProductSku"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
ResultBody
addProductSku
(
@Validated
(
Create
.
class
)
@ApiParam
(
"产品skuVO"
)
@RequestBody
ProductSkuVO
param
)
{
return
productSkuService
.
addProductSku
(
param
);
}
@ApiOperation
(
value
=
"产品sku详情"
)
@GetMapping
(
"getProductSkuDetail"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ProductSkuDTO
.
class
)})
public
ResultBody
getProductSkuDetail
(
@ApiParam
(
"id"
)
@RequestParam
(
value
=
"id"
)
Integer
id
)
{
return
productSkuService
.
getProductSkuDetail
(
id
);
}
@ApiOperation
(
value
=
"编辑产品sku"
)
@PostMapping
(
"editProductSku"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
ResultBody
editProductSku
(
@Validated
(
Update
.
class
)
@ApiParam
(
"产品skuVO"
)
@RequestBody
ProductSkuVO
param
)
{
return
productSkuService
.
editProductSku
(
param
);
}
@ApiOperation
(
value
=
"产品sku分页列表"
)
@PostMapping
(
"listPageProductSku"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ProductSkuDTO
.
class
)})
public
ResultBody
listPageProductSku
(
@ApiParam
(
"条件参数"
)
@RequestBody
ProductSkuQO
productSkuQO
)
{
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 productSpecService.removeProductSku(id);
// }
//
@ApiOperation
(
value
=
"新增or修改产品规格"
)
@PostMapping
(
"addOrEditProductSpec"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
ResultBody
addOrEditProductSpec
(
@Validated
({
Create
.
class
,
Update
.
class
})
@ApiParam
(
"产品规格VO"
)
@RequestBody
ProductSpecVO
param
)
{
return
productSkuService
.
addOrEditProductSpec
(
param
);
}
@ApiOperation
(
value
=
"产品规格编辑回显"
)
@GetMapping
(
"getProductSpecDetail"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ProductSpecDTO
.
class
)})
public
ResultBody
getProductSpecDetail
(
@ApiParam
(
"id"
)
@RequestParam
(
value
=
"id"
)
Integer
id
)
{
return
productSkuService
.
getProductSpecDetail
(
id
);
}
@ApiOperation
(
value
=
"产品规格分页列表"
)
@GetMapping
(
"listPageProductSpec"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ProductSpecDTO
.
class
)})
public
ResultBody
listPageProductSpec
(
@ApiParam
(
value
=
"页码"
)
@RequestParam
(
value
=
"pageNo"
)
Integer
pageNo
,
@ApiParam
(
value
=
"每页显示数"
)
@RequestParam
(
value
=
"pageSize"
)
Integer
pageSize
,
@ApiParam
(
value
=
"产品skuId"
)
@RequestParam
(
value
=
"productSkuId"
)
Integer
productSkuId
)
{
return
productSkuService
.
listPageProductSpec
(
pageNo
,
pageSize
,
productSkuId
);
}
@ApiOperation
(
value
=
"产品规格管理-价格配置"
)
@PostMapping
(
"productSpecCPQ"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
ResultBody
productSpecCPQ
(
@RequestBody
ProductSpecCPQVO
productSpecCPQVO
)
{
return
productSkuService
.
productSpecCPQ
(
productSpecCPQVO
);
}
@ApiOperation
(
value
=
"价格配置信息的修改"
)
@PostMapping
(
"updateProductSpecCPQ"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
ResultBody
updateProductSpecCPQ
(
@RequestBody
ProductSpecCPQVO
productSpecCPQVO
)
{
return
productSkuService
.
updateProductSpecCPQ
(
productSpecCPQVO
);
}
@ApiOperation
(
value
=
"产品规格管理---获取价格配置信息"
)
@PostMapping
(
"getProductSpecCPQ"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ProductSpecPriceDTO
.
class
)})
public
ResultBody
getProductSpecCPQ
(
@RequestBody
ProductSpecCPQVO
productSpecCPQVO
)
{
return
productSkuService
.
getProductSpecCPQ
(
productSpecCPQVO
);
}
//
// @ApiOperation(value = "价格配置信息--恢复全局默认设置")
// @GetMapping("getDefaultSettings")
// @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ProductSpecPriceDTO.class)})
// public ResultBody getDefaultSettings(@ApiParam(value = "规格id") @RequestParam(value = "productSpecId") Integer productSpecId) {
// 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 productSpecService.removeProductSpec(id);
// }
//
// @ApiOperation(value = "feign根据渠道等级获取单价信息")
// @GetMapping("feignGetUnitPriceByTag")
// @ApiIgnore
// @ApiResponses({@ApiResponse(code = 200, message = "OK",response = ProductSpecPriceDTO.class)})
// public ProductSpecPriceDTO feignGetUnitPriceByTag(@RequestParam(value = "specId")Integer specId,
// @RequestParam(value = "tagId")Integer tagId) {
// return productSpecService.feignGetUnitPriceByTag(specId,tagId);
// }
}
src/main/java/com/mmc/pms/dao/BrandManageDao.java
0 → 100644
浏览文件 @
aeb6b386
package
com
.
mmc
.
pms
.
dao
;
import
com.mmc.pms.entity.BrandInfoDO
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
import
java.util.Set
;
/**
* @Author LW
* @date 2023/3/14 13:27
* 概要:
*/
@Mapper
public
interface
BrandManageDao
{
/**
* 插入品牌信息
*
* @param brandInfoDO 品牌信息
* @return int
*/
void
insertBrandInfo
(
BrandInfoDO
brandInfoDO
);
/**
* 数品牌信息名字
* 品牌信息名字计数
*
* @param brandName 品牌名称
* @param id id
* @return int
*/
int
countBrandInfoByName
(
Integer
id
,
String
brandName
);
/**
* 通过id删除品牌信息
*
* @param id id
*/
void
removeBrandInfoById
(
Integer
id
);
/**
* 品牌信息id列表
*
* @param ids id
* @return {@link List}<{@link BrandInfoDO}>
*/
List
<
BrandInfoDO
>
listBrandInfoByIds
(
@Param
(
"ids"
)
Set
<
Integer
>
ids
);
/**
* 品牌列表信息
*
* @param itemIndex 项指数
* @param pageSize 页面大小
* @return {@link List}<{@link BrandInfoDO}>
*/
List
<
BrandInfoDO
>
listBrandInfo
(
Integer
itemIndex
,
Integer
pageSize
);
/**
* 数品牌信息
*
* @return int
*/
int
countBrandInfo
();
/**
* 更新品牌信息
*
* @param brandInfoDO 品牌信息做
*/
void
updateBrandInfo
(
BrandInfoDO
brandInfoDO
);
}
src/main/java/com/mmc/pms/dao/ProductSkuDao.java
0 → 100644
浏览文件 @
aeb6b386
package
com
.
mmc
.
pms
.
dao
;
import
com.mmc.pms.entity.ProductSkuDO
;
import
com.mmc.pms.entity.ProductSpecDO
;
import
com.mmc.pms.entity.ProductSpecPriceDO
;
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
java.util.List
;
/**
* @author 23214
* @description 针对表【product_sku(产品sku表)】的数据库操作Mapper
* @createDate 2023-05-25 14:55:56
* @Entity com.mmc.pms.entity.ProductSku
*/
@Mapper
public
interface
ProductSkuDao
{
int
countSkuName
(
ProductSkuVO
param
);
int
insertProductSku
(
ProductSkuDO
productSkuDO
);
int
countSkuIsExist
(
Integer
id
);
ProductSkuDO
getProductSkuDetail
(
Integer
id
);
int
updateProductSku
(
ProductSkuDO
productSkuDO
);
int
countListPageProductSku
(
ProductSkuQO
productSkuQO
);
List
<
ProductSkuDO
>
listPageProductSku
(
ProductSkuQO
productSkuQO
);
int
countSpecName
(
ProductSpecVO
param
);
int
insertProductSpec
(
ProductSpecDO
productSpecDO
);
int
updateProductSpec
(
ProductSpecDO
productSpecDO
);
int
countSpecIsExist
(
Integer
id
);
ProductSpecDO
getProductSpecDetail
(
Integer
id
);
int
countListPageProductSpec
(
Integer
productSkuId
);
List
<
ProductSpecDO
>
listPageProductSpec
(
int
i
,
Integer
pageSize
,
Integer
productSkuId
);
int
batchInsertSpecPrice
(
List
<
ProductSpecPriceDO
>
list
);
void
batchInsertLeaseSpecPrice
(
List
<
ProductSpecPriceDO
>
list
);
void
removeProductSpecCPQ
(
ProductSpecCPQVO
productSpecCPQVO
);
List
<
ProductSpecPriceDO
>
getProductSpecPrice
(
ProductSpecCPQVO
productSpecCPQVO
);
}
src/main/java/com/mmc/pms/entity/BrandInfoDO.java
0 → 100644
浏览文件 @
aeb6b386
package
com
.
mmc
.
pms
.
entity
;
import
com.mmc.pms.model.dto.BrandInfoDTO
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @Author LW
* @date 2022/6/20 16:33
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
BrandInfoDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
2832084701380349536L
;
private
Integer
id
;
private
String
brandName
;
private
Date
createTime
;
private
Date
updateTime
;
private
Integer
delete
;
public
BrandInfoDO
(
String
brandName
)
{
this
.
brandName
=
brandName
;
}
public
BrandInfoDTO
buildBrandInfoDTO
()
{
return
BrandInfoDTO
.
builder
().
id
(
id
).
brandName
(
brandName
).
createTime
(
createTime
).
build
();
}
}
src/main/java/com/mmc/pms/entity/ProductSkuDO.java
浏览文件 @
aeb6b386
package
com
.
mmc
.
pms
.
entity
;
import
com.mmc.pms.model.dto.
Goods
ProductSkuDTO
;
import
com.mmc.pms.model.dto.
Goods
ProductSkuVO
;
import
com.mmc.pms.model.dto.ProductSkuDTO
;
import
com.mmc.pms.model.dto.ProductSkuVO
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
...
...
@@ -18,46 +18,48 @@ import java.util.Date;
@AllArgsConstructor
@Accessors
(
chain
=
true
)
public
class
ProductSkuDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
2830786012593215477L
;
private
Integer
id
;
private
String
productName
;
private
Integer
goodsTypeId
;
private
String
model
;
private
String
productBrand
;
private
Date
createTime
;
private
Date
updateTime
;
private
Integer
brandInfoId
;
private
Integer
deleted
;
private
Integer
sortTypeId
;
private
Integer
customize
;
/** 辅助字段 begin */
private
String
typeName
;
private
String
sortName
;
/** 辅助字段 end */
public
ProductSkuDO
(
GoodsProductSkuVO
param
)
{
this
.
id
=
param
.
getId
();
this
.
goodsTypeId
=
param
.
getGoodsTypeId
();
this
.
model
=
param
.
getModel
();
this
.
productName
=
param
.
getProductName
();
this
.
brandInfoId
=
param
.
getProductBrandId
();
this
.
sortTypeId
=
param
.
getDirectoryId
();
}
public
GoodsProductSkuDTO
buildGoodsProductSkuDTO
()
{
return
GoodsProductSkuDTO
.
builder
()
.
id
(
this
.
id
)
.
productName
(
this
.
productName
)
.
goodsTypeId
(
this
.
goodsTypeId
)
.
model
(
this
.
model
)
.
productBrand
(
this
.
productBrand
)
.
productBrandId
(
brandInfoId
)
.
createTime
(
this
.
createTime
)
.
typeName
(
this
.
typeName
)
.
directoryId
(
sortTypeId
)
.
directoryName
(
this
.
sortName
)
.
build
();
}
private
static
final
long
serialVersionUID
=
-
2830786012593215477L
;
private
Integer
id
;
private
String
productName
;
private
Integer
categoriesId
;
private
String
model
;
private
Date
createTime
;
private
Date
updateTime
;
private
Integer
brandInfoId
;
private
Integer
deleted
;
private
Integer
customize
;
private
Integer
directoryId
;
/**
* 辅助字段 begin
*/
private
String
categoryName
;
private
String
directoryName
;
private
String
brandName
;
/**
* 辅助字段 end
*/
public
ProductSkuDO
(
ProductSkuVO
param
)
{
this
.
id
=
param
.
getId
();
this
.
categoriesId
=
param
.
getCategoryId
();
this
.
model
=
param
.
getModel
();
this
.
productName
=
param
.
getProductName
();
this
.
brandInfoId
=
param
.
getProductBrandId
();
this
.
directoryId
=
param
.
getDirectoryId
();
}
public
ProductSkuDTO
buildProductSkuDTO
()
{
return
ProductSkuDTO
.
builder
()
.
id
(
this
.
id
)
.
productName
(
this
.
productName
)
.
model
(
this
.
model
)
.
productBrand
(
this
.
brandName
)
.
createTime
(
this
.
createTime
)
.
categoryName
(
this
.
categoryName
)
.
directoryName
(
directoryName
)
.
build
();
}
}
src/main/java/com/mmc/pms/entity/ProductSpecPriceDO.java
0 → 100644
浏览文件 @
aeb6b386
package
com
.
mmc
.
pms
.
entity
;
import
com.mmc.pms.model.dto.ProductSpecPriceDTO
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* 产品规格价格配置表(ProductSpecPriceDO)实体类
*
* @author makejava
* @since 2023-05-25 17:51:18
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
ProductSpecPriceDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
270307563560175486L
;
private
Integer
id
;
/**
* 产品规格id
*/
private
Integer
productSpecId
;
/**
* 渠道等级id
*/
private
Integer
cooperationTag
;
/**
* 价格
*/
private
BigDecimal
price
;
private
Integer
type
;
private
Date
createTime
;
private
Date
updateTime
;
private
Integer
leaseTerm
;
public
ProductSpecPriceDTO
buildProductSpecPriceDTO
()
{
return
ProductSpecPriceDTO
.
builder
().
id
(
this
.
id
)
.
cooperationTag
(
this
.
cooperationTag
)
.
price
(
this
.
price
).
createTime
(
this
.
createTime
)
.
leaseTerm
(
this
.
leaseTerm
).
build
();
}
}
src/main/java/com/mmc/pms/model/dto/BrandInfoDTO.java
0 → 100644
浏览文件 @
aeb6b386
package
com
.
mmc
.
pms
.
model
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @Author LW
* @date 2022/6/20 16:33
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
BrandInfoDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
2845503394350034900L
;
private
Integer
id
;
private
String
brandName
;
private
Date
createTime
;
}
src/main/java/com/mmc/pms/model/dto/GoodsInfoDO.java
deleted
100644 → 0
浏览文件 @
be517ab5
package
com
.
mmc
.
pms
.
model
.
dto
;
import
com.mmc.pms.entity.GoodsConfigExportDO
;
import
com.mmc.pms.entity.GoodsTypeDO
;
import
com.mmc.pms.entity.GoodsVideoDO
;
import
com.mmc.pms.model.vo.CategoryParamAndValueVO
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* @Author small @Date 2023/5/16 13:41 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Accessors
(
chain
=
true
)
public
class
GoodsInfoDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
1329342381196659417L
;
private
Integer
id
;
private
Integer
pid
;
private
String
goodsNo
;
private
String
goodsName
;
private
Integer
masterTypeId
;
private
Integer
slaveTypeId
;
private
Integer
shelfStatus
;
private
Integer
skuNum
;
private
Integer
deleted
;
private
Date
createTime
;
private
Date
updateTime
;
private
Integer
goodsAttr
;
private
String
ecoLabel
;
private
Integer
goodsCategoryId
;
private
Integer
repoId
;
private
Integer
shareFlyServiceId
;
private
Integer
goodsType
;
private
Integer
sort
;
private
Integer
showCode
;
private
Integer
standardProduct
;
private
String
tag
;
/** 辅助字段-start */
private
String
videoUrl
;
private
Integer
goodsVideoId
;
private
String
goodsDesc
;
private
GoodsVideoDO
goodsVideoDO
;
private
String
mainImg
;
// 主图
private
GoodsTypeDO
goodsMasterType
;
private
GoodsTypeDO
goodsSlaveType
;
private
String
remark
;
// 底部备注
private
Integer
sortTypeId
;
private
List
<
CategoryParamAndValueVO
>
paramAndValue
;
private
GoodsConfigExportDO
goodsConfigExport
;
// 功能清单
private
Integer
buyNum
;
// 购买数量
private
String
directoryName
;
private
Integer
isCoupons
;
}
src/main/java/com/mmc/pms/model/dto/ProductInventoryVO.java
浏览文件 @
aeb6b386
package
com
.
mmc
.
pms
.
model
.
dto
;
import
com.mmc.pms.model.vo.GoodsProductSkuVO
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
...
...
@@ -15,17 +16,17 @@ import java.util.List;
@NoArgsConstructor
@AllArgsConstructor
public
class
ProductInventoryVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
2224789550998518979L
;
private
static
final
long
serialVersionUID
=
-
2224789550998518979L
;
@ApiModelProperty
(
value
=
"是否指定 不指定0 指定1"
)
private
Integer
select
;
@ApiModelProperty
(
value
=
"是否指定 不指定0 指定1"
)
private
Integer
select
;
@ApiModelProperty
(
value
=
"产品sku"
)
private
GoodsProductSkuVO
productSku
;
@ApiModelProperty
(
value
=
"产品sku"
)
private
GoodsProductSkuVO
productSku
;
@ApiModelProperty
(
value
=
"productSkuId"
)
private
Integer
productSkuId
;
@ApiModelProperty
(
value
=
"productSkuId"
)
private
Integer
productSkuId
;
@ApiModelProperty
(
value
=
"产品规格"
)
private
List
<
ProductSpecVO
>
productSpecList
;
@ApiModelProperty
(
value
=
"产品规格"
)
private
List
<
ProductSpecVO
>
productSpecList
;
}
src/main/java/com/mmc/pms/model/dto/
Goods
ProductSkuDTO.java
→
src/main/java/com/mmc/pms/model/dto/ProductSkuDTO.java
浏览文件 @
aeb6b386
...
...
@@ -8,7 +8,6 @@ import lombok.NoArgsConstructor;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* @Author small @Date 2023/5/16 16:29 @Version 1.0
...
...
@@ -17,39 +16,36 @@ import java.util.List;
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
Goods
ProductSkuDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
2681122778843398310L
;
public
class
ProductSkuDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
2681122778843398310L
;
@ApiModelProperty
(
value
=
"id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"产品名称"
)
private
String
productName
;
@ApiModelProperty
(
value
=
"产品名称"
)
private
String
productName
;
@ApiModelProperty
(
value
=
"产品类型id"
)
private
Integer
goodsType
Id
;
@ApiModelProperty
(
value
=
"产品类型id"
)
private
Integer
categories
Id
;
@ApiModelProperty
(
value
=
"产品类型名称"
)
private
String
type
Name
;
@ApiModelProperty
(
value
=
"产品类型名称"
)
private
String
category
Name
;
@ApiModelProperty
(
value
=
"型号"
)
private
String
model
;
@ApiModelProperty
(
value
=
"型号"
)
private
String
model
;
@ApiModelProperty
(
value
=
"产品品牌"
)
private
String
productBrand
;
@ApiModelProperty
(
value
=
"产品品牌"
)
private
String
productBrand
;
@ApiModelProperty
(
value
=
"产品品牌id"
)
private
Integer
productBrandId
;
@ApiModelProperty
(
value
=
"产品品牌id"
)
private
Integer
productBrandId
;
@ApiModelProperty
(
value
=
"创建时间"
)
private
Date
createTime
;
@ApiModelProperty
(
value
=
"创建时间"
)
private
Date
createTime
;
@ApiModelProperty
(
value
=
"目录id"
)
private
Integer
directoryId
;
@ApiModelProperty
(
value
=
"目录id"
)
private
Integer
directoryId
;
@ApiModelProperty
(
value
=
"目录名称"
)
private
String
directoryName
;
@ApiModelProperty
(
value
=
"产品规格信息对象"
)
private
List
<
ProductSpecDTO
>
productSpecList
;
@ApiModelProperty
(
value
=
"目录名称"
)
private
String
directoryName
;
}
src/main/java/com/mmc/pms/model/dto/
Goods
ProductSkuVO.java
→
src/main/java/com/mmc/pms/model/dto/ProductSkuVO.java
浏览文件 @
aeb6b386
...
...
@@ -16,36 +16,27 @@ import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
GoodsProductSkuVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
2681122778843398310L
;
@ApiModelProperty
(
value
=
"id"
)
@NotNull
(
message
=
"修改时id不能为空"
,
groups
=
{
Update
.
class
})
private
Integer
id
;
@NotNull
(
message
=
"产品名称不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
@ApiModelProperty
(
value
=
"产品名称"
)
private
String
productName
;
@NotNull
(
message
=
"产品类型不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
@ApiModelProperty
(
value
=
"产品类型"
)
private
Integer
goodsTypeId
;
@ApiModelProperty
(
value
=
"型号"
)
private
String
model
;
@ApiModelProperty
(
value
=
"产品品牌"
)
private
String
productBrand
;
@ApiModelProperty
(
value
=
"品牌id"
)
private
Integer
productBrandId
;
@ApiModelProperty
(
value
=
"目录id"
)
private
Integer
directoryId
;
public
class
ProductSkuVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
2681122778843398310L
;
@ApiModelProperty
(
value
=
"id"
)
@NotNull
(
message
=
"修改时id不能为空"
,
groups
=
{
Update
.
class
})
private
Integer
id
;
@NotNull
(
message
=
"产品名称不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
@ApiModelProperty
(
value
=
"产品名称"
)
private
String
productName
;
@NotNull
(
message
=
"产品类型id不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
@ApiModelProperty
(
value
=
"产品类型id"
)
private
Integer
categoryId
;
@ApiModelProperty
(
value
=
"型号"
)
private
String
model
;
@ApiModelProperty
(
value
=
"品牌id"
)
private
Integer
productBrandId
;
@ApiModelProperty
(
value
=
"目录id"
)
private
Integer
directoryId
;
}
src/main/java/com/mmc/pms/model/dto/ProductSpecDTO.java
浏览文件 @
aeb6b386
...
...
@@ -9,7 +9,6 @@ import lombok.experimental.Accessors;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* @Author small @Date 2023/5/16 15:30 @Version 1.0
...
...
@@ -20,29 +19,26 @@ import java.util.List;
@Builder
@Accessors
public
class
ProductSpecDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
2681122778843398310L
;
private
static
final
long
serialVersionUID
=
-
2681122778843398310L
;
@ApiModelProperty
(
value
=
"id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"productSkuId"
)
private
Integer
productSkuId
;
@ApiModelProperty
(
value
=
"productSkuId"
)
private
Integer
productSkuId
;
@ApiModelProperty
(
value
=
"规格名称"
)
private
String
specName
;
@ApiModelProperty
(
value
=
"规格名称"
)
private
String
specName
;
@ApiModelProperty
(
value
=
"规格图片"
)
private
String
specImage
;
@ApiModelProperty
(
value
=
"规格图片"
)
private
String
specImage
;
@ApiModelProperty
(
value
=
"料号"
)
private
String
partNo
;
@ApiModelProperty
(
value
=
"料号"
)
private
String
partNo
;
@ApiModelProperty
(
value
=
"版本描述"
)
private
String
versionDesc
;
@ApiModelProperty
(
value
=
"版本描述"
)
private
String
versionDesc
;
@ApiModelProperty
(
value
=
"创建时间"
)
private
Date
createTime
;
@ApiModelProperty
(
value
=
"价格配置"
)
private
List
<
ProductSpecPriceDTO
>
priceList
;
@ApiModelProperty
(
value
=
"创建时间"
)
private
Date
createTime
;
}
src/main/java/com/mmc/pms/model/dto/ProductSpecPriceDTO.java
浏览文件 @
aeb6b386
...
...
@@ -18,18 +18,18 @@ import java.util.Date;
@AllArgsConstructor
@Builder
public
class
ProductSpecPriceDTO
implements
Serializable
{
@ApiModelProperty
(
value
=
"id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"规格
id"
)
private
Integer
productSpecId
;
@ApiModelProperty
(
value
=
"等级标签
id"
)
private
Integer
cooperationTag
;
@ApiModelProperty
(
value
=
"等级标签id
"
)
private
Integer
tagInfoId
;
@ApiModelProperty
(
value
=
"价格
"
)
private
BigDecimal
price
;
@ApiModelProperty
(
value
=
"价格
"
)
private
BigDecimal
pric
e
;
@ApiModelProperty
(
value
=
"创建时间
"
)
private
Date
createTim
e
;
@ApiModelProperty
(
value
=
"创建时间
"
)
private
Date
createTime
;
@ApiModelProperty
(
value
=
"租赁期限 (0:1-7天,1:8-15天,2:16-30天,3:30天以上)
"
)
private
Integer
leaseTerm
;
}
src/main/java/com/mmc/pms/model/dto/ProductSpecVO.java
浏览文件 @
aeb6b386
package
com
.
mmc
.
pms
.
model
.
dto
;
import
com.mmc.pms.model.vo.Create
;
import
com.mmc.pms.model.vo.ProductSpecCPQVO
;
import
com.mmc.pms.model.vo.Update
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
...
...
@@ -20,41 +19,27 @@ import java.io.Serializable;
@AllArgsConstructor
@Accessors
(
chain
=
true
)
public
class
ProductSpecVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
2681122778843398310L
;
@ApiModelProperty
(
value
=
"id"
)
@NotNull
(
message
=
"修改时id不能为空"
,
groups
=
{
Update
.
class
})
private
Integer
id
;
@ApiModelProperty
(
value
=
"productSkuId"
)
@NotNull
(
message
=
"修改时productSkuId不能为空"
,
groups
=
{
Create
.
class
})
private
Integer
productSkuId
;
@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
String
partNo
;
@ApiModelProperty
(
value
=
"版本描述"
)
private
String
versionDesc
;
@ApiModelProperty
(
value
=
"价格配置信息"
)
private
ProductSpecCPQVO
productSpecCPQVO
;
private
static
final
long
serialVersionUID
=
-
2681122778843398310L
;
@ApiModelProperty
(
value
=
"id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"productSkuId"
)
@NotNull
(
message
=
"修改时productSkuId不能为空"
,
groups
=
{
Create
.
class
})
private
Integer
productSkuId
;
@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
String
partNo
;
@ApiModelProperty
(
value
=
"版本描述"
)
private
String
versionDesc
;
}
src/main/java/com/mmc/pms/model/qo/ProductSkuQO.java
0 → 100644
浏览文件 @
aeb6b386
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
ProductSkuQO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
7548828456935084794L
;
@ApiModelProperty
(
value
=
"产品名称"
)
private
String
productName
;
@ApiModelProperty
(
value
=
"产品类型"
)
private
Integer
categoryId
;
@ApiModelProperty
(
value
=
"产品目录"
)
private
Integer
directoryId
;
@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/GoodsProductSkuVO.java
0 → 100644
浏览文件 @
aeb6b386
package
com
.
mmc
.
pms
.
model
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* @Author LW
* @date 2022/9/23 10:33
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
GoodsProductSkuVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
2681122778843398310L
;
@ApiModelProperty
(
value
=
"id"
)
@NotNull
(
message
=
"修改时id不能为空"
,
groups
=
{
Update
.
class
})
private
Integer
id
;
@NotNull
(
message
=
"产品名称不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
@ApiModelProperty
(
value
=
"产品名称"
)
private
String
productName
;
@NotNull
(
message
=
"产品类型不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
@ApiModelProperty
(
value
=
"产品类型"
)
private
Integer
goodsTypeId
;
@ApiModelProperty
(
value
=
"型号"
)
private
String
model
;
@ApiModelProperty
(
value
=
"产品品牌"
)
private
String
productBrand
;
@ApiModelProperty
(
value
=
"品牌id"
)
private
Integer
productBrandId
;
@ApiModelProperty
(
value
=
"目录id"
)
private
Integer
directoryId
;
}
src/main/java/com/mmc/pms/model/vo/ProductSpecCPQVO.java
浏览文件 @
aeb6b386
...
...
@@ -15,11 +15,14 @@ import java.util.List;
@NoArgsConstructor
@AllArgsConstructor
public
class
ProductSpecCPQVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
6055658459871113781L
;
private
static
final
long
serialVersionUID
=
6055658459871113781L
;
@ApiModelProperty
(
value
=
"产品规格id"
)
private
Integer
productSpecId
;
@ApiModelProperty
(
value
=
"规格价格配置VO"
)
private
List
<
SpecPriceVO
>
specPrice
;
@ApiModelProperty
(
value
=
"产品规格id"
)
private
Integer
productSpecId
;
@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/vo/SpecPriceVO.java
浏览文件 @
aeb6b386
...
...
@@ -14,8 +14,8 @@ import java.math.BigDecimal;
@NoArgsConstructor
@AllArgsConstructor
public
class
SpecPriceVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
8976672168410262190L
;
private
Integer
id
;
private
Integer
tagInfoId
;
private
BigDecimal
price
;
private
static
final
long
serialVersionUID
=
-
8976672168410262190L
;
private
Integer
id
;
private
Integer
cooperationTag
;
private
BigDecimal
price
;
}
src/main/java/com/mmc/pms/service/BrandManageService.java
0 → 100644
浏览文件 @
aeb6b386
package
com
.
mmc
.
pms
.
service
;
import
com.mmc.pms.common.ResultBody
;
import
com.mmc.pms.page.PageResult
;
/**
* @Author LW
* @date 2023/3/14 13:26
* 概要:
*/
public
interface
BrandManageService
{
/**
* 添加品牌信息
*
* @param brandName 品牌名称
* @return {@link ResultBody}
*/
ResultBody
addBrandInfo
(
String
brandName
);
/**
* 品牌列表信息
*
* @param pageNo 页面没有
* @param pageSize 页面大小
* @return {@link PageResult}
*/
PageResult
listBrandInfo
(
Integer
pageNo
,
Integer
pageSize
);
// /**
// * 删除品牌信息
// *
// * @param id id
// * @return {@link ResultBody}
// */
// ResultBody deleteBrandInfo(Integer id);
/**
* 编辑品牌信息
*
* @param id id
* @param name 名字
* @return {@link ResultBody}
*/
ResultBody
editBrandInfo
(
Integer
id
,
String
name
);
}
src/main/java/com/mmc/pms/service/Impl/BrandManageServiceImpl.java
0 → 100644
浏览文件 @
aeb6b386
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.entity.BrandInfoDO
;
import
com.mmc.pms.model.dto.BrandInfoDTO
;
import
com.mmc.pms.page.PageResult
;
import
com.mmc.pms.service.BrandManageService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* @Author LW
* @date 2023/3/14 13:27
* 概要:
*/
@Service
public
class
BrandManageServiceImpl
implements
BrandManageService
{
@Autowired
private
BrandManageDao
brandManageDao
;
/**
* 添加品牌信息
*
* @param brandName 品牌名称
* @return {@link ResultBody}
*/
@Override
public
ResultBody
addBrandInfo
(
String
brandName
)
{
// 根据品牌名称判断是否存在
int
count
=
brandManageDao
.
countBrandInfoByName
(
null
,
brandName
);
if
(
count
>
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_CATEGORY_NAME_EXIST_ERROR
);
}
BrandInfoDO
brandInfoDO
=
new
BrandInfoDO
(
brandName
);
brandManageDao
.
insertBrandInfo
(
brandInfoDO
);
return
ResultBody
.
success
();
}
/**
* 品牌列表信息
*
* @return {@link ResultBody}
*/
@Override
public
PageResult
listBrandInfo
(
Integer
pageNo
,
Integer
pageSize
)
{
int
count
=
brandManageDao
.
countBrandInfo
();
if
(
count
==
0
)
{
return
PageResult
.
buildPage
(
pageNo
,
pageSize
,
0
);
}
int
itemIndex
=
(
pageNo
-
1
)
*
pageSize
;
List
<
BrandInfoDO
>
brandInfo
=
brandManageDao
.
listBrandInfo
(
itemIndex
,
pageSize
);
List
<
BrandInfoDTO
>
brandInfoList
=
brandInfo
.
stream
()
.
map
(
BrandInfoDO:
:
buildBrandInfoDTO
)
.
collect
(
Collectors
.
toList
());
return
PageResult
.
buildPage
(
pageNo
,
pageSize
,
count
,
brandInfoList
);
}
// /**
// * 删除品牌信息
// *
// * @param id id
// * @return {@link ResultBody}
// */
// @Override
// public ResultBody deleteBrandInfo(Integer id) {
// // 判断该品牌是否绑定产品信息
// int count = productSpecDao.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
)
{
// 根据品牌名称判断是否存在
int
count
=
brandManageDao
.
countBrandInfoByName
(
id
,
brandName
);
if
(
count
>
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_CATEGORY_NAME_EXIST_ERROR
);
}
BrandInfoDO
brandInfoDO
=
new
BrandInfoDO
(
brandName
);
brandInfoDO
.
setId
(
id
);
brandManageDao
.
updateBrandInfo
(
brandInfoDO
);
return
ResultBody
.
success
();
}
}
src/main/java/com/mmc/pms/service/Impl/MiniProgramProductMallServiceImpl.java
浏览文件 @
aeb6b386
差异被折叠。
点击展开。
src/main/java/com/mmc/pms/service/Impl/ProductSkuServiceImpl.java
0 → 100644
浏览文件 @
aeb6b386
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.model.dto.*
;
import
com.mmc.pms.model.qo.ProductSkuQO
;
import
com.mmc.pms.model.vo.ProductSpecCPQVO
;
import
com.mmc.pms.page.PageResult
;
import
com.mmc.pms.service.ProductSkuService
;
import
org.jetbrains.annotations.NotNull
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* @author 23214
* @description 针对表【product_sku(产品sku表)】的数据库操作Service实现
* @createDate 2023-05-25 14:55:56
*/
@Service
public
class
ProductSkuServiceImpl
implements
ProductSkuService
{
@Autowired
private
ProductSkuDao
productSkuDao
;
@Override
public
ResultBody
addProductSku
(
ProductSkuVO
param
)
{
// 获取名称判断此前是否已经存在
int
count
=
productSkuDao
.
countSkuName
(
param
);
if
(
count
>
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_CATEGORY_NAME_EXIST_ERROR
);
}
ProductSkuDO
productSkuDO
=
new
ProductSkuDO
(
param
);
// 新增产品sku
int
status
=
productSkuDao
.
insertProductSku
(
productSkuDO
);
if
(
status
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
FAILED_TO_ADD_DATA
);
}
return
ResultBody
.
success
();
}
@Override
public
ResultBody
getProductSkuDetail
(
Integer
id
)
{
// 校验此sku是否还存在或已删除
int
count
=
productSkuDao
.
countSkuIsExist
(
id
);
if
(
count
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
SKU_DOES_NOT_EXIST_OR_HAS_BEEN_DELETED
);
}
ProductSkuDO
productSkuDO
=
productSkuDao
.
getProductSkuDetail
(
id
);
return
ResultBody
.
success
(
productSkuDO
.
buildProductSkuDTO
());
}
@Override
public
ResultBody
editProductSku
(
ProductSkuVO
param
)
{
// 获取名称判断此前是否已经存在
int
count
=
productSkuDao
.
countSkuName
(
param
);
if
(
count
>
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
GOODS_CATEGORY_NAME_EXIST_ERROR
);
}
ProductSkuDO
productSkuDO
=
new
ProductSkuDO
(
param
);
int
status
=
productSkuDao
.
updateProductSku
(
productSkuDO
);
if
(
status
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
FAILED_TO_EDIT_DATA
);
}
return
ResultBody
.
success
();
}
@Override
public
ResultBody
listPageProductSku
(
ProductSkuQO
productSkuQO
)
{
int
count
=
productSkuDao
.
countListPageProductSku
(
productSkuQO
);
if
(
count
==
0
)
{
return
ResultBody
.
success
(
PageResult
.
buildPage
(
productSkuQO
.
getPageNo
(),
productSkuQO
.
getPageSize
(),
count
));
}
Integer
pageNo
=
productSkuQO
.
getPageNo
();
productSkuQO
.
buildCurrentPage
();
List
<
ProductSkuDO
>
productSkuList
=
productSkuDao
.
listPageProductSku
(
productSkuQO
);
List
<
ProductSkuDTO
>
list
=
productSkuList
.
stream
().
map
(
ProductSkuDO:
:
buildProductSkuDTO
).
collect
(
Collectors
.
toList
());
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
productSkuQO
.
getPageSize
(),
count
,
list
));
}
@Override
public
ResultBody
addOrEditProductSpec
(
ProductSpecVO
param
)
{
// 获取名称判断此前是否已经存在
int
count
=
productSkuDao
.
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
=
productSkuDao
.
insertProductSpec
(
productSpecDO
);
if
(
status
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
FAILED_TO_ADD_DATA
);
}
}
else
{
ProductSpecDO
productSpecDO
=
new
ProductSpecDO
(
param
);
int
status
=
productSkuDao
.
updateProductSpec
(
productSpecDO
);
if
(
status
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
FAILED_TO_EDIT_DATA
);
}
}
return
ResultBody
.
success
();
}
@Override
public
ResultBody
getProductSpecDetail
(
Integer
id
)
{
// 校验此sku是否还存在或已删除
int
count
=
productSkuDao
.
countSpecIsExist
(
id
);
if
(
count
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
SPEC_DOES_NOT_EXIST_OR_HAS_BEEN_DELETED
);
}
ProductSpecDO
productSpecDO
=
productSkuDao
.
getProductSpecDetail
(
id
);
return
ResultBody
.
success
(
productSpecDO
.
buildProductSpecDTO
());
}
@Override
public
ResultBody
listPageProductSpec
(
Integer
pageNo
,
Integer
pageSize
,
Integer
productSkuId
)
{
int
count
=
productSkuDao
.
countListPageProductSpec
(
productSkuId
);
if
(
count
==
0
)
{
return
ResultBody
.
success
(
PageResult
.
buildPage
(
pageNo
,
pageSize
,
count
));
}
List
<
ProductSpecDO
>
productSpecList
=
productSkuDao
.
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
));
}
@Override
public
ResultBody
productSpecCPQ
(
ProductSpecCPQVO
productSpecCPQVO
)
{
// 判断该规格是否存在
int
count
=
productSkuDao
.
countSpecIsExist
(
productSpecCPQVO
.
getProductSpecId
());
if
(
count
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
SPEC_DOES_NOT_EXIST_OR_HAS_BEEN_DELETED
);
}
// 批量插入规格销售或租赁价格
return
insertSpecPrice
(
productSpecCPQVO
);
}
@Override
public
List
<
ProductSpecPriceDO
>
getProductSpecPriceDOS
(
ProductSpecCPQVO
productSpecCPQVO
)
{
// 批量插入规格价格
return
productSpecCPQVO
.
getSpecPrice
().
stream
().
map
(
d
->
{
ProductSpecPriceDO
productSpecPriceDO
=
new
ProductSpecPriceDO
();
productSpecPriceDO
.
setCooperationTag
(
d
.
getCooperationTag
());
productSpecPriceDO
.
setPrice
(
d
.
getPrice
());
productSpecPriceDO
.
setType
(
productSpecCPQVO
.
getType
());
productSpecPriceDO
.
setProductSpecId
(
productSpecCPQVO
.
getProductSpecId
());
if
(
productSpecCPQVO
.
getType
().
equals
(
1
))
{
productSpecPriceDO
.
setLeaseTerm
(
productSpecCPQVO
.
getLeaseTerm
());
}
return
productSpecPriceDO
;
}).
collect
(
Collectors
.
toList
());
}
@Override
public
ResultBody
updateProductSpecCPQ
(
ProductSpecCPQVO
productSpecCPQVO
)
{
// 先删除原来该规格下的所有价格配置信息
productSkuDao
.
removeProductSpecCPQ
(
productSpecCPQVO
);
// 批量插入规格销售或租赁价格
return
insertSpecPrice
(
productSpecCPQVO
);
}
@NotNull
private
ResultBody
insertSpecPrice
(
ProductSpecCPQVO
productSpecCPQVO
)
{
List
<
ProductSpecPriceDO
>
list
=
getProductSpecPriceDOS
(
productSpecCPQVO
);
// 批量插入规格销售价格
if
(
productSpecCPQVO
.
getType
().
equals
(
0
))
{
int
status
=
productSkuDao
.
batchInsertSpecPrice
(
list
);
if
(
status
<=
0
)
{
return
ResultBody
.
error
(
ResultEnum
.
FAILED_TO_ADD_DATA
);
}
}
else
{
// 批量插入租赁价格
productSkuDao
.
batchInsertLeaseSpecPrice
(
list
);
}
return
ResultBody
.
success
();
}
@Override
public
ResultBody
getProductSpecCPQ
(
ProductSpecCPQVO
productSpecCPQVO
)
{
if
(
productSpecCPQVO
.
getType
().
equals
(
1
)
&&
productSpecCPQVO
.
getLeaseTerm
()
==
null
)
{
return
ResultBody
.
error
(
"租赁期限不能为空!"
);
}
List
<
ProductSpecPriceDO
>
productSpecPriceList
=
productSkuDao
.
getProductSpecPrice
(
productSpecCPQVO
);
List
<
ProductSpecPriceDTO
>
list
=
productSpecPriceList
.
stream
()
.
map
(
ProductSpecPriceDO:
:
buildProductSpecPriceDTO
).
collect
(
Collectors
.
toList
());
return
ResultBody
.
success
(
list
);
}
}
src/main/java/com/mmc/pms/service/ProductSkuService.java
0 → 100644
浏览文件 @
aeb6b386
package
com
.
mmc
.
pms
.
service
;
import
com.mmc.pms.common.ResultBody
;
import
com.mmc.pms.entity.ProductSpecPriceDO
;
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
java.util.List
;
/**
* @author 23214
* @description 针对表【product_sku(产品sku表)】的数据库操作Service
* @createDate 2023-05-25 14:55:56
*/
public
interface
ProductSkuService
{
ResultBody
addProductSku
(
ProductSkuVO
param
);
ResultBody
getProductSkuDetail
(
Integer
id
);
ResultBody
editProductSku
(
ProductSkuVO
param
);
ResultBody
listPageProductSku
(
ProductSkuQO
productSkuQO
);
ResultBody
addOrEditProductSpec
(
ProductSpecVO
param
);
ResultBody
getProductSpecDetail
(
Integer
id
);
ResultBody
listPageProductSpec
(
Integer
pageNo
,
Integer
pageSize
,
Integer
productSkuId
);
ResultBody
productSpecCPQ
(
ProductSpecCPQVO
productSpecCPQVO
);
List
<
ProductSpecPriceDO
>
getProductSpecPriceDOS
(
ProductSpecCPQVO
productSpecCPQVO
);
ResultBody
updateProductSpecCPQ
(
ProductSpecCPQVO
productSpecCPQVO
);
ResultBody
getProductSpecCPQ
(
ProductSpecCPQVO
productSpecCPQVO
);
}
src/main/resources/application-local.yml
浏览文件 @
aeb6b386
...
...
@@ -13,6 +13,18 @@ spring:
jedis
:
pool
:
max-active
:
2
#mybatis-plus
mybatis-plus
:
global-config
:
db-config
:
id-type
:
auto
type-aliases-package
:
com.mmc.pms
mapper-locations
:
classpath*:mapper/**/*Dao.xml
configuration
:
# 开启 "_" 转大写的驼峰功能
map-underscore-to-camel-case
:
true
# mybatis日志
log-impl
:
org.apache.ibatis.logging.stdout.StdOutImpl
springfox
:
documentation
:
...
...
src/main/resources/mapper/BrandManageDao.xml
0 → 100644
浏览文件 @
aeb6b386
<?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.BrandManageDao"
>
<insert
id=
"insertBrandInfo"
>
insert into brand_info (brand_name)
values (#{brandName});
</insert>
<update
id=
"removeBrandInfoById"
>
update brand_info
set is_delete = 1
where id = #{id}
</update>
<update
id=
"updateBrandInfo"
>
update brand_info
set brand_name = #{brandName}
where id = #{id}
</update>
<select
id=
"countBrandInfoByName"
resultType=
"java.lang.Integer"
>
select count(*)
from brand_info
where brand_name = #{brandName}
<if
test=
"id!=null and id!=''"
>
and id
<![CDATA[<>]]>
#{id}
</if>
</select>
<select
id=
"listBrandInfo"
resultType=
"com.mmc.pms.entity.BrandInfoDO"
>
select id, brand_name, create_time
from brand_info
where is_delete = 0
order by create_time desc
limit #{itemIndex}, #{pageSize}
</select>
<select
id=
"listBrandInfoByIds"
resultType=
"com.mmc.pms.entity.BrandInfoDO"
>
select id,brand_name
from brand_info
where id in(
<foreach
collection=
"ids"
separator=
","
index=
"index"
item=
"item"
>
#{item}
</foreach>
)
</select>
<select
id=
"countBrandInfo"
resultType=
"java.lang.Integer"
>
select count(*)
from brand_info
where is_delete = 0
</select>
</mapper>
\ No newline at end of file
src/main/resources/mapper/ProductSkuDao.xml
0 → 100644
浏览文件 @
aeb6b386
<?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.ProductSkuDao"
>
<insert
id=
"insertProductSku"
>
insert into product_sku (product_name, categories_id, model, brand_info_id, directory_id)
values (#{productName}, #{categoriesId}, #{model}, #{brandInfoId}, #{directoryId})
</insert>
<insert
id=
"insertProductSpec"
>
insert into product_spec (product_sku_id, spec_name, spec_image, part_no, version_desc)
values (#{productSkuId}, #{specName}, #{specImage}, #{partNo}, #{versionDesc})
</insert>
<insert
id=
"batchInsertSpecPrice"
useGeneratedKeys=
"true"
keyProperty=
"id"
parameterType=
"com.mmc.pms.entity.ProductSpecPriceDO"
>
insert into product_spec_price (product_spec_id,cooperation_tag,price,`type`)
values
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(#{item.productSpecId},#{item.cooperationTag},#{item.price},#{item.type})
</foreach>
</insert>
<insert
id=
"batchInsertLeaseSpecPrice"
>
insert into product_spec_price (product_spec_id,cooperation_tag,price,`type`,lease_term)
values
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(#{item.productSpecId},#{item.cooperationTag},#{item.price},#{item.type},#{item.leaseTerm})
</foreach>
</insert>
<update
id=
"updateProductSku"
>
update product_sku
set product_name = #{productName},
categories_id = #{categoriesId},
model = #{model},
brand_info_id = #{brandInfoId},
where id = #{id}
</update>
<update
id=
"updateProductSpec"
>
update product_spec
set spec_name = #{specName},
spec_image = #{specImage},
part_no = #{partNo},
version_desc = #{versionDesc},
product_sku_id = #{productSkuId}
where id = #{id}
</update>
<delete
id=
"removeProductSpecCPQ"
>
DELETE
FROM product_spec_price
WHERE product_spec_id = #{id}
and `type` = #{type}
</delete>
<select
id=
"countSkuName"
resultType=
"java.lang.Integer"
>
select count(*) from product_sku
where product_name = #{productName} and is_deleted = 0
<if
test=
"id !=null and id !=''"
>
and id
<![CDATA[<>]]>
#{id}
</if>
</select>
<select
id=
"countSkuIsExist"
resultType=
"java.lang.Integer"
>
select count(*)
from product_sku
where id = #{id}
and is_deleted = 0
</select>
<select
id=
"getProductSkuDetail"
resultType=
"com.mmc.pms.entity.ProductSkuDO"
>
SELECT ps.id,
ps.product_name,
ps.model,
ps.create_time,
c.`name` categoryName,
d.directory_name directoryName,
bi.brand_name brandName
FROM product_sku 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
<where>
is_deleted = 0
and customize
<![CDATA[<>]]>
1
<if
test=
"productName != null and productName !=''"
>
and product_name like CONCAT ('%',#{productName},'%')
</if>
<if
test=
"categoryId != null"
>
and categories = #{categoryId}
</if>
<if
test=
"directoryId != null"
>
and directory_id = #{directoryId}
</if>
</where>
</select>
<select
id=
"listPageProductSku"
resultType=
"com.mmc.pms.entity.ProductSkuDO"
>
SELECT
SELECT
ps.id,
ps.product_name,
ps.model,
ps.create_time,
ps.brand_info_id,
ps.categories_id,
ps.directory_id,
c.`name` categoryName,
d.directory_name directoryName,
bi.brand_name brandName
FROM
product_sku 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.is_deleted = 0
and is_customize
<![CDATA[<>]]>
1
<if
test=
"productName != null and productName != ''"
>
and ps.product_name like CONCAT ('%',#{productName},'%')
</if>
<if
test=
"categoryId != null"
>
and ps.categories_id = #{categoryId}
</if>
<if
test=
"directoryId != null"
>
and ps.directory_id = #{directoryId}
</if>
</where>
order by ps.create_time desc
limit #{pageNo},#{pageSize}
</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}
<if
test=
"id !=null and id !=''"
>
and id
<![CDATA[<>]]>
#{id}
</if>
</select>
<select
id=
"countSpecIsExist"
resultType=
"java.lang.Integer"
>
select count(*)
from product_spec
where id = #{id}
and is_deleted = 0
</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
from product_spec
where id = #{id}
</select>
<select
id=
"countListPageProductSpec"
resultType=
"java.lang.Integer"
>
select count(*)
from product_spec
where is_deleted = 0
and product_sku_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
from product_spec
where is_deleted = 0
and product_sku_id = #{productSkuId}
order by create_time desc
limit #{pageNo}, #{pageSize}
</select>
<select
id=
"getProductSpecPrice"
resultType=
"com.mmc.pms.entity.ProductSpecPriceDO"
>
select id,
product_spec_id productSpecId,
cooperation_tag cooperationTag,
price,
create_time createTime,
lease_term
from product_spec_price
<where>
product_spec_id = #{productSpecId}
and `type` =#{type}
<if
test=
"leaseTerm != null"
>
and lease_term = #{leaseTerm}
</if>
</where>
</select>
</mapper>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论