Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
haoban-manage3.0
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
haoban3.0
haoban-manage3.0
Commits
efaaeebd
Commit
efaaeebd
authored
Apr 05, 2023
by
songyinghui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 素材
parent
aa80967a
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
119 additions
and
1 deletions
+119
-1
pom.xml
haoban-manage3-service/pom.xml
+6
-0
InteractRecordExtendInfoBO.java
...e/service/pojo/bo/content/InteractRecordExtendInfoBO.java
+1
-0
InteractRecordMessageBuilder.java
...service/content/adaptor/InteractRecordMessageBuilder.java
+107
-0
InteractRecordMessageService.java
...service/content/message/InteractRecordMessageService.java
+5
-1
No files found.
haoban-manage3-service/pom.xml
View file @
efaaeebd
...
...
@@ -186,6 +186,12 @@
<artifactId>
gic-store-goods-api
</artifactId>
<version>
${gic-store-goods-api}
</version>
</dependency>
<dependency>
<groupId>
com.gic
</groupId>
<artifactId>
gic-business-order-api
</artifactId>
<version>
${gic-business-order-api}
</version>
</dependency>
</dependencies>
<build>
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/bo/content/InteractRecordExtendInfoBO.java
View file @
efaaeebd
...
...
@@ -117,6 +117,7 @@ public class InteractRecordExtendInfoBO implements Serializable {
InteractRecordExtendInfoBO
temp
=
new
InteractRecordExtendInfoBO
();
// 后续有操作 此处使用可修改类型
temp
.
setGoodsIds
(
new
ArrayList
<>());
temp
.
setExtendOrderInfos
(
new
ArrayList
<>());
return
temp
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/adaptor/InteractRecordMessageBuilder.java
View file @
efaaeebd
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
content
.
adaptor
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.api.base.commons.Page
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.business.order.dto.ordermanage.ListOrderItemDTO
;
import
com.gic.business.order.dto.ordermanage.OrderOutInfoDTO
;
import
com.gic.business.order.qdto.ordermanage.OrderInfoQDTO
;
import
com.gic.business.order.service.ordermanage.OrderInfoOutApiService
;
import
com.gic.haoban.manage.service.pojo.bo.content.InteractRecordExtendInfoBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.context.InteractRecordMessageContext
;
import
com.gic.haoban.manage.service.pojo.qo.content.InteractRecordQO
;
import
com.gic.haoban.manage.service.service.content.InteractRecordService
;
import
com.gic.member.api.dto.MemberDTO
;
import
com.gic.member.api.service.MemberService
;
import
com.gic.store.goods.dto.goods.GoodsSpuInfoDTO
;
import
com.gic.store.goods.dto.qdto.GoodsListQDTO
;
import
com.gic.store.goods.service.GoodsCenterApiService
;
import
com.gic.store.goods.service.GoodsInfoOutApiService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.math.BigDecimal
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
/**
* @Author MUSI
* @Date 2023/3/29 3:48 PM
...
...
@@ -24,6 +45,10 @@ public class InteractRecordMessageBuilder {
private
InteractRecordService
interactRecordService
;
@Autowired
private
MemberService
memberService
;
@Autowired
OrderInfoOutApiService
orderInfoOutApiService
;
@Autowired
private
GoodsCenterApiService
goodsCenterApiService
;
/**
* 计算互动记录的访问次数
...
...
@@ -77,5 +102,87 @@ public class InteractRecordMessageBuilder {
}
/**
* 冗余订单项信息
* @param context
* @return
*/
public
InteractRecordExtendInfoBO
.
ExtendOrderInfo
buildMaterialOrderItemInfo
(
InteractRecordMessageContext
context
)
{
OrderInfoQDTO
orderInfoQDTO
=
new
OrderInfoQDTO
();
orderInfoQDTO
.
setOrderNumber
(
context
.
getInteractRecordMessageBO
().
getOrderNumber
());
orderInfoQDTO
.
setEnterpriseId
(
context
.
getInteractRecordMessageBO
().
getEnterpriseId
());
ServiceResponse
<
OrderOutInfoDTO
>
serviceResponse
=
orderInfoOutApiService
.
queryOrderInfo
(
orderInfoQDTO
);
if
(!
serviceResponse
.
isSuccess
())
{
log
.
info
(
"查询订单信息异常 {}"
,
JSON
.
toJSONString
(
serviceResponse
));
return
null
;
}
List
<
String
>
goodsIds
=
serviceResponse
.
getResult
()
.
getOrderItems
()
.
stream
()
.
map
(
ListOrderItemDTO:
:
getMallProId
)
.
distinct
()
.
collect
(
Collectors
.
toList
());
Map
<
String
,
Integer
>
goodsSourceTypeMap
=
queryGoodsSimpleInfo
(
context
,
goodsIds
);
OrderOutInfoDTO
orderOutInfoDTO
=
serviceResponse
.
getResult
();
InteractRecordExtendInfoBO
.
ExtendOrderInfo
extendOrderInfo
=
new
InteractRecordExtendInfoBO
.
ExtendOrderInfo
();
extendOrderInfo
.
setOrderNumber
(
orderOutInfoDTO
.
getOrderNumber
());
extendOrderInfo
.
setOrderCreateTime
(
orderOutInfoDTO
.
getCreateTime
());
extendOrderInfo
.
setOrderTotalNum
(
orderOutInfoDTO
.
getOrderItems
().
size
());
extendOrderInfo
.
setOrderPay
(
orderOutInfoDTO
.
getReceivableAmount
());
extendOrderInfo
.
setRealPay
(
orderOutInfoDTO
.
getPayAmount
());
List
<
InteractRecordExtendInfoBO
.
ExtendGoodsInfo
>
goodsInfos
=
orderOutInfoDTO
.
getOrderItems
()
.
stream
()
.
map
(
item
->
{
InteractRecordExtendInfoBO
.
ExtendGoodsInfo
goodsInfo
=
new
InteractRecordExtendInfoBO
.
ExtendGoodsInfo
();
goodsInfo
.
setGoodsCode
(
item
.
getProCode
());
goodsInfo
.
setGoodsName
(
item
.
getMallProName
());
goodsInfo
.
setOrderNum
(
item
.
getMallProNumber
().
intValue
());
goodsInfo
.
setGoodsImageUrl
(
item
.
getMallProImageUrl
());
goodsInfo
.
setSalePrice
(
BigDecimal
.
valueOf
(
item
.
getMallProPrice
()));
goodsInfo
.
setGoodsNorm
(
this
.
convertSkuNorm
(
item
.
getMallProSkuAttr
()));
Integer
sourceType
=
Optional
.
ofNullable
(
goodsSourceTypeMap
.
get
(
item
.
getMallProId
())).
orElse
(
2
);
goodsInfo
.
setSourceType
(
sourceType
);
return
goodsInfo
;
})
.
collect
(
Collectors
.
toList
());
extendOrderInfo
.
setOrderGoodsInfos
(
goodsInfos
);
return
extendOrderInfo
;
}
private
Map
<
String
,
Integer
>
queryGoodsSimpleInfo
(
InteractRecordMessageContext
context
,
List
<
String
>
goodsIds
)
{
GoodsListQDTO
goodsListQDTO
=
new
GoodsListQDTO
();
goodsListQDTO
.
setEnterpriseId
(
context
.
getInteractRecordMessageBO
().
getEnterpriseId
());
goodsListQDTO
.
setIncludeGoodsIds
(
goodsIds
);
goodsListQDTO
.
setPageSize
(
goodsIds
.
size
()
+
1
);
ServiceResponse
<
Page
<
GoodsSpuInfoDTO
>>
serviceResponse
=
goodsCenterApiService
.
queryStoreGoodsList
(
goodsListQDTO
);
if
(!
serviceResponse
.
isSuccess
()
||
CollectionUtils
.
isEmpty
(
serviceResponse
.
getResult
().
getResult
()))
{
return
Collections
.
emptyMap
();
}
return
serviceResponse
.
getResult
()
.
getResult
()
.
stream
()
.
collect
(
Collectors
.
toMap
(
GoodsSpuInfoDTO:
:
getGoodsId
,
GoodsSpuInfoDTO:
:
getSourceType
,
(
v1
,
v2
)
->
v1
));
}
private
String
convertSkuNorm
(
String
skuAttr
)
{
if
(
StringUtils
.
isBlank
(
skuAttr
))
{
return
null
;
}
List
<
JSONObject
>
jsonObjects
=
JSON
.
parseArray
(
skuAttr
,
JSONObject
.
class
);
List
<
String
>
norms
=
jsonObjects
.
stream
()
.
map
(
item
->
{
String
propName
=
item
.
getString
(
"propName"
);
String
valueName
=
item
.
getString
(
"valueName"
);
return
propName
+
","
+
valueName
;
})
.
collect
(
Collectors
.
toList
());
return
StringUtils
.
join
(
norms
,
","
);
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/message/InteractRecordMessageService.java
View file @
efaaeebd
...
...
@@ -83,7 +83,11 @@ public class InteractRecordMessageService {
if
(
MaterialInteractRecordEventType
.
ORDER
.
getCode
().
equals
(
interactRecordMessageBO
.
getEventType
()))
{
// 下单
// 查询订单信息
String
orderNumber
=
interactRecordMessageBO
.
getOrderNumber
();
InteractRecordExtendInfoBO
.
ExtendOrderInfo
extendOrderInfo
=
interactRecordMessageBuilder
.
buildMaterialOrderItemInfo
(
context
);
if
(
extendOrderInfo
!=
null
)
{
interactRecordBO
.
getExtendInfo
().
getExtendOrderInfos
().
add
(
extendOrderInfo
);
}
}
interactRecordService
.
saveOrUpdateInteractRecord
(
interactRecordBO
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment