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
05b05abd
Commit
05b05abd
authored
Apr 21, 2021
by
zhiheng.zhang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
华莱士更新
parent
a3e37daf
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
204 additions
and
142 deletions
+204
-142
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/OrderSourceType.java
+0
-1
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/UpdateDeliveryInfoByIdRequest.java
+8
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/OrderCenterSdkServiceImpl.java
+16
-0
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
+9
-0
order-application-service/src/main/java/cn/freemud/entities/vo/OrderReceiveRequestVO.java
+32
-0
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+1
-1
order-application-service/src/main/java/cn/freemud/service/MallOrderService.java
+7
-0
order-application-service/src/main/java/cn/freemud/service/impl/MallOrderServiceImpl.java
+56
-8
order-management/src/main/java/cn/freemud/management/adapter/SaasMallOrderAdapter.java
+1
-1
order-management/src/main/java/cn/freemud/management/service/impl/MallOrderMangerServiceImpl.java
+1
-10
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/OrderExpressReq.java
+11
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/create/OrderTaskReq.java
+1
-0
shopping-cart-application-service/src/main/java/cn/freemud/controller/ShoppingCartController.java
+1
-1
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/QueryDeliveryTemplateRequestVo.java
+8
-1
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/QueryDeliveryTemplateResponseVo.java
+7
-37
shopping-cart-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+1
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartMallServiceImpl.java
+44
-82
No files found.
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/OrderSourceType.java
View file @
05b05abd
...
...
@@ -36,7 +36,6 @@ public enum OrderSourceType {
JUBAOPEN
(
"mtjbp"
,
"美团聚宝盆"
,
20
),
DIANPING
(
"dp"
,
"美团点评"
,
21
),
KOUBEI
(
"koubeiwaimai"
,
"口碑外卖"
,
22
),
MALL
(
"mall"
,
"非码Mall"
,
23
),
SAASMALL
(
"saasmall"
,
"微商城"
,
23
),
DPZHCT
(
"dpzhct"
,
"美团点评智慧餐厅"
,
24
),
FMWD
(
"fmwd"
,
"非码微店"
,
25
),
...
...
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/UpdateDeliveryInfoByIdRequest.java
View file @
05b05abd
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
request
.
order
;
import
com.freemud.application.sdk.api.ordercenter.request.create.OrderTaskReq
;
import
com.freemud.sdk.api.assortment.order.config.BaseConfig
;
import
lombok.Data
;
...
...
@@ -80,4 +81,11 @@ public class UpdateDeliveryInfoByIdRequest extends BaseConfig {
*/
private
String
exceptionDesc
;
/**
* 操作类型 0 = 发货 1=更改物流信息
*/
private
int
opType
;
private
OrderTaskReq
orderTask
;
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/OrderCenterSdkServiceImpl.java
View file @
05b05abd
...
...
@@ -1067,6 +1067,22 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
expressReq
.
setOrderSubState
(
request
.
getOrderSubState
());
expressReq
.
setExceptionDesc
(
request
.
getExceptionDesc
());
expressReq
.
setExceptionId
(
request
.
getExceptionId
());
expressReq
.
setOpType
(
request
.
getOpType
());
if
(
null
!=
request
.
getOrderClient
()
&&
OrderClientType
.
SAASMALL
.
getIndex
()
==
request
.
getOrderClient
()
&&
0
==
request
.
getOpType
()){
OrderTaskReq
orderTask
=
new
OrderTaskReq
();
orderTask
.
setTaskType
(
5
);
orderTask
.
setTimeout
(
1
);
//1000*60*60*24*15 毫秒(15天)
// long timeout = 1296000000;
long
timeout
=
3600000
;
long
timeMillis
=
System
.
currentTimeMillis
();
Date
processingDate
=
new
Date
(
timeMillis
+
timeout
-
60000
);
Date
taskTime
=
new
Date
(
timeMillis
+
timeout
);
orderTask
.
setTaskTime
(
DateUtil
.
convert2String
(
taskTime
,
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
));
//处理时间,当前时间加15天减1分钟
orderTask
.
setProcessingTime
(
DateUtil
.
convert2String
(
processingDate
,
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
));
expressReq
.
setOrderTaskReq
(
orderTask
);
}
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
response
.
BaseResponse
response
=
orderSdkService
.
updateDeliveryInfo
(
expressReq
,
request
.
getTrackingNo
());
OrderBaseResponse
baseResponse
=
new
OrderBaseResponse
();
baseResponse
.
setErrcode
(
response
.
getCode
()
!=
null
?
Integer
.
parseInt
(
response
.
getCode
())
:
null
);
...
...
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
View file @
05b05abd
...
...
@@ -405,4 +405,13 @@ public class OrderController {
return
orderservice
.
queryTodayOrders
(
queryOrderByConditionsRequestVo
);
}
/**
* 订单确认收货
*/
@ApiAnnotation
(
logMessage
=
"receive"
)
@PostMapping
(
"/receive"
)
public
BaseResponse
orderReceive
(
@Validated
@LogParams
@RequestBody
OrderReceiveRequestVO
request
)
{
return
mallOrderService
.
orderReceive
(
request
);
}
}
order-application-service/src/main/java/cn/freemud/entities/vo/OrderReceiveRequestVO.java
0 → 100644
View file @
05b05abd
package
cn
.
freemud
.
entities
.
vo
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.NotEmpty
;
@Data
public
class
OrderReceiveRequestVO
{
@NotEmpty
(
message
=
"sessionId 不能为空"
)
private
String
sessionId
;
/**
* 商户ID
*/
@NotEmpty
(
message
=
"商户号不能为空"
)
private
String
partnerId
;
/**
* 门店id
*/
private
String
shopId
;
/**
* 订单ID
*/
@NotEmpty
(
message
=
"订单号不能为空"
)
private
String
oid
;
/**
* 渠道类型 OrderChannelType
*/
private
String
channelType
;
}
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
View file @
05b05abd
...
...
@@ -172,7 +172,7 @@ public enum ResponseResult {
ORDER_CANCEL_ERROR_ESTIMATE_TIME
(
"45068"
,
"预计送达还剩30分钟,无法取消"
),
STORE_SELF_ERROR
(
"45069"
,
"请选择截止营业时间大于45分钟下单"
),
COUPON_INVALID
(
"45070"
,
"券已锁定,请先支付或取消待支付订单"
),
ORDER_RECEIVE_ERR
(
"45071"
,
"确认收货失败,请稍后再试"
),
/**
* 支付
...
...
order-application-service/src/main/java/cn/freemud/service/MallOrderService.java
View file @
05b05abd
...
...
@@ -5,6 +5,7 @@ import cn.freemud.entities.dto.ConfirmOrderDto;
import
cn.freemud.entities.dto.QueryOrdersResponseDto
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.OrderAffirmRequestVO
;
import
cn.freemud.entities.vo.OrderReceiveRequestVO
;
import
cn.freemud.entities.vo.PaysuccessNoticeMessage
;
import
cn.freemud.entities.vo.encircle.CreateReserveOrderVo
;
import
cn.freemud.entities.vo.encircle.EmptyTableNumberVo
;
...
...
@@ -38,4 +39,10 @@ public interface MallOrderService {
*/
String
paySuccessCallback
(
PaysuccessNoticeMessage
message
,
ConfirmOrderDto
confirmOrderDto
,
Map
<
String
,
QueryOrdersResponseDto
.
DataBean
.
OrderBean
>
orderBeans
);
/**
* 订单确认完成
*/
BaseResponse
orderReceive
(
OrderReceiveRequestVO
requestVO
);
}
order-application-service/src/main/java/cn/freemud/service/impl/MallOrderServiceImpl.java
View file @
05b05abd
...
...
@@ -47,12 +47,15 @@ import com.freemud.application.sdk.api.deliverycenter.response.DeliveryResponseD
import
com.freemud.application.sdk.api.deliverycenter.service.DeliveryService
;
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.NewOrderStatus
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderClientType
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderChangeStateReq
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq
;
import
com.freemud.application.sdk.api.ordercenter.request.POSOrderOperationBaseReq
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter
;
import
com.freemud.sdk.api.assortment.order.request.order.*
;
import
com.freemud.sdk.api.assortment.order.response.order.*
;
import
com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse
;
...
...
@@ -121,6 +124,9 @@ public class MallOrderServiceImpl implements MallOrderService {
private
OrderSdkService
orderSdkService
;
@Autowired
private
EcologyAdminApplicationClient
ecologyAdminApplicationClient
;
@Autowired
private
OrderSdkAdapter
orderSdkAdapter
;
/**
* 创建订单
...
...
@@ -142,7 +148,7 @@ public class MallOrderServiceImpl implements MallOrderService {
// 查询购物车(内部校验券点餐方式,券是否可用) 校验当前订单类型的下单参数
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
checkMallOrder
.
getShoppingCartGoodsDto
(
createOrderVo
);
// 查询商城的配送模板信息,校验订单是否满足配送条件
checkMallOrder
.
checkOrderByDelivery
(
createOrderVo
,
userLoginInfoDto
,
storeResponseDto
,
shoppingCartGoodsDto
.
getTotalAmount
(),
trackingNo
);
//
checkMallOrder.checkOrderByDelivery(createOrderVo, userLoginInfoDto, storeResponseDto, shoppingCartGoodsDto.getTotalAmount(), trackingNo);
OrderExtInfoDto
extInfo
=
this
.
getExtInfo
(
userLoginInfoDto
,
storeResponseDto
,
createOrderVo
);
return
this
.
sdkCreateOrder
(
createOrderVo
,
storeResponseDto
,
shoppingCartGoodsDto
,
userLoginInfoDto
,
extInfo
);
}
...
...
@@ -476,13 +482,6 @@ public class MallOrderServiceImpl implements MallOrderService {
orderRefund
(
orderBean
,
"接单失败"
);
return
gson
.
toJson
(
message
);
}
// 创建配送单
boolean
createSuccess
=
this
.
createDelivery
(
orderBean
,
LogTreadLocal
.
getTrackingNo
());
if
(!
createSuccess
)
{
// 创建配送单发送失败 则进行取消订单并退款
orderRefund
(
orderBean
,
"运单不足,配送失败"
);
return
gson
.
toJson
(
message
);
}
return
sendPaySuccessNoticeMessage
();
}
...
...
@@ -764,4 +763,53 @@ public class MallOrderServiceImpl implements MallOrderService {
return
thirdProductPropertyId
;
}
/**
* 订单确认收货
*/
@Override
public
BaseResponse
orderReceive
(
OrderReceiveRequestVO
requestVO
)
{
BaseResponse
result
=
new
BaseResponse
();
try
{
String
trackingNo
=
LogTreadLocal
.
getTrackingNo
();
BaseQueryOrderRequest
baseQueryOrderRequest
=
new
BaseQueryOrderRequest
();
baseQueryOrderRequest
.
setOrderId
(
requestVO
.
getOid
());
baseQueryOrderRequest
.
setTrackingNo
(
trackingNo
);
QueryOrderByIdResponse
response
=
orderCenterSdkService
.
queryOrderById
(
baseQueryOrderRequest
);
// 判断订单信息是否存在
BaseResponse
baseResponse
=
this
.
checkOrder
(
response
,
requestVO
.
getPartnerId
());
if
(
baseResponse
!=
null
)
{
return
baseResponse
;
}
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
=
response
.
getData
();
//判断订单是否已经完成
if
(
OrderStatus
.
COMPLETE
.
getCode
().
equals
(
orderBean
.
getStatus
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_REPEAT_DO_COMPLETE
);
}
//已取消的订单不能操作
if
(
OrderStatus
.
CALCEL
.
getCode
().
equals
(
orderBean
.
getStatus
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_HAS_CANCELED
);
}
//非商城订单不允许操作
if
(!
OrderSourceType
.
SAASMALL
.
getCode
().
equals
(
orderBean
.
getSource
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_MALL_NOT_MATCH
);
}
/**
* 修改配送状态
*/
OrderChangeStateReq
request
=
new
OrderChangeStateReq
();
request
.
setOrderCode
(
baseQueryOrderRequest
.
getOrderId
());
request
.
setOrderState
(
NewOrderStatus
.
COMPLETE
.
getIndex
());
request
.
setOperator
(
baseQueryOrderRequest
.
getOperator
());
request
.
setRemark
(
"已完成"
);
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
response
.
BaseResponse
orderCenterResponse
=
orderSdkService
.
updateOrderState
(
request
,
baseQueryOrderRequest
.
getTrackingNo
());
result
.
setCode
(
orderCenterResponse
.
getCode
());
result
.
setMessage
(
orderCenterResponse
.
getMessage
());
}
catch
(
Exception
e
){
result
.
setCode
(
ResponseResult
.
ORDER_RECEIVE_ERR
.
getCode
());
result
.
setMessage
(
ResponseResult
.
ORDER_RECEIVE_ERR
.
getMessage
());
}
return
result
;
}
}
order-management/src/main/java/cn/freemud/management/adapter/MallOrderAdapter.java
→
order-management/src/main/java/cn/freemud/management/adapter/
Saas
MallOrderAdapter.java
View file @
05b05abd
...
...
@@ -17,7 +17,7 @@ import org.springframework.stereotype.Component;
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Component
public
class
MallOrderAdapter
{
public
class
Saas
MallOrderAdapter
{
/**
* 接单request
...
...
order-management/src/main/java/cn/freemud/management/service/impl/MallOrderMangerServiceImpl.java
View file @
05b05abd
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.adapter.SaasMallOrderAdapter
;
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
;
...
...
@@ -36,9 +30,6 @@ import javax.annotation.Resource;
*/
@Service
public
class
MallOrderMangerServiceImpl
implements
OrderManagerService
{
@Resource
private
MallOrderAdapter
mallOrderAdapter
;
@Autowired
private
MallOrderHandle
mallOrderHandle
;
@Autowired
...
...
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/OrderExpressReq.java
View file @
05b05abd
...
...
@@ -12,6 +12,7 @@
*/
package
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
request
;
import
com.freemud.application.sdk.api.ordercenter.request.create.OrderTaskReq
;
import
lombok.Data
;
@Data
...
...
@@ -62,4 +63,14 @@ public class OrderExpressReq {
*/
private
String
exceptionDesc
;
/**
* 操作类型 0 = 发货 1=更改物流信息
*/
private
int
opType
;
/**
* 定时任务
*/
private
OrderTaskReq
orderTaskReq
;
}
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/create/OrderTaskReq.java
View file @
05b05abd
...
...
@@ -27,6 +27,7 @@ public class OrderTaskReq {
//2 超时回调
//3 拉单队列
//4 申请退款48小时未处理自动回调
//5 15天自动确认收货
private
Integer
taskType
;
private
Integer
timeout
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/controller/ShoppingCartController.java
View file @
05b05abd
...
...
@@ -175,7 +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/entities/vo/QueryDeliveryTemplateRequestVo.java
View file @
05b05abd
...
...
@@ -20,9 +20,16 @@ public class QueryDeliveryTemplateRequestVo {
private
String
province
;
public
QueryDeliveryTemplateRequestVo
(
String
partnerId
,
String
province
){
private
Integer
orderAmount
;
private
Integer
count
;
public
QueryDeliveryTemplateRequestVo
(
String
partnerId
,
String
province
,
Integer
orderAmount
,
Integer
count
){
this
.
partnerId
=
partnerId
;
this
.
province
=
province
;
this
.
orderAmount
=
orderAmount
;
this
.
count
=
count
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/QueryDeliveryTemplateResponseVo.java
View file @
05b05abd
package
cn
.
freemud
.
entities
.
vo
;
import
com.freemud.application.sdk.api.storecenter.request.template.DeliveryTemplateDetailRequest
;
import
lombok.Data
;
import
java.math.BigDecimal
;
...
...
@@ -21,49 +22,18 @@ public class QueryDeliveryTemplateResponseVo {
private
String
msg
;
private
List
<
DispatchCost
>
data
;
private
DeliveryTemplateInfoVo
data
;
@Data
public
static
class
D
ispatchCost
{
public
static
class
D
eliveryTemplateInfoVo
{
/**
*
增加的
运费
* 运费
*/
private
Integer
addCost
;
private
Integer
freight
;
/**
*
首个配送件数 对应的运费金额
*
是否包邮 -> true:是; false:否
*/
private
Integer
firstCost
;
/**
* 首个配送件数
*/
private
Integer
firstStandard
;
/**
* 最小包邮金额
*/
private
Integer
hasAmountForDeliveryFree
;
/**
* 0: 无最小金额包邮配置 1:存在最金额配置
*/
private
Integer
hasMinAmount
;
/**
* 0: 无最小件数包邮配置 1:存在最小件数配置
*/
private
Integer
hasMinCount
;
/**
* 最小包邮件数
*/
private
Integer
minCountForDeliveryFree
;
private
boolean
isDispatchFree
;
}
/**
* 是否包邮 -> true:是; false:否
*/
private
boolean
isDispatchFree
;
}
shopping-cart-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
View file @
05b05abd
...
...
@@ -104,6 +104,7 @@ public enum ResponseResult {
SHOPPING_CART_QTY_LIMIT_ERR
(
"44035"
,
"该商品单次购买数量限制为10,请知晓"
),
SHOPPING_CART_SEED_COUPON_VALID
(
"44037"
,
"券商品数量不可大于券数量"
),
SHOPPING_CART_MATERIA_QTY_LIMIT_ERR
(
"44038"
,
"商品加料超过最大限制"
),
SHOPPING_CART_QUERY_DELIVERY_TEMPLATE_ERR
(
"44039"
,
"获取配送模板异常"
),
/**
* 订单状态码
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartMallServiceImpl.java
View file @
05b05abd
...
...
@@ -136,9 +136,10 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
addShoppingCartGoodsRequestVo
.
setShopId
(
storeId
);
//清空临时购物车
// 构造请求参数,进行清空购物车
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartParamDto
cartParamDto
=
assortmentSdkService
.
getNowBuyCartParamDto
(
addShoppingCartGoodsRequestVo
.
getBuyType
(),
partnerId
,
storeId
,
userId
);
shoppingCartBaseService
.
clear
(
cartParamDto
,
LogThreadLocal
.
getTrackingNo
());
if
(
ShoppingCartConstant
.
NOW_BUY_TYPE
==
addShoppingCartGoodsRequestVo
.
getBuyType
())
{
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartParamDto
cartParamDto
=
assortmentSdkService
.
getNowBuyCartParamDto
(
addShoppingCartGoodsRequestVo
.
getBuyType
(),
partnerId
,
storeId
,
userId
);
shoppingCartBaseService
.
clear
(
cartParamDto
,
LogThreadLocal
.
getTrackingNo
());
}
/**
* 不支持优惠券
*/
...
...
@@ -343,7 +344,11 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
//1.5.4 多规格的sku商品计算包装费
//checkSkuOnVersion(cartGoodsList, partnerId, storeId, shoppingCartGoodsResponseVo);
// 重新存储最新购物车
assortmentSdkService
.
setShoppingCart
(
partnerId
,
storeId
,
userId
,
cartGoodsList
,
assortmentCustomerInfoVo
.
getSessionId
(),
""
,
this
.
shoppingCartBaseService
);
if
(
ShoppingCartConstant
.
NOW_BUY_TYPE
==
shoppingCartInfoRequestVo
.
getBuyType
())
{
assortmentSdkService
.
setNowBuyShoppingCart
(
shoppingCartInfoRequestVo
.
getBuyType
(),
partnerId
,
storeId
,
userId
,
cartGoodsList
,
assortmentCustomerInfoVo
.
getSessionId
(),
""
,
this
.
shoppingCartBaseService
);
}
else
{
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
();
...
...
@@ -475,32 +480,30 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
String
menuType
=
shoppingCartInfoRequestVo
.
getMenuType
();
Integer
orderType
=
shoppingCartInfoRequestVo
.
getOrderType
();
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoodsList
=
shoppingCartInfoRequestVo
.
getSendGoods
();
List
<
CartGoods
>
cartGoodsList
=
new
ArrayList
<>();
// 获取购物车商品
List
<
CartGoods
>
cartGoodsList
=
assortmentSdkService
.
getShoppingCart
(
partnerId
,
storeId
,
userId
,
null
,
""
,
shoppingCartBaseService
);
if
(
ShoppingCartConstant
.
NOW_BUY_TYPE
==
shoppingCartInfoRequestVo
.
getBuyType
())
{
cartGoodsList
=
assortmentSdkService
.
getNowBuyShoppingCart
(
ShoppingCartConstant
.
NOW_BUY_TYPE
,
partnerId
,
storeId
,
userId
,
null
,
""
,
shoppingCartBaseService
);
}
else
{
cartGoodsList
=
assortmentSdkService
.
getShoppingCart
(
partnerId
,
storeId
,
userId
,
null
,
""
,
shoppingCartBaseService
);
}
if
(
cartGoodsList
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_GETINFO_INVAILD
);
cartGoodsList
=
new
ArrayList
<>(
);
}
// check购物车中所有商品
(商品是否存在,价格变动,券是否支持当前点餐方式)
// check购物车中所有商品
CheckCartRequest
checkCartRequest
=
assortmentSdkService
.
checkShoppingCartSdk
(
cartGoodsList
,
partnerId
,
storeId
,
shoppingCartGoodsResponseVo
,
shoppingCartInfoRequestVo
.
getOrderType
(),
""
,
BusinessTypeEnum
.
SAAS_MALL
.
getName
()
,
shoppingCartBaseService
);
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
ShoppingCartGoodsResponseVo
cartGoodsResponseVo
=
checkCartRequest
.
getShoppingCartGoodsResponseVo
();
//商品不再售卖状态或价格变动,直接返回报错
if
(
cartGoodsResponseVo
!=
null
)
{
if
(
cartGoodsResponseVo
.
getCartGoodsStates
()
!=
null
&&
cartGoodsResponseVo
.
getCartGoodsStates
().
isHasInvalidGoods
())
{
return
ResponseUtil
.
error
(
ResponseResult
.
STORE_ITEM_CHECK_INVAILD
);
}
if
(
cartGoodsResponseVo
.
getCartGoodsStates
()
!=
null
&&
cartGoodsResponseVo
.
getCartGoodsStates
().
isPriceChanged
())
{
return
ResponseUtil
.
error
(
ResponseResult
.
SHOPPING_CART_ACTIVITY_CHANGE
);
}
shoppingCartGoodsResponseVo
.
setToastMsg
(
cartGoodsResponseVo
.
getToastMsg
());
if
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
()
!=
null
)
{
shoppingCartGoodsResponseVo
.
setToastMsg
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
getToastMsg
());
}
cartGoodsList
=
JSONArray
.
parseArray
(
JSONObject
.
toJSONString
(
checkCartRequest
.
getCartGoodsList
()),
CartGoods
.
class
);
// 多规格的sku商品计算包装费
//this.checkSkuOnVersion(cartGoodsList, partnerId, storeId, shoppingCartGoodsResponseVo);
//1.5.4 多规格的sku商品计算包装费
//checkSkuOnVersion(cartGoodsList, partnerId, storeId, shoppingCartGoodsResponseVo);
// 重新存储最新购物车
assortmentSdkService
.
setShoppingCart
(
partnerId
,
storeId
,
userId
,
cartGoodsList
,
assortmentCustomerInfoVo
.
getSessionId
(),
""
,
this
.
shoppingCartBaseService
);
if
(
ShoppingCartConstant
.
NOW_BUY_TYPE
==
shoppingCartInfoRequestVo
.
getBuyType
())
{
assortmentSdkService
.
setNowBuyShoppingCart
(
shoppingCartInfoRequestVo
.
getBuyType
(),
partnerId
,
storeId
,
userId
,
cartGoodsList
,
assortmentCustomerInfoVo
.
getSessionId
(),
""
,
this
.
shoppingCartBaseService
);
}
else
{
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
();
...
...
@@ -510,7 +513,11 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
}
buildCoupons
(
coupons
,
shoppingCartInfoRequestVo
.
getCouponCodes
());
Long
deliveryAmount
=
0L
;
Long
deliveryAmount
=
calculateDeliveryAmount
(
partnerId
,
shoppingCartInfoRequestVo
,
cartGoodsList
);
ActivityQueryDto
activityQueryDto
=
activityAdapter
.
getActivityQueryDto
(
partnerId
,
storeId
,
userId
,
appId
,
shoppingCartInfoRequestVo
.
getOrderType
());
CouponPromotionVO
couponPromotionVO
=
couponAdapter
.
getCouponPromotionVO
(
shoppingCartInfoRequestVo
,
userLoginInfoDto
);
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoods
=
new
ArrayList
<>();
...
...
@@ -553,7 +560,6 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
,
storeId
);
buildShoppingCartGoodsResponse
(
shoppingCartGoodsResponseVo
,
calculationSharingDiscountResult
,
shoppingCartInfoRequestVo
.
getFlag
(),
partnerId
);
//设置均摊信息
updateShoppingCartGoodsApportion
(
shoppingCartGoodsResponseVo
,
null
,
shoppingCartGoodsDto
,
premiumExchangeActivity
,
shoppingCartInfoRequestVo
);
...
...
@@ -890,64 +896,20 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
return
deliveryAmount
;
}
log
.
info
(
"获取配送配逻辑 tackingNo:{},partnerId:{},province"
,
LogThreadLocal
.
getTrackingNo
(),
shoppingCartInfoRequestVo
.
getPartnerId
(),
shoppingCartInfoRequestVo
.
getProvince
());
return
getDeliveryAmount
(
shoppingCartInfoRequestVo
.
getPartnerId
(),
shoppingCartInfoRequestVo
.
getProvince
(),
cartGoodsList
);
}
/**
* 查询配送费
*
* @return
*/
private
Integer
getDeliveryAmount
(
String
partnerId
,
String
province
)
{
String
trackingNo
=
LogThreadLocal
.
getTrackingNo
();
Integer
amount
=
0
;
QueryDeliveryTemplateRequestVo
requestVo
=
new
QueryDeliveryTemplateRequestVo
(
partnerId
,
province
);
QueryDeliveryTemplateResponseVo
responseVo
=
deliveryFeiginClient
.
queryDeliveryTemplate
(
requestVo
);
//查询会员后货地址经纬度
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
QueryReceiveAddressResponse
>
queryReceiveAddressResponse
=
memberCenterService
.
queryReceiveAddressById
(
queryReceive
,
trackingNo
);
if
(!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
queryReceiveAddressResponse
.
getCode
())
||
queryReceiveAddressResponse
.
getData
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
USER_GETRECEIVEADDRESS_ERROR
);
}
StoreInfoRequest
request
=
new
StoreInfoRequest
();
request
.
setPartnerId
(
partnerId
);
request
.
setStoreCode
(
storeId
);
//查询门店信息,获取门店经纬度
StoreResponse
storeResponse
=
storeCenterService
.
getStoreInfo
(
request
,
trackingNo
);
if
(
storeResponse
==
null
||
storeResponse
.
getStatusCode
()
!=
100
||
storeResponse
.
getBizVO
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_NOT_FOUND
);
}
//查询门店外卖配送配置
AssortmentOpenPlatformPartnerStoreDeliveryConfig
deliveryConfig
=
deliveryConfigManager
.
findByPartnerIdAndStoreCode
(
partnerId
,
storeId
);
if
(
deliveryConfig
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_ITEM_NOT_DELIVERY
);
}
StoreDeliveryInfoDto
storeDeliveryInfoDto
=
new
StoreDeliveryInfoDto
();
storeDeliveryInfoDto
.
setPartnerId
(
partnerId
);
storeDeliveryInfoDto
.
setStoreId
(
storeId
);
storeDeliveryInfoDto
.
setStoreName
(
storeResponse
.
getBizVO
().
getStoreName
());
storeDeliveryInfoDto
.
setDeliveryLimitAmount
(
deliveryConfig
==
null
?
0
:
deliveryConfig
.
getDeliveryLimitAmount
());
storeDeliveryInfoDto
.
setDeliveryAmount
(
deliveryConfig
==
null
?
0
:
deliveryConfig
.
getDeliveryAmount
());
storeDeliveryInfoDto
.
setDefaultDeliveryRange
(
deliveryConfig
==
null
?
0L
:
deliveryConfig
.
getDefaultDeliveryRange
());
storeDeliveryInfoDto
.
setAddRangeAmount
(
deliveryConfig
==
null
?
0L
:
deliveryConfig
.
getAddRangeAmount
());
storeDeliveryInfoDto
.
setAddRangeCount
(
deliveryConfig
==
null
?
0L
:
deliveryConfig
.
getAddRangeCount
());
storeDeliveryInfoDto
.
setPoint2DList
(
getDeliveryPoint2DList
(
storeResponse
.
getBizVO
().
getDistributionScope
()));
storeDeliveryInfoDto
.
setDeliveryHoursDay
(
storeResponse
.
getBizVO
().
getDeliveryHoursDay
());
storeDeliveryInfoDto
.
setLongitude
(
storeResponse
.
getBizVO
().
getLongitude
());
storeDeliveryInfoDto
.
setLatitude
(
storeResponse
.
getBizVO
().
getLatitude
());
storeDeliveryInfoDto
.
setScopeConfig
(
storeResponse
.
getBizVO
().
getScopeConfig
());
if
(
StringUtils
.
isNotEmpty
(
storeResponse
.
getBizVO
().
getDeliveryRadius
()))
{
storeDeliveryInfoDto
.
setDeliveryRadius
(
Integer
.
valueOf
(
storeResponse
.
getBizVO
().
getDeliveryRadius
()));
}
else
{
storeDeliveryInfoDto
.
setDeliveryRadius
(
0
);
Long
orderAmount
=
0L
;
if
(
null
!=
cartGoodsList
&&
cartGoodsList
.
size
()>
0
){
orderAmount
=
cartGoodsList
.
stream
().
mapToLong
(
CartGoods:
:
getAmount
).
sum
();
}
QueryDeliveryTemplateRequestVo
requestVo
=
new
QueryDeliveryTemplateRequestVo
(
partnerId
,
shoppingCartInfoRequestVo
.
getProvince
(),
Integer
.
valueOf
(
orderAmount
.
toString
()),
cartGoodsList
.
size
());
QueryDeliveryTemplateResponseVo
queryDeliveryTemplateResponseVo
=
deliveryFeiginClient
.
queryDeliveryTemplate
(
requestVo
);
if
(!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
queryDeliveryTemplateResponseVo
.
getCode
().
toString
())
||
queryDeliveryTemplateResponseVo
.
getData
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_QUERY_DELIVERY_TEMPLATE_ERR
);
}
boolean
isDispatchFree
=
queryDeliveryTemplateResponseVo
.
getData
().
isDispatchFree
();
if
(!
isDispatchFree
)
{
deliveryAmount
=
Long
.
valueOf
(
queryDeliveryTemplateResponseVo
.
getData
().
getFreight
());
}
storeDeliveryInfoDto
.
setEnableTakeaway
(
true
);
String
userLongitude
=
queryReceiveAddressResponse
.
getData
().
getLongitude
();
String
userLatitude
=
queryReceiveAddressResponse
.
getData
().
getLatitude
();
amount
=
storeService
.
getUserRealDeliveryAmount
(
storeDeliveryInfoDto
,
userLongitude
,
userLatitude
).
intValue
();
return
amount
;
return
deliveryAmount
;
}
}
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