Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
pms
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
iuav
pms
Commits
02de050b
提交
02de050b
authored
7月 25, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修复:商品编辑接口
上级
ff6a8008
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
97 行增加
和
10 行删除
+97
-10
MallGoodsDao.java
src/main/java/com/mmc/pms/dao/mall/MallGoodsDao.java
+8
-1
GoodsSpecDO.java
src/main/java/com/mmc/pms/entity/mall/GoodsSpecDO.java
+2
-1
GoodsSpecValuesDO.java
src/main/java/com/mmc/pms/entity/mall/GoodsSpecValuesDO.java
+1
-0
MallGoodsServiceImpl.java
...a/com/mmc/pms/service/mall/impl/MallGoodsServiceImpl.java
+51
-6
MallGoodsDao.xml
src/main/resources/mapper/mall/MallGoodsDao.xml
+35
-2
没有找到文件。
src/main/java/com/mmc/pms/dao/mall/MallGoodsDao.java
浏览文件 @
02de050b
...
...
@@ -40,5 +40,12 @@ public interface MallGoodsDao {
void
deleteMallGoodsResources
(
Long
id
);
void
deleteMallGoodsSpec
(
Long
id
);
void
deleteGoodsSpec
(
List
<
Integer
>
deleteSpec
);
void
updateGoodsSpec
(
GoodsSpecDO
goodsSpecDO
);
void
deleteGoodsSpecValues
(
List
<
Integer
>
deleteSpecValueId
);
void
updateGoodsSpecValue
(
GoodsSpecValuesDO
goodsSpecValuesDO
);
}
src/main/java/com/mmc/pms/entity/mall/GoodsSpecDO.java
浏览文件 @
02de050b
...
...
@@ -47,6 +47,7 @@ public class GoodsSpecDO implements Serializable {
private
Date
updateTime
;
public
GoodsSpecDO
(
GoodsSpecVO
goodsSpecVO
)
{
this
.
id
=
goodsSpecVO
.
getId
();
this
.
mallGoodsId
=
goodsSpecVO
.
getMallGoodsId
();
this
.
specName
=
goodsSpecVO
.
getSpecName
();
this
.
chooseType
=
goodsSpecVO
.
getChooseType
();
...
...
@@ -58,6 +59,6 @@ public class GoodsSpecDO implements Serializable {
return
GoodsSpecVO
.
builder
().
id
(
id
).
mallGoodsId
(
mallGoodsId
).
specName
(
specName
)
.
chooseType
(
chooseType
).
must
(
must
).
skuUnitId
(
skuUnitId
).
build
();
}
}
src/main/java/com/mmc/pms/entity/mall/GoodsSpecValuesDO.java
浏览文件 @
02de050b
...
...
@@ -60,6 +60,7 @@ public class GoodsSpecValuesDO implements Serializable {
private
Date
updateTime
;
public
GoodsSpecValuesDO
(
GoodsSpecValuesVO
d
)
{
this
.
id
=
d
.
getId
();
this
.
goodsSpecId
=
d
.
getGoodsSpecId
();
this
.
specValueName
=
d
.
getSpecValueName
();
this
.
partNo
=
d
.
getPartNo
();
...
...
src/main/java/com/mmc/pms/service/mall/impl/MallGoodsServiceImpl.java
浏览文件 @
02de050b
...
...
@@ -15,6 +15,7 @@ import com.mmc.pms.service.mall.MallGoodsService;
import
com.mmc.pms.util.CodeUtil
;
import
com.mmc.pms.util.SnowFlake
;
import
com.mmc.pms.util.TDateUtil
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -22,6 +23,7 @@ import javax.annotation.Resource;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -52,14 +54,13 @@ public class MallGoodsServiceImpl implements MallGoodsService {
// 将商品图片等资源存入数据库中
insertMallGoodsResources
(
mallGoodsVO
,
id
);
// 将商品规格存入数据库
insertMallGoodsSpec
(
mallGoodsVO
,
id
);
insertMallGoodsSpec
(
mallGoodsVO
.
getGoodsSpecList
()
,
id
);
return
ResultBody
.
success
();
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
insertMallGoodsSpec
(
MallGoodsVO
mallGoodsVO
,
long
id
)
{
public
void
insertMallGoodsSpec
(
List
<
GoodsSpecVO
>
goodsSpecList
,
long
id
)
{
// 获取输入的规格信息
List
<
GoodsSpecVO
>
goodsSpecList
=
mallGoodsVO
.
getGoodsSpecList
();
for
(
GoodsSpecVO
goodsSpecVO
:
goodsSpecList
)
{
goodsSpecVO
.
setMallGoodsId
(
id
);
GoodsSpecDO
goodsSpecDO
=
new
GoodsSpecDO
(
goodsSpecVO
);
...
...
@@ -127,6 +128,7 @@ public class MallGoodsServiceImpl implements MallGoodsService {
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ResultBody
editMallGoods
(
MallGoodsVO
mallGoodsVO
,
Integer
userAccountId
)
{
ResultBody
resultError
=
checkInformation
(
mallGoodsVO
,
userAccountId
);
if
(
resultError
!=
null
)
return
resultError
;
...
...
@@ -136,9 +138,52 @@ public class MallGoodsServiceImpl implements MallGoodsService {
// 修改商城商品的图片等资源信息,先删除后新增
mallGoodsDao
.
deleteMallGoodsResources
(
mallGoodsVO
.
getId
());
this
.
insertMallGoodsResources
(
mallGoodsVO
,
mallGoodsVO
.
getId
());
// 修改商城规格信息,先删除后新增
mallGoodsDao
.
deleteMallGoodsSpec
(
mallGoodsVO
.
getId
());
this
.
insertMallGoodsSpec
(
mallGoodsVO
,
mallGoodsVO
.
getId
());
// 从数据库获取商品规格信息
List
<
GoodsSpecDO
>
dbGoodsSpec
=
mallGoodsDao
.
getMallGoodsSpec
(
mallGoodsVO
.
getId
());
List
<
Integer
>
specIds
=
mallGoodsVO
.
getGoodsSpecList
().
stream
().
map
(
GoodsSpecVO:
:
getId
).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
// 对比要删除的规格
List
<
Integer
>
deleteSpec
=
dbGoodsSpec
.
stream
().
map
(
GoodsSpecDO:
:
getId
).
filter
(
id
->
!
specIds
.
contains
(
id
)).
collect
(
Collectors
.
toList
());
if
(
deleteSpec
.
size
()
!=
0
)
{
mallGoodsDao
.
deleteGoodsSpec
(
deleteSpec
);
}
// 获取规格值信息
Map
<
Integer
,
List
<
GoodsSpecValuesDO
>>
specValuesMap
=
mallGoodsDao
.
getMallGoodsSpecValues
(
specIds
).
stream
()
.
collect
(
Collectors
.
groupingBy
(
GoodsSpecValuesDO:
:
getGoodsSpecId
));
// 修改规格信息
for
(
GoodsSpecVO
goodsSpecVO
:
mallGoodsVO
.
getGoodsSpecList
())
{
if
(
goodsSpecVO
.
getId
()
!=
null
)
{
GoodsSpecDO
goodsSpecDO
=
new
GoodsSpecDO
(
goodsSpecVO
);
mallGoodsDao
.
updateGoodsSpec
(
goodsSpecDO
);
// 数据库获取到的规格值信息
List
<
GoodsSpecValuesDO
>
dbSpecValues
=
specValuesMap
.
get
(
goodsSpecVO
.
getId
());
List
<
Integer
>
specValuesId
=
goodsSpecVO
.
getGoodsSpecValuesList
().
stream
().
map
(
GoodsSpecValuesVO:
:
getId
).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
List
<
Integer
>
deleteSpecValueId
=
dbSpecValues
.
stream
().
map
(
GoodsSpecValuesDO:
:
getId
).
filter
(
id
->
!
specValuesId
.
contains
(
id
)).
collect
(
Collectors
.
toList
());
if
(
deleteSpecValueId
.
size
()
!=
0
)
{
mallGoodsDao
.
deleteGoodsSpecValues
(
deleteSpecValueId
);
}
// 修改规格值的信息
List
<
GoodsSpecValuesVO
>
updateSpecValue
=
goodsSpecVO
.
getGoodsSpecValuesList
().
stream
().
filter
(
d
->
d
.
getId
()
!=
null
).
collect
(
Collectors
.
toList
());
for
(
GoodsSpecValuesVO
goodsSpecValuesVO
:
updateSpecValue
)
{
GoodsSpecValuesDO
goodsSpecValuesDO
=
new
GoodsSpecValuesDO
(
goodsSpecValuesVO
);
mallGoodsDao
.
updateGoodsSpecValue
(
goodsSpecValuesDO
);
}
// 新增id为空的规格值
List
<
GoodsSpecValuesVO
>
newGoodsSpecValues
=
goodsSpecVO
.
getGoodsSpecValuesList
().
stream
().
filter
(
d
->
d
.
getId
()
==
null
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
newGoodsSpecValues
))
{
List
<
GoodsSpecValuesDO
>
goodsSpecValuesList
=
newGoodsSpecValues
.
stream
().
map
(
d
->
{
d
.
setGoodsSpecId
(
goodsSpecVO
.
getId
());
return
new
GoodsSpecValuesDO
(
d
);
}).
collect
(
Collectors
.
toList
());
// 批量插入规格值的信息
mallGoodsDao
.
batchInsertSpecValues
(
goodsSpecValuesList
);
}
}
}
// 新增id为空的规格
List
<
GoodsSpecVO
>
newGoodsSpec
=
mallGoodsVO
.
getGoodsSpecList
().
stream
().
filter
(
d
->
d
.
getId
()
==
null
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
newGoodsSpec
))
{
this
.
insertMallGoodsSpec
(
newGoodsSpec
,
mallGoodsVO
.
getId
());
}
return
ResultBody
.
success
();
}
}
src/main/resources/mapper/mall/MallGoodsDao.xml
浏览文件 @
02de050b
...
...
@@ -65,15 +65,48 @@
goods_details = #{mallGoodsDO.goodsDetails}
WHERE id = #{mallGoodsDO.id}
</update>
<update
id=
"updateGoodsSpec"
>
update goods_spec
set spec_name = #{specName},
choose_type = #{chooseType},
must = #{must},
sku_unit_id = #{skuUnitId}
where id = #{id}
</update>
<update
id=
"updateGoodsSpecValue"
>
update goods_spec_values
set goods_spec_id = #{goodsSpecId},
spec_value_name = #{specValueName},
part_no =#{partNo},
spec_value_image = #{specValueImage},
show_price = #{showPrice},
stock = #{stock},
sale_price = #{salePrice},
channel_price =#{channelPrice}
where id = #{id}
</update>
<delete
id=
"deleteMallGoodsResources"
>
delete
from mall_goods_resources
where mall_goods_id = #{id}
</delete>
<delete
id=
"delete
Mall
GoodsSpec"
>
<delete
id=
"deleteGoodsSpec"
>
delete
from goods_spec
where mall_goods_id = #{id}
<where>
<foreach
collection=
"list"
open=
"id in ("
close=
")"
item=
"item"
separator=
","
>
#{item}
</foreach>
</where>
</delete>
<delete
id=
"deleteGoodsSpecValues"
>
delete
from goods_spec_values
<where>
<foreach
collection=
"list"
open=
"id in ("
close=
")"
item=
"item"
separator=
","
>
#{item}
</foreach>
</where>
</delete>
<select
id=
"countMallGoodsByName"
resultType=
"java.lang.Integer"
>
select count(*)
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论