Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
pms-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
pms-ci-test
Commits
10bab0e5
提交
10bab0e5
authored
8月 08, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改:新增商品
上级
bc79af2b
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
241 行增加
和
15 行删除
+241
-15
MallGoodsController.java
...java/com/mmc/pms/controller/mall/MallGoodsController.java
+3
-1
MallGoodsDao.java
src/main/java/com/mmc/pms/dao/mall/MallGoodsDao.java
+5
-4
PriceStockDO.java
src/main/java/com/mmc/pms/entity/mall/PriceStockDO.java
+68
-0
SpecAttrDO.java
src/main/java/com/mmc/pms/entity/mall/SpecAttrDO.java
+40
-0
MallGoodsVO.java
src/main/java/com/mmc/pms/model/mall/MallGoodsVO.java
+8
-1
PriceStockVO.java
src/main/java/com/mmc/pms/model/mall/PriceStockVO.java
+45
-0
SpecAttrVO.java
src/main/java/com/mmc/pms/model/mall/SpecAttrVO.java
+27
-0
MallGoodsServiceImpl.java
...a/com/mmc/pms/service/mall/impl/MallGoodsServiceImpl.java
+21
-9
MallGoodsDao.xml
src/main/resources/mapper/mall/MallGoodsDao.xml
+24
-0
没有找到文件。
src/main/java/com/mmc/pms/controller/mall/MallGoodsController.java
浏览文件 @
10bab0e5
...
...
@@ -2,11 +2,13 @@ package com.mmc.pms.controller.mall;
import
com.mmc.pms.common.ResultBody
;
import
com.mmc.pms.controller.BaseController
;
import
com.mmc.pms.model.group.Insert
;
import
com.mmc.pms.model.mall.MallGoodsVO
;
import
com.mmc.pms.model.sale.dto.SkuUnitDTO
;
import
com.mmc.pms.model.sale.qo.MallGoodsInfoQO
;
import
com.mmc.pms.service.mall.MallGoodsService
;
import
io.swagger.annotations.*
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
...
...
@@ -26,7 +28,7 @@ public class MallGoodsController extends BaseController {
@ApiOperation
(
value
=
"新增商城商品"
)
@PostMapping
(
"addMallGoods"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
ResultBody
.
class
)})
public
ResultBody
addMallGoods
(
@RequestBody
MallGoodsVO
mallGoodsVO
,
HttpServletRequest
request
)
{
public
ResultBody
addMallGoods
(
@
Validated
(
value
=
{
Insert
.
class
})
@
RequestBody
MallGoodsVO
mallGoodsVO
,
HttpServletRequest
request
)
{
return
mallGoodsService
.
addMallGoods
(
mallGoodsVO
,
this
.
getUserLoginInfoFromRedis
(
request
).
getUserAccountId
());
}
...
...
src/main/java/com/mmc/pms/dao/mall/MallGoodsDao.java
浏览文件 @
10bab0e5
package
com
.
mmc
.
pms
.
dao
.
mall
;
import
com.mmc.pms.entity.SkuUnitDO
;
import
com.mmc.pms.entity.mall.GoodsSpecDO
;
import
com.mmc.pms.entity.mall.GoodsSpecValuesDO
;
import
com.mmc.pms.entity.mall.MallGoodsDO
;
import
com.mmc.pms.entity.mall.MallGoodsResourcesDO
;
import
com.mmc.pms.entity.mall.*
;
import
com.mmc.pms.model.mall.MallGoodsVO
;
import
com.mmc.pms.model.sale.qo.MallGoodsInfoQO
;
import
org.apache.ibatis.annotations.Mapper
;
...
...
@@ -63,4 +60,8 @@ public interface MallGoodsDao {
void
removeMallGoods
(
Integer
id
);
void
feignRemoveGoodsByBackUserAccountId
(
Integer
id
);
void
batchInsertSpecAttr
(
List
<
SpecAttrDO
>
list
);
void
batchInsertPriceStock
(
List
<
PriceStockDO
>
list
);
}
src/main/java/com/mmc/pms/entity/mall/PriceStockDO.java
0 → 100644
浏览文件 @
10bab0e5
package
com
.
mmc
.
pms
.
entity
.
mall
;
import
com.mmc.pms.model.mall.PriceStockVO
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* 价格库存表(PriceStockDO)实体类
*
* @author makejava
* @since 2023-08-08 14:31:09
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
PriceStockDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
64740182455155279L
;
private
Integer
id
;
/**
* 商品id
*/
private
Integer
mallGoodsId
;
/**
* 商品规格
*/
private
String
productSpec
;
/**
* 销售价格
*/
private
BigDecimal
salePrice
;
/**
* sku图片
*/
private
String
skuImage
;
/**
* 渠道价格
*/
private
BigDecimal
channelPrice
;
/**
* 库存
*/
private
Integer
stock
;
/**
* sku编码
*/
private
String
skuNo
;
private
Date
createTime
;
private
Date
updateTime
;
public
PriceStockDO
(
PriceStockVO
param
,
Integer
id
)
{
this
.
mallGoodsId
=
id
;
this
.
productSpec
=
param
.
getProductSpec
();
this
.
salePrice
=
param
.
getSalePrice
();
this
.
skuImage
=
param
.
getSkuImage
();
this
.
channelPrice
=
param
.
getChannelPrice
();
this
.
stock
=
param
.
getStock
();
this
.
skuNo
=
param
.
getSkuNo
();
}
}
src/main/java/com/mmc/pms/entity/mall/SpecAttrDO.java
0 → 100644
浏览文件 @
10bab0e5
package
com
.
mmc
.
pms
.
entity
.
mall
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 规格属性表(SpecAttrDO)实体类
*
* @author makejava
* @since 2023-08-08 14:30:03
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
SpecAttrDO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
59237014539007263L
;
private
Integer
id
;
/**
* 商品id
*/
private
Integer
mallGoodsId
;
/**
* 规格名称
*/
private
String
specName
;
/**
* 规格值名称
*/
private
String
specValueName
;
private
Date
createTime
;
private
Date
updateTime
;
}
src/main/java/com/mmc/pms/model/mall/MallGoodsVO.java
浏览文件 @
10bab0e5
...
...
@@ -59,9 +59,16 @@ public class MallGoodsVO {
private
Integer
labelShow
;
@ApiModelProperty
(
value
=
"规格"
)
@NotEmpty
(
message
=
"规格不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
}
)
@NotEmpty
(
message
=
"规格不能为空"
)
private
List
<
GoodsSpecVO
>
goodsSpecList
;
@ApiModelProperty
(
value
=
"规格"
)
@NotEmpty
(
message
=
"规格不能为空"
,
groups
=
{
Update
.
class
,
Create
.
class
})
private
List
<
SpecAttrVO
>
specAttrList
;
@ApiModelProperty
(
value
=
"价格库存排列组合表信息"
)
private
List
<
PriceStockVO
>
priceStock
;
@ApiModelProperty
(
value
=
"商品详情 富文本"
)
private
String
goodsDetails
;
...
...
src/main/java/com/mmc/pms/model/mall/PriceStockVO.java
0 → 100644
浏览文件 @
10bab0e5
package
com
.
mmc
.
pms
.
model
.
mall
;
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
;
/**
* @Author LW
* @date 2023/8/8 10:48
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
PriceStockVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1011141620995647903L
;
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"商品规格"
,
example
=
"示例:{\"颜色\":\"蓝色\",\"尺寸\":\"1寸\",\"大小\":\"小\"} 或 [\"颜色\":\"蓝色\",\"尺寸\":\"1寸\",\"大小\":\"小\"] 或 你怎么方便怎么来"
)
private
String
productSpec
;
@ApiModelProperty
(
value
=
"销售价格"
,
example
=
"1"
)
private
BigDecimal
salePrice
;
@ApiModelProperty
(
value
=
"sku图片"
,
example
=
"https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/file/35bbd044-7cd7-4c85-ba27-69776e03dbb2.jpg"
)
private
String
skuImage
;
@ApiModelProperty
(
value
=
"渠道价格"
,
example
=
"1"
)
private
BigDecimal
channelPrice
;
@ApiModelProperty
(
value
=
"库存"
,
example
=
"10"
)
private
Integer
stock
;
@ApiModelProperty
(
value
=
"sku编号"
,
example
=
"mmc-da-s-b"
)
private
String
skuNo
;
}
src/main/java/com/mmc/pms/model/mall/SpecAttrVO.java
0 → 100644
浏览文件 @
10bab0e5
package
com
.
mmc
.
pms
.
model
.
mall
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
* @Author LW
* @date 2023/7/24 20:16
* 概要:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public
class
SpecAttrVO
{
@ApiModelProperty
(
value
=
"id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"规格名称"
,
example
=
"规格名称"
,
required
=
true
)
private
String
specName
;
@ApiModelProperty
(
value
=
"规格值信息"
,
required
=
true
)
private
List
<
SpecAttrVO
>
specValuesList
;
}
src/main/java/com/mmc/pms/service/mall/impl/MallGoodsServiceImpl.java
浏览文件 @
10bab0e5
...
...
@@ -5,14 +5,8 @@ import com.mmc.pms.common.ResultBody;
import
com.mmc.pms.common.ResultEnum
;
import
com.mmc.pms.dao.mall.MallGoodsDao
;
import
com.mmc.pms.entity.SkuUnitDO
;
import
com.mmc.pms.entity.mall.GoodsSpecDO
;
import
com.mmc.pms.entity.mall.GoodsSpecValuesDO
;
import
com.mmc.pms.entity.mall.MallGoodsDO
;
import
com.mmc.pms.entity.mall.MallGoodsResourcesDO
;
import
com.mmc.pms.model.mall.GoodsResourcesVO
;
import
com.mmc.pms.model.mall.GoodsSpecVO
;
import
com.mmc.pms.model.mall.GoodsSpecValuesVO
;
import
com.mmc.pms.model.mall.MallGoodsVO
;
import
com.mmc.pms.entity.mall.*
;
import
com.mmc.pms.model.mall.*
;
import
com.mmc.pms.model.sale.dto.SkuUnitDTO
;
import
com.mmc.pms.model.sale.qo.MallGoodsInfoQO
;
import
com.mmc.pms.page.PageResult
;
...
...
@@ -55,11 +49,29 @@ public class MallGoodsServiceImpl implements MallGoodsService {
// 将商品图片等资源存入数据库中
insertMallGoodsResources
(
mallGoodsVO
,
mallGoodsDO
.
getId
());
// 将商品规格存入数据库
insertMallGoodsSpec
(
mallGoodsVO
.
getGoodsSpecList
(),
mallGoodsDO
.
getId
());
// insertMallGoodsSpec(mallGoodsVO.getGoodsSpecList(), mallGoodsDO.getId());
addMallGoodsSpec
(
mallGoodsVO
.
getSpecAttrList
(),
mallGoodsDO
.
getId
(),
mallGoodsVO
.
getPriceStock
());
return
ResultBody
.
success
();
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
addMallGoodsSpec
(
List
<
SpecAttrVO
>
specAttrList
,
Integer
id
,
List
<
PriceStockVO
>
priceStock
)
{
List
<
SpecAttrDO
>
list
=
specAttrList
.
stream
()
.
flatMap
(
specAttrVO
->
specAttrVO
.
getSpecValuesList
().
stream
()
.
map
(
attrVO
->
{
SpecAttrDO
specAttrDO
=
new
SpecAttrDO
();
specAttrDO
.
setMallGoodsId
(
id
);
specAttrDO
.
setSpecName
(
specAttrVO
.
getSpecName
());
specAttrDO
.
setSpecValueName
(
attrVO
.
getSpecName
());
return
specAttrDO
;
}))
.
collect
(
Collectors
.
toList
());
mallGoodsDao
.
batchInsertSpecAttr
(
list
);
List
<
PriceStockDO
>
priceStockDOList
=
priceStock
.
stream
().
map
(
d
->
new
PriceStockDO
(
d
,
id
)).
collect
(
Collectors
.
toList
());
mallGoodsDao
.
batchInsertPriceStock
(
priceStockDOList
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
insertMallGoodsSpec
(
List
<
GoodsSpecVO
>
goodsSpecList
,
Integer
id
)
{
// 获取输入的规格信息
for
(
GoodsSpecVO
goodsSpecVO
:
goodsSpecList
)
{
...
...
src/main/resources/mapper/mall/MallGoodsDao.xml
浏览文件 @
10bab0e5
...
...
@@ -28,6 +28,7 @@
sku_unit_id)
values (#{mallGoodsId}, #{specName}, #{chooseType}, #{must}, #{skuUnitId})
</insert>
<!-- 新版待删除 -->
<insert
id=
"batchInsertSpecValues"
parameterType=
"list"
>
insert into goods_spec_values (goods_spec_id,
spec_value_name,
...
...
@@ -53,6 +54,29 @@
(#{item.mallGoodsId},#{item.url},#{item.type})
</foreach>
</insert>
<insert
id=
"batchInsertSpecAttr"
>
insert into spec_attr (mall_goods_id,
spec_name,
spec_value_name
)
values
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(#{item.mallGoodsId},#{item.specName},#{item.specValueName})
</foreach>
</insert>
<insert
id=
"batchInsertPriceStock"
>
insert into price_stock (mall_goods_id,
product_spec,
sale_price,
sku_image,
channel_price,
stock,
sku_no)
values
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(#{item.mallGoodsId},#{item.productSpec},#{item.salePrice},#{item.skuImage},#{item.channelPrice},#{item.stock},#{item.skuNo})
</foreach>
</insert>
<update
id=
"updateMallGoods"
>
UPDATE mall_goods
SET trade_name = #{mallGoodsDO.tradeName},
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论