Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
pms-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
pms-ci-test
Commits
13028f8b
提交
13028f8b
authored
6月 29, 2023
作者:
zhenjie
提交者:
余乾开
7月 01, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
根据多渠道标签查询商品规格价格
上级
28db4673
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
39 行增加
和
40 行删除
+39
-40
ProductDao.java
src/main/java/com/mmc/pms/dao/ProductDao.java
+2
-0
MallOrderGoodsInfoQO.java
src/main/java/com/mmc/pms/model/qo/MallOrderGoodsInfoQO.java
+4
-3
GoodsInfoServiceImpl.java
...n/java/com/mmc/pms/service/Impl/GoodsInfoServiceImpl.java
+19
-37
ProductDao.xml
src/main/resources/mapper/ProductDao.xml
+14
-0
没有找到文件。
src/main/java/com/mmc/pms/dao/ProductDao.java
浏览文件 @
13028f8b
...
@@ -118,4 +118,6 @@ public interface ProductDao {
...
@@ -118,4 +118,6 @@ public interface ProductDao {
ProductSpecPriceDO
getProductSpecPriceById
(
Integer
id
);
ProductSpecPriceDO
getProductSpecPriceById
(
Integer
id
);
List
<
DirectoryDO
>
productDirectoryList
();
List
<
DirectoryDO
>
productDirectoryList
();
List
<
ProductSpecPriceDO
>
listAllProductSpecPriceByType
(
@Param
(
"prodSkuSpecIds"
)
Set
<
Integer
>
prodSkuSpecIds
);
}
}
src/main/java/com/mmc/pms/model/qo/MallOrderGoodsInfoQO.java
浏览文件 @
13028f8b
...
@@ -7,10 +7,11 @@ import lombok.Data;
...
@@ -7,10 +7,11 @@ import lombok.Data;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.Set
;
/**
/**
* author:zhenjie
*
@
author:zhenjie
* Date:2022/10/18
* Date:2022/10/18
* time:21:45
* time:21:45
*/
*/
...
@@ -18,11 +19,11 @@ import java.util.Set;
...
@@ -18,11 +19,11 @@ import java.util.Set;
@Data
@Data
@AllArgsConstructor
@AllArgsConstructor
@NoArgsConstructor
@NoArgsConstructor
//@ApiModel(value = "com.mmc.csf.mall.qo.MallOrderGoodsInfoQO", description = "订单查询商品信息QO")
public
class
MallOrderGoodsInfoQO
implements
Serializable
{
public
class
MallOrderGoodsInfoQO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
3807569067697485137L
;
private
static
final
long
serialVersionUID
=
-
3807569067697485137L
;
private
Integer
mallUser
Id
;
private
Integer
userAccount
Id
;
private
Integer
cooperationTagId
;
private
Integer
cooperationTagId
;
private
List
<
Integer
>
cooperationTagIds
;
private
Set
<
Integer
>
mallProdSkuSpecIds
;
private
Set
<
Integer
>
mallProdSkuSpecIds
;
private
Set
<
Integer
>
mallIndstSkuSpecIds
;
private
Set
<
Integer
>
mallIndstSkuSpecIds
;
}
}
src/main/java/com/mmc/pms/service/Impl/GoodsInfoServiceImpl.java
浏览文件 @
13028f8b
package
com
.
mmc
.
pms
.
service
.
Impl
;
package
com
.
mmc
.
pms
.
service
.
Impl
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.mmc.pms.common.ResultBody
;
import
com.mmc.pms.common.ResultBody
;
import
com.mmc.pms.common.ResultEnum
;
import
com.mmc.pms.common.ResultEnum
;
import
com.mmc.pms.dao.GoodsInfoDao
;
import
com.mmc.pms.dao.GoodsInfoDao
;
...
@@ -25,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
...
@@ -25,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.util.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
/**
/**
* @author 23214
* @author 23214
...
@@ -944,22 +946,12 @@ public class GoodsInfoServiceImpl implements GoodsInfoService {
...
@@ -944,22 +946,12 @@ public class GoodsInfoServiceImpl implements GoodsInfoService {
// 查询渠道等级对应的商品价格
// 查询渠道等级对应的商品价格
Set
<
Integer
>
prodSkuSpecIds
=
Set
<
Integer
>
prodSkuSpecIds
=
productDao
.
listProductSpecIds
(
mallOrderGoodsInfoQO
.
getMallProdSkuSpecIds
());
productDao
.
listProductSpecIds
(
mallOrderGoodsInfoQO
.
getMallProdSkuSpecIds
());
List
<
ProductSpecPriceDO
>
productSpecPriceDOS
=
productDao
.
listProductSpecPrice
(
mallOrderGoodsInfoQO
.
getCooperationTagId
(),
prodSkuSpecIds
);
// 查询商品信息
// 查询商品信息
List
<
OrderGoodsProdDTO
>
orderGoodsProdDTOList
=
List
<
OrderGoodsProdDTO
>
orderGoodsProdDTOList
=
productDao
.
listProdGoodsSkuInfo
(
mallOrderGoodsInfoQO
);
productDao
.
listProdGoodsSkuInfo
(
mallOrderGoodsInfoQO
);
if
(!
CollectionUtils
.
isEmpty
(
productSpecPriceDOS
))
{
//填充价格
// 填充渠道价格
List
<
ProductSpecPriceDO
>
allProductSpecPriceDOS
=
productDao
.
listAllProductSpecPriceByType
(
prodSkuSpecIds
);
this
.
fillOrderGoodsProdPrice
(
orderGoodsProdDTOList
,
productSpecPriceDOS
,
prodSkuSpecIds
);
this
.
buildProductSpecPrice
(
orderGoodsProdDTOList
,
allProductSpecPriceDOS
,
mallOrderGoodsInfoQO
.
getCooperationTagIds
());
}
// 商品没有设置渠道价格的,按照市场价设置
if
(!
CollectionUtils
.
isEmpty
(
prodSkuSpecIds
))
{
// 查询市场价格,tagInfoId为0
List
<
ProductSpecPriceDO
>
prodMarketPrice
=
productDao
.
listProductSpecPrice
(
0
,
prodSkuSpecIds
);
// 填充市场价格
this
.
fillOrderGoodsProdPrice
(
orderGoodsProdDTOList
,
prodMarketPrice
,
prodSkuSpecIds
);
}
// 还需配置商品规格金额, 单个商品skuSpecAmount, 全部小sku金额
// 还需配置商品规格金额, 单个商品skuSpecAmount, 全部小sku金额
List
<
Integer
>
goodsIds
=
List
<
Integer
>
goodsIds
=
orderGoodsProdDTOList
.
stream
()
orderGoodsProdDTOList
.
stream
()
...
@@ -991,36 +983,26 @@ public class GoodsInfoServiceImpl implements GoodsInfoService {
...
@@ -991,36 +983,26 @@ public class GoodsInfoServiceImpl implements GoodsInfoService {
/**
/**
* 填充产品规格价格
* 填充产品规格价格
*
* @param orderGoodsProdDTOList
* @param orderGoodsProdDTOList
* @param productSpecPriceDOS
* @param allProductSpecPriceDOS
* @param prodSkuSpecIds
* @param cooperationTagIds
* @return
*/
*/
private
List
<
OrderGoodsProdDTO
>
fillOrderGoodsProdPrice
(
private
void
buildProductSpecPrice
(
List
<
OrderGoodsProdDTO
>
orderGoodsProdDTOList
,
List
<
ProductSpecPriceDO
>
allProductSpecPriceDOS
,
List
<
OrderGoodsProdDTO
>
orderGoodsProdDTOList
,
List
<
Integer
>
cooperationTagIds
){
List
<
ProductSpecPriceDO
>
productSpecPriceDOS
,
Map
<
Integer
,
List
<
ProductSpecPriceDO
>>
productSpecPriceMap
=
allProductSpecPriceDOS
.
stream
()
Set
<
Integer
>
prodSkuSpecIds
)
{
.
collect
(
Collectors
.
groupingBy
(
ProductSpecPriceDO:
:
getProductSpecId
));
for
(
OrderGoodsProdDTO
orderGoodsProdDTO
:
orderGoodsProdDTOList
)
{
for
(
OrderGoodsProdDTO
orderGoodsProdDTO
:
orderGoodsProdDTOList
)
{
for
(
OrderGoodsProdDetailDTO
orderGoodsProdDetailDTO
:
for
(
OrderGoodsProdDetailDTO
prodDetailDTO
:
orderGoodsProdDTO
.
getOrderGoodsProdDetailDTOS
())
{
orderGoodsProdDTO
.
getOrderGoodsProdDetailDTOS
())
{
List
<
ProductSpecPriceDO
>
specPriceDOS
=
productSpecPriceMap
.
get
(
prodDetailDTO
.
getProductSpecId
());
// 配置价格
if
(
CollectionUtils
.
isNotEmpty
(
specPriceDOS
))
{
for
(
ProductSpecPriceDO
productSpecPriceDO
:
productSpecPriceDOS
)
{
List
<
ProductSpecPriceDO
>
tempSpecPrice
=
specPriceDOS
.
stream
()
// 找到规格对应的价格
.
filter
(
d
->
cooperationTagIds
.
contains
(
d
.
getCooperationTag
()))
if
(
productSpecPriceDO
.
sorted
(
Comparator
.
comparing
(
ProductSpecPriceDO:
:
getPrice
))
.
getProductSpecId
()
.
collect
(
Collectors
.
toList
());
.
toString
()
prodDetailDTO
.
setUnitPrice
(
tempSpecPrice
.
get
(
0
).
getPrice
());
.
equals
(
orderGoodsProdDetailDTO
.
getProductSpecId
().
toString
()))
{
orderGoodsProdDetailDTO
.
setUnitPrice
(
productSpecPriceDO
.
getPrice
());
// 配置价格后移除,剩余没有配置的
prodSkuSpecIds
.
removeIf
(
d
->
d
.
toString
().
equals
(
orderGoodsProdDetailDTO
.
getProductSpecId
().
toString
()));
break
;
}
}
}
}
}
}
}
return
orderGoodsProdDTOList
;
}
}
@Override
@Override
...
...
src/main/resources/mapper/ProductDao.xml
浏览文件 @
13028f8b
...
@@ -521,4 +521,18 @@
...
@@ -521,4 +521,18 @@
OR (`type` = 0 AND `show` LIKE '%4%')
OR (`type` = 0 AND `show` LIKE '%4%')
AND is_deleted = 0
AND is_deleted = 0
</select>
</select>
<select
id=
"listAllProductSpecPriceByType"
resultType=
"com.mmc.pms.entity.ProductSpecPriceDO"
>
SELECT
id,
product_spec_id productSpecId,
cooperation_tag cooperationTag,
price
FROM
product_spec_price
WHERE `type` = 0 and product_spec_id in (
<foreach
collection=
"prodSkuSpecIds"
separator=
","
index=
"index"
item=
"d"
>
#{d}
</foreach>
)
</select>
</mapper>
</mapper>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论