Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
pms
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
iuav
pms
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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论