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
3e801014
Commit
3e801014
authored
Sep 15, 2021
by
徐康
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/qa' into qa
parents
b8b7b658
270320ef
Hide whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
910 additions
and
97 deletions
+910
-97
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/OrderCenterSdkServiceImpl.java
+1
-0
order-application-service/src/main/java/cn/freemud/adapter/CreateOrderAdapter.java
+1
-0
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+0
-3
order-application-service/src/main/java/cn/freemud/entities/dto/pay/OrderPayResponse.java
+0
-1
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
+0
-1
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
+1
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderCommonService.java
+1
-0
order-application-service/src/main/java/cn/freemud/service/impl/PointsMallOrderServiceImpl.java
+33
-33
order-application-service/src/main/java/cn/freemud/service/impl/SellCouponOrderServiceImpl.java
+3
-0
order-application-service/src/main/java/cn/freemud/service/universal/UniversalOrderService.java
+1
-0
order-management/src/main/java/cn/freemud/management/adapter/DeliverySdkAdapter.java
+18
-15
order-management/src/main/java/cn/freemud/management/entities/dto/request/console/BizDTO.java
+28
-0
order-management/src/main/java/cn/freemud/management/entities/dto/request/console/BusinessInfoDTO.java
+216
-0
order-management/src/main/java/cn/freemud/management/entities/dto/request/console/ConsoleResponseDTO.java
+25
-0
order-management/src/main/java/cn/freemud/management/entities/dto/request/console/DeliveryInfoDTO.java
+74
-0
order-management/src/main/java/cn/freemud/management/entities/dto/request/console/ExpandFieldsDTO.java
+71
-0
order-management/src/main/java/cn/freemud/management/entities/dto/request/console/GetStoreMixRequest.java
+29
-0
order-management/src/main/java/cn/freemud/management/entities/dto/request/console/QueryFlag.java
+44
-0
order-management/src/main/java/cn/freemud/management/entities/dto/request/console/StoreInfoDTO.java
+174
-0
order-management/src/main/java/cn/freemud/management/service/handle/DeliveryHandle.java
+22
-4
order-management/src/main/java/cn/freemud/management/service/impl/OrderDeliveryService.java
+14
-6
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
+24
-17
order-management/src/main/java/cn/freemud/management/thirdparty/ConsoleApiClient.java
+36
-0
shopping-cart-application-service/src/main/java/cn/freemud/adapter/ActivityAdapter.java
+74
-3
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartMallServiceImpl.java
+8
-5
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
+10
-7
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/CalculationSharingDiscountService.java
+2
-2
No files found.
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/OrderCenterSdkServiceImpl.java
View file @
3e801014
...
...
@@ -68,6 +68,7 @@ import com.freemud.sdk.api.assortment.order.request.order.CreateOrderRequest;
import
com.freemud.sdk.api.assortment.order.request.order.OrderDownloadRequest
;
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;
import
com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService
;
import
com.freemud.sdk.api.assortment.order.util.AssortOrderLogUtil
;
import
com.freemud.sdk.api.assortment.order.vo.AssortmentOrderProductVo
;
...
...
order-application-service/src/main/java/cn/freemud/adapter/CreateOrderAdapter.java
View file @
3e801014
...
...
@@ -46,6 +46,7 @@ import com.freemud.sdk.api.assortment.order.request.order.*;
import
com.freemud.sdk.api.assortment.order.request.payment.CombPayRequest
;
import
com.freemud.sdk.api.assortment.order.request.payment.PayPlatformVO
;
import
com.freemud.sdk.api.assortment.order.request.payment.ProductVO
;
//import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse;
import
com.freemud.sdk.api.assortment.order.util.ClassUtils
;
import
com.freemud.sdk.api.assortment.order.util.WeightUtils
;
import
com.freemud.sdk.api.assortment.order.vo.ProductGroupVo
;
...
...
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
3e801014
...
...
@@ -183,7 +183,6 @@ public class OrderAdapter {
ArrayList
<
CreateOrderAccountRequest
>
orderAccountDtos
=
new
ArrayList
<>();
long
deliveryAmount
=
0
;
long
discountDeliveryAmount
=
0
;
AppLogUtil
.
infoLog
(
"fisherman 计算discountDeliveryAmount 的操作 begin"
,
shoppingCartGoodsDto
,
createOrderVo
);
if
(
createOrderVo
.
getMenuType
().
equals
(
BusinessTypeEnum
.
SAAS_DELIVERY
.
getCode
()))
{
deliveryAmount
=
shoppingCartGoodsDto
.
getDeliveryAmount
()
==
null
?
9
l
:
shoppingCartGoodsDto
.
getDeliveryAmount
();
discountDeliveryAmount
=
shoppingCartGoodsDto
.
getDeliveryAmount
()
==
null
?
9
l
:
shoppingCartGoodsDto
.
getDeliveryAmount
();
...
...
@@ -210,7 +209,6 @@ public class OrderAdapter {
Long
totalScore
=
shoppingCartGoodsDto
.
getTotalScore
()
==
null
?
0L
:
shoppingCartGoodsDto
.
getTotalScore
();
createOrderDto
.
setTotalScore
(
totalScore
);
AppLogUtil
.
infoLog
(
"fisherman 计算discountDeliveryAmount 的操作 end"
,
deliveryAmount
,
discountDeliveryAmount
);
//商城实付无需加上配送费用和包装费
if
(
createOrderVo
.
getMenuType
().
equals
(
BusinessTypeEnum
.
SAAS_MALL
.
getCode
()))
{
createOrderDto
.
setAmount
(
shoppingCartGoodsDto
.
getTotalAmount
());
...
...
@@ -1569,7 +1567,6 @@ public class OrderAdapter {
// });
}
AppLogUtil
.
infoLog
(
"fisherman orderBean:"
,
JSON
.
toJSONString
(
ordersBeans
),
JSON
.
toJSONString
(
list
));
return
list
;
}
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/pay/OrderPayResponse.java
View file @
3e801014
...
...
@@ -12,7 +12,6 @@
*/
package
cn
.
freemud
.
entities
.
dto
.
pay
;
import
com.freemud.application.sdk.api.ordercenter.enums.PayChannelType
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderPayItemResp
;
import
lombok.Data
;
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
View file @
3e801014
...
...
@@ -1057,7 +1057,6 @@ public class CheckOrder {
request
.
setPartnerId
(
partnerId
);
request
.
setStoreCode
(
storeCode
);
StoreCBaseResponse
<
StoreCBaseResponseDto
>
responseDto
=
storeBaseApiClient
.
queryDeliverDetail
(
request
);
AppLogUtil
.
infoLog
(
"fisherman 获取门店预计送达时间"
,
request
,
responseDto
);
if
(
responseDto
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
SYSTEM_BUSINESS_ERROR
);
}
...
...
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
View file @
3e801014
...
...
@@ -121,6 +121,7 @@ import com.freemud.sdk.api.assortment.order.enums.OldOrderStatus;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderType
;
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;
import
cn.freemud.service.mccafe.CouponClientService
;
import
cn.freemud.service.mccafe.MCCafeOrderCenterSdkService
;
import
com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService
;
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderCommonService.java
View file @
3e801014
...
...
@@ -46,6 +46,7 @@ import com.freemud.sdk.api.assortment.order.request.order.OrderEditRequest;
import
com.freemud.sdk.api.assortment.order.request.order.PaymentRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.AssortmentAffirmGroupOrderResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse
;
//import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse;
import
com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService
;
import
com.freemud.sdk.api.assortment.payment.request.UnifiedOrderRequest
;
import
com.freemud.sdk.api.assortment.payment.response.UnifiedOrderResponse
;
...
...
order-application-service/src/main/java/cn/freemud/service/impl/PointsMallOrderServiceImpl.java
View file @
3e801014
...
...
@@ -491,39 +491,6 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
/**
* 获取券的有效结束时间
*/
private
Date
getCouponValidEnd
(
Active
activeInfo
){
Date
returnDate
=
null
;
if
(
activeInfo
.
getEffective
()
!=
null
&&
activeInfo
.
getEffective
()
>
0
)
{
// 根据固定时长来计算 天来计算
int
delayTimes
=
activeInfo
.
getFromDayEffective
()
!=
null
?
activeInfo
.
getFromDayEffective
()
:
0
;
int
validityPeriod
=
activeInfo
.
getEffective
()
!=
null
?
activeInfo
.
getEffective
()
:
1
;
if
(
activeInfo
.
getEffectiveStart
()
!=
null
&&
activeInfo
.
getEffectiveEnd
()
!=
null
)
{
// 有效期为0 默认传1天,做兼容处理
Date
effectiveStart
=
activeInfo
.
getEffectiveStart
();
Date
effectiveEnd
=
activeInfo
.
getEffectiveEnd
();
Date
date
=
new
Date
();
Date
startDate
=
cn
.
freemud
.
base
.
util
.
DateUtil
.
addDays
(
date
,
delayTimes
);
Date
endDate
=
cn
.
freemud
.
base
.
util
.
DateUtil
.
addDays
(
date
,
(
delayTimes
+
validityPeriod
));
if
(
startDate
.
before
(
effectiveStart
))
{
startDate
=
effectiveStart
;
}
if
(
endDate
.
after
(
effectiveEnd
))
{
endDate
=
effectiveEnd
;
}
returnDate
=
endDate
;
}
else
{
// 有效期为0 默认传1天,做兼容处理
returnDate
=
DateUtil
.
addDays
(
new
Date
(),
(
delayTimes
+
validityPeriod
-
1
));
}
}
else
{
returnDate
=
activeInfo
.
getEffectiveEndTime
();
}
return
returnDate
;
}
/**
* 获取商户支付超时时间
*
* @param partnerId 商户Id
...
...
@@ -640,4 +607,37 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
return
gson
.
toJson
(
map
);
}
/**
* 获取券的有效结束时间
*/
private
Date
getCouponValidEnd
(
Active
activeInfo
){
Date
returnDate
=
null
;
if
(
activeInfo
.
getEffective
()
!=
null
&&
activeInfo
.
getEffective
()
>
0
)
{
// 根据固定时长来计算 天来计算
int
delayTimes
=
activeInfo
.
getFromDayEffective
()
!=
null
?
activeInfo
.
getFromDayEffective
()
:
0
;
int
validityPeriod
=
activeInfo
.
getEffective
()
!=
null
?
activeInfo
.
getEffective
()
:
1
;
if
(
activeInfo
.
getEffectiveStart
()
!=
null
&&
activeInfo
.
getEffectiveEnd
()
!=
null
)
{
// 有效期为0 默认传1天,做兼容处理
Date
effectiveStart
=
activeInfo
.
getEffectiveStart
();
Date
effectiveEnd
=
activeInfo
.
getEffectiveEnd
();
Date
date
=
new
Date
();
Date
startDate
=
cn
.
freemud
.
base
.
util
.
DateUtil
.
addDays
(
date
,
delayTimes
);
Date
endDate
=
cn
.
freemud
.
base
.
util
.
DateUtil
.
addDays
(
date
,
(
delayTimes
+
validityPeriod
));
if
(
startDate
.
before
(
effectiveStart
))
{
startDate
=
effectiveStart
;
}
if
(
endDate
.
after
(
effectiveEnd
))
{
endDate
=
effectiveEnd
;
}
returnDate
=
endDate
;
}
else
{
// 有效期为0 默认传1天,做兼容处理
returnDate
=
DateUtil
.
addDays
(
new
Date
(),
(
delayTimes
+
validityPeriod
-
1
));
}
}
else
{
returnDate
=
activeInfo
.
getEffectiveEndTime
();
}
return
returnDate
;
}
}
order-application-service/src/main/java/cn/freemud/service/impl/SellCouponOrderServiceImpl.java
View file @
3e801014
...
...
@@ -51,6 +51,9 @@ import com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderReq
import
com.freemud.application.sdk.api.ordercenter.request.create.DeliveryContactInfoCreateReq
;
import
com.freemud.application.sdk.api.ordercenter.request.create.OrderItemCreateReq
;
import
com.freemud.application.sdk.api.ordercenter.request.create.OrderSettlementCreateReq
;
import
com.freemud.application.sdk.api.ordercenter.request.create.DeliveryContactInfoCreateReq
;
import
com.freemud.application.sdk.api.ordercenter.request.create.OrderItemCreateReq
;
import
com.freemud.application.sdk.api.ordercenter.request.create.OrderSettlementCreateReq
;
import
com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
...
...
order-application-service/src/main/java/cn/freemud/service/universal/UniversalOrderService.java
View file @
3e801014
...
...
@@ -85,6 +85,7 @@ import com.freemud.sdk.api.assortment.order.request.order.*;
import
com.freemud.sdk.api.assortment.order.request.payment.CombPayRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse
;
//import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse;
import
com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService
;
import
com.freemud.sdk.api.assortment.payment.request.UnifiedOrderRequest
;
import
com.freemud.sdk.api.assortment.payment.response.UnifiedOrderResponse
;
...
...
order-management/src/main/java/cn/freemud/management/adapter/DeliverySdkAdapter.java
View file @
3e801014
package
cn
.
freemud
.
management
.
adapter
;
import
cn.freemud.management.entities.dto.request.console.BizDTO
;
import
cn.freemud.management.entities.dto.request.console.ConsoleResponseDTO
;
import
cn.freemud.management.entities.dto.request.console.StoreInfoDTO
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.enums.DeliveryStatus
;
import
com.freemud.application.sdk.api.deliverycenter.dto.CreateDeliveryOrderRequestDto
;
...
...
@@ -24,13 +27,13 @@ public class DeliverySdkAdapter {
* 创建配送单请求对象
*
* @param order
* @param
storeInfo
* @param
bizDTO
* @param deliveryCallBackUrl
* @return
*/
public
CreateDeliveryOrderRequestDto
buildDeliveryOrderRequestDto
(
OrderBeanV1
order
,
StoreResponse
storeInfo
,
String
deliveryCallBackUrl
)
{
,
ConsoleResponseDTO
<
BizDTO
>
bizDTO
,
String
deliveryCallBackUrl
)
{
StoreInfoDTO
storeInfo
=
bizDTO
.
getBizVO
().
getStoreInfo
();
CreateDeliveryOrderRequestDto
deliveryOrderRequestDto
=
new
CreateDeliveryOrderRequestDto
();
deliveryOrderRequestDto
.
setDepatchWeight
(
new
BigDecimal
(
1
));
deliveryOrderRequestDto
.
setSerialNumber
(
order
.
getOtherCode
());
...
...
@@ -40,23 +43,23 @@ public class DeliverySdkAdapter {
deliveryOrderRequestDto
.
setOrderActualAmount
(
order
.
getAmount
().
intValue
());
deliveryOrderRequestDto
.
setPartnerId
(
order
.
getCompanyId
());
deliveryOrderRequestDto
.
setOrderChannel
(
order
.
getSource
());
deliveryOrderRequestDto
.
setStoreId
(
storeInfo
.
get
BizVO
().
get
StoreId
());
deliveryOrderRequestDto
.
setStoreCode
(
storeInfo
.
get
BizVO
().
get
StoreCode
());
StringBuffer
address
=
new
StringBuffer
(
storeInfo
.
get
BizVO
().
get
City
())
.
append
(
storeInfo
.
get
BizVO
().
get
Province
())
.
append
(
storeInfo
.
get
BizVO
().
get
Region
())
.
append
(
storeInfo
.
get
BizVO
().
get
Address
());
deliveryOrderRequestDto
.
setStoreId
(
storeInfo
.
getStoreId
());
deliveryOrderRequestDto
.
setStoreCode
(
storeInfo
.
getStoreCode
());
StringBuffer
address
=
new
StringBuffer
(
storeInfo
.
getCity
())
.
append
(
storeInfo
.
getProvince
())
.
append
(
storeInfo
.
getRegion
())
.
append
(
storeInfo
.
getAddress
());
deliveryOrderRequestDto
.
setStoreAddress
(
address
.
toString
());
deliveryOrderRequestDto
.
setStoreLng
(
new
BigDecimal
(
storeInfo
.
get
BizVO
().
get
Longitude
()));
deliveryOrderRequestDto
.
setStoreLat
(
new
BigDecimal
(
storeInfo
.
get
BizVO
().
get
Latitude
()));
deliveryOrderRequestDto
.
setStorePhone
(
storeInfo
.
get
BizVO
().
get
Phone
());
deliveryOrderRequestDto
.
setStoreLng
(
new
BigDecimal
(
storeInfo
.
getLongitude
()));
deliveryOrderRequestDto
.
setStoreLat
(
new
BigDecimal
(
storeInfo
.
getLatitude
()));
deliveryOrderRequestDto
.
setStorePhone
(
storeInfo
.
getPhone
());
deliveryOrderRequestDto
.
setStoreName
(
order
.
getShopName
());
deliveryOrderRequestDto
.
setCityName
(
storeInfo
.
get
BizVO
().
get
City
());
deliveryOrderRequestDto
.
setCityName
(
storeInfo
.
getCity
());
deliveryOrderRequestDto
.
setReceiverName
(
order
.
getUserName
());
deliveryOrderRequestDto
.
setReceiverPrimaryPhone
(
order
.
getPhone
());
deliveryOrderRequestDto
.
setReceiverAddress
(
order
.
getAddress
());
deliveryOrderRequestDto
.
setReceiverLng
(
new
BigDecimal
(
order
.
getLongitude
()));
deliveryOrderRequestDto
.
setReceiverLat
(
new
BigDecimal
(
order
.
getLatitude
()));
deliveryOrderRequestDto
.
setReceiverLng
(
BigDecimal
.
valueOf
(
order
.
getLongitude
()));
deliveryOrderRequestDto
.
setReceiverLat
(
BigDecimal
.
valueOf
(
order
.
getLatitude
()));
deliveryOrderRequestDto
.
setOrderTime
(
new
Date
(
order
.
getGmtCreate
()));
deliveryOrderRequestDto
.
setCallbackUrl
(
deliveryCallBackUrl
);
deliveryOrderRequestDto
.
setOrderClient
(
NumberUtils
.
toInt
(
order
.
getOrderClient
()));
...
...
order-management/src/main/java/cn/freemud/management/entities/dto/request/console/BizDTO.java
0 → 100644
View file @
3e801014
package
cn
.
freemud
.
management
.
entities
.
dto
.
request
.
console
;
import
lombok.Data
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/7/22 下午3:38
* @description :
*/
@Data
public
class
BizDTO
{
/**
* 业务配置信息
*/
private
BusinessInfoDTO
businessInfo
;
/**
* 配送信息
*/
private
DeliveryInfoDTO
deliveryInfo
;
/**
*
*/
private
StoreInfoDTO
storeInfo
;
}
order-management/src/main/java/cn/freemud/management/entities/dto/request/console/BusinessInfoDTO.java
0 → 100644
View file @
3e801014
package
cn
.
freemud
.
management
.
entities
.
dto
.
request
.
console
;
import
lombok.Data
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/7/22 下午3:01
* @description : 业务配置信息
*/
@Data
public
class
BusinessInfoDTO
{
/**
* 预约自建外卖制作完成后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private
Integer
appointAutoDeliveryTakeOrderWorkflowFinishTime
;
/**
* 预约自提单制作完成后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private
Integer
appointAutoSelfmentionMakerWorkflowFinishTime
;
/**
* 预约自提单接单后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private
Integer
appointAutoSelfmentionTakeOrderWorkflowFinishTime
;
/**
* 预约自建外卖接单后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private
Integer
appointAutoTakeOutTakeOrderWorkflowFinishTime
;
/**
* 三方外卖预订单自动拣货完成时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;7:3分钟;8:2分钟;
*/
private
Integer
appointThirdDeliveryPickCompleteWorkflowFinishTime
;
/**
* 预约三方外卖制作完成后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;7:3分钟;8:2分钟
*/
private
Integer
appointThirdDeliveryTakeOrderWorkflowFinishTime
;
/**
* 自动退单时间
*/
private
Integer
autoChargebackOrderTime
;
/**
* 退单模式 1手动退单 2自动退单
*/
private
Integer
autoChargebackOrderType
;
/**
* 自建外卖制作完成后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private
Integer
autoDeliveryTakeOrderWorkflowFinishTime
;
/**
* 自提单制作完成后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private
Integer
autoSelfmentionMakerWorkflowFinishTime
;
/**
* 自提单接单后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private
Integer
autoSelfmentionTakeOrderWorkflowFinishTime
;
/**
* 自建外卖接单后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private
Integer
autoTakeOutTakeOrderWorkflowFinishTime
;
/**
* 三方外卖订单自动拣货完成时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;7:3分钟;8:2分钟
*/
private
Integer
autoThirdDeliveryPickCompleteWorkflowFinishTime
;
/**
* 实时三方外卖制作完成后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;7:3分钟;8:2分钟
*/
private
Integer
autoThirdDeliveryTakeOrderWorkflowFinishTime
;
/**
* 是否自动同意退款(同意:1,不同意:0)
*/
private
Integer
automaticRefund
;
/**
* 外卖预约单开关(0:关闭,1:开启)
*/
private
Integer
deliveryAppoint
;
/**
* 外卖预约单时间(分钟) 65分钟、90分钟、120分钟
*/
private
Integer
deliveryAppointTime
;
/**
* 自建外卖订单,商家自配送xx分钟后,订单状态更改为【已完成】
*/
private
Integer
deliveryFinishedAfterMinute
;
/**
* 外卖时间:00:00-23:59
*/
private
String
deliveryHours
;
/**
* 外卖预订单提醒时间{1:15分钟;2:30分钟;3:45分钟;4:60分钟;5:5分钟;6:10分钟}
*/
private
String
deliveryOrderWarnTime
;
/**
* 自建外卖订单-实时单,商家自配送,门店接单xx分钟后,订单状态变更为配送中
*/
private
Integer
deliveryProcessingAfterMinute
;
/**
* 自建外卖订单-预约单,商家自配送,预约商家前xx分钟,订单更改为配送中
*/
private
Integer
deliveryProcessingBeforeMinute
;
/**
* 预计送达时间(分钟)
*/
private
Integer
expectedTime
;
/**
* 商品平均制作时常(分钟)
*/
private
Integer
goodsAvgTimeOfMaking
;
/**
* 是否支持发票 1是 0否
*/
private
Integer
invoice
;
/**
* 发票特殊说明
*/
private
String
invoiceExplain
;
/**
* 是否支持自动接单(1是2否)
*/
private
Integer
isAutoTakeOrder
;
/**
* 最大接单量,单位笔
*/
private
Integer
maxOrderQuantity
;
/**
* 可开票的最小价格
*/
private
Integer
minPriceForInvoice
;
/**
* 预订单打印时间{1:提醒时打印;2:接单时打印}
*/
private
String
orderPrintConfig
;
/**
* 订单进度条,1 开启,2 关闭
*/
private
Integer
orderProgressBarStatus
;
/**
* 点餐方式(,隔开):pickup,delivery
*/
private
String
orderType
;
/**
* 预订单提醒时间{1:15分钟;2:30分钟;3:45分钟;4:60分钟;5:5分钟;6:10分钟}
*/
private
String
orderWarnTime
;
/**
* 超时关单 1开启 2关闭
*/
private
Integer
overTimeCloseOrder
;
/**
* 接单超时关单时间,默认30分钟
*/
private
Integer
overTimeCloseOrderTime
;
/**
* 自提-服务端自动接单时间 1:立即;2:1分钟;3:5分钟(顾客下单XX后,订单状态自动更改为已接单)
*/
private
Integer
pickupAutomaticOrderTime
;
/**
* 自提预约单开关(0:关闭,1:开启)
*/
private
Integer
selfMentionSwitch
;
/**
* 是否需要餐具 1 需要 0 不需要
*/
private
Integer
tableware
;
/**
* 参与结算(1:是、2:否)
*/
private
Integer
takePartInSettleAccounts
;
/**
* 外卖-服务端自动接单时间 1:立即;2:1分钟;3:5分钟(顾客下单XX后,订单状态自动更改为已接单)
*/
private
Integer
takeoutAutomaticOrderTime
;
/**
* 所属商户号
*/
private
String
partnerId
;
/**
* 退款时间,time_type_of_refund 为1时格式为HH:mm:ss,为2时默认48小时
*/
private
String
timeOfRefund
;
/**
* 退款时间类型:1指定时间,2默认48小时后
*/
private
Integer
timeTypeOfRefund
;
/**
* 开启制作时间 1 :是 , 2 :否
*/
private
Integer
turnOnTimeOfMaking
;
/**
* 拓展业务字段
*/
private
ExpandFieldsDTO
expandFields
;
}
order-management/src/main/java/cn/freemud/management/entities/dto/request/console/ConsoleResponseDTO.java
0 → 100644
View file @
3e801014
package
cn
.
freemud
.
management
.
entities
.
dto
.
request
.
console
;
import
lombok.Data
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/7/22 下午2:57
* @description : 门店服务 响应基类
*/
@Data
public
class
ConsoleResponseDTO
<
T
>
{
/**
* 状态码
*/
private
String
statusCode
;
/**
*状态码描述
*/
private
String
msg
;
private
T
bizVO
;
}
order-management/src/main/java/cn/freemud/management/entities/dto/request/console/DeliveryInfoDTO.java
0 → 100644
View file @
3e801014
package
cn
.
freemud
.
management
.
entities
.
dto
.
request
.
console
;
import
lombok.Data
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/7/22 下午3:12
* @description :
*/
@Data
public
class
DeliveryInfoDTO
{
/**
* 每增加公里(单位米)
*/
private
String
addRange
;
/**
* 每增加公里增加配送费(单位分)
*/
private
Integer
addRangeAmount
;
/**
* 基础配送费(分)
*/
private
Integer
deliveryAmount
;
/**
* 配送方式:1-三方物流配送、2-商家自配送
*/
private
Integer
deliveryMethod
;
/**
* 配送半径
*/
private
Integer
deliveryRadius
;
/**
* 基础配送距离(单位米)
*/
private
String
deliveryRange
;
/**
* 手绘经纬度集合
*/
private
String
deliveryScope
;
/**
* 外卖起送条件(1:杯数,2:金额)
*/
private
Integer
deliveryType
;
/**
* 起送杯数
*/
private
Integer
freeDeliveryCup
;
/**
* 起送价格(单位分)
*/
private
Integer
freeDeliveryPrice
;
/**
* 所属商户号
*/
private
String
partnerId
;
/**
* 配送范围类型 1 自定义 2 半径
*/
private
Integer
scopeConfig
;
}
order-management/src/main/java/cn/freemud/management/entities/dto/request/console/ExpandFieldsDTO.java
0 → 100644
View file @
3e801014
package
cn
.
freemud
.
management
.
entities
.
dto
.
request
.
console
;
import
lombok.Data
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/7/22 下午4:30
* @description :
*/
@Data
public
class
ExpandFieldsDTO
{
/**
* 是 or 开启
*/
public
static
String
STR_TRUE
=
"1"
;
/**
* 否 or 关闭
*/
public
static
String
STR_FALSE
=
"0"
;
/**
* 月销量配置值
*/
private
String
monthlySalesConfigValue
;
/**
* 月销量是否展示(1-是;0-否)
*/
private
String
monthlySalesShow
;
/**
* 点赞数是否展示(1-是;0-否)
*/
private
String
likesShow
;
/**
* 点赞数配置值
*/
private
String
likesConfigValue
;
/**
* 扫桌码下单(1-开启;0-关闭) 开启该配置的门店在下单的时候,需要判断有没有桌号,如果没有桌号需要扫码获取桌号后再下单
*/
private
String
scanOrderSwitch
;
// TODO 省略了 高峰时间配送时间 List<Map> 字段对接 peakTimeDelivery
/**
* 每增加一公里增加的时长(分钟)
*/
private
String
appendMinutePerKilometer
;
/**
* 自提打包是否收取餐具费(1-开启;0-关闭)
*/
private
String
pickupPackageFeeSwitch
;
/**
* 外卖打包是否收取餐具费(1-开启;0-关闭)
*/
private
String
deliveryPackageFeeSwitch
;
/**
* 派单模式(0-系统自动派单;1-手动派单)
*/
private
String
dispatchType
;
}
order-management/src/main/java/cn/freemud/management/entities/dto/request/console/GetStoreMixRequest.java
0 → 100644
View file @
3e801014
package
cn
.
freemud
.
management
.
entities
.
dto
.
request
.
console
;
import
lombok.Builder
;
import
lombok.Data
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/7/22 下午2:49
* @description : http://yapi.sandload.cn:3000/project/257/interface/api/60053 接口调用使用
*/
@Data
@Builder
public
class
GetStoreMixRequest
{
/**
* 商户ID
*/
private
String
partnerId
;
/**
* 门店号
*/
private
String
storeCode
;
/**
* 查询数据标志位
*/
private
QueryFlag
query
;
}
order-management/src/main/java/cn/freemud/management/entities/dto/request/console/QueryFlag.java
0 → 100644
View file @
3e801014
package
cn
.
freemud
.
management
.
entities
.
dto
.
request
.
console
;
import
lombok.Builder
;
import
lombok.Data
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/7/22 下午2:53
* @description :
*/
@Data
@Builder
public
class
QueryFlag
{
/**
* 查询门店基本信息
*/
private
boolean
queryStoreInfo
;
/**
* 查询门店的渠道上级列表
*/
private
boolean
queryParentUntilTop
;
/**
* 查询配送设置信息
*/
private
boolean
queryDeliveryInfo
;
/**
* 查询业务设置信息
*/
private
boolean
queryBusinessInfo
;
/**
* 查询门店图片
*/
private
boolean
queryStoreImage
;
/**
* 查询门店繁忙时间
*/
private
boolean
queryStoreBusyTime
;
}
order-management/src/main/java/cn/freemud/management/entities/dto/request/console/StoreInfoDTO.java
0 → 100644
View file @
3e801014
package
cn
.
freemud
.
management
.
entities
.
dto
.
request
.
console
;
import
lombok.Data
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/7/22 下午3:28
* @description :
*/
@Data
public
class
StoreInfoDTO
{
/**
* 是否繁忙置休,1-是,0-否
*/
private
Integer
activeFlag
;
/**
* 门店地址
*/
private
String
address
;
/**
* 英文门店地址
*/
private
String
addressEn
;
/**
* 门店简称
*/
private
String
briefName
;
/**
* 营业时间
*/
private
String
businessHours
;
/**
* 当日营业时间
*/
private
String
businessHoursDay
;
/**
* 营业时间类型:1-按天,2-按周
*/
private
String
businessType
;
/**
* 市
*/
private
String
city
;
/**
* 是否开通Delivery{1.是;2.否}
*/
private
String
delivery
;
/**
* 配送时间
*/
private
String
deliveryHours
;
/**
* 当日外卖营业时间
*/
private
String
deliveryHoursDay
;
/**
* 到店自取(1是 2否)
*/
private
Integer
isSelfMention
;
/**
* 纬度
*/
private
String
latitude
;
/**
* 门店logo
*/
private
String
logoUrl
;
/**
* 经度
*/
private
String
longitude
;
/**
* 父级商户编码
*/
private
String
parentCode
;
/**
* 父级商户编号
*/
private
String
parentId
;
/**
* 父级商户名称
*/
private
String
parentName
;
/**
* 商户号
*/
private
String
partnerId
;
/**
* 电话
*/
private
String
phone
;
/**
* 省
*/
private
String
province
;
/**
* 区
*/
private
String
region
;
/**
* 备注
*/
private
String
remark
;
/**
* 是否展示优惠(0-不展示; 1-展示)
*/
private
Integer
showDiscount
;
/**
* 营业状态
*/
private
String
state
;
/**
* 门店营运状态(营运1,停运-2,删除-3)
*/
private
String
status
;
/**
* 门店编号
*/
private
String
storeCode
;
/**
* 门店id
*/
private
String
storeId
;
/**
* 门店名称
*/
private
String
storeName
;
/**
* 英文门店名称
*/
private
String
storeNameEn
;
/**
* 门店公告
*/
private
String
storeNotice
;
/**
* 第三方门店编号
*/
private
String
thirdPartCode
;
}
order-management/src/main/java/cn/freemud/management/service/handle/DeliveryHandle.java
View file @
3e801014
...
...
@@ -2,6 +2,10 @@ package cn.freemud.management.service.handle;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.management.adapter.DeliverySdkAdapter
;
import
cn.freemud.management.entities.dto.request.console.BizDTO
;
import
cn.freemud.management.entities.dto.request.console.BusinessInfoDTO
;
import
cn.freemud.management.entities.dto.request.console.ConsoleResponseDTO
;
import
cn.freemud.management.entities.dto.request.console.ExpandFieldsDTO
;
import
cn.freemud.management.entities.dto.request.delivery.DeliveryOrderHaltedRequest
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.enums.DeliveryStatus
;
...
...
@@ -9,22 +13,25 @@ import cn.freemud.management.enums.ResponseResult;
import
cn.freemud.management.service.OrderBaseService
;
import
cn.freemud.management.thirdparty.DeliveryMCCafeClient
;
import
cn.freemud.management.util.ResponseUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.deliverycenter.dto.CancelDeliveryOrderRequestDto
;
import
com.freemud.application.sdk.api.deliverycenter.dto.CreateDeliveryOrderRequestDto
;
import
com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto
;
import
com.freemud.application.sdk.api.deliverycenter.response.DeliveryResponseDto
;
import
com.freemud.application.sdk.api.deliverycenter.service.DeliveryService
;
import
com.freemud.application.sdk.api.log.ApiLog
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.service.EmailAlertService
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
java.util.Objects
;
/**
* All rights Reserved, Designed By www.freemud.cn
...
...
@@ -64,15 +71,26 @@ public class DeliveryHandle {
/**
* 创建配送单
*
*
【ID1036616】 【野萃山】【万象&小助手】支持门店手动创建运单,通知骑手到店取餐
* @param orderBean
* @param request
* @return
*/
public
BaseResponse
createDelivery
(
OrderBeanV1
orderBean
,
OrderManagerRequest
request
,
StoreResponse
storeInfo
)
{
if
(
storeInfo
==
null
||
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
storeInfo
.
getStatusCode
()
.
toString
())
||
storeInfo
.
getBizVO
()
==
null
)
{
public
BaseResponse
createDelivery
(
OrderBeanV1
orderBean
,
OrderManagerRequest
request
,
ConsoleResponseDTO
<
BizDTO
>
storeInfo
,
boolean
idAutoCreate
)
{
if
(
storeInfo
==
null
||
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
storeInfo
.
getStatusCode
()
)
||
storeInfo
.
getBizVO
()
==
null
||
storeInfo
.
getBizVO
().
getStoreInfo
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
STORE_INFO_NOT_FOUND
);
}
// 【ID1036616】 【野萃山】【万象&小助手】支持门店手动创建运单,通知骑手到店取餐
BusinessInfoDTO
businessInfo
=
storeInfo
.
getBizVO
().
getBusinessInfo
();
if
(
idAutoCreate
&&
Objects
.
nonNull
(
businessInfo
)
&&
Objects
.
nonNull
(
businessInfo
.
getExpandFields
()))
{
ExpandFieldsDTO
expandFields
=
businessInfo
.
getExpandFields
();
String
dispatchType
=
expandFields
.
getDispatchType
();
// 1. 手动派单
if
(
Objects
.
equals
(
dispatchType
,
"1"
))
{
ApiLog
.
printLog
(
"oms 门店自动创建运单->"
,
JSON
.
toJSONString
(
orderBean
.
getOid
()),
null
,
null
);
return
ResponseUtil
.
success
();
}
}
if
(!
checkOrderOfDelivery
(
orderBean
))
{
return
ResponseUtil
.
success
();
}
...
...
order-management/src/main/java/cn/freemud/management/service/impl/OrderDeliveryService.java
View file @
3e801014
package
cn
.
freemud
.
management
.
service
.
impl
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.management.entities.dto.request.console.BizDTO
;
import
cn.freemud.management.entities.dto.request.console.ConsoleResponseDTO
;
import
cn.freemud.management.entities.dto.request.console.GetStoreMixRequest
;
import
cn.freemud.management.entities.dto.request.console.QueryFlag
;
import
cn.freemud.management.entities.dto.request.delivery.DeliveryOrderRequest
;
import
cn.freemud.management.enums.ResponseResult
;
import
cn.freemud.management.service.OrderBaseService
;
import
cn.freemud.management.service.handle.DeliveryHandle
;
import
cn.freemud.management.thirdparty.ConsoleApiClient
;
import
cn.freemud.management.util.ResponseUtil
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -23,6 +26,8 @@ public class OrderDeliveryService {
private
OrderBaseService
orderBaseService
;
@Autowired
private
DeliveryHandle
deliveryHandle
;
@Autowired
private
ConsoleApiClient
consoleApiClient
;
private
static
final
int
SUCCESS
=
100
;
...
...
@@ -37,11 +42,14 @@ public class OrderDeliveryService {
if
(
null
==
orderBean
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_NOT_EXIST
);
}
StoreResponse
storeInfo
=
storeCenterService
.
getStoreInfo
(
new
StoreInfoRequest
(
orderBean
.
getCompanyId
(),
orderBean
.
getShopId
()),
LogThreadLocal
.
getTrackingNo
());
if
(
SUCCESS
!=
storeInfo
.
getStatusCode
()
||
storeInfo
.
getBizVO
()
==
null
)
{
GetStoreMixRequest
getStoreMixRequest
=
GetStoreMixRequest
.
builder
().
partnerId
(
orderBean
.
getCompanyId
()).
storeCode
(
orderBean
.
getShopId
()).
build
();
QueryFlag
query
=
QueryFlag
.
builder
().
queryBusinessInfo
(
true
).
queryStoreInfo
(
true
).
build
();
getStoreMixRequest
.
setQuery
(
query
);
ConsoleResponseDTO
<
BizDTO
>
storeMix
=
consoleApiClient
.
getStoreMix
(
getStoreMixRequest
);
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
storeMix
.
getStatusCode
())
||
storeMix
.
getBizVO
()
==
null
||
storeMix
.
getBizVO
().
getStoreInfo
()==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
STORE_INFO_NOT_FOUND
);
}
return
deliveryHandle
.
createDelivery
(
orderBean
,
null
,
store
Info
);
return
deliveryHandle
.
createDelivery
(
orderBean
,
null
,
store
Mix
,
false
);
}
...
...
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
View file @
3e801014
package
cn
.
freemud
.
management
.
service
.
impl
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.log.LogTreadLocal
;
import
cn.freemud.base.util.JsonUtil
;
import
cn.freemud.management.adapter.DeliverySdkAdapter
;
import
cn.freemud.management.entities.dto.request.console.BizDTO
;
import
cn.freemud.management.entities.dto.request.console.ConsoleResponseDTO
;
import
cn.freemud.management.entities.dto.request.console.GetStoreMixRequest
;
import
cn.freemud.management.entities.dto.request.console.QueryFlag
;
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.DeliveryStatus
;
import
cn.freemud.management.enums.CreateEventEnum
;
import
cn.freemud.management.enums.OperateType
;
import
cn.freemud.management.enums.RefundStatus
;
import
cn.freemud.management.enums.ResponseResult
;
import
cn.freemud.management.enums.*
;
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.thirdparty.ConsoleApiClient
;
import
cn.freemud.management.thirdparty.OrderCallbackClient
;
import
cn.freemud.management.util.ResponseUtil
;
import
com.alibaba.fastjson.JSONObject
;
...
...
@@ -31,14 +30,11 @@ import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import
com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.service.EmailAlertService
;
import
com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderStatus
;
import
com.freemud.sdk.api.assortment.order.enums.OrderSourceType
;
import
com.freemud.sdk.api.assortment.order.enums.PayRefundStatus
;
import
com.freemud.sdk.api.assortment.order.enums.PayType
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
...
...
@@ -98,6 +94,8 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
@Autowired
private
OrderCallbackClient
orderCallbackClient
;
@Autowired
private
ConsoleApiClient
consoleApiClient
;
/**
* 接单
*
...
...
@@ -109,10 +107,13 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
public
BaseResponse
<
OrderManagerResponse
>
orderConfirm
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
// 订单接单
BaseResponse
baseResponse
=
saasOrderHandle
.
orderConfirm
(
request
,
orderBean
);
//获取门店信息
StoreResponse
storeInfo
=
storeCenterService
.
getStoreInfo
(
new
StoreInfoRequest
(
orderBean
.
getCompanyId
(),
orderBean
.
getShopId
()),
""
);
// 使用feign调用 获取门店信息
GetStoreMixRequest
getStoreMixRequest
=
GetStoreMixRequest
.
builder
().
partnerId
(
orderBean
.
getCompanyId
()).
storeCode
(
orderBean
.
getShopId
()).
build
();
QueryFlag
query
=
QueryFlag
.
builder
().
queryBusinessInfo
(
true
).
queryStoreInfo
(
true
).
build
();
getStoreMixRequest
.
setQuery
(
query
);
ConsoleResponseDTO
<
BizDTO
>
storeMix
=
consoleApiClient
.
getStoreMix
(
getStoreMixRequest
);
// 创建配送单
deliveryHandle
.
createDelivery
(
orderBean
,
request
,
store
Info
);
deliveryHandle
.
createDelivery
(
orderBean
,
request
,
store
Mix
,
true
);
// 推送pos、微信消息中心 重复接单不重复推消息(针对蜜雪做的修改)
if
(
baseResponse
!=
null
&&
baseResponse
.
getResult
()
==
null
){
orderBaseService
.
sendMessage
(
orderBean
,
OperateType
.
ORDER_CONFIRM
,
request
.
getReason
());
...
...
@@ -123,7 +124,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
ApiLog
.
infoMessage
(
"紧急方案 接单成功直接调用callback,orderCode:{},requestId:{}"
,
requestVo
.
getOrderCode
(),
requestVo
.
getRequestId
());
orderCallbackClient
.
callbackOrder
(
requestVo
);
}
return
ResponseUtil
.
success
(
new
OrderManagerResponse
(
store
Info
.
getBizVO
().
getOrderPrintConfig
(),
orderBean
.
getGmtExpect
(),
return
ResponseUtil
.
success
(
new
OrderManagerResponse
(
store
Mix
.
getBizVO
().
getBusinessInfo
().
getOrderPrintConfig
(),
orderBean
.
getGmtExpect
(),
CollectionUtils
.
isEmpty
(
orderBean
.
getRefundList
())
?
null
:
RefundStatus
.
getByCode
(
orderBean
.
getRefundList
().
get
(
0
).
getStatus
())));
}
...
...
@@ -382,9 +383,15 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
@Override
public
BaseResponse
<
OrderManagerResponse
>
orderRecreateDelivery
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
// 查询门店信息
StoreResponse
storeInfo
=
storeCenterService
.
getStoreInfo
(
new
StoreInfoRequest
(
orderBean
.
getCompanyId
(),
orderBean
.
getShopId
()),
LogTreadLocal
.
getTrackingNo
());
return
deliveryHandle
.
createDelivery
(
orderBean
,
request
,
storeInfo
);
// StoreResponse storeInfo = storeCenterService.getStoreInfo(new StoreInfoRequest(orderBean.getCompanyId(), orderBean.getShopId()), LogTreadLocal.getTrackingNo());
GetStoreMixRequest
getStoreMixRequest
=
GetStoreMixRequest
.
builder
().
partnerId
(
orderBean
.
getCompanyId
()).
storeCode
(
orderBean
.
getShopId
()).
build
();
QueryFlag
query
=
QueryFlag
.
builder
().
queryBusinessInfo
(
true
).
queryStoreInfo
(
true
).
build
();
getStoreMixRequest
.
setQuery
(
query
);
ConsoleResponseDTO
<
BizDTO
>
storeMix
=
consoleApiClient
.
getStoreMix
(
getStoreMixRequest
);
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
storeMix
.
getStatusCode
())
||
storeMix
.
getBizVO
()
==
null
||
storeMix
.
getBizVO
().
getStoreInfo
()==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
STORE_INFO_NOT_FOUND
);
}
return
deliveryHandle
.
createDelivery
(
orderBean
,
request
,
storeMix
,
false
);
}
private
void
commonSendEmailAlert
(
OrderBeanV1
order
,
OrderBaseResp
baseResponse
,
String
desc
){
...
...
order-management/src/main/java/cn/freemud/management/thirdparty/ConsoleApiClient.java
0 → 100644
View file @
3e801014
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: StoreItemClient
* @Package cn.freemud.service.thirdparty
* @Description:
* @author: liming.guo
* @date: 2018/5/16 9:39
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package
cn
.
freemud
.
management
.
thirdparty
;
import
cn.freemud.management.entities.dto.request.console.BizDTO
;
import
cn.freemud.management.entities.dto.request.console.ConsoleResponseDTO
;
import
cn.freemud.management.entities.dto.request.console.GetStoreMixRequest
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
@FeignClient
(
"CONSOLE-API"
)
@RequestMapping
(
produces
=
{
MediaType
.
APPLICATION_JSON_UTF8_VALUE
})
public
interface
ConsoleApiClient
{
/**
* v2获取门店信息
* http://yapi.sandload.cn:3000/project/257/interface/api/60053 接口调用使用
*
* @param request
* @return
*/
@PostMapping
(
value
=
"/api/v2/organization/getStoreMix"
)
ConsoleResponseDTO
<
BizDTO
>
getStoreMix
(
GetStoreMixRequest
request
);
}
shopping-cart-application-service/src/main/java/cn/freemud/adapter/ActivityAdapter.java
View file @
3e801014
...
...
@@ -13,12 +13,13 @@
package
cn
.
freemud
.
adapter
;
import
cn.freemud.base.constant.Version
;
import
cn.freemud.entities.dto.ActivityCancelStockRequestDto
;
import
cn.freemud.entities.dto.CouponCodeVerificationProductDto
;
import
cn.freemud.entities.dto.QueryOrdersResponseDto
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.activity.ActivityQueryDto
;
import
cn.freemud.entities.dto.calculate.ActivityCalculationDiscountRequestDto
;
import
cn.freemud.entities.dto.calculate.ActivityCalculationDiscountResponseDto
;
import
cn.freemud.entities.dto.calculate.ActivityTypeSharedExclusive
;
import
cn.freemud.entities.dto.order.CreateOrderDto
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.PremiumExchangeResponseVo
;
import
cn.freemud.entities.vo.coupon.CartProduct
;
import
cn.freemud.entities.vo.coupon.CouponAvailableCartInfo
;
...
...
@@ -41,6 +42,76 @@ import java.util.stream.Collectors;
@Component
public
class
ActivityAdapter
{
/**
* 扣减库存数量
*/
private
static
final
int
STACK_SUB
=
1
;
public
ActivityQueryRequestDto
convert2ActivityQueryRequestDto
(
CreateOrderVo
createOrderVo
)
{
if
(
createOrderVo
==
null
||
createOrderVo
.
getPremiumExchangeActivity
()
==
null
||
CollectionUtils
.
isEmpty
(
createOrderVo
.
getPremiumExchangeActivity
().
getProducts
()))
{
return
null
;
}
ActivityQueryRequestDto
activityQueryRequestDto
=
new
ActivityQueryRequestDto
();
activityQueryRequestDto
.
setVer
(
Version
.
VERSION_1
);
activityQueryRequestDto
.
setPartnerCode
(
createOrderVo
.
getPartnerId
());
activityQueryRequestDto
.
setStoreId
(
createOrderVo
.
getShopId
());
activityQueryRequestDto
.
setActivityType
(
ActivityTypeEnum
.
TYPE_81
.
getCode
());
List
<
ActivityQueryRequestDto
.
QueryGoodsBeanDto
>
goodsBeanDtoList
=
new
ArrayList
<>();
for
(
CreateOrderVo
.
PremiumExchangeActivity
.
Product
skuProduct
:
createOrderVo
.
getPremiumExchangeActivity
().
getProducts
())
{
ActivityQueryRequestDto
.
QueryGoodsBeanDto
queryGoodsBeanDto
=
new
ActivityQueryRequestDto
.
QueryGoodsBeanDto
(
skuProduct
.
getSkuId
(),
skuProduct
.
getQty
(),
skuProduct
.
getOriginalPrice
());
goodsBeanDtoList
.
add
(
queryGoodsBeanDto
);
}
activityQueryRequestDto
.
setGoods
(
goodsBeanDtoList
);
return
activityQueryRequestDto
;
}
public
ActivityCalculationDiscountRequestDto
convert2ActivityCalculationDiscountRequestDto
(
ShoppingCartInfoDto
shoppingCartInfoDto
,
String
partnerCode
,
String
storeId
,
String
appid
,
Integer
orderType
,
CouponListResponseDto
.
CouponBean
couponBean
,
Long
promotionAmount
)
{
if
(
shoppingCartInfoDto
==
null
||
CollectionUtils
.
isEmpty
(
shoppingCartInfoDto
.
getData
()))
{
return
null
;
}
ActivityCalculationDiscountRequestDto
result
=
new
ActivityCalculationDiscountRequestDto
();
result
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
result
.
setPartnerCode
(
partnerCode
);
result
.
setStoreId
(
storeId
);
ActivityChannelEnum
activityChannelEnum
=
PropertyConvertUtil
.
orderTypeConvert2ActivityChannel
(
orderType
);
if
(!
Objects
.
isNull
(
activityChannelEnum
))
{
result
.
setChannel
(
activityChannelEnum
.
getCode
());
}
result
.
setAppId
(
appid
);
result
.
setIsShowActivities
(
1
);
result
.
setIsShowGoodsActivity
(
1
);
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
>
goods
=
new
ArrayList
<>();
// TODO 暂时指定成一个商品,后期优化
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
calculationDiscountGoods
=
new
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
();
calculationDiscountGoods
.
setGoodsId
(
"1"
);
calculationDiscountGoods
.
setCategory
(
"1"
);
calculationDiscountGoods
.
setGoodsQuantity
(
1
);
Long
amount
=
0L
;
if
(
shoppingCartInfoDto
.
getAmount
()
!=
null
)
{
amount
=
shoppingCartInfoDto
.
getAmount
();
}
Long
packAmount
=
0L
;
// 外卖才有打包费
if
(
shoppingCartInfoDto
.
getPackAmount
()
!=
null
&&
Objects
.
equals
(
CreateOrderType
.
TAKE_OUT
.
getCode
(),
orderType
))
{
packAmount
=
shoppingCartInfoDto
.
getPackAmount
();
}
Long
couponAmount
=
0L
;
if
(
couponBean
!=
null
&&
couponBean
.
getDiscountAmount
()
!=
null
)
{
couponAmount
=
Long
.
valueOf
(
couponBean
.
getDiscountAmount
());
}
if
(
promotionAmount
==
null
)
{
promotionAmount
=
0L
;
}
calculationDiscountGoods
.
setOriginalPrice
(
amount
+
packAmount
-
couponAmount
-
promotionAmount
);
goods
.
add
(
calculationDiscountGoods
);
result
.
setGoods
(
goods
);
return
result
;
}
public
PremiumExchangeResponseVo
convert2PremiumExchange
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
)
{
// 返回构造对象
PremiumExchangeResponseVo
premiumExchangeResponseVo
=
new
PremiumExchangeResponseVo
();
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartMallServiceImpl.java
View file @
3e801014
...
...
@@ -18,7 +18,10 @@ 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.BuriedPointShoppingCartRequestDto
;
import
cn.freemud.entities.dto.GetProductStockRequestDto
;
import
cn.freemud.entities.dto.GetProductStockResponseDto
;
import
cn.freemud.entities.dto.UserLoginInfoDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryDto
;
import
cn.freemud.entities.dto.activity.DiscountSharingDto
;
import
cn.freemud.entities.dto.calculate.ActivityCalculationDiscountRequestDto
;
...
...
@@ -191,7 +194,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
ActivityQueryDto
activityQueryDto
=
activityAdapter
.
getActivityQueryDto
(
partnerId
,
storeId
,
userId
,
appId
,
addShoppingCartGoodsRequestVo
.
getOrderType
());
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
discountResult
=
null
;
discountResult
=
sharingDiscountService
.
getCalculationSharingDiscountResult
(
menuType
,
partnerId
,
storeId
,
userId
,
appId
,
orderType
,
assortmentCustomerInfoVo
.
isMemberPaid
(),
allCartGoodsList
,
new
ArrayList
<>(),
null
,
deliveryAmount
,
null
,
null
,
new
DiscountSharingDto
(),
accountType
);
discountResult
=
sharingDiscountService
.
getCalculationSharingDiscountResult
(
menuType
,
partnerId
,
storeId
,
userId
,
appId
,
orderType
,
assortmentCustomerInfoVo
.
isMemberPaid
(),
allCartGoodsList
,
new
ArrayList
<>(),
null
,
deliveryAmount
,
null
,
null
,
accountType
,
new
DiscountSharingDto
()
);
sharingCartService
.
distribute
(
discountResult
,
allCartGoodsList
,
shoppingCartGoodsResponseVo
,
null
,
null
,
null
,
activityQueryDto
,
menuType
,
deliveryAmount
,
ShoppingCartConstant
.
ADD_AND_UPDATE
,
partnerId
,
null
,
userId
,
storeId
);
buildShoppingCartGoodsResponse
(
shoppingCartGoodsResponseVo
,
discountResult
,
null
,
partnerId
);
...
...
@@ -286,7 +289,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
,
new
ArrayList
()
//券
,
null
//加价购商品
,
deliveryAmount
,
null
,
null
,
new
DiscountSharingDto
(),
accountFlag
);
,
null
,
null
,
accountFlag
,
new
DiscountSharingDto
()
);
sharingCartService
.
distribute
(
discountResult
,
cartGoodsList
...
...
@@ -445,7 +448,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
,
coupons
,
sendGoods
,
deliveryAmount
,
null
,
null
,
new
DiscountSharingDto
(),
accountFlag
);
,
null
,
null
,
accountFlag
,
new
DiscountSharingDto
()
);
sharingCartService
.
distribute
(
calculationSharingDiscountResult
,
cartGoodsList
,
shoppingCartGoodsResponseVo
...
...
@@ -603,7 +606,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
,
coupons
,
shoppingCartInfoRequestVo
.
getSendGoods
()
,
deliveryAmount
,
shoppingCartInfoRequestVo
,
null
,
new
DiscountSharingDto
(),
accountFlag
);
,
shoppingCartInfoRequestVo
,
null
,
accountFlag
,
new
DiscountSharingDto
()
);
// 活动校验
calculationSharingValidatorService
.
validator
(
discountResult
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
View file @
3e801014
...
...
@@ -384,8 +384,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
,
new
ArrayList
<>()
//券
,
null
//加价购商品
,
deliveryAmount
,
null
,
bizType
,
new
DiscountSharingDto
(),
accountFlag
);
,
null
,
bizType
,
accountFlag
,
new
DiscountSharingDto
());
//更新购物车券状态
newCalculationUpdateCouponStatus
(
userId
,
partnerId
,
storeId
,
bizType
,
cartGoods
,
allCartGoodsList
,
discountResult
);
sharingCartService
.
distribute
(
discountResult
,
allCartGoodsList
,
shoppingCartGoodsResponseVo
...
...
@@ -542,11 +543,13 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
,
new
ArrayList
()
//券
,
null
//加价购商品
,
deliveryAmount
,
null
,
bizType
,
new
DiscountSharingDto
(),
accountFlag
);
,
null
,
bizType
,
accountFlag
,
new
DiscountSharingDto
()
);
//校验加购数量
if
(
discountResult
!=
null
)
{
sendGoodsQtyCheckForUpdate
(
cartGoodsList
,
oldQty
,
appId
,
partnerId
,
userId
,
storeId
,
cartGoodsUid
,
""
,
shoppingCartBaseService
,
discountResult
.
getSendGoods
(),
bizType
);
}
newCalculationUpdateCouponStatus
(
userId
,
partnerId
,
storeId
,
bizType
,
cartGoods
,
cartGoodsList
,
discountResult
);
sharingCartService
.
distribute
(
discountResult
,
cartGoodsList
,
shoppingCartGoodsResponseVo
...
...
@@ -781,7 +784,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
,
sendGoods
,
deliveryAmount
,
null
,
bizType
,
new
DiscountSharingDto
(),
accountFlag
);
,
bizType
,
accountFlag
,
new
DiscountSharingDto
()
);
sharingCartService
.
distribute
(
calculationSharingDiscountResult
,
cartGoodsList
,
shoppingCartGoodsResponseVo
...
...
@@ -1160,7 +1163,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
,
coupons
,
shoppingCartInfoRequestVo
.
getSendGoods
()
,
deliveryAmount
,
shoppingCartInfoRequestVo
,
bizType
,
new
DiscountSharingDto
(),
accountFlag
);
,
shoppingCartInfoRequestVo
,
bizType
,
accountFlag
,
new
DiscountSharingDto
()
);
// 活动校验
calculationSharingValidatorService
.
validator
(
discountResult
...
...
@@ -3072,7 +3075,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
,
coupons
//券
,
null
//加价购商品
,
0L
,
null
,
bizType
,
new
DiscountSharingDto
(),
accountFlag
);
,
null
,
bizType
,
accountFlag
,
new
DiscountSharingDto
()
);
premiumExchangeResponseVo
=
activityAdapter
.
convert2PremiumExchangeSharing
(
discountResult
);
}
else
{
...
...
@@ -3241,7 +3244,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
,
new
ArrayList
<>()
//券
,
null
//加价购商品
,
deliveryAmount
,
null
,
bizType
,
sharingDto
,
accountFlag
);
,
null
,
bizType
,
accountFlag
,
sharingDto
);
couponAvailableCartInfo
=
activityAdapter
.
convert2CouponAvailableCartInfoSharing
(
partnerId
,
storeId
,
discountResult
,
orgCodes
);
}
else
{
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/CalculationSharingDiscountService.java
View file @
3e801014
...
...
@@ -3,7 +3,6 @@ package cn.freemud.service.impl.calculate;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.dto.CheckSpqInfoRequestDto
;
import
cn.freemud.entities.dto.CheckSpqInfoResponseDto
;
import
cn.freemud.entities.dto.activity.DiscountSharingDto
;
import
cn.freemud.entities.dto.calculate.ActivityCalculationDiscountRequestDto
;
import
cn.freemud.entities.dto.calculate.ActivityCalculationDiscountResponseDto
;
import
cn.freemud.entities.dto.shoppingCart.SendPoint
;
...
...
@@ -22,6 +21,7 @@ import cn.freemud.service.active.ActiveService;
import
cn.freemud.service.impl.AssortmentSdkService
;
import
cn.freemud.service.thirdparty.ActivityClient
;
import
cn.freemud.utils.PropertyConvertUtil
;
import
cn.freemud.entities.dto.activity.DiscountSharingDto
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant
;
import
com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum
;
import
com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl
;
...
...
@@ -82,7 +82,7 @@ public class CalculationSharingDiscountService {
,
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
>
coupons
,
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoodsList
,
Long
deliveryAmount
,
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
,
Integer
bizType
,
DiscountSharingDto
sharingDto
,
Integer
accountFlag
)
{
,
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
,
Integer
bizType
,
Integer
accountFlag
,
DiscountSharingDto
sharingDto
)
{
ActivityCalculationDiscountRequestDto
calculationSharingDiscountRequestDto
=
this
.
commonSharingDto
(
partnerId
,
storeId
,
userId
,
appId
,
orderType
);
...
...
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