Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
order-group
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
order-group-application
order-group
Commits
500ed0b8
Commit
500ed0b8
authored
Apr 19, 2021
by
zhiheng.zhang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
华莱士升级
parent
37faa9a3
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
644 additions
and
41 deletions
+644
-41
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
+2
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/response/order/QueryOrdersResponse.java
+11
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/OrderCenterSdkService.java
+10
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/OrderCenterSdkServiceImpl.java
+29
-0
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/service/impl/ShoppingCartMallBaseServiceImpl.java
+6
-1
order-management/src/main/java/cn/freemud/management/adapter/MallOrderAdapter.java
+127
-0
order-management/src/main/java/cn/freemud/management/service/adapter/OrderBeanFactory.java
+8
-0
order-management/src/main/java/cn/freemud/management/service/handle/MallOrderHandle.java
+113
-0
order-management/src/main/java/cn/freemud/management/service/impl/MallOrderMangerServiceImpl.java
+96
-0
shopping-cart-application-service/src/main/java/cn/freemud/controller/ShoppingCartController.java
+1
-3
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/AssortmentSdkService.java
+22
-5
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartMallServiceImpl.java
+219
-32
No files found.
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
View file @
500ed0b8
...
...
@@ -1216,6 +1216,8 @@ public class OrderSdkAdapter {
//费用信息
data
.
setOrderCostDetailList
(
orderInfoReqs
.
getOrderCostDetailList
());
data
.
setExpressChannelName
(
orderInfoReqs
.
getExpressChannelName
());
data
.
setExpressNo
(
orderInfoReqs
.
getExpressNo
());
data
.
setExpressChannelCode
(
orderInfoReqs
.
getExpressChannelCode
());
//发票信息
data
.
setOrderInvoice
(
orderInfoReqs
.
getOrderInvoice
());
data
.
setPayChannelType
(
orderInfoReqs
.
getPayChannelType
());
...
...
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/response/order/QueryOrdersResponse.java
View file @
500ed0b8
...
...
@@ -14,6 +14,7 @@ package com.freemud.sdk.api.assortment.order.response.order;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.*
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderCostResp
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.apache.commons.lang.builder.ToStringBuilder
;
...
...
@@ -371,6 +372,16 @@ public class QueryOrdersResponse {
*/
private
String
expressChannelName
;
/**
* 配送渠道编号
*/
private
String
expressChannelCode
;
/**
* 快递单号
*/
private
String
expressNo
;
/**
* 配送类型 1自配送(三方渠道配送、商家店员配送) 2平台配送
...
...
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/OrderCenterSdkService.java
View file @
500ed0b8
...
...
@@ -357,4 +357,14 @@ public interface OrderCenterSdkService {
*/
QueryLineUpResponse
queryLineUpOrder
(
QueryLineUpOrderReq
queryLineUpOrderReq
);
/**
* 商城订单同意并退款完成 POS
*/
BaseOrderResponse
mallOrderRefundComplete
(
BaseQueryOrderRequest
baseQueryOrderRequest
);
/**
* 商城订单同意并退货完成 POS
*/
BaseOrderResponse
mallOrderRefundReturn
(
BaseQueryOrderRequest
baseQueryOrderRequest
);
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/OrderCenterSdkServiceImpl.java
View file @
500ed0b8
...
...
@@ -2010,4 +2010,33 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
response
.
BaseResponse
<
List
<
String
>>
response
=
orderSdkService
.
queryLineUpOrder
(
queryLineUpOrderReq
,
LogThreadLocal
.
getTrackingNo
());
return
orderSdkAdapter
.
convent2QueryLineUpResponse
(
response
);
}
@Override
public
BaseOrderResponse
mallOrderRefundComplete
(
BaseQueryOrderRequest
baseQueryOrderRequest
)
{
AfterSalesOperateReq
request
=
new
AfterSalesOperateReq
();
request
.
setOrderCode
(
baseQueryOrderRequest
.
getOrderId
());
request
.
setPartnerId
(
baseQueryOrderRequest
.
getPartnerId
());
request
.
setOrderClient
(
OrderClientType
.
SAASMALL
.
getIndex
());
request
.
setAfterSalesCode
(
baseQueryOrderRequest
.
getAfterSalesCode
());
request
.
setAfterSerialNo
(
baseQueryOrderRequest
.
getRefundSerialNo
());
request
.
setAdultRemark
(
baseQueryOrderRequest
.
getReason
());
request
.
setOperator
(
baseQueryOrderRequest
.
getOperator
());
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
response
.
BaseResponse
response
=
orderSdkService
.
adultApproveWithRefundComplete
(
request
,
baseQueryOrderRequest
.
getTrackingNo
());
return
orderSdkAdapter
.
convent2BaseOrderResponse
(
response
);
}
@Override
public
BaseOrderResponse
mallOrderRefundReturn
(
BaseQueryOrderRequest
baseQueryOrderRequest
)
{
AfterSalesOperateReq
request
=
new
AfterSalesOperateReq
();
request
.
setOrderCode
(
baseQueryOrderRequest
.
getOrderId
());
request
.
setPartnerId
(
baseQueryOrderRequest
.
getPartnerId
());
request
.
setOrderClient
(
OrderClientType
.
SAASMALL
.
getIndex
());
request
.
setAfterSalesCode
(
baseQueryOrderRequest
.
getAfterSalesCode
());
request
.
setAfterSerialNo
(
baseQueryOrderRequest
.
getRefundSerialNo
());
request
.
setAdultRemark
(
baseQueryOrderRequest
.
getReason
());
request
.
setOperator
(
baseQueryOrderRequest
.
getOperator
());
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
response
.
BaseResponse
response
=
orderSdkService
.
adultApproveWithGoodsReturned
(
request
,
baseQueryOrderRequest
.
getTrackingNo
());
return
orderSdkAdapter
.
convent2BaseOrderResponse
(
response
);
}
}
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/service/impl/ShoppingCartMallBaseServiceImpl.java
View file @
500ed0b8
...
...
@@ -24,6 +24,7 @@ import java.util.Comparator;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.concurrent.TimeUnit
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
...
...
@@ -73,6 +74,7 @@ public class ShoppingCartMallBaseServiceImpl implements ShoppingCartBaseService
try
{
String
redisKey
=
getShoppingCartGoodsKey
(
cartParamDto
);
BoundHashOperations
<
String
,
String
,
CartGoods
>
operations
=
redisTemplate
.
boundHashOps
(
redisKey
);
if
(
1
==
cartParamDto
.
getBuyType
()
)
this
.
clear
(
cartParamDto
,
trackingNo
);
Map
<
String
,
CartGoods
>
cartGoodsMap
=
cartParamDto
.
getCartGoodsList
().
parallelStream
()
.
filter
(
k
->
StringUtils
.
isNotEmpty
(
k
.
getCartGoodsUid
()))
...
...
@@ -163,7 +165,10 @@ public class ShoppingCartMallBaseServiceImpl implements ShoppingCartBaseService
*/
private
String
getShoppingCartGoodsKey
(
CartParamDto
cartParamDto
)
{
if
(
cartParamDto
.
getBuyType
()
==
ShoppingCartConstant
.
NOW_BUY_TYPE
)
{
return
RedisKeyConstant
.
SAAS_MALL_SHOPPINGCART_KEY_PREFIX
+
cartParamDto
.
getPartnerId
()
+
"_"
+
cartParamDto
.
getStoreId
()
+
"_"
+
cartParamDto
.
getUserId
()+
"_"
+
"temp"
;
//立即购买key设置30分钟能自动过期
String
key
=
RedisKeyConstant
.
SAAS_MALL_SHOPPINGCART_KEY_PREFIX
+
cartParamDto
.
getPartnerId
()
+
"_"
+
cartParamDto
.
getStoreId
()
+
"_"
+
cartParamDto
.
getUserId
()+
"_"
+
"temp"
;
redisTemplate
.
expire
(
key
,
30
,
TimeUnit
.
MINUTES
);
return
key
;
}
return
RedisKeyConstant
.
SAAS_MALL_SHOPPINGCART_KEY_PREFIX
+
cartParamDto
.
getPartnerId
()
+
"_"
+
cartParamDto
.
getStoreId
()
+
"_"
+
cartParamDto
.
getUserId
();
}
...
...
order-management/src/main/java/cn/freemud/management/adapter/MallOrderAdapter.java
0 → 100644
View file @
500ed0b8
package
cn
.
freemud
.
management
.
adapter
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
com.freemud.application.sdk.api.takeaway.request.order.*
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
org.springframework.stereotype.Component
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: WaimaiSdkAdapter
* @Package cn.freemud.management.adapter
* @Description:
* @author: zhiheng.zhang
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Component
public
class
MallOrderAdapter
{
/**
* 接单request
* @param request
* @param orderBean
* @return
*/
public
PlatformOrderRequest
getPlatformOrderRequest
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
){
PlatformOrderRequest
platformOrderRequest
=
new
PlatformOrderRequest
();
platformOrderRequest
.
setPlatformOrderId
(
orderBean
.
getCustomerOrder
());
platformOrderRequest
.
setChannel
(
orderBean
.
getSource
());
platformOrderRequest
.
setCompanyId
(
orderBean
.
getCompanyId
());
platformOrderRequest
.
setOrderId
(
orderBean
.
getOid
());
platformOrderRequest
.
setShopId
(
orderBean
.
getShopId
());
platformOrderRequest
.
setOperator
(
request
.
getOperator
());
return
platformOrderRequest
;
}
/**
* 配送request
* @param request
* @param orderBean
* @return
*/
public
OrderSendOutRequest
getOrderSendOutRequest
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
){
OrderSendOutRequest
orderSendOutRequest
=
new
OrderSendOutRequest
();
orderSendOutRequest
.
setCompanyId
(
orderBean
.
getCompanyId
());
orderSendOutRequest
.
setOrderId
(
orderBean
.
getOid
());
orderSendOutRequest
.
setShopId
(
orderBean
.
getShopId
());
orderSendOutRequest
.
setOperator
(
request
.
getOperator
());
return
orderSendOutRequest
;
}
/**
* 送达request
* @param request
* @param orderBean
* @return
*/
public
OrderSendOutRequest
getOrderArriveRequest
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
){
OrderSendOutRequest
arriveReq
=
new
OrderSendOutRequest
();
arriveReq
.
setOrderId
(
orderBean
.
getOid
());
arriveReq
.
setChannel
(
orderBean
.
getSource
());
arriveReq
.
setCompanyId
(
orderBean
.
getCompanyId
());
arriveReq
.
setOperator
(
request
.
getOperator
());
arriveReq
.
setShopId
(
request
.
getStoreId
());
return
arriveReq
;
}
/**
* 拒单
* @param request
* @param orderBean
* @return
*/
public
PartnerCancelRequest
getPartnerCancelRequest
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
){
PartnerCancelRequest
cancelRequest
=
new
PartnerCancelRequest
();
cancelRequest
.
setPlatformOrderId
(
orderBean
.
getCustomerOrder
());
cancelRequest
.
setOperator
(
request
.
getOperator
());
cancelRequest
.
setType
(
request
.
getReason_code
()
==
null
?
11
:
request
.
getReason_code
());
cancelRequest
.
setReason
(
request
.
getReason
());
cancelRequest
.
setShopId
(
orderBean
.
getShopId
());
cancelRequest
.
setOrderId
(
request
.
getOrderId
());
cancelRequest
.
setChannel
(
orderBean
.
getSource
());
cancelRequest
.
setCompanyId
(
request
.
getPartnerId
());
return
cancelRequest
;
}
/**
* 拒绝或同意退款
* @param request
* @param orderBean
* @param isAgree true:同意退款,false:拒绝退款
* @return
*/
public
AgreeOrderRequest
getAgreeOrderRequest
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
boolean
isAgree
){
AgreeOrderRequest
agreeOrderRequest
=
new
AgreeOrderRequest
();
agreeOrderRequest
.
setPlatformOrderId
(
orderBean
.
getCustomerOrder
());
agreeOrderRequest
.
setChannel
(
orderBean
.
getSource
()
);
agreeOrderRequest
.
setCompanyId
(
request
.
getPartnerId
());
agreeOrderRequest
.
setOrderId
(
orderBean
.
getOid
());
agreeOrderRequest
.
setShopId
(
orderBean
.
getShopId
());
agreeOrderRequest
.
setOperator
(
request
.
getOperator
());
agreeOrderRequest
.
setReason
(
request
.
getReason
());
agreeOrderRequest
.
setAfterSalesCode
(
orderBean
.
getRefundList
().
get
(
0
).
getRid
());
agreeOrderRequest
.
setAgree
(
isAgree
);
return
agreeOrderRequest
;
}
/**
* 备餐完成request
* @param request
* @param orderBean
* @return
*/
public
PartnerPrepareRequest
getPartnerPrepareRequest
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
){
PartnerPrepareRequest
partnerPrepareRequest
=
new
PartnerPrepareRequest
();
partnerPrepareRequest
.
setPlatformOrderId
(
orderBean
.
getCustomerOrder
());
partnerPrepareRequest
.
setChannel
(
orderBean
.
getSource
());
partnerPrepareRequest
.
setCompanyId
(
orderBean
.
getCompanyId
());
partnerPrepareRequest
.
setOrderId
(
orderBean
.
getOid
());
partnerPrepareRequest
.
setShopId
(
orderBean
.
getShopId
());
partnerPrepareRequest
.
setOperator
(
request
.
getOperator
());
return
partnerPrepareRequest
;
}
}
order-management/src/main/java/cn/freemud/management/service/adapter/OrderBeanFactory.java
View file @
500ed0b8
...
...
@@ -2,6 +2,7 @@ package cn.freemud.management.service.adapter;
import
cn.freemud.management.enums.OrderSource
;
import
cn.freemud.management.service.OrderManagerService
;
import
cn.freemud.management.service.impl.MallOrderMangerServiceImpl
;
import
cn.freemud.management.service.impl.McCafeMangerServiceImpl
;
import
cn.freemud.management.service.impl.SaasOrderMangerServiceImpl
;
import
cn.freemud.management.service.impl.WaimaiOrderMangerServiceImpl
;
...
...
@@ -25,6 +26,9 @@ public class OrderBeanFactory {
@Value
(
"#{'${o2o.orderClient}'.split(',')}"
)
private
List
<
String
>
o2oOrderClients
;
@Value
(
"#{'${mall.orderClient}'.split(',')}"
)
private
List
<
String
>
mallOrderClients
;
@Autowired
private
ApplicationContext
applicationContext
;
...
...
@@ -44,6 +48,10 @@ public class OrderBeanFactory {
if
(
o2oOrderClients
.
contains
(
orderClient
)){
return
applicationContext
.
getBean
(
WaimaiOrderMangerServiceImpl
.
class
);
}
if
(
mallOrderClients
.
contains
(
orderClient
)){
return
applicationContext
.
getBean
(
MallOrderMangerServiceImpl
.
class
);
}
return
applicationContext
.
getBean
(
SaasOrderMangerServiceImpl
.
class
);
}
}
order-management/src/main/java/cn/freemud/management/service/handle/MallOrderHandle.java
0 → 100644
View file @
500ed0b8
package
cn
.
freemud
.
management
.
service
.
handle
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.response.pay.PayRefundResponse
;
import
cn.freemud.management.enums.ResponseResult
;
import
cn.freemud.management.intercept.OrderServiceException
;
import
cn.freemud.management.util.ResponseUtil
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderClientType
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderModifyRelatingCodeReq
;
import
com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter
;
import
com.freemud.sdk.api.assortment.order.enums.PayRefundStatus
;
import
com.freemud.sdk.api.assortment.order.enums.RefundStatus
;
import
com.freemud.sdk.api.assortment.order.request.order.BaseQueryOrderRequest
;
import
com.freemud.sdk.api.assortment.order.request.order.CancelOrderRequest
;
import
com.freemud.sdk.api.assortment.order.request.order.OrderRefundRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: SaasOrderService
* @Package cn.freemud.management.service.impl
* @Description:
* @author: shuhu.hou
* @date: 2020/4/23 11:30
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Component
public
class
MallOrderHandle
{
@Autowired
private
OrderSdkAdapter
orderSdkAdapter
;
@Autowired
private
OrderCenterSdkService
orderCenterSdkService
;
@Value
(
"${saasDeliveryTimeOut}"
)
private
Integer
wmDeliveryTimeOut
;
/**
* 同意退款
*
* @param request
* @param refundResponse
* @param orderBean
* @return
*/
public
BaseResponse
refundAgree
(
OrderManagerRequest
request
,
PayRefundResponse
refundResponse
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
BaseQueryOrderRequest
refundAgreeRequest
=
orderSdkAdapter
.
getRefundAgreeRequest
(
refundResponse
.
getRefundId
(),
request
.
getReason
(),
request
.
getOperator
(),
orderBean
);
BaseOrderResponse
baseOrderResponse
=
null
;
if
(
PayRefundStatus
.
SUCCESS
.
equals
(
refundResponse
.
getPayRefundStatus
()))
{
baseOrderResponse
=
orderCenterSdkService
.
mallOrderRefundComplete
(
refundAgreeRequest
);
}
else
{
baseOrderResponse
=
orderCenterSdkService
.
mallOrderRefundReturn
(
refundAgreeRequest
);
}
if
(
baseOrderResponse
==
null
||
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
baseOrderResponse
.
getErrcode
().
toString
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
AGREE_REFUND_ORDER_FAIL
);
}
return
ResponseUtil
.
success
();
}
/**
* 拒绝退款
* @param request
* @param orderBean
* @return
*/
public
BaseResponse
refundReject
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
CancelOrderRequest
rejectRefundRequest
=
orderSdkAdapter
.
getRejectRefundRequest
(
request
.
getOperator
(),
request
.
getReason
(),
orderBean
);
BaseOrderResponse
baseOrderResponse
=
orderCenterSdkService
.
orderRefundReject
(
rejectRefundRequest
);
if
(
baseOrderResponse
==
null
||
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
baseOrderResponse
.
getErrcode
().
toString
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
REJECT_REFUND_ORDER_FAIL
);
}
return
ResponseUtil
.
success
();
}
/**
* 麦咖啡拒绝退款
* @param request
* @param orderBean
* @return
*/
public
BaseResponse
mcCafeRefundReject
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
CancelOrderRequest
rejectRefundRequest
=
orderSdkAdapter
.
getRejectRefundRequest
(
request
.
getOperator
(),
request
.
getReason
(),
orderBean
);
BaseOrderResponse
baseOrderResponse
=
null
;
for
(
int
i
=
0
;
i
<
orderBean
.
getRefundList
().
size
();
i
++)
{
if
(
RefundStatus
.
APPLY_REFUND
.
getCode
().
equals
(
orderBean
.
getRefundList
().
get
(
i
).
getStatus
()))
{
rejectRefundRequest
.
setAfterSalesCode
(
orderBean
.
getRefundList
().
get
(
i
).
getRid
());
baseOrderResponse
=
orderCenterSdkService
.
orderRefundReject
(
rejectRefundRequest
);
}
if
(
RefundStatus
.
COMPLETE_REFUND
.
getCode
().
equals
(
orderBean
.
getRefundList
().
get
(
i
).
getStatus
()))
{
baseOrderResponse
=
new
BaseOrderResponse
();
baseOrderResponse
.
setErrcode
(
100
);
baseOrderResponse
.
setErrmsg
(
"success"
);
}
}
if
(
baseOrderResponse
==
null
||
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
baseOrderResponse
.
getErrcode
().
toString
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
REJECT_REFUND_ORDER_FAIL
);
}
return
ResponseUtil
.
success
();
}
}
order-management/src/main/java/cn/freemud/management/service/impl/MallOrderMangerServiceImpl.java
0 → 100644
View file @
500ed0b8
package
cn
.
freemud
.
management
.
service
.
impl
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.log.LogTreadLocal
;
import
cn.freemud.management.adapter.MallOrderAdapter
;
import
cn.freemud.management.adapter.WaimaiSdkAdapter
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.response.order.OrderManagerResponse
;
import
cn.freemud.management.entities.dto.response.pay.PayRefundResponse
;
import
cn.freemud.management.enums.OperateType
;
import
cn.freemud.management.enums.ResponseResult
;
import
cn.freemud.management.intercept.OrderServiceException
;
import
cn.freemud.management.service.OrderBaseService
;
import
cn.freemud.management.service.OrderManagerService
;
import
cn.freemud.management.service.handle.*
;
import
cn.freemud.management.util.ResponseUtil
;
import
com.freemud.application.sdk.api.takeaway.request.order.*
;
import
com.freemud.application.sdk.api.takeaway.service.WaimaiOrderService
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: rrr
* @Package cn.freemud.management.service.impl
* @Description: 外卖订单履单操作
* @author: zhiheng.zhang
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Service
public
class
MallOrderMangerServiceImpl
implements
OrderManagerService
{
@Resource
private
MallOrderAdapter
mallOrderAdapter
;
@Autowired
private
MallOrderHandle
mallOrderHandle
;
@Autowired
private
OrderBaseService
orderBaseService
;
@Autowired
private
PaymentHandle
paymentHandle
;
@Autowired
private
DeliveryHandle
deliveryHandle
;
@Autowired
private
StockHandle
stockHandle
;
/**
* 同意退款
*
* @param request
* @param orderBean
* @return
*/
@Override
public
BaseResponse
<
OrderManagerResponse
>
orderAgreeRefund
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
//取消配送单
deliveryHandle
.
cancelDelivery
(
orderBean
,
request
);
//支付退款
PayRefundResponse
refundResponse
=
new
PayRefundResponse
();
try
{
refundResponse
=
paymentHandle
.
refund
(
request
,
orderBean
);
}
catch
(
OrderServiceException
orderEx
){
return
ResponseUtil
.
error
(
orderEx
.
getResult
());
}
//订单同意退款
mallOrderHandle
.
refundAgree
(
request
,
refundResponse
,
orderBean
);
// 推送pos、微信消息中心
orderBaseService
.
sendMessage
(
orderBean
,
OperateType
.
ORDER_AGREE_REFUND
,
request
.
getReason
());
//todo 可以考虑基于订单回调异步实现
//冲正库存
stockHandle
.
revert
(
request
,
orderBean
);
return
ResponseUtil
.
success
();
}
/**
* 拒绝退款
*
* @param request
* @param orderBean
* @return
*/
@Override
public
BaseResponse
<
OrderManagerResponse
>
orderRejectRefund
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
//拒绝退款
mallOrderHandle
.
refundReject
(
request
,
orderBean
);
// 推送pos、微信消息中心
orderBaseService
.
sendMessage
(
orderBean
,
OperateType
.
ORDER_REJECT_REFUND
,
request
.
getReason
());
return
ResponseUtil
.
success
();
}
}
shopping-cart-application-service/src/main/java/cn/freemud/controller/ShoppingCartController.java
View file @
500ed0b8
...
...
@@ -175,9 +175,7 @@ public class ShoppingCartController {
if
(
instanceByRequest
instanceof
ShoppingCartNewServiceImpl
&&
SDKCommonBaseContextWare
.
getBean
(
ShoppingCartNewServiceImpl
.
class
).
newShoppingCartGray
(
shoppingCartInfoRequestVo
.
getPartnerId
(),
shoppingCartInfoRequestVo
.
getShopId
())){
return
shoppingCartDemoController
.
getShoppingCartGoodsApportion
(
getShoppingCartGoodsApportionRequestVo
);
}
else
{
return
instanceByRequest
.
getShoppingCartGoods
(
shoppingCartInfoRequestVo
,
getShoppingCartGoodsApportionRequestVo
.
getPremiumExchangeActivity
());
return
instanceByRequest
.
getShoppingCartGoods
(
shoppingCartInfoRequestVo
,
getShoppingCartGoodsApportionRequestVo
.
getPremiumExchangeActivity
());
}
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/AssortmentSdkService.java
View file @
500ed0b8
...
...
@@ -298,11 +298,8 @@ public class AssortmentSdkService {
* @return
*/
public
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartParamDto
getCartParamDto
(
String
partnerId
,
String
storeId
,
String
useId
)
{
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartParamDto
cartParamDto
=
new
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartParamDto
();
cartParamDto
.
setPartnerId
(
partnerId
);
cartParamDto
.
setUserId
(
useId
);
cartParamDto
.
setStoreId
(
storeId
);
return
cartParamDto
;
int
buyType
=
0
;
return
getNowBuyCartParamDto
(
buyType
,
partnerId
,
storeId
,
useId
);
}
/**
...
...
@@ -358,4 +355,24 @@ public class AssortmentSdkService {
return
JSONArray
.
parseArray
(
JSONObject
.
toJSONString
(
baseResponse
.
getResult
()),
CartGoods
.
class
);
}
/**
* 组装NowyCartParamDto信息
*
* @param partnerId
* @param storeId
* @param useId
* @return
*/
public
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartParamDto
getNowBuyCartParamDto
(
int
buyType
,
String
partnerId
,
String
storeId
,
String
useId
)
{
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartParamDto
cartParamDto
=
new
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartParamDto
();
cartParamDto
.
setPartnerId
(
partnerId
);
cartParamDto
.
setUserId
(
useId
);
cartParamDto
.
setStoreId
(
storeId
);
//立即购买==1 ,设置新的缓存key
if
(
buyType
==
ShoppingCartConstant
.
NOW_BUY_TYPE
)
{
cartParamDto
.
setBuyType
(
buyType
);
}
return
cartParamDto
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartMallServiceImpl.java
View file @
500ed0b8
...
...
@@ -12,19 +12,28 @@
*/
package
cn
.
freemud
.
service
.
impl
;
import
cn.freemud.adapter.ActivityAdapter
;
import
cn.freemud.adapter.CouponAdapter
;
import
cn.freemud.adapter.ShoppingCartConvertAdapter
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ShoppingCartConstant
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.activity.ActivityQueryDto
;
import
cn.freemud.entities.dto.calculate.CalculationSharingDiscountRequestDto
;
import
cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.user.GetSessionUserInfoDto
;
import
cn.freemud.entities.ecology.VirtualBindStoreResponse
;
import
cn.freemud.entities.ecology.VirtualStoreRequest
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.service.*
;
import
cn.freemud.service.impl.calculate.CalculationSharingCartService
;
import
cn.freemud.service.impl.calculate.CalculationSharingDiscountService
;
import
cn.freemud.service.shoppingCart.ShoppingCartRelationFactory
;
import
cn.freemud.service.shoppingCart.ShoppingCartRelationService
;
import
cn.freemud.service.thirdparty.*
;
import
cn.freemud.utils.PromotionFactory
;
import
cn.freemud.utils.ResponseUtil
;
...
...
@@ -32,6 +41,7 @@ import com.alibaba.fastjson.JSONArray;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
;
import
com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager
;
import
com.freemud.application.sdk.api.log.ApiLog
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant
;
...
...
@@ -74,7 +84,18 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
private
AssortmentCustomerInfoManager
customerInfoManager
;
@Autowired
private
EcologyAdminApplicationClient
ecologyAdminApplicationClient
;
@Autowired
private
CalculationSharingCartService
sharingCartService
;
@Autowired
private
CalculationSharingDiscountService
sharingDiscountService
;
@Autowired
private
ShoppingCartRelationFactory
shoppingCartRelationFactory
;
@Autowired
private
CustomerApplicationClient
customerApplicationClient
;
@Autowired
private
ActivityAdapter
activityAdapter
;
@Autowired
private
CouponAdapter
couponAdapter
;
/**
* 从微信卡券向购物车中添加商品
*/
...
...
@@ -93,7 +114,8 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
public
BaseResponse
addGoods
(
AddShoppingCartGoodsRequestVo
addShoppingCartGoodsRequestVo
)
{
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
=
new
ShoppingCartGoodsResponseVo
();
// 获取用户信息
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
=
customerInfoManager
.
getCustomerInfoByObject
(
addShoppingCartGoodsRequestVo
.
getSessionId
());
CustomerInfoVo
assortmentCustomerInfoVo
=
getCustomerInfoVo
(
addShoppingCartGoodsRequestVo
.
getSessionId
());
UserLoginInfoDto
userLoginInfoDto
=
convert2UserLoginInfoDto
(
assortmentCustomerInfoVo
);
String
userId
=
userLoginInfoDto
.
getMemberId
();
String
partnerId
=
addShoppingCartGoodsRequestVo
.
getPartnerId
();
...
...
@@ -102,7 +124,13 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
String
skuId
=
addShoppingCartGoodsRequestVo
.
getSkuId
();
String
goodsId
=
StringUtils
.
isEmpty
(
skuId
)
?
spuId
:
skuId
;
String
storeId
=
this
.
getBindMallShopId
(
appId
);
String
menuType
=
addShoppingCartGoodsRequestVo
.
getMenuType
();
Integer
orderType
=
addShoppingCartGoodsRequestVo
.
getOrderType
();
addShoppingCartGoodsRequestVo
.
setShopId
(
storeId
);
//清空临时购物车
// 构造请求参数,进行清空购物车
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartParamDto
cartParamDto
=
assortmentSdkService
.
getNowBuyCartParamDto
(
addShoppingCartGoodsRequestVo
.
getBuyType
(),
partnerId
,
storeId
,
userId
);
shoppingCartBaseService
.
clear
(
cartParamDto
,
LogThreadLocal
.
getTrackingNo
());
/**
* 不支持优惠券
...
...
@@ -143,10 +171,16 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
if
(
Objects
.
equals
(
cartGoods
.
getQty
(),
0
))
{
assortmentSdkService
.
updateGoodsQtyBySdk
(
partnerId
,
userId
,
storeId
,
cartGoods
.
getCartGoodsUid
(),
0
,
""
,
shoppingCartBaseService
);
}
// 促销活动的优惠金额计算
updateShoppingCartGoodsDiscount
(
null
,
null
,
null
,
allCartGoodsList
,
shoppingCartGoodsResponseVo
,
null
,
userLoginInfoDto
);
//设置更新响应信息
setAddAndUpdateResponse
(
shoppingCartGoodsResponseVo
,
allCartGoodsList
,
null
);
//todo 配送费用计算
Long
deliveryAmount
=
0L
;
ActivityQueryDto
activityQueryDto
=
activityAdapter
.
getActivityQueryDto
(
partnerId
,
storeId
,
userId
,
appId
,
addShoppingCartGoodsRequestVo
.
getOrderType
());
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
discountResult
=
null
;
discountResult
=
sharingDiscountService
.
getCalculationSharingDiscountResult
(
menuType
,
partnerId
,
storeId
,
userId
,
appId
,
orderType
,
assortmentCustomerInfoVo
.
isMemberPaid
(),
allCartGoodsList
,
new
ArrayList
<>(),
null
,
deliveryAmount
,
null
);
sharingCartService
.
distribute
(
discountResult
,
allCartGoodsList
,
shoppingCartGoodsResponseVo
,
null
,
null
,
null
,
activityQueryDto
,
menuType
,
deliveryAmount
,
ShoppingCartConstant
.
ADD_AND_UPDATE
,
partnerId
,
null
,
userId
,
storeId
);
buildShoppingCartGoodsResponse
(
shoppingCartGoodsResponseVo
,
discountResult
,
null
,
partnerId
);
//埋点添加购物车行为
this
.
buriedPointShoppingCart
(
addShoppingCartGoodsRequestVo
,
spuId
,
productName
);
...
...
@@ -187,7 +221,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
@Override
public
BaseResponse
updateGoodsQty
(
UpdateShoppingCartGoodsQtyRequestVo
updateShoppingCartGoodsQtyRequestVo
)
{
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
=
new
ShoppingCartGoodsResponseVo
();
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
=
customerInfoManager
.
getCustomerInfoByObject
(
updateShoppingCartGoodsQtyRequestVo
.
getSessionId
());
CustomerInfoVo
assortmentCustomerInfoVo
=
getCustomerInfoVo
(
updateShoppingCartGoodsQtyRequestVo
.
getSessionId
());
UserLoginInfoDto
userLoginInfoDto
=
convert2UserLoginInfoDto
(
assortmentCustomerInfoVo
);
String
userId
=
userLoginInfoDto
.
getMemberId
();
String
partnerId
=
updateShoppingCartGoodsQtyRequestVo
.
getPartnerId
();
...
...
@@ -272,7 +306,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
public
BaseResponse
getGoodsList
(
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
)
{
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
=
new
ShoppingCartGoodsResponseVo
();
// 获取用户信息
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
=
customerInfoManager
.
getCustomerInfoByObject
(
shoppingCartInfoRequestVo
.
getSessionId
());
CustomerInfoVo
assortmentCustomerInfoVo
=
getCustomerInfoVo
(
shoppingCartInfoRequestVo
.
getSessionId
());
UserLoginInfoDto
userLoginInfoDto
=
convert2UserLoginInfoDto
(
assortmentCustomerInfoVo
);
String
userId
=
userLoginInfoDto
.
getMemberId
();
String
partnerId
=
shoppingCartInfoRequestVo
.
getPartnerId
();
...
...
@@ -280,6 +314,10 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
String
storeId
=
this
.
getBindMallShopId
(
appId
);
shoppingCartInfoRequestVo
.
setShopId
(
storeId
);
List
<
CartGoods
>
cartGoodsList
=
new
ArrayList
<>();
String
couponCode
=
shoppingCartInfoRequestVo
.
getCouponCode
();
String
activityCode
=
shoppingCartInfoRequestVo
.
getActivityCode
();
String
menuType
=
shoppingCartInfoRequestVo
.
getMenuType
();
Integer
orderType
=
shoppingCartInfoRequestVo
.
getOrderType
();
// 获取购物车商品
if
(
ShoppingCartConstant
.
NOW_BUY_TYPE
==
shoppingCartInfoRequestVo
.
getBuyType
())
{
cartGoodsList
=
assortmentSdkService
.
getNowBuyShoppingCart
(
ShoppingCartConstant
.
NOW_BUY_TYPE
,
partnerId
,
storeId
,
userId
,
null
,
""
,
shoppingCartBaseService
);
...
...
@@ -299,11 +337,64 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
//checkSkuOnVersion(cartGoodsList, partnerId, storeId, shoppingCartGoodsResponseVo);
// 重新存储最新购物车
assortmentSdkService
.
setShoppingCart
(
partnerId
,
storeId
,
userId
,
cartGoodsList
,
assortmentCustomerInfoVo
.
getSessionId
(),
""
,
this
.
shoppingCartBaseService
);
ArrayList
<
CalculationSharingDiscountRequestDto
.
CalculationDiscountCoupon
>
coupons
=
new
ArrayList
<>();
if
(
StringUtils
.
isNotEmpty
(
couponCode
))
{
CalculationSharingDiscountRequestDto
.
CalculationDiscountCoupon
coupon
=
new
CalculationSharingDiscountRequestDto
.
CalculationDiscountCoupon
();
coupon
.
setCode
(
couponCode
);
coupon
.
setActivityCode
(
activityCode
);
coupons
.
add
(
coupon
);
}
buildCoupons
(
coupons
,
shoppingCartInfoRequestVo
.
getCouponCodes
());
Long
deliveryAmount
=
calculateDeliveryAmount
(
receiveId
,
partnerId
,
storeId
,
userLoginInfoDto
.
getWxAppid
(),
shoppingCartGoodsResponseVo
,
shoppingCartInfoRequestVo
.
getOrderType
());
ActivityQueryDto
activityQueryDto
=
activityAdapter
.
getActivityQueryDto
(
partnerId
,
storeId
,
userId
,
appId
,
shoppingCartInfoRequestVo
.
getOrderType
());
CouponPromotionVO
couponPromotionVO
=
couponAdapter
.
getCouponPromotionVO
(
shoppingCartInfoRequestVo
,
userLoginInfoDto
);
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoodsList
=
shoppingCartInfoRequestVo
.
getSendGoods
();
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoods
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
sendGoodsList
))
{
for
(
ShoppingCartInfoRequestVo
.
SendGoods
sds
:
sendGoodsList
)
{
ShoppingCartInfoRequestVo
.
SendGoods
sd
=
new
ShoppingCartInfoRequestVo
.
SendGoods
();
sd
.
setGoodsId
(
sds
.
getGoodsId
());
if
(
StringUtils
.
isBlank
(
sds
.
getActivityCode
()))
continue
;
sd
.
setQty
(
sds
.
getQty
());
sd
.
setOriginalPrice
(
0L
);
sd
.
setActivityCode
(
sds
.
getActivityCode
());
sendGoods
.
add
(
sd
);
}
}
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
calculationSharingDiscountResult
=
sharingDiscountService
.
getCalculationSharingDiscountResult
(
menuType
,
partnerId
,
storeId
,
userId
,
appId
,
orderType
,
assortmentCustomerInfoVo
.
isMemberPaid
()
,
cartGoodsList
,
coupons
,
sendGoods
,
deliveryAmount
,
null
);
sharingCartService
.
distribute
(
calculationSharingDiscountResult
,
cartGoodsList
,
shoppingCartGoodsResponseVo
,
shoppingCartInfoRequestVo
,
userLoginInfoDto
,
couponPromotionVO
,
activityQueryDto
,
menuType
,
deliveryAmount
,
ShoppingCartConstant
.
QUERY_INFO
,
partnerId
,
shoppingCartInfoRequestVo
.
getFlag
()
,
userId
,
storeId
);
buildShoppingCartGoodsResponse
(
shoppingCartGoodsResponseVo
,
calculationSharingDiscountResult
,
shoppingCartInfoRequestVo
.
getFlag
(),
partnerId
);
// 促销活动的优惠金额计算
this
.
updateShoppingCartGoodsDiscount
(
null
,
null
,
null
,
cartGoodsList
,
shoppingCartGoodsResponseVo
,
shoppingCartInfoRequestVo
,
userLoginInfoDto
);
//设置更新响应信息
setAddAndUpdateResponse
(
shoppingCartGoodsResponseVo
,
cartGoodsList
,
shoppingCartGoodsResponseVo
.
getToastMsg
());
return
ResponseUtil
.
success
(
shoppingCartGoodsResponseVo
);
}
...
...
@@ -366,13 +457,16 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
new
ShoppingCartGoodsDto
();
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
=
new
ShoppingCartGoodsResponseVo
();
// 获取用户信息
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
=
customerInfoManager
.
getCustomerInfoByObject
(
shoppingCartInfoRequestVo
.
getSessionId
());
CustomerInfoVo
assortmentCustomerInfoVo
=
getCustomerInfoVo
(
shoppingCartInfoRequestVo
.
getSessionId
());
UserLoginInfoDto
userLoginInfoDto
=
convert2UserLoginInfoDto
(
assortmentCustomerInfoVo
);
String
userId
=
userLoginInfoDto
.
getMemberId
();
String
partnerId
=
shoppingCartInfoRequestVo
.
getPartnerId
();
String
appId
=
shoppingCartInfoRequestVo
.
getAppId
();
String
storeId
=
shoppingCartInfoRequestVo
.
getShopId
();
String
couponCode
=
shoppingCartInfoRequestVo
.
getCouponCode
();
String
activityCode
=
shoppingCartInfoRequestVo
.
getActivityCode
();
String
menuType
=
shoppingCartInfoRequestVo
.
getMenuType
();
Integer
orderType
=
shoppingCartInfoRequestVo
.
getOrderType
();
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoodsList
=
shoppingCartInfoRequestVo
.
getSendGoods
();
// 获取购物车商品
...
...
@@ -400,25 +494,59 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
// 重新存储最新购物车
assortmentSdkService
.
setShoppingCart
(
partnerId
,
storeId
,
userId
,
cartGoodsList
,
assortmentCustomerInfoVo
.
getSessionId
(),
""
,
this
.
shoppingCartBaseService
);
if
(
CollectionUtils
.
isNotEmpty
(
sendGoodsList
))
{
processSendGoods
(
sendGoodsList
,
partnerId
,
storeId
,
BusinessTypeEnum
.
SAAS_MALL
.
getName
(),
shoppingCartBaseService
);
}
else
{
//组装加价购商品
if
(
null
!=
premiumExchangeActivity
&&
CollectionUtils
.
isNotEmpty
(
premiumExchangeActivity
.
getProducts
()))
{
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoods
=
premiumExchangeActivity
.
getProducts
().
stream
().
map
(
product
->
{
ShoppingCartInfoRequestVo
.
SendGoods
sendGood
=
new
ShoppingCartInfoRequestVo
.
SendGoods
();
sendGood
.
setGoodsId
(
product
.
getSkuId
());
sendGood
.
setQty
(
product
.
getQty
());
return
sendGood
;
}).
collect
(
toList
());
shoppingCartInfoRequestVo
.
setSendGoods
(
sendGoods
);
}
ArrayList
<
CalculationSharingDiscountRequestDto
.
CalculationDiscountCoupon
>
coupons
=
new
ArrayList
<>();
if
(
StringUtils
.
isNotEmpty
(
couponCode
))
{
CalculationSharingDiscountRequestDto
.
CalculationDiscountCoupon
coupon
=
new
CalculationSharingDiscountRequestDto
.
CalculationDiscountCoupon
();
coupon
.
setCode
(
couponCode
);
coupon
.
setActivityCode
(
activityCode
);
coupons
.
add
(
coupon
);
}
// 促销活动的优惠金额计算
updateShoppingCartGoodsDiscount
(
null
,
null
,
null
,
cartGoodsList
,
shoppingCartGoodsResponseVo
,
shoppingCartInfoRequestVo
,
userLoginInfoDto
);
//设置更新响应信息
setAddAndUpdateResponse
(
shoppingCartGoodsResponseVo
,
cartGoodsList
,
shoppingCartGoodsResponseVo
.
getToastMsg
());
buildCoupons
(
coupons
,
shoppingCartInfoRequestVo
.
getCouponCodes
());
Long
deliveryAmount
=
0L
;
ActivityQueryDto
activityQueryDto
=
activityAdapter
.
getActivityQueryDto
(
partnerId
,
storeId
,
userId
,
appId
,
shoppingCartInfoRequestVo
.
getOrderType
());
CouponPromotionVO
couponPromotionVO
=
couponAdapter
.
getCouponPromotionVO
(
shoppingCartInfoRequestVo
,
userLoginInfoDto
);
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoods
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
sendGoodsList
))
{
for
(
ShoppingCartInfoRequestVo
.
SendGoods
sds
:
sendGoodsList
)
{
ShoppingCartInfoRequestVo
.
SendGoods
sd
=
new
ShoppingCartInfoRequestVo
.
SendGoods
();
sd
.
setGoodsId
(
sds
.
getGoodsId
());
if
(
StringUtils
.
isBlank
(
sds
.
getActivityCode
()))
continue
;
sd
.
setQty
(
sds
.
getQty
());
sd
.
setOriginalPrice
(
0L
);
sd
.
setActivityCode
(
sds
.
getActivityCode
());
sendGoods
.
add
(
sd
);
}
}
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
calculationSharingDiscountResult
=
sharingDiscountService
.
getCalculationSharingDiscountResult
(
menuType
,
partnerId
,
storeId
,
userId
,
appId
,
orderType
,
assortmentCustomerInfoVo
.
isMemberPaid
()
,
cartGoodsList
,
coupons
,
sendGoods
,
deliveryAmount
,
null
);
sharingCartService
.
distribute
(
calculationSharingDiscountResult
,
cartGoodsList
,
shoppingCartGoodsResponseVo
,
shoppingCartInfoRequestVo
,
userLoginInfoDto
,
couponPromotionVO
,
activityQueryDto
,
menuType
,
deliveryAmount
,
ShoppingCartConstant
.
QUERY_INFO
,
partnerId
,
shoppingCartInfoRequestVo
.
getFlag
()
,
userId
,
storeId
);
buildShoppingCartGoodsResponse
(
shoppingCartGoodsResponseVo
,
calculationSharingDiscountResult
,
shoppingCartInfoRequestVo
.
getFlag
(),
partnerId
);
//设置均摊信息
updateShoppingCartGoodsApportion
(
shoppingCartGoodsResponseVo
,
null
,
shoppingCartGoodsDto
,
premiumExchangeActivity
,
shoppingCartInfoRequestVo
);
...
...
@@ -656,7 +784,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
}
private
UserLoginInfoDto
convert2UserLoginInfoDto
(
Assortment
CustomerInfoVo
assortmentCustomerInfoVo
)
{
private
UserLoginInfoDto
convert2UserLoginInfoDto
(
CustomerInfoVo
assortmentCustomerInfoVo
)
{
if
(
assortmentCustomerInfoVo
==
null
||
assortmentCustomerInfoVo
.
getMemberId
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
NOT_LOGIN
);
}
...
...
@@ -689,4 +817,63 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
return
virtualBindStoreResponse
.
getResult
().
getStoreId
();
}
/**
* 设置总的优惠信息和商品优惠信息
* @param shoppingCartGoodsResponseVo
* @param discountResult
*/
private
void
buildShoppingCartGoodsResponse
(
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
discountResult
,
Integer
flag
,
String
partnerId
)
{
ShoppingCartRelationService
shoppingCartRelationService
=
shoppingCartRelationFactory
.
getBuildShoppingCartGoodsResponseService
(
partnerId
);
shoppingCartRelationService
.
buildShoppingCartGoodsResponse
(
shoppingCartGoodsResponseVo
,
discountResult
,
flag
);
}
private
CustomerInfoVo
getCustomerInfoVo
(
String
sessionId
)
{
GetSessionUserInfoDto
getSessionUserInfoDto
=
new
GetSessionUserInfoDto
();
getSessionUserInfoDto
.
setIsGetPaid
(
true
);
getSessionUserInfoDto
.
setSessionId
(
sessionId
);
BaseResponse
<
CustomerInfoVo
>
sessionUserInfo
=
customerApplicationClient
.
getSessionUserInfo
(
getSessionUserInfoDto
);
if
(!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
sessionUserInfo
.
getCode
())
||
sessionUserInfo
.
getResult
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
NOT_LOGIN
);
}
return
sessionUserInfo
.
getResult
();
}
private
List
<
CalculationSharingDiscountRequestDto
.
CalculationDiscountCoupon
>
buildCoupons
(
List
<
CalculationSharingDiscountRequestDto
.
CalculationDiscountCoupon
>
oldCoupons
,
List
<
ShoppingCartInfoRequestVo
.
couponCode
>
coupons
){
ApiLog
.
info
(
"批量使用优惠券前,oldCoupons,coupons"
,
oldCoupons
,
coupons
);
for
(
int
i
=
0
;
i
<
oldCoupons
.
size
()
;
i
++){
CalculationSharingDiscountRequestDto
.
CalculationDiscountCoupon
oldCoupon
=
oldCoupons
.
get
(
i
);
oldCoupon
.
setUseIndex
(
i
);
}
List
<
String
>
codes
=
oldCoupons
.
stream
().
map
(
CalculationSharingDiscountRequestDto
.
CalculationDiscountCoupon
::
getCode
).
collect
(
toList
());
if
(
coupons
!=
null
)
{
for
(
int
x
=
0
;
x
<
coupons
.
size
()
;
x
++){
ShoppingCartInfoRequestVo
.
couponCode
cp
=
coupons
.
get
(
x
);
if
(
codes
.
contains
(
cp
.
getCouponCode
())){
continue
;
}
CalculationSharingDiscountRequestDto
.
CalculationDiscountCoupon
coupon
=
new
CalculationSharingDiscountRequestDto
.
CalculationDiscountCoupon
();
coupon
.
setCode
(
cp
.
getCouponCode
());
coupon
.
setActivityCode
(
cp
.
getActivityCode
());
coupon
.
setUseIndex
(
cp
.
getIndex
()
==
null
?
x
+
oldCoupons
.
size
():
cp
.
getIndex
()
+
oldCoupons
.
size
());
oldCoupons
.
add
(
coupon
);
}
}
ApiLog
.
info
(
"批量使用优惠券后,oldCoupons,coupons"
,
oldCoupons
,
coupons
);
return
oldCoupons
;
}
}
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