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
9750797d
Commit
9750797d
authored
Nov 11, 2021
by
ping.wu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
下单接口优化,StoreResponse.BizVO对象统一
parent
b93d453c
Show whitespace changes
Inline
Side-by-side
Showing
35 changed files
with
625 additions
and
734 deletions
+625
-734
order-application-service/src/main/java/cn/freemud/adapter/ActivityAdapter.java
+3
-6
order-application-service/src/main/java/cn/freemud/adapter/CreateOrderAdapter.java
+4
-3
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+148
-137
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
+5
-5
order-application-service/src/main/java/cn/freemud/entities/bo/CreateOrderBONew.java
+31
-0
order-application-service/src/main/java/cn/freemud/entities/bo/CreateOrderBo.java
+2
-1
order-application-service/src/main/java/cn/freemud/entities/dto/StoreResponseDto.java
+8
-0
order-application-service/src/main/java/cn/freemud/entities/vo/CreateOrderVo.java
+1
-0
order-application-service/src/main/java/cn/freemud/service/CheckOrderUniversal.java
+15
-69
order-application-service/src/main/java/cn/freemud/service/Orderservice.java
+1
-1
order-application-service/src/main/java/cn/freemud/service/adapter/AbstractOrderCheck.java
+16
-0
order-application-service/src/main/java/cn/freemud/service/adapter/OrderCheck.java
+7
-3
order-application-service/src/main/java/cn/freemud/service/adapter/OrderCheckAdapter.java
+56
-9
order-application-service/src/main/java/cn/freemud/service/adapter/TakeOutOrderCheck.java
+21
-7
order-application-service/src/main/java/cn/freemud/service/adapter/ToStoreCheck.java
+21
-6
order-application-service/src/main/java/cn/freemud/service/business/impl/OrderBusinessServiceImpl.java
+0
-1
order-application-service/src/main/java/cn/freemud/service/impl/AppOrderServiceImpl.java
+25
-15
order-application-service/src/main/java/cn/freemud/service/impl/CheckMCCafeOrder.java
+11
-9
order-application-service/src/main/java/cn/freemud/service/impl/CheckMallOrder.java
+9
-5
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
+89
-50
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrderSaasMall.java
+7
-6
order-application-service/src/main/java/cn/freemud/service/impl/EncircleOrderServiceImpl.java
+5
-2
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
+6
-6
order-application-service/src/main/java/cn/freemud/service/impl/MallOrderServiceImpl.java
+4
-4
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
+0
-1
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+43
-248
order-application-service/src/main/java/cn/freemud/service/impl/PayServiceImpl.java
+3
-108
order-application-service/src/main/java/cn/freemud/service/impl/SellCouponOrderServiceImpl.java
+20
-15
order-application-service/src/main/java/cn/freemud/service/impl/StoreServiceImpl.java
+49
-2
order-application-service/src/main/java/cn/freemud/service/order/OrderRelationService.java
+3
-3
order-application-service/src/main/java/cn/freemud/service/order/impl/CocoOrderRelationServiceImpl.java
+5
-4
order-application-service/src/main/java/cn/freemud/service/order/impl/PlatformOrderRelationServiceImpl.java
+2
-5
order-application-service/src/main/java/cn/freemud/service/universal/UniversalOrderService.java
+2
-1
order-application-service/src/main/java/cn/freemud/service/universal/impl/SaasMallOrderService.java
+1
-1
order-application-service/src/test/java/cn/freemud/service/impl/MallOrderServiceImplTest.java
+2
-1
No files found.
order-application-service/src/main/java/cn/freemud/adapter/ActivityAdapter.java
View file @
9750797d
...
...
@@ -13,12 +13,9 @@
package
cn
.
freemud
.
adapter
;
import
cn.freemud.base.constant.Version
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.order.CreateOrderDto
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.PremiumExchangeResponseVo
;
import
cn.freemud.enums.*
;
import
cn.freemud.utils.PropertyConvertUtil
;
import
cn.freemud.entities.dto.ActivityCancelStockRequestDto
;
import
cn.freemud.entities.dto.CouponCodeVerificationProductDto
;
import
cn.freemud.enums.OrderAccountType
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.AccountBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.ProductBeanV1
;
...
...
order-application-service/src/main/java/cn/freemud/adapter/CreateOrderAdapter.java
View file @
9750797d
...
...
@@ -3,6 +3,7 @@ package cn.freemud.adapter;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.constant.CustomerScoreConstant
;
import
cn.freemud.entities.bo.CreateOrderBo
;
import
cn.freemud.entities.dto.StoreResponseDto
;
import
cn.freemud.entities.dto.UserDeliveryInfoDto
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
import
cn.freemud.entities.dto.pay.CombPayResponse
;
...
...
@@ -439,7 +440,7 @@ public class CreateOrderAdapter {
CreateOrderBaseVo
createOrderVo
=
createOrderBo
.
getCreateOrderBaseVo
();
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
createOrderBo
.
getShoppingCartGoodsDto
();
AssortmentCustomerInfoVo
userLoginInfoDto
=
createOrderBo
.
getUserLoginInfoDto
();
StoreResponse
.
BizVO
storeResponseDto
=
createOrderBo
.
getStoreResponseDto
();
StoreResponse
Dto
storeResponseDto
=
createOrderBo
.
getStoreResponseDto
();
CreateOrderRequest
request
=
new
CreateOrderRequest
();
request
.
setPartnerId
(
createOrderVo
.
getPartnerId
());
...
...
@@ -653,7 +654,7 @@ public class CreateOrderAdapter {
* @return 订单金额
*/
private
Long
updateOrderItemsAndSettlements
(
List
<
OrderItemCreateReq
>
orderItemList
,
List
<
OrderSettlementCreateReq
>
orderSettlementCreateReqList
,
List
<
OrderCostCreateReq
>
orderCostCreateReqs
,
CreateOrderBaseVo
createOrderVo
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
StoreResponse
.
BizVO
storeResponseDto
,
Map
<
String
,
GetProductsVo
>
productsMap
)
{
CreateOrderBaseVo
createOrderVo
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
StoreResponse
Dto
storeResponseDto
,
Map
<
String
,
GetProductsVo
>
productsMap
)
{
Long
originalAmount
=
0L
;
// 更新订单费用信息
originalAmount
=
convertCreateOrderCost
(
originalAmount
,
orderSettlementCreateReqList
,
orderCostCreateReqs
,
createOrderVo
,
shoppingCartGoodsDto
,
storeResponseDto
);
...
...
@@ -1292,7 +1293,7 @@ public class CreateOrderAdapter {
}
private
Long
convertCreateOrderCost
(
Long
originalAmount
,
List
<
OrderSettlementCreateReq
>
orderSettlementCreateReqList
,
List
<
OrderCostCreateReq
>
orderCostCreateReqs
,
CreateOrderBaseVo
createOrderVo
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
StoreResponse
.
BizVO
storeResponseDto
)
{
CreateOrderBaseVo
createOrderVo
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
StoreResponse
Dto
storeResponseDto
)
{
boolean
hasDeliveryMonthCard
=
false
;
for
(
ActivityDiscountsDto
activityDiscountsDto
:
shoppingCartGoodsDto
.
getActivityDiscountsDtos
())
{
...
...
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
9750797d
...
...
@@ -17,11 +17,11 @@ import cn.freemud.constant.CommonsConstant;
import
cn.freemud.constant.CustomerScoreConstant
;
import
cn.freemud.constant.RedisKeyConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.bo.CreateOrderBONew
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.activity.ShareDiscountActivityDto
;
import
cn.freemud.entities.dto.order.CreateOrderAccountDto
;
import
cn.freemud.entities.dto.order.CreateOrderProductDto
;
import
cn.freemud.entities.dto.order.*
;
import
cn.freemud.entities.dto.order.CreateOrderOperateDto
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
import
cn.freemud.entities.dto.pay.CombPayResponse
;
import
cn.freemud.entities.dto.pay.OrderPayResponse
;
import
cn.freemud.entities.dto.promotion.OrderBeanRequest
;
...
...
@@ -79,7 +79,6 @@ 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.order.CreateOrderFlowResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
com.freemud.sdk.api.assortment.payment.request.UnifiedOrderRequest
;
...
...
@@ -179,7 +178,8 @@ public class OrderAdapter {
* @param shoppingCartGoodsDto
* @return
*/
public
BaseCreateOrderRequest
convent2CreateOrderDto
(
CreateOrderVo
createOrderVo
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
StoreResponse
.
BizVO
storeResponseDto
)
{
public
BaseCreateOrderRequest
convent2CreateOrderDto
(
CreateOrderVo
createOrderVo
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
StoreResponseDto
storeResponseDto
)
{
BaseCreateOrderRequest
createOrderDto
=
getCreateOrderDto
(
createOrderVo
);
ArrayList
<
CreateOrderAccountRequest
>
orderAccountDtos
=
new
ArrayList
<>();
long
deliveryAmount
=
0
;
...
...
@@ -226,10 +226,6 @@ public class OrderAdapter {
products
.
add
(
getMcCafeWithOrderVirtualProduct
(
shoppingCartGoodsDto
,
createOrderVo
));
}
// Set<String> withOrderBuyCouponCodeSet = new HashSet<>();
// withOrderBuyCouponCodeSet.add(withOrderBuyCouponCode);
// cartGoodsDetailDtos.stream().filter(o -> ProductTypeEnum.getVirtualProductType().contains(o.getProductType())).map(o -> withOrderBuyCouponCodeSet.add(o.getMonthCardInfo().getCardCode()));
// 根据购物车商品信息获取优惠信息
int
orderAccountIndex
=
0
;
for
(
ShoppingCartGoodsDto
.
CartGoodsDetailDto
cartGoodsDetailDto
:
cartGoodsDetailDtos
)
{
...
...
@@ -615,24 +611,24 @@ public class OrderAdapter {
return
WebUtil
.
IsPtInPoly
(
point2D
,
points
);
}
public
List
<
ShareDiscountActivityDto
.
ApportionGood
>
getApportionGoodsBySkuId
(
CreateOrderProductDemoDto
createOrderProductDemoDto
,
List
<
ShareDiscountActivityDto
>
newShareDiscountActivityDtos
)
{
List
<
ShareDiscountActivityDto
.
ApportionGood
>
list
=
Lists
.
newArrayList
();
if
(
CollectionUtils
.
isEmpty
(
newShareDiscountActivityDtos
))
{
return
list
;
}
String
skuId
=
createOrderProductDemoDto
.
getSpecification
();
boolean
hasProductCoupon
=
createOrderProductDemoDto
.
getHasProductCoupon
();
Iterator
<
ShareDiscountActivityDto
>
iterator
=
newShareDiscountActivityDtos
.
iterator
();
while
(
iterator
.
hasNext
())
{
ShareDiscountActivityDto
shareDiscountActivityDto
=
iterator
.
next
();
if
(
skuId
.
equals
(
shareDiscountActivityDto
.
getGoodsId
())
&&
shareDiscountActivityDto
.
getHasProductCoupon
().
equals
(
hasProductCoupon
))
{
list
=
shareDiscountActivityDto
.
getApportionGoods
();
iterator
.
remove
();
break
;
}
}
return
list
;
}
//
public List<ShareDiscountActivityDto.ApportionGood> getApportionGoodsBySkuId(CreateOrderProductDemoDto createOrderProductDemoDto, List<ShareDiscountActivityDto> newShareDiscountActivityDtos) {
//
List<ShareDiscountActivityDto.ApportionGood> list = Lists.newArrayList();
//
if (CollectionUtils.isEmpty(newShareDiscountActivityDtos)) {
//
return list;
//
}
//
String skuId = createOrderProductDemoDto.getSpecification();
//
boolean hasProductCoupon = createOrderProductDemoDto.getHasProductCoupon();
//
Iterator<ShareDiscountActivityDto> iterator = newShareDiscountActivityDtos.iterator();
//
while (iterator.hasNext()) {
//
ShareDiscountActivityDto shareDiscountActivityDto = iterator.next();
//
if (skuId.equals(shareDiscountActivityDto.getGoodsId()) && shareDiscountActivityDto.getHasProductCoupon().equals(hasProductCoupon)) {
//
list = shareDiscountActivityDto.getApportionGoods();
//
iterator.remove();
//
break;
//
}
//
}
//
return list;
//
}
public
List
<
ShareDiscountActivityDto
.
ApportionGood
>
getApportionGoodsBySkuIdNew
(
CreateOrderProductRequest
createOrderProductDemoDto
,
List
<
ShareDiscountActivityDto
>
newShareDiscountActivityDtos
,
Boolean
hasProductCoupon
)
{
List
<
ShareDiscountActivityDto
.
ApportionGood
>
list
=
Lists
.
newArrayList
();
...
...
@@ -655,29 +651,29 @@ public class OrderAdapter {
/**
* 统计参与优惠的商品
*/
public
List
<
CreateAccountProductDto
>
getAccountProducts
(
CreateOrderAccountDto
createOrderAccountDto
,
List
<
CreateOrderProductDto
>
createOrderProductDtos
)
{
Map
<
String
,
CreateAccountProductDto
>
productDtoMap
=
Maps
.
newTreeMap
();
createOrderProductDtos
.
forEach
(
createOrderProductDto
->
{
if
(
CollectionUtils
.
isNotEmpty
(
createOrderProductDto
.
getDiscountList
()))
{
createOrderProductDto
.
getDiscountList
().
forEach
(
productDiscount
->
{
if
(
createOrderAccountDto
.
getOldOrderAccountType
().
equals
(
productDiscount
.
getOldOrderAccountType
()))
{
if
(!
productDtoMap
.
containsKey
(
productDiscount
.
getProductId
()))
{
CreateAccountProductDto
createAccountProductDto
=
CreateAccountProductDto
.
builder
()
.
productId
(
productDiscount
.
getProductId
())
.
discountQty
(
productDiscount
.
getDiscountQty
())
.
build
();
productDtoMap
.
put
(
productDiscount
.
getProductId
(),
createAccountProductDto
);
}
else
{
CreateAccountProductDto
oldCreateAccountProductDto
=
productDtoMap
.
get
(
productDiscount
.
getProductId
());
oldCreateAccountProductDto
.
setDiscountQty
(
oldCreateAccountProductDto
.
getDiscountQty
()
+
productDiscount
.
getDiscountQty
());
productDtoMap
.
put
(
productDiscount
.
getProductId
(),
oldCreateAccountProductDto
);
}
}
});
}
});
return
new
ArrayList
<>(
productDtoMap
.
values
());
}
//
public List<CreateAccountProductDto> getAccountProducts(CreateOrderAccountDto createOrderAccountDto, List<CreateOrderProductDto> createOrderProductDtos) {
//
Map<String, CreateAccountProductDto> productDtoMap = Maps.newTreeMap();
//
createOrderProductDtos.forEach(createOrderProductDto -> {
//
if (CollectionUtils.isNotEmpty(createOrderProductDto.getDiscountList())) {
//
createOrderProductDto.getDiscountList().forEach(productDiscount -> {
//
if (createOrderAccountDto.getOldOrderAccountType().equals(productDiscount.getOldOrderAccountType())) {
//
if (!productDtoMap.containsKey(productDiscount.getProductId())) {
//
CreateAccountProductDto createAccountProductDto = CreateAccountProductDto.builder()
//
.productId(productDiscount.getProductId())
//
.discountQty(productDiscount.getDiscountQty())
//
.build();
//
productDtoMap.put(productDiscount.getProductId(), createAccountProductDto);
//
} else {
//
CreateAccountProductDto oldCreateAccountProductDto = productDtoMap.get(productDiscount.getProductId());
//
oldCreateAccountProductDto.setDiscountQty(oldCreateAccountProductDto.getDiscountQty() + productDiscount.getDiscountQty());
//
productDtoMap.put(productDiscount.getProductId(), oldCreateAccountProductDto);
//
}
//
}
//
});
//
}
//
});
//
return new ArrayList<>(productDtoMap.values());
//
}
/**
* 通过CreateOrderVo 创建 CreateOrderDto
...
...
@@ -3199,42 +3195,6 @@ public class OrderAdapter {
}
/**
* 转换第三方配送信息
*/
public
BaseCreateOrderRequest
.
DeliveryTypeInfo
convent2DeliveryTypeInfo
(
CreateOrderDto
.
DeliveryTypeInfo
oldDeliveryTypeInfo
)
{
if
(
oldDeliveryTypeInfo
==
null
||
StringUtils
.
isBlank
(
oldDeliveryTypeInfo
.
getDeliveryType
()))
{
return
null
;
}
BaseCreateOrderRequest
.
DeliveryTypeInfo
newDeliveryTypeInfo
=
new
BaseCreateOrderRequest
.
DeliveryTypeInfo
();
if
(
QueryDeliveryType
.
SELF
.
getCode
().
equals
(
oldDeliveryTypeInfo
.
getDeliveryType
()))
{
newDeliveryTypeInfo
.
setDeliveryType
(
QueryDeliveryType
.
SELF
);
}
if
(
QueryDeliveryType
.
THIRD
.
getCode
().
equals
(
oldDeliveryTypeInfo
.
getDeliveryType
()))
{
newDeliveryTypeInfo
.
setDeliveryType
(
QueryDeliveryType
.
THIRD
);
}
return
newDeliveryTypeInfo
;
}
/**
* 转换创建订单新
*/
public
CreateOrderResponseVo
convent2CreateOrderResponseVo
(
CreateOrderFlowResponse
.
CreateOrderResponseVo
createOrderResponseVo
)
{
if
(
createOrderResponseVo
==
null
)
{
return
null
;
}
CreateOrderResponseVo
createOrder
=
new
CreateOrderResponseVo
();
createOrder
.
setOid
(
createOrderResponseVo
.
getOrderId
());
createOrder
.
setFmId
(
createOrderResponseVo
.
getFmId
());
createOrder
.
setWxappId
(
createOrderResponseVo
.
getWxAppid
());
createOrder
.
setTimestamp
(
createOrderResponseVo
.
getTimestamp
());
createOrder
.
setNonceStr
(
createOrderResponseVo
.
getNonceStr
());
createOrder
.
setPackageX
(
createOrderResponseVo
.
getPackageX
());
createOrder
.
setSignType
(
createOrderResponseVo
.
getSignType
());
createOrder
.
setSign
(
createOrderResponseVo
.
getSign
());
createOrder
.
setPaySuccess
(
createOrderResponseVo
.
getPaySuccess
());
return
createOrder
;
}
public
UnifiedOrderRequest
convent2UnifiedOrderRequest
(
OrderBeanV1
orderBean
,
PaymentRequest
paymentRequest
,
Long
amount
,
Integer
cardAmount
,
String
transId
)
{
return
convent2UnifiedOrderRequest
(
orderBean
,
paymentRequest
,
amount
,
cardAmount
,
transId
,
null
);
...
...
@@ -3842,6 +3802,18 @@ public class OrderAdapter {
return
orderExtended
;
}
/**
* 门店渠道信息保存
*
* @return
*/
public
OrderExtendedReq
saveStoreInfoNew
(
StoreResponseDto
storeResponseDto
)
{
OrderExtendedReq
orderExtended
=
new
OrderExtendedReq
();
orderExtended
.
setOrderClientGroupCode
(
storeResponseDto
.
getParentCode
());
orderExtended
.
setOrderClientGroup
(
storeResponseDto
.
getParentName
());
return
orderExtended
;
}
// public OrderTaskReq saveOrderTaskReq(String orderWarnTime, Long gmtExpect) {
// OrderTaskReq orderTaskReq = new OrderTaskReq();
...
...
@@ -3951,59 +3923,29 @@ public class OrderAdapter {
return
requestDto
;
}
public
CreatePrepayRequestDto
convertToCreatePrepayRequestDto
(
AssortmentCustomerInfoVo
userLoginInfoDto
,
CreateOrderVo
createOrderVo
,
CreateOrderOperateDto
createOrderOperateDto
,
OrderExtInfoDto
orderExtInfoDTO
)
{
return
this
.
convertToCreatePrepayRequestDto
(
createOrderVo
.
getPartnerId
()
,
userLoginInfoDto
.
getWxAppId
()
,
userLoginInfoDto
.
getOpenId
()
,
createOrderVo
.
getFaceCode
()
,
createOrderVo
.
getCardCode
()
,
null
,
createOrderOperateDto
.
getFatherOrderBean
()
,
createOrderOperateDto
.
getProductOrderBean
()
,
createOrderOperateDto
.
getTotalAmount
()
==
null
?
0
:
createOrderOperateDto
.
getTotalAmount
()
,
createOrderOperateDto
.
getCardAmount
()
==
null
?
0
:
createOrderOperateDto
.
getCardAmount
()
,
orderExtInfoDTO
,
createOrderOperateDto
.
getFatherOrderBean
().
getOid
()
,
null
,
createOrderVo
.
getUnionPayCard
()
,
createOrderVo
.
getShopId
()
,
createOrderVo
.
getChannel
()
==
null
?
""
:
createOrderVo
.
getChannel
()
);
}
public
CreatePrepayRequestDto
convertToCreatePrepayRequestDto
(
String
partnerId
,
String
wxAppId
,
String
openId
,
String
faceCode
,
String
cardCode
,
String
payCode
,
OrderBeanV1
fatherOrderBean
,
OrderBeanV1
productOrderBean
,
long
totalAmount
,
int
cardAmount
,
OrderExtInfoDto
orderExtInfoDTO
,
String
transId
,
OrderClientType
orderClient
,
CreateOrderVo
.
UnionPayCard
unionPayCard
,
String
storeId
,
String
channel
)
{
public
CreatePrepayRequestDto
convertToCreatePrepayRequestDto
(
CreateOrderBONew
createOrderBO
,
CreateOrderOperateDto
createOrderOperateDto
)
{
AssortmentCustomerInfoVo
userLoginInfoDto
=
createOrderBO
.
getUserLoginInfoDto
();
CreateOrderVo
createOrderVo
=
createOrderBO
.
getCreateOrderVo
();
OrderExtInfoDto
orderExtInfoDTO
=
createOrderBO
.
getExtInfo
();
CreatePrepayRequestDto
requestDto
=
new
CreatePrepayRequestDto
();
requestDto
.
setPartnerId
(
partnerId
);
requestDto
.
setWxAppId
(
wxAppId
);
requestDto
.
setOpenId
(
openId
);
requestDto
.
setFaceCode
(
faceCode
);
requestDto
.
setCardCode
(
c
ardCode
);
requestDto
.
setPayCode
(
payCode
);
requestDto
.
setFatherOrderBean
(
fatherOrderBean
);
requestDto
.
setProductOrderBean
(
productOrderBean
);
requestDto
.
setTotalAmount
(
totalAmount
);
requestDto
.
setCardAmount
(
c
ardAmount
);
requestDto
.
setPartnerId
(
createOrderVo
.
getPartnerId
()
);
requestDto
.
setWxAppId
(
userLoginInfoDto
.
getWxAppId
()
);
requestDto
.
setOpenId
(
userLoginInfoDto
.
getOpenId
()
);
requestDto
.
setFaceCode
(
createOrderVo
.
getFaceCode
()
);
requestDto
.
setCardCode
(
c
reateOrderVo
.
getCardCode
()
);
requestDto
.
setPayCode
(
null
);
requestDto
.
setFatherOrderBean
(
createOrderOperateDto
.
getFatherOrderBean
()
);
requestDto
.
setProductOrderBean
(
createOrderOperateDto
.
getProductOrderBean
()
);
requestDto
.
setTotalAmount
(
createOrderOperateDto
.
getTotalAmount
()
==
null
?
0
:
createOrderOperateDto
.
getTotalAmount
()
);
requestDto
.
setCardAmount
(
c
reateOrderOperateDto
.
getCardAmount
()
==
null
?
0
:
createOrderOperateDto
.
getCardAmount
()
);
requestDto
.
setOrderExtInfoDTO
(
orderExtInfoDTO
);
requestDto
.
setTransId
(
transId
);
requestDto
.
setOrderClient
(
orderClient
);
requestDto
.
setUnionPayCard
(
unionPayCard
);
requestDto
.
setStoreId
(
storeId
);
requestDto
.
setChannel
(
c
hannel
);
requestDto
.
setTransId
(
createOrderOperateDto
.
getFatherOrderBean
().
getOid
()
);
requestDto
.
setOrderClient
(
null
);
requestDto
.
setUnionPayCard
(
createOrderVo
.
getUnionPayCard
()
);
requestDto
.
setStoreId
(
createOrderVo
.
getShopId
()
);
requestDto
.
setChannel
(
c
reateOrderVo
.
getChannel
()
==
null
?
""
:
createOrderVo
.
getChannel
()
);
return
requestDto
;
}
...
...
@@ -4641,4 +4583,73 @@ public class OrderAdapter {
return
applicationType
;
}
/**
* 设置创建订单的 extInfo字段
* @return
*/
public
OrderExtInfoDto
setOrderExtInfo
(
AssortmentCustomerInfoVo
userLoginInfoDto
,
StoreResponseDto
storeResponseDto
,
CreateOrderVo
createOrderVo
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
)
{
Integer
serviceTime
=
storeResponseDto
.
getServiceTime
();
String
sessionId
=
createOrderVo
.
getSessionId
();
String
version
=
createOrderVo
.
getVersion
();
CreateOrderVo
.
BuyMemberCard
memberCard
=
createOrderVo
.
getBuyMemberCard
();
String
deliveryHoursDayStart
=
""
;
String
deliveryHoursDayEnd
=
""
;
if
(
StringUtils
.
isNotBlank
(
storeResponseDto
.
getDeliveryHoursDay
()))
{
String
[]
days
=
storeResponseDto
.
getDeliveryHoursDay
().
split
(
"-"
);
if
(
days
.
length
==
2
)
{
deliveryHoursDayStart
=
DateUtil
.
convert2String
(
new
Date
(),
DateUtil
.
FORMAT_yyyyMMdd_date
)
+
" "
+
days
[
0
]
+
":00"
;
// deliveryHoursDayEnd = DateUtil.convert2String(new Date(), DateUtil.FORMAT_yyyyMMdd_date) + " " + days[1] + ":00";
}
}
OrderExtInfoDto
orderExtInfoDto
=
new
OrderExtInfoDto
();
orderExtInfoDto
.
setDeliveryHoursDayStart
(
deliveryHoursDayStart
);
orderExtInfoDto
.
setDeliveryHoursDayEnd
(
deliveryHoursDayEnd
);
orderExtInfoDto
.
setOpenid
(
userLoginInfoDto
.
getOpenId
());
//todo 字段多余,订单对象已有该字段
orderExtInfoDto
.
setAppid
(
userLoginInfoDto
.
getWxAppId
());
orderExtInfoDto
.
setSessionId
(
sessionId
);
if
(
Objects
.
equals
(
serviceTime
,
null
))
{
serviceTime
=
50
;
}
orderExtInfoDto
.
setServiceTime
(
serviceTime
);
orderExtInfoDto
.
setPushOrderTime
(
0
);
orderExtInfoDto
.
setVersion
(
version
);
if
(
memberCard
!=
null
&&
memberCard
.
getRuleId
()
!=
null
)
{
orderExtInfoDto
.
setRuleId
(
memberCard
.
getRuleId
());
}
// 扩展字段中存储 sessionKey
orderExtInfoDto
.
setSessionKey
(
createOrderVo
.
getSessionKey
());
orderExtInfoDto
.
setFormId
(
createOrderVo
.
getFormId
());
//todo 多余字段
orderExtInfoDto
.
setFromAppId
(
userLoginInfoDto
.
getWxAppId
());
if
(
StringUtils
.
isNotBlank
(
createOrderVo
.
getScene
()))
{
orderExtInfoDto
.
setScene
(
createOrderVo
.
getScene
());
}
if
(
null
!=
shoppingCartGoodsDto
&&
null
!=
shoppingCartGoodsDto
.
getSendPoint
())
{
ShoppingCartGoodsDto
.
SendPoint
sendPoint
=
shoppingCartGoodsDto
.
getSendPoint
();
orderExtInfoDto
.
setSendPointValidityDateDays
(
sendPoint
.
getValidityDateDays
());
orderExtInfoDto
.
setSendPointMaxNum
(
sendPoint
.
getMaxNum
());
orderExtInfoDto
.
setSendPointActivityCode
(
sendPoint
.
getActivityCode
());
orderExtInfoDto
.
setSendPointEndTime
(
sendPoint
.
getEndTime
().
getTime
()
+
""
);
orderExtInfoDto
.
setSendPointSendPoint
(
sendPoint
.
getSendPoint
());
orderExtInfoDto
.
setSendPointStoreLevel
(
sendPoint
.
getStoreLevel
());
orderExtInfoDto
.
setIsContinueExchange
(
sendPoint
.
getIsContinueExchange
());
}
if
(
null
!=
shoppingCartGoodsDto
&&
null
!=
shoppingCartGoodsDto
.
getTotalScore
())
{
orderExtInfoDto
.
setTotalScore
(
shoppingCartGoodsDto
.
getTotalScore
());
}
if
(
null
!=
shoppingCartGoodsDto
&&
null
!=
shoppingCartGoodsDto
.
getPackageAmountCollectType
())
{
orderExtInfoDto
.
setPackageAmountCollectType
(
shoppingCartGoodsDto
.
getPackageAmountCollectType
());
}
orderExtInfoDto
.
setUnDistribution
(
createOrderVo
.
getUnDistribution
());
return
orderExtInfoDto
;
}
}
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
View file @
9750797d
...
...
@@ -112,11 +112,11 @@ public class OrderController {
/**
* 扫脸支付下单
*/
@ApiAnnotation
(
logMessage
=
"scanFaceCreateOrder"
)
@PostMapping
(
"/scanFaceCreateOrder"
)
public
BaseResponse
scanFaceCreateOrder
(
@Validated
@LogParams
@RequestBody
CreateOrderVo
createOrderVo
)
{
return
orderservice
.
scanFaceCreateOrder
(
createOrderVo
);
}
//
@ApiAnnotation(logMessage = "scanFaceCreateOrder")
//
@PostMapping("/scanFaceCreateOrder")
//
public BaseResponse scanFaceCreateOrder(@Validated @LogParams @RequestBody CreateOrderVo createOrderVo) {
//
return orderservice.scanFaceCreateOrder(createOrderVo);
//
}
/**
* APP下单,下单带商品信息,不经过购物车服务,不唤起支付
...
...
order-application-service/src/main/java/cn/freemud/entities/bo/CreateOrderBONew.java
0 → 100644
View file @
9750797d
package
cn
.
freemud
.
entities
.
bo
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.store.StoreMixResponseDto
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
import
lombok.Data
;
@Data
public
class
CreateOrderBONew
{
private
CreateOrderVo
createOrderVo
;
private
AssortmentCustomerInfoVo
customerInfoVo
;
private
StoreMixResponseDto
storeMixResponseDto
;
private
ShoppingCartGoodsDto
shoppingCartGoodsDto
;
private
AssortmentCustomerInfoVo
userLoginInfoDto
;
private
OrderExtInfoDto
extInfo
;
public
CreateOrderBONew
()
{
}
public
CreateOrderBONew
(
CreateOrderVo
createOrderVo
)
{
this
.
createOrderVo
=
createOrderVo
;
}
}
order-application-service/src/main/java/cn/freemud/entities/bo/CreateOrderBo.java
View file @
9750797d
package
cn
.
freemud
.
entities
.
bo
;
import
cn.freemud.entities.dto.StoreResponseDto
;
import
cn.freemud.entities.dto.order.CreateOrderOperateDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.vo.CreateOrderBaseVo
;
...
...
@@ -28,7 +29,7 @@ public class CreateOrderBo {
private
ShoppingCartGoodsDto
shoppingCartGoodsDto
;
private
StoreResponse
.
BizVO
storeResponseDto
;
private
StoreResponse
Dto
storeResponseDto
;
private
OrderExtInfoDto
extInfo
;
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/StoreResponseDto.java
View file @
9750797d
...
...
@@ -144,4 +144,12 @@ public class StoreResponseDto {
* 最大接单量,单位笔
*/
private
Integer
maxOrderQuantity
;
private
String
businessType
;
private
String
thirdPartCode
;
private
String
storeNameEn
;
private
String
benefitCardDiscountAmount
;
}
order-application-service/src/main/java/cn/freemud/entities/vo/CreateOrderVo.java
View file @
9750797d
...
...
@@ -87,6 +87,7 @@ public class CreateOrderVo {
/**
* 渠道 1 saas 2 支付宝 3. iwc i围餐 5 头条
* @see cn.freemud.enums.ChannelEnum
*/
private
String
channel
;
/**
...
...
order-application-service/src/main/java/cn/freemud/service/CheckOrderUniversal.java
View file @
9750797d
...
...
@@ -17,6 +17,7 @@ import cn.freemud.constant.ResponseCodeConstant;
import
cn.freemud.constant.StoreConstant
;
import
cn.freemud.entities.bo.CreateOrderBo
;
import
cn.freemud.entities.dto.StoreDeliveryInfoDto
;
import
cn.freemud.entities.dto.StoreResponseDto
;
import
cn.freemud.entities.dto.UserDeliveryInfoDto
;
import
cn.freemud.entities.dto.delivery.DeliveryBaseResponse
;
import
cn.freemud.entities.dto.delivery.GetDeliveryFlagRequest
;
...
...
@@ -24,6 +25,7 @@ import cn.freemud.entities.dto.delivery.GetDeliveryFlagResponseDto;
import
cn.freemud.entities.dto.order.BusinessDate
;
import
cn.freemud.entities.dto.shoppingCart.GetShoppingCartGoodsApportionDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.store.StoreMixResponseDto
;
import
cn.freemud.entities.vo.CreateOrderBaseVo
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.GetProductsVo
;
...
...
@@ -159,7 +161,7 @@ public abstract class CheckOrderUniversal {
// end
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号 主流程
StoreResponse
.
BizVO
storeResponseDto
=
checkOrderByStore
(
createOrderBo
,
trackingNo
,
true
);
StoreResponse
Dto
storeResponseDto
=
checkOrderByStore
(
createOrderBo
,
trackingNo
,
true
);
createOrderBo
.
setStoreResponseDto
(
storeResponseDto
);
...
...
@@ -204,21 +206,21 @@ public abstract class CheckOrderUniversal {
/**
* 下单门店相关校验
*/
protected
StoreResponse
.
BizVO
checkOrderByStore
(
CreateOrderBo
createOrderBo
,
String
trackingNo
,
boolean
isCheck
)
{
protected
StoreResponse
Dto
checkOrderByStore
(
CreateOrderBo
createOrderBo
,
String
trackingNo
,
boolean
isCheck
)
{
CreateOrderBaseVo
createOrderBaseVo
=
createOrderBo
.
getCreateOrderBaseVo
();
String
partnerId
=
createOrderBaseVo
.
getPartnerId
();
String
shopId
=
createOrderBaseVo
.
getShopId
();
// 获取门店信息
Store
Response
storeResponse
=
getStoreInfo
(
partnerId
,
shopId
,
trackingNo
);
if
(
store
Response
==
null
||
storeResponse
.
getBizVO
()
==
null
)
{
Store
MixResponseDto
storeMixResponseDto
=
storeService
.
getStoreInfoNew
(
partnerId
,
shopId
,
false
);
if
(
store
MixResponseDto
==
null
||
storeMixResponseDto
.
getStoreInfo
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_NOT_FOUND
);
}
StoreResponseDto
storeResponseDto
=
storeMixResponseDto
.
getStoreInfo
();
if
(
isCheck
)
{
//订单预约单检查
OrderCheckAdapter
.
check
(
createOrderBaseVo
,
store
Response
);
OrderCheckAdapter
.
check
(
createOrderBaseVo
,
store
MixResponseDto
);
}
StoreResponse
.
BizVO
storeResponseDto
=
storeResponse
.
getBizVO
();
// 校验门店是否停业 1 营业 2 停业 3 繁忙置休
if
(
storeResponseDto
.
getActiveFlag
()
==
null
||
storeResponseDto
.
getActiveFlag
()
!=
1
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_ITEM_STOP_BUSINESS
);
...
...
@@ -362,7 +364,7 @@ public abstract class CheckOrderUniversal {
*/
protected
void
checkOrderByOrderType
(
CreateOrderBo
createOrderBo
)
{
CreateOrderBaseVo
createOrderVo
=
createOrderBo
.
getCreateOrderBaseVo
();
StoreResponse
.
BizVO
storeResponseDto
=
createOrderBo
.
getStoreResponseDto
();
StoreResponse
Dto
storeResponseDto
=
createOrderBo
.
getStoreResponseDto
();
AssortmentCustomerInfoVo
userLoginInfoDto
=
createOrderBo
.
getUserLoginInfoDto
();
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
createOrderBo
.
getShoppingCartGoodsDto
();
...
...
@@ -550,7 +552,7 @@ public abstract class CheckOrderUniversal {
/**
* 获取门店配送信息
*/
public
StoreDeliveryInfoDto
getStoreDeliveryInfo
(
StoreResponse
.
BizVO
storeResponseDto
,
public
StoreDeliveryInfoDto
getStoreDeliveryInfo
(
StoreResponse
Dto
storeResponseDto
,
AssortmentOpenPlatformIappWxappConfig
openPlatformIappWxappConfig
,
String
wxAppid
)
{
StoreDeliveryInfoDto
storeDeliveryInfoDto
=
new
StoreDeliveryInfoDto
();
storeDeliveryInfoDto
.
setPartnerId
(
storeResponseDto
.
getPartnerId
());
...
...
@@ -616,7 +618,7 @@ public abstract class CheckOrderUniversal {
/**
* 获取门店配送信息
*/
public
StoreDeliveryInfoDto
getNewStoreDeliveryInfo
(
StoreResponse
.
BizVO
storeResponseDto
,
public
StoreDeliveryInfoDto
getNewStoreDeliveryInfo
(
StoreResponse
Dto
storeResponseDto
,
AssortmentOpenPlatformIappWxappConfig
openPlatformIappWxappConfig
,
String
wxAppid
,
String
trackingNo
)
{
StoreDeliveryInfoDto
storeDeliveryInfoDto
=
new
StoreDeliveryInfoDto
();
storeDeliveryInfoDto
.
setPartnerId
(
storeResponseDto
.
getPartnerId
());
...
...
@@ -707,7 +709,7 @@ public abstract class CheckOrderUniversal {
return
point2DList
;
}
public
void
checkOrderExpectTime
(
CreateOrderBaseVo
createOrderVo
,
StoreResponse
.
BizVO
storeResponseDto
,
Date
takeMealDateTime
)
{
public
void
checkOrderExpectTime
(
CreateOrderBaseVo
createOrderVo
,
StoreResponse
Dto
storeResponseDto
,
Date
takeMealDateTime
)
{
if
(
takeMealDateTime
==
null
)
{
return
;
}
...
...
@@ -773,7 +775,7 @@ public abstract class CheckOrderUniversal {
* @param takeMealDateTime 预约单送达时间/即时单下单时间
* @param expectTimeInTodayBusinessTime 是否在当日营业时间内
*/
protected
void
checkTakeOutTime
(
StoreResponse
.
BizVO
storeResponseDto
,
Date
now
,
Date
takeMealDateTime
,
boolean
expectTimeInTodayBusinessTime
)
{
protected
void
checkTakeOutTime
(
StoreResponse
Dto
storeResponseDto
,
Date
now
,
Date
takeMealDateTime
,
boolean
expectTimeInTodayBusinessTime
)
{
String
deliveryStr
=
storeResponseDto
.
getDeliveryHoursDay
().
replace
(
"-"
,
","
)
.
replace
(
"_"
,
","
);
String
[]
deliverys
=
deliveryStr
.
split
(
","
);
...
...
@@ -807,7 +809,7 @@ public abstract class CheckOrderUniversal {
}
public
Date
getOrderExpectTime
(
String
takeMealFlag
,
String
takeMealTimes
,
String
expectTime
,
CreateOrderType
createOrderType
,
Integer
serviceTime
,
StoreResponse
.
BizVO
storeResponseDto
)
{
CreateOrderType
createOrderType
,
Integer
serviceTime
,
StoreResponse
Dto
storeResponseDto
)
{
Date
takeMealDateTime
=
null
;
//0=到店单我已到店、外卖单尽快送出
if
(
StringUtils
.
isNotBlank
(
takeMealFlag
)
&&
"0"
.
equals
(
takeMealFlag
))
{
...
...
@@ -867,7 +869,7 @@ public abstract class CheckOrderUniversal {
* @param toDay true 今日,false 明天
* @return
*/
protected
BusinessDate
getStoreBusinessDate
(
StoreResponse
.
BizVO
storeResponseDto
,
boolean
toDay
)
{
protected
BusinessDate
getStoreBusinessDate
(
StoreResponse
Dto
storeResponseDto
,
boolean
toDay
)
{
List
<
String
>
todayBusinessTimes
=
storeCenterService
.
getTodayBusinessTime
(
Integer
.
parseInt
(
storeResponseDto
.
getBusinessType
()),
storeResponseDto
.
getBusinessHoursDay
());
if
(
CollectionUtils
.
isEmpty
(
todayBusinessTimes
))
{
throw
new
ServiceException
(
ResponseResult
.
STORE_BUSINESS_HOUR_ERROR
);
...
...
@@ -876,63 +878,7 @@ public abstract class CheckOrderUniversal {
return
businessDate
;
}
public
void
checkOrderExpectTime
(
CreateOrderVo
createOrderVo
,
StoreResponse
.
BizVO
storeResponseDto
,
Date
takeMealDateTime
)
{
if
(
takeMealDateTime
==
null
)
{
return
;
}
//获取门店当天营业时间
Date
todayEndDate
=
null
;
List
<
String
>
todayBusinessTimes
=
storeCenterService
.
getTodayBusinessTime
(
Integer
.
parseInt
(
storeResponseDto
.
getBusinessType
()),
storeResponseDto
.
getBusinessHoursDay
());
if
(
CollectionUtils
.
isEmpty
(
todayBusinessTimes
))
{
throw
new
ServiceException
(
ResponseResult
.
STORE_BUSINESS_HOUR_ERROR
);
}
BusinessDate
businessDate
=
getStoreBusinessDate
(
todayBusinessTimes
.
get
(
todayBusinessTimes
.
size
()
-
1
),
true
);
todayEndDate
=
businessDate
.
getEndDate
();
//在当天营业时间内
boolean
expectTimeInTodayBusinessTime
=
true
;
Date
date
=
new
Date
();
Date
newDate
=
DateUtil
.
convert2Date
(
date
,
DateUtil
.
FORMAT_yyyyMMdd_date
);
newDate
=
DateUtil
.
addDays
(
newDate
,
1
);
//隔天预约(在明日凌晨之后且在门店营业结束之后)
if
(
takeMealDateTime
.
after
(
todayEndDate
)
&&
takeMealDateTime
.
after
(
newDate
))
{
expectTimeInTodayBusinessTime
=
false
;
}
if
(
expectTimeInTodayBusinessTime
)
{
boolean
inTodayBusinessTime
=
true
;
for
(
String
todayTime
:
todayBusinessTimes
)
{
//每段营业时间校验
BusinessDate
businessDate2
=
getStoreBusinessDate
(
todayTime
,
true
);
if
(
takeMealDateTime
.
getTime
()
>=
businessDate2
.
getStartDate
().
getTime
()
&&
takeMealDateTime
.
getTime
()
<=
businessDate2
.
getEndDate
().
getTime
())
{
inTodayBusinessTime
=
false
;
break
;
}
}
if
(
inTodayBusinessTime
)
{
throw
new
ServiceException
(
ResponseResult
.
ORDER_TAKEMEALTIME_INVAILD
);
}
}
//隔天预约
if
(!
expectTimeInTodayBusinessTime
)
{
List
<
String
>
nextDayBusinessTimes
=
storeCenterService
.
getNextDayBusinessTime
(
Integer
.
parseInt
(
storeResponseDto
.
getBusinessType
()),
storeResponseDto
.
getBusinessHoursDay
());
boolean
inNextDayBusinessTime
=
true
;
for
(
String
nextDayTime
:
nextDayBusinessTimes
)
{
BusinessDate
storeNextBusinessDate
=
getStoreBusinessDate
(
nextDayTime
,
false
);
if
(
takeMealDateTime
.
getTime
()
>=
storeNextBusinessDate
.
getStartDate
().
getTime
()
&&
takeMealDateTime
.
getTime
()
<=
storeNextBusinessDate
.
getEndDate
().
getTime
())
{
inNextDayBusinessTime
=
false
;
break
;
}
}
if
(
inNextDayBusinessTime
)
{
throw
new
ServiceException
(
ResponseResult
.
ORDER_TAKEMEALTIME_INVALID
);
}
}
if
(
CreateOrderType
.
TAKE_OUT
.
getCode
().
equals
(
createOrderVo
.
getOrderType
()))
{
checkTakeOutTime
(
storeResponseDto
,
date
,
takeMealDateTime
,
expectTimeInTodayBusinessTime
);
}
}
public
BusinessDate
getStoreBusinessDate
(
String
businessHoursDay
,
boolean
today
)
{
BusinessDate
businessDate
=
new
BusinessDate
();
...
...
order-application-service/src/main/java/cn/freemud/service/Orderservice.java
View file @
9750797d
...
...
@@ -29,7 +29,7 @@ public interface Orderservice extends OrderFactoryService{
*/
// BaseResponse createOrderNew(CreateOrderVo createOrderVo);
BaseResponse
scanFaceCreateOrder
(
CreateOrderVo
createOrderVo
);
//
BaseResponse scanFaceCreateOrder(CreateOrderVo createOrderVo);
/**
* 支付回调
...
...
order-application-service/src/main/java/cn/freemud/service/adapter/AbstractOrderCheck.java
View file @
9750797d
package
cn
.
freemud
.
service
.
adapter
;
import
cn.freemud.entities.dto.StoreResponseDto
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.interceptor.ServiceException
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
...
...
@@ -20,4 +21,19 @@ public abstract class AbstractOrderCheck implements OrderCheck {
}
}
/**
* 校验门店状态
* @param bizVO
*/
void
doStoreStateCheck
(
StoreResponseDto
bizVO
)
{
// 校验门店是否停业 1 营业 2 停业 3 繁忙置休
if
(!
Objects
.
equals
(
bizVO
.
getState
(),
"1"
))
{
throw
new
ServiceException
(
ResponseResult
.
STORE_MAKE_AN_APPOINTMENT_STOP_BUSINESS
);
// 营业
}
else
{
throw
new
ServiceException
(
ResponseResult
.
STORE_MAKE_AN_APPOINTMENT_OPEN_BUSINESS
);
}
}
}
order-application-service/src/main/java/cn/freemud/service/adapter/OrderCheck.java
View file @
9750797d
package
cn
.
freemud
.
service
.
adapter
;
import
cn.freemud.entities.bo.CreateOrderBONew
;
import
cn.freemud.entities.dto.store.StoreMixResponseDto
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.enums.CreateOrderType
;
import
cn.freemud.interceptor.ServiceException
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
/**
* 订单检查
...
...
@@ -20,7 +21,10 @@ public interface OrderCheck {
/**
* 检查
* @param vo
* @param store
Response
* @param store
MixResponseDto
*/
void
check
(
CreateOrderVo
vo
,
StoreResponse
storeResponse
)
throws
ServiceException
;
void
check
(
CreateOrderVo
vo
,
StoreMixResponseDto
storeMixResponseDto
)
throws
ServiceException
;
void
check
(
CreateOrderBONew
vo
)
throws
ServiceException
;
}
order-application-service/src/main/java/cn/freemud/service/adapter/OrderCheckAdapter.java
View file @
9750797d
package
cn
.
freemud
.
service
.
adapter
;
import
cn.freemud.entities.bo.CreateOrderBONew
;
import
cn.freemud.entities.dto.store.BusinessInfoDto
;
import
cn.freemud.entities.dto.store.StoreMixResponseDto
;
import
cn.freemud.entities.vo.CreateOrderBaseVo
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.interceptor.ServiceException
;
...
...
@@ -19,13 +22,51 @@ public class OrderCheckAdapter {
static
ArrayList
<
OrderCheck
>
orderCheckList
=
Lists
.
newArrayList
(
new
ToStoreCheck
(),
new
TakeOutOrderCheck
());
// /***
// * 校验预约单门店数据
// * @param vo
// * @param storeResponse
// * @throws ServiceException 抛出异常校验异常数据
// */
// public static void check(CreateOrderVo vo, StoreResponse storeResponse) throws ServiceException {
// // fisherman-ka 预定单的校验 未完成 --> 这里移动了位置
//// if (Objects.nonNull(vo.getBizType())
//// && BizTypeEnum.ADVANCE_ORDER.getBizType().compareTo(vo.getBizType()) == 0) {
//// // 伪代码 判断 门店是否开启了 预定单服务
//// // 开启了预定单服务, 不走下面的检验
//// // 没开启 抛出异常
//// }
// //非预约单的过滤
// if (Objects.isNull(vo.getOrderType()) ||
// (!Objects.equals(vo.getTakeMealFlag(), "1"))) {
// return;
// }
// // 预定单 不校验 下面的预约单
// if (Objects.nonNull(vo.getBizType())
// && BizTypeEnum.ADVANCE_ORDER.getBizType().compareTo(vo.getBizType()) == 0) {
// return;
// }
// StoreResponse.Configuration configuration = storeResponse.getBizVO().getStoreConfig();
// if(Objects.isNull(configuration)){
// //针对老数据没有配置 预约单默认支持,直接返回不校验
// AppLogUtil.infoLog("商户:{} shopId:{},没有配置预约单",vo.getPartnerId(),vo.getShopId());
// return;
// }
// for (OrderCheck orderCheck : orderCheckList) {
// if (orderCheck.support(vo.getOrderType())) {
// orderCheck.check(vo, storeResponse);
// return;
// }
// }
// }
/***
* 校验预约单门店数据
* @param vo
* @param storeResponse
* @throws ServiceException 抛出异常校验异常数据
*/
public
static
void
check
(
CreateOrder
Vo
vo
,
StoreResponse
storeResponse
)
throws
ServiceException
{
public
static
void
check
(
CreateOrder
BONew
createOrderBo
)
throws
ServiceException
{
// fisherman-ka 预定单的校验 未完成 --> 这里移动了位置
// if (Objects.nonNull(vo.getBizType())
// && BizTypeEnum.ADVANCE_ORDER.getBizType().compareTo(vo.getBizType()) == 0) {
...
...
@@ -33,6 +74,10 @@ public class OrderCheckAdapter {
// // 开启了预定单服务, 不走下面的检验
// // 没开启 抛出异常
// }
CreateOrderVo
vo
=
createOrderBo
.
getCreateOrderVo
();
StoreMixResponseDto
storeMixResponseDto
=
createOrderBo
.
getStoreMixResponseDto
();
BusinessInfoDto
businessInfo
=
storeMixResponseDto
.
getBusinessInfo
();
//非预约单的过滤
if
(
Objects
.
isNull
(
vo
.
getOrderType
())
||
(!
Objects
.
equals
(
vo
.
getTakeMealFlag
(),
"1"
)))
{
...
...
@@ -43,39 +88,41 @@ public class OrderCheckAdapter {
&&
BizTypeEnum
.
ADVANCE_ORDER
.
getBizType
().
compareTo
(
vo
.
getBizType
())
==
0
)
{
return
;
}
StoreResponse
.
Configuration
configuration
=
storeResponse
.
getBizVO
().
getStoreConfig
();
if
(
Objects
.
isNull
(
configuration
)){
if
(
Objects
.
isNull
(
businessInfo
)){
//针对老数据没有配置 预约单默认支持,直接返回不校验
AppLogUtil
.
infoLog
(
"商户:{} shopId:{},没有配置预约单"
,
vo
.
getPartnerId
(),
vo
.
getShopId
());
return
;
}
for
(
OrderCheck
orderCheck
:
orderCheckList
)
{
if
(
orderCheck
.
support
(
vo
.
getOrderType
()))
{
orderCheck
.
check
(
vo
,
storeResponse
);
orderCheck
.
check
(
createOrderBo
);
return
;
}
}
}
/***
* 校验预约单门店数据 优化订单接口冗余方法
* @param vo
* @param store
Response
* @param store
MixResponseDto
* @throws ServiceException 抛出异常校验异常数据
*/
public
static
void
check
(
CreateOrderBaseVo
vo
,
Store
Response
storeResponse
)
throws
ServiceException
{
public
static
void
check
(
CreateOrderBaseVo
vo
,
Store
MixResponseDto
storeMixResponseDto
)
throws
ServiceException
{
//非预约单的过滤
if
(
Objects
.
isNull
(
vo
.
getOrderType
())
||
(!
Objects
.
equals
(
vo
.
getTakeMealFlag
(),
"1"
)))
{
return
;
}
StoreResponse
.
Configuration
configuration
=
storeResponse
.
getBizVO
().
getStoreConfig
();
if
(
Objects
.
isNull
(
configuration
)){
BusinessInfoDto
businessInfo
=
storeMixResponseDto
.
getBusinessInfo
();
if
(
Objects
.
isNull
(
businessInfo
)){
//针对老数据没有配置 预约单默认支持,直接返回不校验
return
;
}
for
(
OrderCheck
orderCheck
:
orderCheckList
)
{
if
(
orderCheck
.
support
(
vo
.
getOrderType
()))
{
orderCheck
.
check
(
null
,
store
Response
);
orderCheck
.
check
(
null
,
store
MixResponseDto
);
return
;
}
}
...
...
order-application-service/src/main/java/cn/freemud/service/adapter/TakeOutOrderCheck.java
View file @
9750797d
package
cn
.
freemud
.
service
.
adapter
;
import
cn.freemud.entities.bo.CreateOrderBONew
;
import
cn.freemud.entities.dto.StoreResponseDto
;
import
cn.freemud.entities.dto.store.BusinessInfoDto
;
import
cn.freemud.entities.dto.store.StoreMixResponseDto
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.enums.CreateOrderType
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
java.util.Objects
;
...
...
@@ -15,16 +18,27 @@ public class TakeOutOrderCheck extends AbstractOrderCheck {
public
boolean
support
(
int
orderType
)
{
return
CreateOrderType
.
TAKE_OUT
.
getCode
()
==
orderType
;
}
@Override
public
void
check
(
CreateOrderVo
vo
,
Store
Response
storeResponse
)
{
StoreResponse
.
BizVO
bizVO
=
storeResponse
.
getBizVO
();
StoreResponse
.
Configuration
storeConfig
=
bizVO
.
getStoreConfig
();
public
void
check
(
CreateOrderVo
vo
,
Store
MixResponseDto
storeMixResponseDto
)
{
StoreResponse
Dto
storeInfo
=
storeMixResponseDto
.
getStoreInfo
();
BusinessInfoDto
businessInfo
=
storeMixResponseDto
.
getBusinessInfo
();
// 关闭预约单
if
(
Objects
.
equals
(
storeConfig
.
getDeliveryAppoint
(),
0
))
{
super
.
doStoreStateCheck
(
bizVO
);
if
(
Objects
.
equals
(
businessInfo
.
getDeliveryAppoint
(),
0
))
{
super
.
doStoreStateCheck
(
storeInfo
);
}
}
@Override
public
void
check
(
CreateOrderBONew
createOrderBONew
)
{
StoreMixResponseDto
storeMixResponseDto
=
createOrderBONew
.
getStoreMixResponseDto
();
StoreResponseDto
storeInfo
=
storeMixResponseDto
.
getStoreInfo
();
BusinessInfoDto
businessInfo
=
storeMixResponseDto
.
getBusinessInfo
();
// 关闭预约单
if
(
Objects
.
equals
(
businessInfo
.
getDeliveryAppoint
(),
0
))
{
super
.
doStoreStateCheck
(
storeInfo
);
}
}
}
order-application-service/src/main/java/cn/freemud/service/adapter/ToStoreCheck.java
View file @
9750797d
package
cn
.
freemud
.
service
.
adapter
;
import
cn.freemud.entities.bo.CreateOrderBONew
;
import
cn.freemud.entities.dto.StoreResponseDto
;
import
cn.freemud.entities.dto.store.BusinessInfoDto
;
import
cn.freemud.entities.dto.store.StoreMixResponseDto
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.enums.CreateOrderType
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
java.util.Objects
;
...
...
@@ -16,12 +19,24 @@ public class ToStoreCheck extends AbstractOrderCheck {
}
@Override
public
void
check
(
CreateOrderVo
vo
,
Store
Response
storeResponse
)
{
StoreResponse
.
BizVO
bizVO
=
storeResponse
.
getBizVO
();
StoreResponse
.
Configuration
storeConfig
=
bizVO
.
getStoreConfig
();
public
void
check
(
CreateOrderVo
vo
,
Store
MixResponseDto
storeMixResponseDto
)
{
StoreResponse
Dto
storeInfo
=
storeMixResponseDto
.
getStoreInfo
();
BusinessInfoDto
businessInfo
=
storeMixResponseDto
.
getBusinessInfo
();
// 关闭预约单
if
(
Objects
.
equals
(
storeConfig
.
getSelfMentionSwitch
(),
0
))
{
super
.
doStoreStateCheck
(
bizVO
);
if
(
Objects
.
equals
(
businessInfo
.
getSelfMentionSwitch
(),
0
))
{
super
.
doStoreStateCheck
(
storeInfo
);
}
}
@Override
public
void
check
(
CreateOrderBONew
createOrderBONew
)
{
StoreMixResponseDto
storeMixResponseDto
=
createOrderBONew
.
getStoreMixResponseDto
();
StoreResponseDto
storeInfo
=
storeMixResponseDto
.
getStoreInfo
();
BusinessInfoDto
businessInfo
=
storeMixResponseDto
.
getBusinessInfo
();
// 关闭预约单
if
(
Objects
.
equals
(
businessInfo
.
getSelfMentionSwitch
(),
0
))
{
super
.
doStoreStateCheck
(
storeInfo
);
}
}
...
...
order-application-service/src/main/java/cn/freemud/service/business/impl/OrderBusinessServiceImpl.java
View file @
9750797d
...
...
@@ -218,7 +218,6 @@ public class OrderBusinessServiceImpl implements OrderBusinessService {
public
CreateOrderResponse
createOrderFlow
(
CreateOrderRequest
config
)
{
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
request
.
create
.
CreateOrderRequest
request
=
orderSdkAdapter
.
convent2NEWCreateOrderRequest
(
config
.
getBaseCreateOrderRequest
());
// AssortOrderLogUtil.info("fisherman 请求基础服务,最终构建 04",config!=null?JSON.toJSONString(config):null);
// fisherman 创建订单 extinfo 存储 信息,有数上报需要使用, 更新接口直接重新覆盖就行
request
.
setExtInfo
(
this
.
getTempExtInfoMsg
(
config
.
getOpenId
(),
config
.
getBaseCreateOrderRequest
().
getAppId
()));
OrderBaseResp
<
OrderInfoReqs
>
order
=
orderSdkService
.
createOrder
(
request
,
config
.
getTrackingNo
());
...
...
order-application-service/src/main/java/cn/freemud/service/impl/AppOrderServiceImpl.java
View file @
9750797d
...
...
@@ -3,13 +3,16 @@ package cn.freemud.service.impl;
import
cn.freemud.adapter.OrderAdapter
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.bo.CreateOrderBONew
;
import
cn.freemud.entities.dto.ConfirmOrderDto
;
import
cn.freemud.entities.dto.StoreResponseDto
;
import
cn.freemud.entities.dto.coupon.InvalidCouponsRequestDto
;
import
cn.freemud.entities.dto.coupon.InvalidCouponsResponseDto
;
import
cn.freemud.entities.dto.order.CreateOrderOperateDto
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
import
cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.store.StoreMixResponseDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.OrderStatus
;
import
cn.freemud.enums.PayStatus
;
...
...
@@ -18,6 +21,7 @@ import cn.freemud.enums.TradeState;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.service.AppOrderService
;
import
cn.freemud.service.StoreService
;
import
cn.freemud.service.thirdparty.CouponOnlineClient
;
import
cn.freemud.utils.BeanUtil
;
import
cn.freemud.utils.RedisUtil
;
...
...
@@ -89,9 +93,8 @@ public class AppOrderServiceImpl implements AppOrderService {
@Autowired
private
RedisService
redisService
;
//门店SDK
@Autowired
private
Store
CenterService
storeCenter
Service
;
private
Store
ServiceImpl
store
Service
;
@Autowired
private
OrderSdkService
orderSdkService
;
...
...
@@ -112,14 +115,17 @@ public class AppOrderServiceImpl implements AppOrderService {
@Override
public
BaseResponse
createOrder
(
CreateOrderVo
createOrderVo
)
{
String
trackingNo
=
LogThreadLocal
.
getTrackingNo
();
CreateOrderBONew
createOrderBO
=
new
CreateOrderBONew
(
createOrderVo
);
// 查询用户信息
AssortmentCustomerInfoVo
userLoginInfoDto
=
checkOrder
.
checkOrderByMember
(
createOrderVo
,
trackingNo
);
AssortmentCustomerInfoVo
userLoginInfoDto
=
checkOrder
.
checkOrderByMember
(
createOrderVo
);
createOrderBO
.
setUserLoginInfoDto
(
userLoginInfoDto
);
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
StoreResponse
.
BizVO
storeResponseDto
=
checkOrder
.
checkOrderByStore
(
createOrderVo
,
trackingNo
);
StoreResponse
Dto
storeResponseDto
=
checkOrder
.
checkOrderByStore
(
createOrderBO
).
getStoreInfo
(
);
// 查询购物车(内部校验券点餐方式,券是否可用) 校验当前订单类型的下单参数
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
checkOrder
.
getShoppingCartGoodsDto
(
createOrderVo
);
createOrderBO
.
setShoppingCartGoodsDto
(
shoppingCartGoodsDto
);
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满足起送条件
Integer
pushOrderTime
=
checkOrder
.
checkOrderByOrderType
(
createOrder
Vo
,
userLoginInfoDto
,
storeResponseDto
,
shoppingCartGoodsDto
,
trackingNo
);
Integer
pushOrderTime
=
checkOrder
.
checkOrderByOrderType
(
createOrder
BO
);
//1.5.4版本,商品库存校验与扣库存
//List<String> stockProductIds = checkOrder.getStockProductIdList(createOrderVo, shoppingCartGoodsDto);
// 下单前检查优惠券是否可用
...
...
@@ -135,9 +141,9 @@ public class AppOrderServiceImpl implements AppOrderService {
}
}
OrderExtInfoDto
extInfo
=
orderservice
.
get
ExtInfo
(
userLoginInfoDto
,
storeResponseDto
,
pushOrderTime
,
createOrderVo
,
shoppingCartGoodsDto
);
OrderExtInfoDto
extInfo
=
orderservice
.
setOrder
ExtInfo
(
userLoginInfoDto
,
storeResponseDto
,
pushOrderTime
,
createOrderVo
,
shoppingCartGoodsDto
);
//创建订单
BaseResponse
createOrderOperateDtoResponse
=
orderservice
.
sdkCreateOrder
(
createOrder
Vo
,
storeResponseDto
,
shoppingCartGoodsDto
,
userLoginInfoDto
);
BaseResponse
createOrderOperateDtoResponse
=
orderservice
.
sdkCreateOrder
(
createOrder
BO
);
if
(
createOrderOperateDtoResponse
==
null
||
!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
createOrderOperateDtoResponse
.
getCode
())
||
createOrderOperateDtoResponse
.
getResult
()
==
null
)
{
return
createOrderOperateDtoResponse
;
}
...
...
@@ -184,13 +190,13 @@ public class AppOrderServiceImpl implements AppOrderService {
String
partnerId
=
createOrderReq
.
getPartnerId
();
String
shopId
=
createOrderReq
.
getShopId
();
// 获取门店信息
StoreInfoRequest
storeInfoRequest
=
new
StoreInfoRequest
(
partnerId
,
shopId
,
null
);
StoreResponse
storeResponse
=
storeCenterService
.
getStoreInfo
(
storeInfoRequest
,
trackingNo
);
if
(
storeResponse
==
null
||
storeResponse
.
getBizVO
()
==
null
)
{
StoreMixResponseDto
storeMixResponseDto
=
storeService
.
getStoreInfoNew
(
partnerId
,
shopId
,
false
);
if
(
storeMixResponseDto
==
null
||
storeMixResponseDto
.
getStoreInfo
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_NOT_FOUND
);
}
StoreResponseDto
storeResponse
=
storeMixResponseDto
.
getStoreInfo
();
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
checkOrder
.
checkOrderByStore
(
storeResponse
.
getBizVO
()
);
checkOrder
.
checkOrderByStore
(
storeResponse
);
/**蜜雪新增需求-->APP可以购买虚拟商品券业务逻辑**/
OrderBeanV1
orderBean
=
new
OrderBeanV1
();
if
(
createOrderReq
.
getBizType
()
!=
null
&&
BizTypeEnum
.
SALE_COUPON
.
getBizType
().
equals
(
createOrderReq
.
getBizType
()))
{
...
...
@@ -224,14 +230,18 @@ public class AppOrderServiceImpl implements AppOrderService {
createOrderReq
.
getMenuType
(),
createOrderReq
.
getReachStoreType
());
CreateOrderVo
createOrderVo
=
new
CreateOrderVo
();
BeanUtil
.
convertBean
(
createOrderReq
,
createOrderVo
);
createOrderVo
.
setStoreName
(
storeResponse
.
getBizVO
().
getStoreName
());
CreateOrderBONew
createOrderBO
=
new
CreateOrderBONew
(
createOrderVo
);
createOrderBO
.
setCustomerInfoVo
(
customerInfo
);
createOrderBO
.
setStoreMixResponseDto
(
storeMixResponseDto
);
createOrderBO
.
setShoppingCartGoodsDto
(
shoppingCartGoodsDto
);
createOrderVo
.
setStoreName
(
storeResponse
.
getStoreName
());
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满 足起送条件
Integer
pushOrderTime
=
checkOrder
.
checkOrderByOrderType
(
createOrder
Vo
,
customerInfo
,
storeResponse
.
getBizVO
(),
shoppingCartGoodsDto
,
trackingNo
);
Integer
pushOrderTime
=
checkOrder
.
checkOrderByOrderType
(
createOrder
BO
);
//1.5.4版本,商品库存校验与扣库存
//List<String> stockProductIds = checkOrder.getStockProductIdList(createOrderVo, shoppingCartGoodsDto);
OrderExtInfoDto
extInfo
=
order
service
.
getExtInfo
(
customerInfo
,
storeResponse
.
getBizVO
(),
pushOrderTim
e
,
createOrderVo
,
shoppingCartGoodsDto
);
OrderExtInfoDto
extInfo
=
order
Adapter
.
setOrderExtInfo
(
customerInfo
,
storeRespons
e
,
createOrderVo
,
shoppingCartGoodsDto
);
//创建订单
BaseResponse
createOrderOperateDtoResponse
=
orderservice
.
sdkCreateOrder
(
createOrder
Vo
,
storeResponse
.
getBizVO
(),
shoppingCartGoodsDto
,
customerInfo
);
BaseResponse
createOrderOperateDtoResponse
=
orderservice
.
sdkCreateOrder
(
createOrder
BO
);
if
(
createOrderOperateDtoResponse
==
null
||
!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
createOrderOperateDtoResponse
.
getCode
())
||
createOrderOperateDtoResponse
.
getResult
()
==
null
)
{
return
createOrderOperateDtoResponse
;
}
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CheckMCCafeOrder.java
View file @
9750797d
...
...
@@ -18,6 +18,7 @@ import cn.freemud.constant.StoreConstant;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.delivery.MCCafeDeliveryBaseResponse
;
import
cn.freemud.entities.dto.delivery.MCCafeDeliveryGetStoreIdResponse
;
import
cn.freemud.entities.dto.store.StoreMixResponseDto
;
import
cn.freemud.enums.*
;
import
cn.freemud.management.entities.dto.request.order.MCCafeCouponRequest
;
import
cn.freemud.entities.dto.order.BusinessDate
;
...
...
@@ -79,6 +80,8 @@ public class CheckMCCafeOrder {
//门店SDK
@Autowired
private
StoreCenterService
storeCenterService
;
@Autowired
private
StoreServiceImpl
storeService
;
//会员SDK
@Autowired
private
MemberCenterService
memberCenterService
;
...
...
@@ -138,17 +141,16 @@ public class CheckMCCafeOrder {
/**
* 下单门店相关校验
*/
public
StoreResponse
.
BizVO
checkOrderByStore
(
CreateOrderVo
createOrderVo
,
String
trackingN
o
)
{
public
StoreResponse
Dto
checkOrderByStore
(
CreateOrderVo
createOrderV
o
)
{
String
partnerId
=
createOrderVo
.
getPartnerId
();
String
shopId
=
createOrderVo
.
getShopId
();
// 获取门店信息
StoreInfoRequest
storeInfoRequest
=
new
StoreInfoRequest
(
partnerId
,
shopId
,
null
);
StoreResponse
storeResponse
=
storeCenterService
.
getStoreInfo
(
storeInfoRequest
,
trackingNo
);
if
(
storeResponse
==
null
||
storeResponse
.
getBizVO
()
==
null
)
{
StoreMixResponseDto
storeMixResponseDto
=
storeService
.
getStoreInfoNew
(
partnerId
,
shopId
,
true
);
if
(
storeMixResponseDto
==
null
||
storeMixResponseDto
.
getStoreInfo
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_NOT_FOUND
);
}
StoreResponse
.
BizVO
storeResponseDto
=
storeResponse
.
getBizVO
();
StoreResponse
Dto
storeResponseDto
=
storeMixResponseDto
.
getStoreInfo
();
// 校验门店是否营业
if
(
storeResponseDto
.
getActiveFlag
()
==
null
||
storeResponseDto
.
getActiveFlag
()
!=
1
||
storeResponseDto
.
getState
()
==
null
||
storeResponseDto
.
getState
().
equals
(
"3"
))
{
throw
new
ServiceException
(
ResponseResult
.
STORE_CLOSED_FOREVER
);
...
...
@@ -166,7 +168,7 @@ public class CheckMCCafeOrder {
* 下单订单类型校验
*/
public
Integer
checkOrderByOrderType
(
CreateOrderVo
createOrderVo
,
AssortmentCustomerInfoVo
userLoginInfoDto
,
StoreResponse
.
BizVO
storeResponseDto
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
String
trackingNo
)
{
StoreResponse
Dto
storeResponseDto
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
String
trackingNo
)
{
Integer
pushOrderTime
=
0
;
//非到店或者外卖,类型错误
if
(!(
CreateOrderType
.
COLLECT_GOODS
.
getCode
().
equals
(
createOrderVo
.
getOrderType
())
||
...
...
@@ -300,7 +302,7 @@ public class CheckMCCafeOrder {
return
pushOrderTime
;
}
public
void
checkOrderExpectTime
(
StoreResponse
.
BizVO
storeResponseDto
,
Date
takeMealDateTime
)
{
public
void
checkOrderExpectTime
(
StoreResponse
Dto
storeResponseDto
,
Date
takeMealDateTime
)
{
if
(
takeMealDateTime
==
null
)
{
return
;
}
...
...
@@ -330,7 +332,7 @@ public class CheckMCCafeOrder {
* @param storeResponseDto 店铺信息
* @param expectTime 预约单送达时间/即时单下单时间
*/
private
void
checkTakeOutTime
(
StoreResponse
.
BizVO
storeResponseDto
,
Date
expectTime
)
{
private
void
checkTakeOutTime
(
StoreResponse
Dto
storeResponseDto
,
Date
expectTime
)
{
//获取门店预约当天外卖时间
List
<
String
>
deliveryTimes
=
storeCenterService
.
getBusinessTimeByDate
(
com
.
freemud
.
application
.
sdk
.
api
.
util
.
DateUtil
.
convert2String
(
expectTime
,
com
.
freemud
.
application
.
sdk
.
api
.
util
.
DateUtil
.
FORMAT_yyyyMMdd_date
),
storeResponseDto
.
getDeliveryHours
());
...
...
@@ -640,7 +642,7 @@ public class CheckMCCafeOrder {
/**
* 获取门店配送信息
*/
public
StoreDeliveryInfoDto
getNewStoreDeliveryInfo
(
StoreResponse
.
BizVO
storeResponseDto
,
public
StoreDeliveryInfoDto
getNewStoreDeliveryInfo
(
StoreResponse
Dto
storeResponseDto
,
AssortmentOpenPlatformIappWxappConfig
openPlatformIappWxappConfig
,
String
wxAppid
,
String
trackingNo
)
{
StoreDeliveryInfoDto
storeDeliveryInfoDto
=
new
StoreDeliveryInfoDto
();
storeDeliveryInfoDto
.
setPartnerId
(
storeResponseDto
.
getPartnerId
());
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CheckMallOrder.java
View file @
9750797d
...
...
@@ -18,10 +18,12 @@ import cn.freemud.constant.ResponseCodeConstant;
import
cn.freemud.constant.StoreConstant
;
import
cn.freemud.entities.dto.GetCouponDetailResponseDto
;
import
cn.freemud.entities.dto.StoreDeliveryInfoDto
;
import
cn.freemud.entities.dto.StoreResponseDto
;
import
cn.freemud.entities.dto.UserDeliveryInfoDto
;
import
cn.freemud.entities.dto.delivery.WeixinDeliveryAddressDto
;
import
cn.freemud.entities.dto.shoppingCart.GetShoppingCartGoodsApportionDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.store.StoreMixResponseDto
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.GetMemberCouponRequestVo
;
import
cn.freemud.entities.vo.ShoppingCartInfoRequestVo
;
...
...
@@ -69,6 +71,8 @@ public class CheckMallOrder {
@Autowired
private
StoreCenterService
storeCenterService
;
@Autowired
private
StoreServiceImpl
storeService
;
@Autowired
private
CouponService
couponService
;
/**
...
...
@@ -98,16 +102,16 @@ public class CheckMallOrder {
/**
* 下单门店相关校验
*/
public
StoreResponse
.
BizVO
checkOrderByStore
(
CreateOrderVo
createOrderVo
,
String
trackingNo
)
{
public
StoreResponse
Dto
checkOrderByStore
(
CreateOrderVo
createOrderVo
,
String
trackingNo
)
{
String
partnerId
=
createOrderVo
.
getPartnerId
();
String
shopId
=
createOrderVo
.
getShopId
();
// 获取门店信息
Store
Response
storeResponse
=
getStoreInfo
(
partnerId
,
shopId
,
trackingNo
);
if
(
store
Response
==
null
||
storeResponse
.
getBizVO
()
==
null
)
{
Store
MixResponseDto
storeMixResponseDto
=
storeService
.
getStoreInfoNew
(
partnerId
,
shopId
,
false
);
if
(
store
MixResponseDto
==
null
||
storeMixResponseDto
.
getStoreInfo
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_NOT_FOUND
);
}
StoreResponse
.
BizVO
storeResponseDto
=
storeResponse
.
getBizVO
();
StoreResponse
Dto
storeResponseDto
=
storeMixResponseDto
.
getStoreInfo
();
// 校验门店是否停业 1 营业 2 停业 3 繁忙置休
if
(
storeResponseDto
.
getActiveFlag
()
==
null
||
storeResponseDto
.
getActiveFlag
()
!=
1
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_ITEM_STOP_BUSINESS
);
...
...
@@ -145,7 +149,7 @@ public class CheckMallOrder {
* 下单配送相关校验
*/
public
void
checkOrderByDelivery
(
CreateOrderVo
createOrderVo
,
AssortmentCustomerInfoVo
userLoginInfoDto
,
StoreResponse
.
BizVO
storeResponseDto
,
Long
totalAmount
,
String
trackingNo
)
{
StoreResponse
Dto
storeResponseDto
,
Long
totalAmount
,
String
trackingNo
)
{
// StoreDeliveryInfoDto storeDeliveryInfoDto = this.getStoreDeliveryInfo(storeResponseDto, userLoginInfoDto.getWxAppId());
// //订单金额小于起送费提示
// if (storeDeliveryInfoDto.getDeliveryLimitAmount() > totalAmount) {
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
View file @
9750797d
...
...
@@ -16,8 +16,10 @@ import cn.freemud.adapter.OrderAdapter;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.StoreConstant
;
import
cn.freemud.entities.bo.CreateOrderBONew
;
import
cn.freemud.entities.dto.GetCouponDetailResponseDto
;
import
cn.freemud.entities.dto.StoreDeliveryInfoDto
;
import
cn.freemud.entities.dto.StoreResponseDto
;
import
cn.freemud.entities.dto.UserDeliveryInfoDto
;
import
cn.freemud.entities.dto.delivery.DeliveryBaseResponse
;
import
cn.freemud.entities.dto.delivery.GetDeliveryFlagRequest
;
...
...
@@ -42,6 +44,7 @@ import cn.freemud.service.order.OrderRelationFactory;
import
cn.freemud.service.order.OrderRelationService
;
import
cn.freemud.service.thirdparty.*
;
import
cn.freemud.utils.AppLogUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformIappWxappConfig
;
...
...
@@ -56,6 +59,7 @@ import com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressR
import
com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse
;
import
com.freemud.application.sdk.api.membercenter.service.MemberCenterService
;
import
com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
import
com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService
;
import
com.freemud.application.sdk.api.storecenter.request.QueryDeliveryRequest
;
import
com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest
;
...
...
@@ -147,10 +151,67 @@ public class CheckOrder {
@Value
(
"${card.pay.unDistribution.applyId:}"
)
private
List
<
Integer
>
unDistributions
;
/**
* 创建订单前参数校验与数据获取
*/
public
cn
.
freemud
.
base
.
entity
.
BaseResponse
checkCreateOrderInfo
(
CreateOrderBONew
createOrderBO
){
CreateOrderVo
createOrderVo
=
createOrderBO
.
getCreateOrderVo
();
//原标准点餐程序逻辑处理
cn
.
freemud
.
base
.
entity
.
BaseResponse
baseResponse
=
this
.
checkStandardParamInfo
(
createOrderVo
);
if
(
ObjectUtils
.
notEqual
(
baseResponse
.
getCode
(),
ResponseResult
.
SUCCESS
.
getCode
()))
{
return
baseResponse
;
}
// 查询用户信息、校验svc卡,余额购物车校验
AssortmentCustomerInfoVo
userLoginInfoDto
=
this
.
checkOrderByMember
(
createOrderVo
);
createOrderBO
.
setUserLoginInfoDto
(
userLoginInfoDto
);
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
StoreMixResponseDto
storeMixResponseDto
=
this
.
checkOrderByStore
(
createOrderBO
);
createOrderBO
.
setStoreMixResponseDto
(
storeMixResponseDto
);
StoreResponseDto
storeInfo
=
storeMixResponseDto
.
getStoreInfo
();
// 查询购物车(内部校验券点餐方式,券是否可用) 校验当前订单类型的下单参数
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
this
.
getShoppingCartGoodsDto
(
createOrderVo
);
createOrderBO
.
setShoppingCartGoodsDto
(
shoppingCartGoodsDto
);
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满足起送条件
checkOrderByOrderType
(
createOrderBO
);
//更新订单使用
OrderExtInfoDto
extInfo
=
orderAdapter
.
setOrderExtInfo
(
userLoginInfoDto
,
storeInfo
,
createOrderBO
.
getCreateOrderVo
(),
shoppingCartGoodsDto
);
createOrderBO
.
setExtInfo
(
extInfo
);
return
ResponseUtil
.
success
();
}
/**
* 标准点餐参数校验
*
* @param createOrderVo
* @return
*/
private
cn
.
freemud
.
base
.
entity
.
BaseResponse
checkStandardParamInfo
(
CreateOrderVo
createOrderVo
)
{
if
(
StringUtils
.
isEmpty
(
createOrderVo
.
getSessionId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
CREATE_ORDER_CHECK_SESSION_ERROR
);
}
if
(
StringUtils
.
isEmpty
(
createOrderVo
.
getShopId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
CREATE_ORDER_CHECK_STORE_ERROR
);
}
if
(
createOrderVo
.
getOrderType
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
CREATE_ORDER_CHECK_ORDERTYPE_ERROR
);
}
return
ResponseUtil
.
success
();
}
/**
* 下单会员相关校验
*/
public
AssortmentCustomerInfoVo
checkOrderByMember
(
CreateOrderVo
createOrderVo
,
String
trackingNo
)
{
public
AssortmentCustomerInfoVo
checkOrderByMember
(
CreateOrderVo
createOrderVo
)
{
// 通过sessionId查询缓存中会员id
String
sessionId
=
createOrderVo
.
getSessionId
();
AssortmentCustomerInfoVo
userLoginInfoDto
=
customerInfoManager
.
getCustomerInfoByObject
(
sessionId
);
...
...
@@ -223,29 +284,6 @@ public class CheckOrder {
/**
* 查询门店信息新接口
*/
public
StoreMixResponseDto
getStoreInfoNew
(
String
partnerId
,
String
shopId
,
Boolean
queryBusinessInfo
)
{
// 获取门店信息
StoreInfoRequestDto
request
=
new
StoreInfoRequestDto
();
request
.
setPartnerId
(
partnerId
);
request
.
setStoreCode
(
shopId
);
StoreInfoRequestDto
.
QueryInfo
query
=
new
StoreInfoRequestDto
.
QueryInfo
();
// query.setQueryStoreInfo(true);
query
.
setQueryBusinessInfo
(
queryBusinessInfo
);
request
.
setQuery
(
query
);
StoreBaseResponseDto
<
StoreMixResponseDto
>
storeInfoNew
=
storeClient
.
getStoreInfoNew
(
request
);
if
(
storeInfoNew
==
null
||
storeInfoNew
.
getBizVO
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_NOT_FOUND
);
}
if
(
queryBusinessInfo
&&
storeInfoNew
.
getBizVO
().
getBusinessInfo
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_DATE_ERROR
);
}
return
storeInfoNew
.
getBizVO
();
}
/**
* 查询门店信息新接口
*/
public
StoreMixResponseDto
getStoreInfoNew
(
String
partnerId
,
String
shopId
,
StoreInfoRequestDto
.
QueryInfo
query
)
{
// 获取门店信息
StoreInfoRequestDto
request
=
new
StoreInfoRequestDto
();
...
...
@@ -262,19 +300,18 @@ public class CheckOrder {
/**
* 下单门店相关校验
*/
public
StoreResponse
.
BizVO
checkOrderByStore
(
CreateOrderVo
createOrderVo
,
String
trackingNo
)
{
public
StoreMixResponseDto
checkOrderByStore
(
CreateOrderBONew
createOrderBO
)
{
CreateOrderVo
createOrderVo
=
createOrderBO
.
getCreateOrderVo
();
String
partnerId
=
createOrderVo
.
getPartnerId
();
String
shopId
=
createOrderVo
.
getShopId
();
// 获取门店信息
StoreResponse
storeResponse
=
getStoreInfo
(
partnerId
,
shopId
,
trackingNo
);
if
(
storeResponse
==
null
||
storeResponse
.
getBizVO
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_NOT_FOUND
);
}
//订单预约单检查&预定单检查
StoreMixResponseDto
storeMixResponseDto
=
storeService
.
getStoreInfoNew
(
partnerId
,
shopId
,
true
);
createOrderBO
.
setStoreMixResponseDto
(
storeMixResponseDto
);
OrderCheckAdapter
.
check
(
createOrderVo
,
storeResponse
);
StoreResponse
.
BizVO
storeResponseDto
=
storeResponse
.
getBizVO
();
StoreResponseDto
storeResponseDto
=
storeMixResponseDto
.
getStoreInfo
();
//订单预约单检查&预定单检查
OrderCheckAdapter
.
check
(
createOrderBO
);
// 校验门店是否停业 1 营业 2 停业 3 繁忙置休
if
(
storeResponseDto
.
getActiveFlag
()
==
null
||
storeResponseDto
.
getActiveFlag
()
!=
1
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_ITEM_STOP_BUSINESS
);
...
...
@@ -287,7 +324,7 @@ public class CheckOrder {
createOrderVo
.
setStoreAddress
(
storeResponseDto
.
getAddress
());
createOrderVo
.
setThirdShopId
(
storeResponseDto
.
getThirdPartCode
());
createOrderVo
.
setStoreNameEn
(
storeResponseDto
.
getStoreNameEn
());
return
storeResponseDto
;
return
store
Mix
ResponseDto
;
}
/**
...
...
@@ -298,7 +335,7 @@ public class CheckOrder {
String
shopId
=
createOrderVo
.
getShopId
();
// 获取门店信息
StoreMixResponseDto
storeInfoNew
=
getStoreInfoNew
(
partnerId
,
shopId
,
true
);
StoreMixResponseDto
storeInfoNew
=
storeService
.
getStoreInfoNew
(
partnerId
,
shopId
,
true
);
BusinessInfoDto
businessInfo
=
storeInfoNew
.
getBusinessInfo
();
return
businessInfo
;
...
...
@@ -320,12 +357,13 @@ public class CheckOrder {
/**
* 下单订单类型校验
*/
public
Integer
checkOrderByOrderType
(
CreateOrderVo
createOrderVo
,
AssortmentCustomerInfoVo
userLoginInfoDto
,
StoreResponse
.
BizVO
storeResponseDto
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
String
trackingNo
)
{
public
Integer
checkOrderByOrderType
(
CreateOrderBONew
createOrderBO
)
{
CreateOrderVo
createOrderVo
=
createOrderBO
.
getCreateOrderVo
();
AssortmentCustomerInfoVo
userLoginInfoDto
=
createOrderBO
.
getUserLoginInfoDto
();
StoreMixResponseDto
storeMixResponseDto
=
createOrderBO
.
getStoreMixResponseDto
();
StoreResponseDto
storeResponseDto
=
storeMixResponseDto
.
getStoreInfo
();
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
createOrderBO
.
getShoppingCartGoodsDto
();
// 下单时间校验
OrderRelationService
orderRelationService
=
orderRelationFactory
.
getCreateOrderTimeCheckService
(
createOrderVo
.
getPartnerId
());
orderRelationService
.
createOrderTimeCheck
(
storeResponseDto
,
createOrderVo
);
Integer
pushOrderTime
=
0
;
//非到店或者外卖,类型错误
if
(!(
CreateOrderType
.
COLLECT_GOODS
.
getCode
().
equals
(
createOrderVo
.
getOrderType
())
||
...
...
@@ -432,7 +470,7 @@ public class CheckOrder {
if
(
storeDeliveryUseOld
)
{
storeDeliveryInfoDto
=
getStoreDeliveryInfo
(
storeResponseDto
,
config
,
appId
);
}
else
{
storeDeliveryInfoDto
=
getNewStoreDeliveryInfo
(
storeResponseDto
,
config
,
appId
,
trackingNo
);
storeDeliveryInfoDto
=
getNewStoreDeliveryInfo
(
appId
,
storeResponseDto
,
config
);
}
//coco自配送提前45分钟,禁止下单
if
(
cocoPartnerId
.
equals
(
createOrderVo
.
getPartnerId
())
&&
...
...
@@ -469,7 +507,7 @@ public class CheckOrder {
// 先暂时这么写, 到时候需要优化这一块 对于门店的请求操作
StoreInfoRequestDto
.
QueryInfo
query
=
new
StoreInfoRequestDto
.
QueryInfo
();
query
.
setQueryDeliveryInfo
(
Boolean
.
TRUE
);
StoreMixResponseDto
storemixDto
=
this
.
getStoremixDto
(
createOrderVo
.
getPartnerId
(),
createOrderVo
.
getShopId
(),
query
);
StoreMixResponseDto
storemixDto
=
storeService
.
getStoremixDto
(
createOrderVo
.
getPartnerId
(),
createOrderVo
.
getShopId
(),
query
);
DeliveryInfoDTO
deliveryInfo
=
storemixDto
.
getDeliveryInfo
();
Long
deliveryLimitAmount
=
storeDeliveryInfoDto
.
getDeliveryLimitAmount
();
Long
totalAmount
=
shoppingCartGoodsDto
.
getTotalAmount
();
...
...
@@ -502,7 +540,7 @@ public class CheckOrder {
* @param queryBusinessInfoNew
* @param storeResponseDto
*/
private
void
checkAdvanceOrderExpectTime
(
BusinessInfoDto
queryBusinessInfoNew
,
StoreResponse
.
BizVO
storeResponseDto
,
Date
takeMealDateTime
)
{
private
void
checkAdvanceOrderExpectTime
(
BusinessInfoDto
queryBusinessInfoNew
,
StoreResponse
Dto
storeResponseDto
,
Date
takeMealDateTime
)
{
if
(
Objects
.
isNull
(
queryBusinessInfoNew
))
{
return
;
}
...
...
@@ -549,7 +587,7 @@ public class CheckOrder {
* @param toDay true 今日,false 明天
* @return
*/
private
BusinessDate
getStoreBusinessDate
(
StoreResponse
.
BizVO
storeResponseDto
,
boolean
toDay
)
{
private
BusinessDate
getStoreBusinessDate
(
StoreResponse
Dto
storeResponseDto
,
boolean
toDay
)
{
List
<
String
>
todayBusinessTimes
=
storeCenterService
.
getTodayBusinessTime
(
Integer
.
parseInt
(
storeResponseDto
.
getBusinessType
()),
storeResponseDto
.
getBusinessHoursDay
());
if
(
CollectionUtils
.
isEmpty
(
todayBusinessTimes
))
{
throw
new
ServiceException
(
ResponseResult
.
STORE_BUSINESS_HOUR_ERROR
);
...
...
@@ -558,7 +596,7 @@ public class CheckOrder {
return
businessDate
;
}
public
void
checkOrderExpectTime
(
CreateOrderVo
createOrderVo
,
StoreResponse
.
BizVO
storeResponseDto
,
Date
takeMealDateTime
)
{
public
void
checkOrderExpectTime
(
CreateOrderVo
createOrderVo
,
StoreResponse
Dto
storeResponseDto
,
Date
takeMealDateTime
)
{
if
(
takeMealDateTime
==
null
)
{
return
;
}
...
...
@@ -624,7 +662,7 @@ public class CheckOrder {
* @param takeMealDateTime 预约单送达时间/即时单下单时间
* @param expectTimeInTodayBusinessTime 是否在当日营业时间内
*/
private
void
checkTakeOutTime
(
StoreResponse
.
BizVO
storeResponseDto
,
Date
now
,
Date
takeMealDateTime
,
boolean
expectTimeInTodayBusinessTime
)
{
private
void
checkTakeOutTime
(
StoreResponse
Dto
storeResponseDto
,
Date
now
,
Date
takeMealDateTime
,
boolean
expectTimeInTodayBusinessTime
)
{
String
deliveryStr
=
storeResponseDto
.
getDeliveryHoursDay
().
replace
(
"-"
,
","
)
.
replace
(
"_"
,
","
);
String
[]
deliverys
=
deliveryStr
.
split
(
","
);
...
...
@@ -658,7 +696,7 @@ public class CheckOrder {
}
public
Date
getOrderExpectTime
(
String
takeMealFlag
,
String
takeMealTimes
,
String
expectTime
,
CreateOrderType
createOrderType
,
Integer
serviceTime
,
StoreResponse
.
BizVO
storeResponseDto
)
{
CreateOrderType
createOrderType
,
Integer
serviceTime
,
StoreResponse
Dto
storeResponseDto
)
{
Date
takeMealDateTime
=
null
;
//0=到店单我已到店、外卖单尽快送出
if
(
StringUtils
.
isNotBlank
(
takeMealFlag
)
&&
"0"
.
equals
(
takeMealFlag
))
{
...
...
@@ -901,7 +939,7 @@ public class CheckOrder {
/**
* 获取门店配送信息
*/
public
StoreDeliveryInfoDto
getStoreDeliveryInfo
(
StoreResponse
.
BizVO
storeResponseDto
,
public
StoreDeliveryInfoDto
getStoreDeliveryInfo
(
StoreResponse
Dto
storeResponseDto
,
AssortmentOpenPlatformIappWxappConfig
openPlatformIappWxappConfig
,
String
wxAppid
)
{
StoreDeliveryInfoDto
storeDeliveryInfoDto
=
new
StoreDeliveryInfoDto
();
storeDeliveryInfoDto
.
setPartnerId
(
storeResponseDto
.
getPartnerId
());
...
...
@@ -967,8 +1005,9 @@ public class CheckOrder {
/**
* 获取门店配送信息
*/
public
StoreDeliveryInfoDto
getNewStoreDeliveryInfo
(
StoreResponse
.
BizVO
storeResponseDto
,
AssortmentOpenPlatformIappWxappConfig
openPlatformIappWxappConfig
,
String
wxAppid
,
String
trackingNo
)
{
public
StoreDeliveryInfoDto
getNewStoreDeliveryInfo
(
String
wxAppid
,
StoreResponseDto
storeResponseDto
,
AssortmentOpenPlatformIappWxappConfig
openPlatformIappWxappConfig
)
{
String
trackingNo
=
LogThreadLocal
.
getTrackingNo
();
StoreDeliveryInfoDto
storeDeliveryInfoDto
=
new
StoreDeliveryInfoDto
();
storeDeliveryInfoDto
.
setPartnerId
(
storeResponseDto
.
getPartnerId
());
storeDeliveryInfoDto
.
setStoreId
(
storeResponseDto
.
getStoreCode
());
...
...
@@ -1170,7 +1209,7 @@ public class CheckOrder {
return
responseDTO
.
getData
();
}
public
void
checkOrderByStore
(
StoreResponse
.
BizVO
storeResponseDto
)
{
public
void
checkOrderByStore
(
StoreResponse
Dto
storeResponseDto
)
{
// 校验门店是否停业 1 营业 2 停业 3 繁忙置休
if
(
storeResponseDto
.
getActiveFlag
()
==
null
||
storeResponseDto
.
getActiveFlag
()
!=
1
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_ITEM_STOP_BUSINESS
);
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrderSaasMall.java
View file @
9750797d
...
...
@@ -5,6 +5,7 @@ import cn.freemud.base.util.DateUtil;
import
cn.freemud.constant.StoreConstant
;
import
cn.freemud.entities.bo.CreateOrderBo
;
import
cn.freemud.entities.dto.StoreDeliveryInfoDto
;
import
cn.freemud.entities.dto.StoreResponseDto
;
import
cn.freemud.entities.dto.UserDeliveryInfoDto
;
import
cn.freemud.entities.dto.delivery.WeixinDeliveryAddressDto
;
import
cn.freemud.entities.dto.ecology.VirtualBindStoreResponse
;
...
...
@@ -72,11 +73,11 @@ public class CheckOrderSaasMall extends CheckOrderUniversal {
* @return
*/
@Override
protected
StoreResponse
.
BizVO
checkOrderByStore
(
CreateOrderBo
createOrderBo
,
String
trackingNo
,
boolean
isCheck
)
{
protected
StoreResponse
Dto
checkOrderByStore
(
CreateOrderBo
createOrderBo
,
String
trackingNo
,
boolean
isCheck
)
{
// 设置门店id为商城的虚拟门店id
this
.
change2BindMallShopId
(
createOrderBo
.
getCreateOrderBaseVo
(),
createOrderBo
.
getUserLoginInfoDto
().
getWxAppId
());
StoreResponse
.
BizVO
storeResponseDto
=
super
.
checkOrderByStore
(
createOrderBo
,
trackingNo
,
false
);
StoreResponse
Dto
storeResponseDto
=
super
.
checkOrderByStore
(
createOrderBo
,
trackingNo
,
false
);
if
(!
StoreConstant
.
BUSINESS
.
equals
(
storeResponseDto
.
getState
()))
{
throw
new
ServiceException
(
ResponseResult
.
STORE_ITEM_CHECK_CLOSE
);
...
...
@@ -104,7 +105,7 @@ public class CheckOrderSaasMall extends CheckOrderUniversal {
createOrderBaseVo
.
setShopId
(
virtualBindStoreResponse
.
getResult
().
getStoreId
());
}
private
void
setBeginAndEndTime
(
StoreResponse
.
BizVO
storeResponseDto
)
{
private
void
setBeginAndEndTime
(
StoreResponse
Dto
storeResponseDto
)
{
String
businessHourStr
=
storeResponseDto
.
getBusinessHoursDay
().
replace
(
"-"
,
","
).
replace
(
"_"
,
","
);
String
[]
businessHours
=
businessHourStr
.
split
(
","
);
if
(
businessHours
.
length
!=
2
)
{
...
...
@@ -150,7 +151,7 @@ public class CheckOrderSaasMall extends CheckOrderUniversal {
@Override
public
void
checkCustomCreateOrderParam
(
CreateOrderBo
createOrderBo
)
{
// 查询商城的配送模板信息,校验订单是否满足配送条件
StoreResponse
.
BizVO
storeResponseDto
=
createOrderBo
.
getStoreResponseDto
();
StoreResponse
Dto
storeResponseDto
=
createOrderBo
.
getStoreResponseDto
();
CreateOrderBaseVo
createOrderBaseVo
=
createOrderBo
.
getCreateOrderBaseVo
();
AssortmentCustomerInfoVo
userLoginInfoDto
=
createOrderBo
.
getUserLoginInfoDto
();
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
createOrderBo
.
getShoppingCartGoodsDto
();
...
...
@@ -162,7 +163,7 @@ public class CheckOrderSaasMall extends CheckOrderUniversal {
}
private
void
checkOrderByDelivery
(
CreateOrderBaseVo
createOrderBaseVo
,
AssortmentCustomerInfoVo
userLoginInfoDto
,
StoreResponse
.
BizVO
storeResponseDto
,
Long
totalAmount
,
String
trackingNo
)
{
private
void
checkOrderByDelivery
(
CreateOrderBaseVo
createOrderBaseVo
,
AssortmentCustomerInfoVo
userLoginInfoDto
,
StoreResponse
Dto
storeResponseDto
,
Long
totalAmount
,
String
trackingNo
)
{
StoreDeliveryInfoDto
storeDeliveryInfoDto
=
this
.
getStoreDeliveryInfo
(
storeResponseDto
,
userLoginInfoDto
.
getWxAppId
());
//订单金额小于起送费提示
if
(
storeDeliveryInfoDto
.
getDeliveryLimitAmount
()
>
totalAmount
)
{
...
...
@@ -203,7 +204,7 @@ public class CheckOrderSaasMall extends CheckOrderUniversal {
createOrderVo
.
setUserDeliveryInfoDto
(
userDeliveryInfoDto
);
}
private
StoreDeliveryInfoDto
getStoreDeliveryInfo
(
StoreResponse
.
BizVO
storeResponseDto
,
String
wxAppId
)
{
private
StoreDeliveryInfoDto
getStoreDeliveryInfo
(
StoreResponse
Dto
storeResponseDto
,
String
wxAppId
)
{
StoreDeliveryInfoDto
storeDeliveryInfoDto
=
new
StoreDeliveryInfoDto
();
storeDeliveryInfoDto
.
setPartnerId
(
storeResponseDto
.
getPartnerId
());
storeDeliveryInfoDto
.
setStoreId
(
storeResponseDto
.
getStoreCode
());
...
...
order-application-service/src/main/java/cn/freemud/service/impl/EncircleOrderServiceImpl.java
View file @
9750797d
...
...
@@ -5,6 +5,7 @@ import cn.freemud.adapter.OrderAdapter;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.UpdateReserveOrderResponseVo
;
import
cn.freemud.entities.bo.CreateOrderBONew
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.pay.svc.SVCCardAmountRequestDto
;
import
cn.freemud.entities.dto.pay.svc.SVCCardAmountResponseDto
;
...
...
@@ -173,7 +174,8 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
//查询门店服务获取门店信息(营业时间,营业状态)
createOrderVo
.
setPartnerId
(
assortmentCustomerInfoVo
.
getPartnerId
());
createOrderVo
.
setShopId
(
assortmentCustomerInfoVo
.
getStoreId
());
StoreResponse
.
BizVO
storeResponseDto
=
checkOrder
.
checkOrderByStore
(
createOrderVo
,
LogThreadLocal
.
getTrackingNo
());
CreateOrderBONew
createOrderBO
=
new
CreateOrderBONew
(
createOrderVo
);
StoreResponseDto
storeResponseDto
=
checkOrder
.
checkOrderByStore
(
createOrderBO
).
getStoreInfo
();
//桌号状态已锁定则给出对应状态码
GetStoreTableRequest
storeTableListRequest
=
new
GetStoreTableRequest
();
storeTableListRequest
.
setPartnerId
(
createOrderVo
.
getPartnerId
());
...
...
@@ -256,7 +258,8 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
* 创建预订单
* @return
*/
private
CreateOrderResponse
createGroupOrderInfo
(
CreateOrderVo
createOrderVo
,
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
,
ShopBaseResponseDto
<
List
<
ProductListDto
.
DataBean
>>
dishWareProductList
,
StoreResponse
.
BizVO
storeResponseDto
){
private
CreateOrderResponse
createGroupOrderInfo
(
CreateOrderVo
createOrderVo
,
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
,
ShopBaseResponseDto
<
List
<
ProductListDto
.
DataBean
>>
dishWareProductList
,
StoreResponseDto
storeResponseDto
){
//组装预订单(未支付订单)信息 调用订单订单基础服务创建预订单--调用订单基础服务新开接口
AssortmentGroupCreateOrderRequest
groupCreateOrderRequest
=
new
AssortmentGroupCreateOrderRequest
();
groupCreateOrderRequest
.
setDinersNumber
(
createOrderVo
.
getPeopleNumber
());
...
...
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
View file @
9750797d
...
...
@@ -339,7 +339,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
// 查询购物车(内部校验券点餐方式,券是否可用) 校验当前订单类型的下单参数
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
checkMCCafeOrder
.
getMCCafeShoppingCartGoodsDto
(
createOrderVo
,
userLoginInfoDto
);
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内
StoreResponse
.
BizVO
storeResponseDto
=
checkMCCafeOrder
.
checkOrderByStore
(
createOrderVo
,
trackingN
o
);
StoreResponse
Dto
storeResponseDto
=
checkMCCafeOrder
.
checkOrderByStore
(
createOrderV
o
);
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满足起送条件
Integer
pushOrderTime
=
checkMCCafeOrder
.
checkOrderByOrderType
(
createOrderVo
,
userLoginInfoDto
,
storeResponseDto
,
shoppingCartGoodsDto
,
trackingNo
);
OrderExtInfoDto
extInfo
=
getExtInfo
(
userLoginInfoDto
,
storeResponseDto
,
pushOrderTime
,
createOrderVo
);
...
...
@@ -351,7 +351,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
CreateOrderOperateDto
createOrderOperateDto
=
(
CreateOrderOperateDto
)
createOrderOperateDtoResponse
.
getResult
();
//创建支付
CreatePrepayRequestDto
createPrepayRequestDto
=
orderAdapter
.
convertToCreatePrepayRequestDto
(
createOrderVo
.
getPartnerId
(),
userLoginInfoDto
.
getWxAppId
(),
userLoginInfoDto
.
getOpenId
(),
createOrderVo
.
getFaceCode
()
,
createOrderVo
.
getCardCode
(),
null
,
null
,
createOrderVo
.
getCardCode
(),
null
,
createOrderOperateDto
.
getFatherOrderBean
(),
createOrderOperateDto
.
getProductOrderBean
(),
createOrderOperateDto
.
getTotalAmount
()
==
null
?
0
:
createOrderOperateDto
.
getTotalAmount
(),
createOrderOperateDto
.
getCardAmount
()
==
null
?
0
:
createOrderOperateDto
.
getCardAmount
(),
extInfo
,
...
...
@@ -633,10 +633,10 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
*
* @return
*/
public
BaseResponse
sdkCreateOrder
(
CreateOrderVo
createOrderVo
,
StoreResponse
.
BizVO
storeResponseDto
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
public
BaseResponse
sdkCreateOrder
(
CreateOrderVo
createOrderVo
,
StoreResponse
Dto
storeResponseDto
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
AssortmentCustomerInfoVo
userLoginInfoDto
)
{
CreateOrderOperateDto
response
=
new
CreateOrderOperateDto
();
OrderExtendedReq
orderExtendedReq
=
orderAdapter
.
saveStoreInfo
(
storeResponseDto
);
OrderExtendedReq
orderExtendedReq
=
orderAdapter
.
saveStoreInfo
New
(
storeResponseDto
);
OrderClientType
orderClient
=
OrderClientType
.
SAAS
;
String
appId
=
userLoginInfoDto
.
getWxAppId
();
if
(
UserLoginChannelEnum
.
ALIPAY
.
getCode
().
equals
(
userLoginInfoDto
.
getChannel
())
){
...
...
@@ -717,7 +717,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
/**
* 创建普通订单
*/
public
CreateOrderResponse
createOrder
(
CreateOrderVo
createOrderVo
,
StoreResponse
.
BizVO
storeResponseDto
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
public
CreateOrderResponse
createOrder
(
CreateOrderVo
createOrderVo
,
StoreResponse
Dto
storeResponseDto
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
OrderExtendedReq
orderExtendedReq
,
OrderClientType
orderClient
,
String
appId
)
{
// processRepeatGoodsWithSeedCoupon(shoppingCartGoodsDto);
BaseCreateOrderRequest
baseCreateOrderRequest
=
orderAdapter
.
convent2CreateOrderDto
(
createOrderVo
,
shoppingCartGoodsDto
,
storeResponseDto
);
...
...
@@ -896,7 +896,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return
paymentRequest
;
}
private
OrderExtInfoDto
getExtInfo
(
AssortmentCustomerInfoVo
userLoginInfoDto
,
StoreResponse
.
BizVO
storeResponseDto
,
private
OrderExtInfoDto
getExtInfo
(
AssortmentCustomerInfoVo
userLoginInfoDto
,
StoreResponse
Dto
storeResponseDto
,
Integer
pushOrderTime
,
CreateOrderVo
createOrderVo
)
{
Integer
serviceTime
=
storeResponseDto
.
getServiceTime
();
...
...
order-application-service/src/main/java/cn/freemud/service/impl/MallOrderServiceImpl.java
View file @
9750797d
...
...
@@ -172,7 +172,7 @@ public class MallOrderServiceImpl implements MallOrderService {
// 设置门店id为商城的虚拟门店id
this
.
change2BindMallShopId
(
createOrderVo
,
userLoginInfoDto
.
getWxAppId
());
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
StoreResponse
.
BizVO
storeResponseDto
=
checkMallOrder
.
checkOrderByStore
(
createOrderVo
,
trackingNo
);
StoreResponse
Dto
storeResponseDto
=
checkMallOrder
.
checkOrderByStore
(
createOrderVo
,
trackingNo
);
// 查询购物车(内部校验券点餐方式,券是否可用) 校验当前订单类型的下单参数
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
checkMallOrder
.
getShoppingCartGoodsDto
(
createOrderVo
);
// 查询商城的配送模板信息,校验订单是否满足配送条件
...
...
@@ -259,7 +259,7 @@ public class MallOrderServiceImpl implements MallOrderService {
createOrderVo
.
setShopId
(
virtualBindStoreResponse
.
getResult
().
getStoreId
());
}
private
OrderExtInfoDto
getExtInfo
(
AssortmentCustomerInfoVo
userLoginInfoDto
,
StoreResponse
.
BizVO
storeResponseDto
,
CreateOrderVo
createOrderVo
)
{
private
OrderExtInfoDto
getExtInfo
(
AssortmentCustomerInfoVo
userLoginInfoDto
,
StoreResponse
Dto
storeResponseDto
,
CreateOrderVo
createOrderVo
)
{
String
sessionId
=
createOrderVo
.
getSessionId
();
String
version
=
createOrderVo
.
getVersion
();
...
...
@@ -272,8 +272,8 @@ public class MallOrderServiceImpl implements MallOrderService {
return
orderExtInfoDto
;
}
private
BaseResponse
sdkCreateOrder
(
CreateOrderVo
createOrderVo
,
StoreResponse
.
BizVO
storeResponseDto
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
AssortmentCustomerInfoVo
userLoginInfoDto
,
OrderExtInfoDto
orderExtInfoDTO
)
{
OrderExtendedReq
orderExtendedReq
=
orderAdapter
.
saveStoreInfo
(
storeResponseDto
);
private
BaseResponse
sdkCreateOrder
(
CreateOrderVo
createOrderVo
,
StoreResponse
Dto
storeResponseDto
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
AssortmentCustomerInfoVo
userLoginInfoDto
,
OrderExtInfoDto
orderExtInfoDTO
)
{
OrderExtendedReq
orderExtendedReq
=
orderAdapter
.
saveStoreInfo
New
(
storeResponseDto
);
//创建普通订单
Function
<
Object
,
CreateOrderResponse
>
createOrder
=
(
var
->
{
BaseCreateOrderRequest
baseCreateOrderRequest
=
orderAdapter
.
convent2CreateOrderDto
(
createOrderVo
,
shoppingCartGoodsDto
,
storeResponseDto
);
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
View file @
9750797d
...
...
@@ -189,7 +189,6 @@ public class OrderAdapterServiceImpl {
if
(!
"wc"
.
equals
(
createOrderVo
.
getChannelType
())
&&
!
partnerIds
.
isEmpty
()
&&
partnerIds
.
contains
(
createOrderVo
.
getPartnerId
())
&&
!
storeIds
.
isEmpty
()
&&
storeIds
.
contains
(
createOrderVo
.
getShopId
()))
{
// AppLogUtil.infoLog("进入新订单创建流程", createOrderVo,null);
return
this
.
createOrderUniversal
(
com
.
freemud
.
application
.
sdk
.
api
.
util
.
MapUtils
.
java2Map
(
createOrderVo
));
}
// 添加分布式锁,如果没有取得锁直接返回失败;整个方法执行完毕后会删掉该锁
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
9750797d
...
...
@@ -18,6 +18,7 @@ import cn.freemud.base.util.DateUtil;
import
cn.freemud.constant.OrderRefundConstant
;
import
cn.freemud.constant.RedisKeyConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.bo.CreateOrderBONew
;
import
cn.freemud.entities.dto.PayAccessResponse
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseDto
;
...
...
@@ -37,6 +38,7 @@ import cn.freemud.entities.dto.promotion.QueryHistoryGroupVO;
import
cn.freemud.entities.dto.shoppingCart.CollageOrderDto
;
import
cn.freemud.entities.dto.shoppingCart.NewShoppingCartClearDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.store.StoreMixResponseDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.order.CreateOrderInvoiceRequest
;
import
cn.freemud.entities.vo.order.OrderAppealVo
;
...
...
@@ -308,55 +310,23 @@ public class OrderServiceImpl implements Orderservice {
// 原来saas
@Override
public
BaseResponse
createOrder
(
CreateOrderVo
createOrderVo
)
{
//
原标准点餐程序逻辑处理
BaseResponse
baseResponse
=
this
.
checkStandardParamInfo
(
createOrderVo
);
if
(
ObjectUtils
.
notEqual
(
baseResponse
.
getCode
(),
ResponseResult
.
SUCCESS
.
getCode
())
)
{
return
base
Response
;
CreateOrderBONew
createOrderBONew
=
new
CreateOrderBONew
(
createOrderVo
);
//
创建订单前参数校验与数据获取
BaseResponse
checkResponse
=
checkOrder
.
checkCreateOrderInfo
(
createOrderBONew
);
if
(
checkResponse
!=
null
&&
!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
checkResponse
.
getCode
())
)
{
return
check
Response
;
}
String
trackingNo
=
LogThreadLocal
.
getTrackingNo
();
// 查询用户信息、校验svc卡,余额购物车校验
AssortmentCustomerInfoVo
userLoginInfoDto
=
checkOrder
.
checkOrderByMember
(
createOrderVo
,
trackingNo
);
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
StoreResponse
.
BizVO
storeResponseDto
=
checkOrder
.
checkOrderByStore
(
createOrderVo
,
trackingNo
);
// 查询购物车(内部校验券点餐方式,券是否可用) 校验当前订单类型的下单参数
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
checkOrder
.
getShoppingCartGoodsDto
(
createOrderVo
);
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满足起送条件
Integer
pushOrderTime
=
checkOrder
.
checkOrderByOrderType
(
createOrderVo
,
userLoginInfoDto
,
storeResponseDto
,
shoppingCartGoodsDto
,
trackingNo
);
OrderExtInfoDto
extInfo
=
getExtInfo
(
userLoginInfoDto
,
storeResponseDto
,
pushOrderTime
,
createOrderVo
,
shoppingCartGoodsDto
);
//1.9.2套餐需求同步优化创建订单代码
BaseResponse
createOrderOperateDtoResponse
=
this
.
sdkCreateOrder
(
createOrderVo
,
storeResponseDto
,
shoppingCartGoodsDto
,
userLoginInfoDto
);
//创建订单调用集成,不区分订单类型
BaseResponse
createOrderOperateDtoResponse
=
this
.
sdkCreateOrder
(
createOrderBONew
);
if
(
createOrderOperateDtoResponse
==
null
||
!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
createOrderOperateDtoResponse
.
getCode
())
||
createOrderOperateDtoResponse
.
getResult
()
==
null
)
{
return
createOrderOperateDtoResponse
;
}
CreateOrderOperateDto
createOrderOperateDto
=
(
CreateOrderOperateDto
)
createOrderOperateDtoResponse
.
getResult
();
//创建支付
CreatePrepayRequestDto
createPrepayRequestDto
=
orderAdapter
.
convertToCreatePrepayRequestDto
(
userLoginInfoDto
,
createOrderVo
,
createOrderOperateDto
,
extInf
o
);
CreatePrepayRequestDto
createPrepayRequestDto
=
orderAdapter
.
convertToCreatePrepayRequestDto
(
createOrderBONew
,
createOrderOperateDt
o
);
return
ResponseUtil
.
success
(
payServiceImpl
.
createPrepayOrder
(
createPrepayRequestDto
));
}
/**
* 扫脸支付下单
*/
@Override
public
BaseResponse
scanFaceCreateOrder
(
CreateOrderVo
createOrderVo
)
{
String
trackingNo
=
LogThreadLocal
.
getTrackingNo
();
// 查询用户信息、校验svc卡,余额购物车校验
AssortmentCustomerInfoVo
userLoginInfoDto
=
checkOrder
.
checkOrderByMember
(
createOrderVo
,
trackingNo
);
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
StoreResponse
.
BizVO
storeResponseDto
=
checkOrder
.
checkOrderByStore
(
createOrderVo
,
trackingNo
);
// 查询购物车(内部校验券点餐方式,券是否可用) 校验当前订单类型的下单参数
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
checkOrder
.
getShoppingCartGoodsDto
(
createOrderVo
);
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满足起送条件
Integer
pushOrderTime
=
checkOrder
.
checkOrderByOrderType
(
createOrderVo
,
userLoginInfoDto
,
storeResponseDto
,
shoppingCartGoodsDto
,
trackingNo
);
//1.5.4版本,商品库存校验与扣库存
//List<String> stockProductIds = checkOrder.getStockProductIdList(createOrderVo, shoppingCartGoodsDto);
OrderExtInfoDto
extInfo
=
getExtInfo
(
userLoginInfoDto
,
storeResponseDto
,
pushOrderTime
,
createOrderVo
,
shoppingCartGoodsDto
);
//下单并支付
CreateOrderOperateDto
operateDto
=
createOrderForFace
(
createOrderVo
,
storeResponseDto
,
shoppingCartGoodsDto
,
userLoginInfoDto
.
getWxAppId
(),
userLoginInfoDto
.
getOpenId
());
return
payServiceImpl
.
createOrderPay
(
createOrderVo
,
storeResponseDto
,
shoppingCartGoodsDto
,
userLoginInfoDto
,
extInfo
,
operateDto
);
}
@Override
public
String
paySuccessCallback
(
PaysuccessNoticeMessage
message
,
ConfirmOrderDto
confirmOrderDto
,
Map
<
String
,
OrderBeanV1
>
orderBeans
)
{
OrderBeanV1
orderBean
=
orderBeans
.
get
(
OrderBeanType
.
SAASORDER
.
getCode
());
...
...
@@ -1631,7 +1601,7 @@ public class OrderServiceImpl implements Orderservice {
// 目前只有coco在订单详情参加支付有礼,且不检查订单的状态
if
(
cocoPartnerId
.
contains
(
partnerId
))
{
joinPayGift
(
sessionId
,
queryOrderResponseVo
,
partnerId
,
null
);
}
else
if
(
BizTypeEnum
.
SALE_COUPON
.
getBizType
().
equals
(
orderBean
.
getBizType
()))
{
}
else
if
(
BizTypeEnum
.
SALE_COUPON
.
getBizType
().
equals
(
orderBean
.
getBizType
()))
{
joinPayGift
(
sessionId
,
queryOrderResponseVo
,
partnerId
,
payGiftVer
);
}
...
...
@@ -1785,7 +1755,7 @@ public class OrderServiceImpl implements Orderservice {
if
(
CollectionUtils
.
isEmpty
(
deletePartnerId
)
||
deletePartnerId
.
contains
(
""
)
||
deletePartnerId
.
contains
(
partnerId
))
{
String
reason
=
"用户取消支付"
;
CancelOrderRequest
cancelOrderRequest
=
orderAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
partnerId
,
AfterSalesType
.
USER_CANCEL
,
reason
,
LogThreadLocal
.
getTrackingNo
(),
System
.
currentTimeMillis
()
+
""
);
partnerId
,
AfterSalesType
.
USER_CANCEL
,
reason
,
LogThreadLocal
.
getTrackingNo
(),
System
.
currentTimeMillis
()
+
""
);
cancelOrderRequest
.
setOperator
(
orderBean
.
getUserName
());
cancelOrderRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
cancelOrderRequest
.
setCreateEvent
(
AfterSalesOrderCreateEventEnum
.
REFUND_COMPLETE
.
getCreateEvent
());
...
...
@@ -1793,7 +1763,7 @@ public class OrderServiceImpl implements Orderservice {
try
{
orderBusinessService
.
orderCancel
(
cancelOrderRequest
);
// orderSdkService.deleteOrder(var1,LogThreadLocal.getTrackingNo());
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
ErrorLog
.
printErrorLog
(
"删除订单失败"
,
"order/v2/cancel"
,
JSONObject
.
toJSONString
(
cancelOrderRequest
),
e
);
}
}
...
...
@@ -2357,56 +2327,6 @@ public class OrderServiceImpl implements Orderservice {
/**
* 获取父子订单商品第三方商品编号
*
* @param
* @return
*/
private
CreateFatherSonOrderRequest
getProductCustomerCodeNew
(
CreateFatherSonOrderRequest
fatherSonOrderRequest
)
{
List
<
String
>
pids
=
new
ArrayList
<>();
List
<
CreateFatherSonOrderRequest
.
OrderInfo
>
productOrderInfoList
=
fatherSonOrderRequest
.
getOrderInfoList
().
stream
().
filter
(
orderInfo
->
orderInfo
.
getProducts
()
!=
null
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
productOrderInfoList
))
{
return
fatherSonOrderRequest
;
}
for
(
CreateOrderProductRequest
productDto
:
productOrderInfoList
.
get
(
0
).
getProducts
())
{
pids
.
add
(
productDto
.
getProductId
());
}
Map
<
String
,
GetProductsVo
>
products
=
itemService
.
getSpuProducts
(
pids
,
fatherSonOrderRequest
.
getPartnerId
(),
productOrderInfoList
.
get
(
0
).
getShopId
(),
fatherSonOrderRequest
.
getMenuType
());
if
(
products
.
isEmpty
())
{
return
fatherSonOrderRequest
;
}
for
(
CreateOrderProductRequest
productDto
:
productOrderInfoList
.
get
(
0
).
getProducts
())
{
if
(
StringUtils
.
isNotEmpty
(
productDto
.
getSpecification
())
&&
products
.
get
(
productDto
.
getSpecification
())
!=
null
)
{
productDto
.
setCustomerCode
(
products
.
get
(
productDto
.
getSpecification
()).
getCustomerCode
());
productDto
.
setProductCode
(
products
.
get
(
productDto
.
getSpecification
()).
getProductCode
());
productDto
.
setThirdProductSpecId
(
products
.
get
(
productDto
.
getSpecification
()).
getThirdProductSpecId
());
productDto
.
setThirdProductPropertyId
(
getThirdPropertyId
(
products
.
get
(
productDto
.
getSpecification
()).
getProductAttributeGroupList
(),
productDto
.
getAddInfo
()));
}
else
{
productDto
.
setCustomerCode
(
""
);
productDto
.
setProductCode
(
""
);
AppLogUtil
.
infoLog
(
"getProducts_exception"
,
JSONObject
.
toJSONString
(
pids
),
JSONObject
.
toJSONString
(
products
));
}
//套餐子商品
if
(
CollectionUtils
.
isNotEmpty
(
productDto
.
getComboProduct
()))
{
for
(
CreateOrderProductRequest
comboProduct
:
productDto
.
getComboProduct
())
{
String
comboSkuId
=
comboProduct
.
getSpecification
();
if
(
products
.
get
(
comboSkuId
)
!=
null
)
{
comboProduct
.
setCustomerCode
(
products
.
get
(
comboSkuId
).
getCustomerCode
());
comboProduct
.
setProductCode
(
products
.
get
(
comboSkuId
).
getProductCode
());
comboProduct
.
setThirdProductSpecId
(
products
.
get
(
comboSkuId
).
getThirdProductSpecId
());
comboProduct
.
setThirdProductPropertyId
(
getThirdPropertyId
(
products
.
get
(
comboSkuId
).
getProductAttributeGroupList
(),
comboProduct
.
getAddInfo
()));
}
else
{
comboProduct
.
setCustomerCode
(
""
);
comboProduct
.
setProductCode
(
""
);
AppLogUtil
.
errorLog
(
"getProducts_exception"
,
JSONObject
.
toJSONString
(
comboSkuId
),
JSONObject
.
toJSONString
(
products
),
null
);
}
}
}
}
return
fatherSonOrderRequest
;
}
/**
* 获取商品第三方商品编号
*
* @param createOrderDto
...
...
@@ -2517,22 +2437,28 @@ public class OrderServiceImpl implements Orderservice {
*
* @return
*/
public
BaseResponse
sdkCreateOrder
(
CreateOrderVo
createOrderVo
,
StoreResponse
.
BizVO
storeResponseDto
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
AssortmentCustomerInfoVo
userLoginInfoDto
)
{
public
BaseResponse
sdkCreateOrder
(
CreateOrderBONew
createOrderBO
)
{
CreateOrderVo
createOrderVo
=
createOrderBO
.
getCreateOrderVo
();
StoreMixResponseDto
storeMixResponseDto
=
createOrderBO
.
getStoreMixResponseDto
();
StoreResponseDto
storeResponseDto
=
storeMixResponseDto
.
getStoreInfo
();
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
createOrderBO
.
getShoppingCartGoodsDto
();
AssortmentCustomerInfoVo
userLoginInfoDto
=
createOrderBO
.
getUserLoginInfoDto
();
//更新订单使用
CreateOrderOperateDto
response
=
new
CreateOrderOperateDto
();
OrderExtendedReq
orderExtendedReq
=
orderAdapter
.
saveStoreInfo
(
storeResponseDto
);
//订单扩展表保存门店组织结构信息
OrderExtendedReq
orderExtendedReq
=
orderAdapter
.
saveStoreInfoNew
(
storeResponseDto
);
// fisherman 爱马哥蛋糕 预定 额外字段存储
orderExtendedReq
.
setUserPhone
(
createOrderVo
.
getUserPhone
());
orderExtendedReq
.
setSendWord
(
createOrderVo
.
getSendWord
());
OrderClientType
orderClient
=
OrderClientType
.
SAAS
;
String
appId
=
userLoginInfoDto
.
getWxAppId
();
if
(
"2"
.
equals
(
userLoginInfoDto
.
getChannel
()))
{
if
(
ChannelEnum
.
TYPE_2
.
getCode
()
.
equals
(
userLoginInfoDto
.
getChannel
()))
{
orderClient
=
OrderClientType
.
ALIPAY
;
}
else
if
(
UserLoginChannelEnum
.
APP
.
getCode
().
equals
(
userLoginInfoDto
.
getChannel
()))
{
orderClient
=
OrderClientType
.
APP
;
}
//抖音小程序
if
(
"5"
.
equalsIgnoreCase
(
createOrderVo
.
getChannel
()))
{
if
(
ChannelEnum
.
TYPE_5
.
getCode
()
.
equalsIgnoreCase
(
createOrderVo
.
getChannel
()))
{
createOrderVo
.
setPayChannelType
(
PayChannelType
.
TIKTOKPAY
.
getIndex
());
orderClient
=
OrderClientType
.
TIKTOKPAY
;
}
...
...
@@ -2542,51 +2468,7 @@ public class OrderServiceImpl implements Orderservice {
orderClient
=
OrderClientType
.
BEAUTIFUL
;
}
long
totalAmount
=
0
;
int
cardAmount
=
0
;
OrderBeanV1
fatherBeanListOne
=
new
OrderBeanV1
();
OrderBeanV1
productBeanListOne
=
new
OrderBeanV1
();
if
(
createOrderVo
.
getBuyMemberCard
()
!=
null
&&
StringUtils
.
isNotEmpty
(
createOrderVo
.
getBuyMemberCard
().
getRuleId
())
&&
StringUtils
.
isNotEmpty
(
createOrderVo
.
getBuyMemberCard
().
getPaidId
()))
{
//父子订单
int
cardOriginalAmount
=
shoppingCartGoodsDto
.
getCardOriginalAmount
()
==
null
?
0
:
shoppingCartGoodsDto
.
getCardOriginalAmount
();
int
cardDiscountAmount
=
shoppingCartGoodsDto
.
getCardDiscountAmount
()
==
null
?
0
:
shoppingCartGoodsDto
.
getCardDiscountAmount
();
cardAmount
=
cardOriginalAmount
-
cardDiscountAmount
;
CreateFatherSonOrderResponse
createFatherSonOrderResponse
=
createFatherSonOrder
(
createOrderVo
,
storeResponseDto
,
shoppingCartGoodsDto
,
orderExtendedReq
,
appId
,
userLoginInfoDto
.
getOpenId
());
if
(
ObjectUtils
.
notEqual
(
Integer
.
valueOf
(
ResponseResult
.
SUCCESS
.
getCode
()),
createFatherSonOrderResponse
.
getErrcode
()))
{
return
ResponseUtil
.
error
(
createFatherSonOrderResponse
.
getErrcode
().
toString
(),
createFatherSonOrderResponse
.
getErrmsg
());
}
List
<
OrderBeanV1
>
orderBeanList
=
createFatherSonOrderResponse
.
getOrderBeanList
();
List
<
OrderBeanV1
>
fatherBeanList
=
orderBeanList
.
stream
().
filter
(
orderBeanTemp
->
orderBeanTemp
.
getIsParent
()).
collect
(
Collectors
.
toList
());
List
<
OrderBeanV1
>
productBeanList
=
orderBeanList
.
stream
().
filter
(
orderBeanTemp
->
1
==
orderBeanTemp
.
getBizType
()).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
fatherBeanList
))
fatherBeanListOne
=
fatherBeanList
.
get
(
0
);
if
(
CollectionUtils
.
isNotEmpty
(
productBeanList
))
productBeanListOne
=
productBeanList
.
get
(
0
);
//订单总金额 商品+会员卡
totalAmount
=
orderBeanList
.
stream
().
mapToLong
(
OrderBeanV1:
:
getAmount
).
count
();
fatherBeanList
.
get
(
0
).
setShopId
(
storeResponseDto
.
getStoreCode
());
fatherBeanList
.
get
(
0
).
setCompanyId
(
createOrderVo
.
getPartnerId
());
}
else
{
//普通订单
CreateOrderResponse
createOrderFlowResponse
=
createOrder
(
createOrderVo
,
storeResponseDto
,
shoppingCartGoodsDto
,
orderExtendedReq
,
orderClient
,
appId
,
userLoginInfoDto
.
getOpenId
());
if
(
ObjectUtils
.
notEqual
(
Integer
.
valueOf
(
ResponseResult
.
SUCCESS
.
getCode
()),
createOrderFlowResponse
.
getErrcode
()))
{
return
ResponseUtil
.
error
(
createOrderFlowResponse
.
getErrcode
().
toString
(),
createOrderFlowResponse
.
getErrmsg
());
}
fatherBeanListOne
=
createOrderFlowResponse
.
getData
();
productBeanListOne
=
createOrderFlowResponse
.
getData
();
totalAmount
=
createOrderFlowResponse
.
getData
().
getAmount
();
}
response
.
setTotalAmount
(
totalAmount
);
response
.
setCardAmount
(
cardAmount
);
response
.
setFatherOrderBean
(
fatherBeanListOne
);
response
.
setProductOrderBean
(
productBeanListOne
);
return
ResponseUtil
.
success
(
response
);
}
/**
* 创建普通订单 saas会走 app会走
*/
public
CreateOrderResponse
createOrder
(
CreateOrderVo
createOrderVo
,
StoreResponse
.
BizVO
storeResponseDto
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
OrderExtendedReq
orderExtendedReq
,
OrderClientType
orderClient
,
String
appId
,
String
openId
)
{
//组装老的创建订单数据模型
BaseCreateOrderRequest
baseCreateOrderRequest
=
orderAdapter
.
convent2CreateOrderDto
(
createOrderVo
,
shoppingCartGoodsDto
,
storeResponseDto
);
// 预先前置 设置 支付方式
this
.
preSetPayChannelType
(
baseCreateOrderRequest
,
createOrderVo
);
...
...
@@ -2597,12 +2479,25 @@ public class OrderServiceImpl implements Orderservice {
baseCreateOrderRequest
.
setOrderExtended
(
orderExtendedReq
);
baseCreateOrderRequest
.
setOrderClient
(
orderClient
);
baseCreateOrderRequest
.
setAppId
(
appId
);
CreateOrderRequest
createOrderRequest
=
new
CreateOrderRequest
();
baseCreateOrderRequest
.
setTrackingNo
(
LogThreadLocal
.
getTrackingNo
());
CreateOrderRequest
createOrderRequest
=
new
CreateOrderRequest
();
createOrderRequest
.
setBaseCreateOrderRequest
(
baseCreateOrderRequest
);
createOrderRequest
.
setOpenId
(
openId
);
createOrderRequest
.
setOpenId
(
userLoginInfoDto
.
getOpenId
()
);
createOrderRequest
.
setTrackingNo
(
LogThreadLocal
.
getTrackingNo
());
return
orderBusinessService
.
createOrderFlow
(
createOrderRequest
);
CreateOrderResponse
createOrderFlowResponse
=
orderBusinessService
.
createOrderFlow
(
createOrderRequest
);
if
(
ObjectUtils
.
notEqual
(
Integer
.
valueOf
(
ResponseResult
.
SUCCESS
.
getCode
()),
createOrderFlowResponse
.
getErrcode
()))
{
return
ResponseUtil
.
error
(
createOrderFlowResponse
.
getErrcode
().
toString
(),
createOrderFlowResponse
.
getErrmsg
());
}
OrderBeanV1
fatherBeanListOne
=
createOrderFlowResponse
.
getData
();
OrderBeanV1
productBeanListOne
=
createOrderFlowResponse
.
getData
();
long
totalAmount
=
createOrderFlowResponse
.
getData
().
getAmount
();
response
.
setTotalAmount
(
totalAmount
);
response
.
setCardAmount
(
0
);
response
.
setFatherOrderBean
(
fatherBeanListOne
);
response
.
setProductOrderBean
(
productBeanListOne
);
return
ResponseUtil
.
success
(
response
);
}
private
void
preSetPayChannelType
(
BaseCreateOrderRequest
request
,
CreateOrderVo
createOrderVo
)
{
...
...
@@ -2635,20 +2530,7 @@ public class OrderServiceImpl implements Orderservice {
request
.
setPayChannelName
(
channelType
.
getName
());
}
/**
* 创建父子订单
*/
public
CreateFatherSonOrderResponse
createFatherSonOrder
(
CreateOrderVo
createOrderVo
,
StoreResponse
.
BizVO
storeResponseDto
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
OrderExtendedReq
orderExtendedReq
,
String
appId
,
String
openId
)
{
CreateFatherSonOrderRequest
createFatherSonOrderRequest
=
orderAdapter
.
convertFatherSonOrderRequest
(
createOrderVo
,
shoppingCartGoodsDto
,
orderExtendedReq
,
storeResponseDto
,
appId
);
//查询第三方商品编号
createFatherSonOrderRequest
=
getProductCustomerCodeNew
(
createFatherSonOrderRequest
);
createFatherSonOrderRequest
.
setOpenId
(
openId
);
return
orderCenterSdkService
.
createFatherSonOrder
(
createFatherSonOrderRequest
);
}
public
OrderExtInfoDto
getExtInfo
(
AssortmentCustomerInfoVo
userLoginInfoDto
,
StoreResponse
.
BizVO
storeResponseDto
,
public
OrderExtInfoDto
setOrderExtInfo
(
AssortmentCustomerInfoVo
userLoginInfoDto
,
StoreResponseDto
storeResponseDto
,
Integer
pushOrderTime
,
CreateOrderVo
createOrderVo
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
)
{
Integer
serviceTime
=
storeResponseDto
.
getServiceTime
();
...
...
@@ -2802,76 +2684,6 @@ public class OrderServiceImpl implements Orderservice {
}
}
/**
* 创建订单
*/
private
CreateOrderOperateDto
createOrderForFace
(
CreateOrderVo
createOrderVo
,
StoreResponse
.
BizVO
storeResponseDto
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
String
appId
,
String
openId
)
{
CreateOrderOperateDto
response
=
new
CreateOrderOperateDto
();
OrderExtendedReq
orderExtendedReq
=
orderAdapter
.
saveStoreInfo
(
storeResponseDto
);
//创建普通订单
Function
<
Object
,
CreateOrderResponse
>
createOrder
=
(
var
->
{
BaseCreateOrderRequest
baseCreateOrderRequest
=
orderAdapter
.
convent2CreateOrderDto
(
createOrderVo
,
shoppingCartGoodsDto
,
storeResponseDto
);
//查询第三方商品编号
baseCreateOrderRequest
=
getProductCustomerCode
(
baseCreateOrderRequest
);
//保存门店渠道信息
baseCreateOrderRequest
.
setOrderExtended
(
orderExtendedReq
);
baseCreateOrderRequest
.
setAppId
(
appId
);
CreateOrderRequest
createOrderRequest
=
new
CreateOrderRequest
();
baseCreateOrderRequest
.
setTrackingNo
(
LogThreadLocal
.
getTrackingNo
());
createOrderRequest
.
setBaseCreateOrderRequest
(
baseCreateOrderRequest
);
createOrderRequest
.
setOpenId
(
openId
);
createOrderRequest
.
setTrackingNo
(
LogThreadLocal
.
getTrackingNo
());
return
orderBusinessService
.
createOrderFlow
(
createOrderRequest
);
});
//创建父子订单
Function
<
Object
,
CreateFatherSonOrderResponse
>
createFatherSonOrder
=
(
var
->
{
CreateFatherSonOrderRequest
createFatherSonOrderRequest
=
orderAdapter
.
convertFatherSonOrderRequest
(
createOrderVo
,
shoppingCartGoodsDto
,
orderExtendedReq
,
storeResponseDto
,
appId
);
//查询第三方商品编号
createFatherSonOrderRequest
=
getProductCustomerCodeNew
(
createFatherSonOrderRequest
);
createFatherSonOrderRequest
.
setOpenId
(
openId
);
return
orderCenterSdkService
.
createFatherSonOrder
(
createFatherSonOrderRequest
);
});
long
totalAmount
=
0
;
int
cardAmount
=
0
;
OrderBeanV1
fatherBeanListOne
=
new
OrderBeanV1
();
OrderBeanV1
productBeanListOne
=
new
OrderBeanV1
();
if
(
createOrderVo
.
getBuyMemberCard
()
!=
null
&&
StringUtils
.
isNotEmpty
(
createOrderVo
.
getBuyMemberCard
().
getRuleId
())
&&
StringUtils
.
isNotEmpty
(
createOrderVo
.
getBuyMemberCard
().
getPaidId
()))
{
//父子订单
int
cardOriginalAmount
=
shoppingCartGoodsDto
.
getCardOriginalAmount
()
==
null
?
0
:
shoppingCartGoodsDto
.
getCardOriginalAmount
();
int
cardDiscountAmount
=
shoppingCartGoodsDto
.
getCardDiscountAmount
()
==
null
?
0
:
shoppingCartGoodsDto
.
getCardDiscountAmount
();
cardAmount
=
cardOriginalAmount
-
cardDiscountAmount
;
//创建父子订单
CreateFatherSonOrderResponse
createFatherSonOrderResponse
=
createFatherSonOrder
.
apply
(
null
);
if
(
ObjectUtils
.
notEqual
(
Integer
.
valueOf
(
ResponseResult
.
SUCCESS
.
getCode
()),
createFatherSonOrderResponse
.
getErrcode
()))
{
throw
new
ServiceException
(
ResponseResult
.
ORDER_CREATE_ERROR
);
}
List
<
OrderBeanV1
>
orderBeanList
=
createFatherSonOrderResponse
.
getOrderBeanList
();
List
<
OrderBeanV1
>
fatherBeanList
=
orderBeanList
.
stream
().
filter
(
orderBeanTemp
->
orderBeanTemp
.
getIsParent
()).
collect
(
Collectors
.
toList
());
List
<
OrderBeanV1
>
productBeanList
=
orderBeanList
.
stream
().
filter
(
orderBeanTemp
->
1
==
orderBeanTemp
.
getBizType
()).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
fatherBeanList
))
fatherBeanListOne
=
fatherBeanList
.
get
(
0
);
if
(
CollectionUtils
.
isNotEmpty
(
productBeanList
))
productBeanListOne
=
productBeanList
.
get
(
0
);
//订单总金额 商品+会员卡
totalAmount
=
orderBeanList
.
stream
().
mapToLong
(
OrderBeanV1:
:
getAmount
).
count
();
}
else
{
//创建普通订单
CreateOrderResponse
createOrderFlowResponse
=
createOrder
.
apply
(
null
);
if
(
ObjectUtils
.
notEqual
(
Integer
.
valueOf
(
ResponseResult
.
SUCCESS
.
getCode
()),
createOrderFlowResponse
.
getErrcode
()))
{
throw
new
ServiceException
(
ResponseResult
.
ORDER_CREATE_ERROR
);
}
fatherBeanListOne
=
createOrderFlowResponse
.
getData
();
productBeanListOne
=
createOrderFlowResponse
.
getData
();
totalAmount
=
productBeanListOne
.
getAmount
();
}
response
.
setTotalAmount
(
totalAmount
);
response
.
setCardAmount
(
cardAmount
);
response
.
setFatherOrderBean
(
fatherBeanListOne
);
response
.
setProductOrderBean
(
productBeanListOne
);
return
response
;
}
/**
* 历史判断围餐是从userLoginInfoDto判断iappid的。
* 商城订单从前端传channelType区分,
...
...
@@ -3456,23 +3268,6 @@ public class OrderServiceImpl implements Orderservice {
return
ResponseUtil
.
success
(
responseVo
);
}
/**
* 标准点餐参数校验
*
* @param createOrderVo
* @return
*/
private
BaseResponse
checkStandardParamInfo
(
CreateOrderVo
createOrderVo
)
{
if
(
StringUtils
.
isEmpty
(
createOrderVo
.
getSessionId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
CREATE_ORDER_CHECK_SESSION_ERROR
);
}
if
(
StringUtils
.
isEmpty
(
createOrderVo
.
getShopId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
CREATE_ORDER_CHECK_STORE_ERROR
);
}
if
(
createOrderVo
.
getOrderType
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
CREATE_ORDER_CHECK_ORDERTYPE_ERROR
);
}
return
ResponseUtil
.
success
();
}
}
order-application-service/src/main/java/cn/freemud/service/impl/PayServiceImpl.java
View file @
9750797d
...
...
@@ -165,6 +165,9 @@ public class PayServiceImpl {
}
else
if
(
totalAmount
>
0
&&
Objects
.
nonNull
(
createPrepayRequestDto
.
getUnionPayCard
()))
{
// 电子风味卡支付
orderPayResponse
=
uSvcPay
(
createPrepayRequestDto
.
getFatherOrderBean
(),
paymentRequest
,
transId
,
LogThreadLocal
.
getTrackingNo
(),
createPrepayRequestDto
.
getUnionPayCard
());
// } else if (totalAmount > 0 && StringUtils.isNotBlank(createPrepayRequestDto.getFaceCode())) {
//扫脸支付
// orderPayResponse = facePay(createPrepayRequestDto.getFaceCode(), createPrepayRequestDto.getProductOrderBean(), paymentRequest, LogThreadLocal.getTrackingNo());
}
else
if
(
totalAmount
>
0
&&
StringUtils
.
isBlank
(
cardCode
))
{
//现金线上支付
String
partnerPayOvertime
=
this
.
getPartnerPayOvertime
(
createPrepayRequestDto
.
getPartnerId
());
...
...
@@ -230,65 +233,6 @@ public class PayServiceImpl {
}
/**
* 下单支付 扫脸支付 (目前不在使用)
*/
// TODO: 21-9-17 待合并
public
BaseResponse
createOrderPay
(
CreateOrderVo
createOrderVo
,
StoreResponse
.
BizVO
storeResponseDto
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
AssortmentCustomerInfoVo
userLoginInfoDto
,
OrderExtInfoDto
orderExtInfoDTO
,
CreateOrderOperateDto
operateDto
)
{
//创建订单--包括下单购买会员卡创建父子订单
long
totalAmount
=
operateDto
.
getTotalAmount
();
int
cardAmount
=
operateDto
.
getCardAmount
();
OrderBeanV1
fatherOrderBean
=
operateDto
.
getFatherOrderBean
();
OrderBeanV1
productOrderBean
=
operateDto
.
getProductOrderBean
();
//支付-- 包含商品券无需支付、唤起微信支付、储值卡支付直接支付、扫脸支付
OrderPayResponse
orderPayResponse
=
pay
(
userLoginInfoDto
,
createOrderVo
,
totalAmount
,
cardAmount
,
fatherOrderBean
);
// 默认支付成功必有非码订单号
if
(
orderPayResponse
==
null
||
Objects
.
isNull
(
orderPayResponse
.
getFmId
()))
{
if
(
createOrderVo
.
getFaceCode
()
!=
null
)
{
createOrderVo
.
setCardCode
(
createOrderVo
.
getFaceCode
());
}
BaseResponse
baseResponse
=
failPreOrderPay
(
LogThreadLocal
.
getTrackingNo
(),
productOrderBean
,
createOrderVo
.
getCardCode
(),
null
,
Objects
.
isNull
(
orderPayResponse
)
?
null
:
orderPayResponse
.
getMsg
());
// 电子风味卡需要给用户特殊的返回
if
(
totalAmount
>
0
&&
Objects
.
nonNull
(
createOrderVo
.
getUnionPayCard
()))
{
baseResponse
.
setMessage
(
Objects
.
nonNull
(
orderPayResponse
)
&&
(
ResponseCodeConstant
.
PASSWORD_WRONG
.
equals
(
orderPayResponse
.
getPayTransId
())
||
ResponseCodeConstant
.
NOT_SUFFICIENT_FUND
.
equals
(
orderPayResponse
.
getPayTransId
()))
?
orderPayResponse
.
getMsg
()
:
"支付失败"
);
}
return
baseResponse
;
}
//更新订单extinfo信息
BaseResponse
baseEditResponse
=
this
.
updateOrderInfo
(
orderPayResponse
,
orderExtInfoDTO
,
productOrderBean
,
LogThreadLocal
.
getTrackingNo
());
if
(
baseEditResponse
!=
null
)
{
return
baseEditResponse
;
}
CreateOrderResponseVo
createOrderResponse
=
orderAdapter
.
convent2CreateFatherSonOrderResponseVo
(
orderPayResponse
,
productOrderBean
);
//设置是否唤起微信支付
if
(
totalAmount
>
0
&&
StringUtils
.
isBlank
(
createOrderVo
.
getCardCode
())
&&
StringUtils
.
isBlank
(
createOrderVo
.
getFaceCode
()))
{
createOrderResponse
.
setPaySuccess
(
false
);
}
else
{
createOrderResponse
.
setPaySuccess
(
true
);
}
if
(!
createOrderResponse
.
getPaySuccess
())
{
return
ResponseUtil
.
success
(
createOrderResponse
);
}
else
{
//如果是商品券支付0元,调用回调接口
PaysuccessNoticeMessage
message
=
new
PaysuccessNoticeMessage
();
message
.
setResult_code
(
100
);
message
.
setOut_trade_no
(
createOrderResponse
.
getFmId
());
message
.
setTrans_id
(
createOrderResponse
.
getOid
());
message
.
setTotal_fee
(
0
);
message
.
setOpenid
(
userLoginInfoDto
.
getOpenId
());
message
.
setPlatform_coupon
(
0
);
message
.
setMerchant_coupon
(
0
);
//0元订单内部调支付成功
orderAdapterService
.
paySuccessCallback
(
message
);
return
ResponseUtil
.
success
(
createOrderResponse
);
}
}
/**
* 创建预支付信息 (围餐用)
...
...
@@ -372,53 +316,6 @@ public class PayServiceImpl {
return
createOrderResponseVo
;
}
/**
* 支付
* 包含唤起微信支付、储值卡支付直接支付、扫脸支付、商品券无需支付
*/
private
OrderPayResponse
pay
(
AssortmentCustomerInfoVo
userLoginInfoDto
,
CreateOrderVo
createOrderVo
,
long
totalAmount
,
int
cardAmount
,
OrderBeanV1
fatherBeanListOne
)
{
//<!---创建订单公共方法执行逻辑--->
OrderPayResponse
orderPayResponse
=
null
;
String
appId
=
userLoginInfoDto
.
getWxAppId
();
PaymentRequest
paymentRequest
=
orderBodyConvertToPaymentBody
(
userLoginInfoDto
.
getOpenId
(),
createOrderVo
.
getPartnerId
(),
appId
,
null
,
fatherBeanListOne
.
getShopId
());
//支付金额异常
if
(
totalAmount
<
0
)
{
throw
new
ServiceException
(
ResponseResult
.
PAY_AMOUNT_ERROR
);
}
//电子风味卡支付
if
(
totalAmount
>
0
&&
Objects
.
nonNull
(
createOrderVo
.
getUnionPayCard
()))
{
return
uSvcPay
(
fatherBeanListOne
,
paymentRequest
,
fatherBeanListOne
.
getOid
(),
LogThreadLocal
.
getTrackingNo
(),
createOrderVo
.
getUnionPayCard
());
}
//唤起微信支付
if
(
totalAmount
>
0
&&
StringUtils
.
isBlank
(
createOrderVo
.
getCardCode
())
&&
StringUtils
.
isBlank
(
createOrderVo
.
getFaceCode
()))
{
String
partnerPayOvertime
=
this
.
getPartnerPayOvertime
(
createOrderVo
.
getPartnerId
());
orderPayResponse
=
getPreOrderPay
(
fatherBeanListOne
,
paymentRequest
,
LogThreadLocal
.
getTrackingNo
(),
cardAmount
,
fatherBeanListOne
.
getOid
(),
partnerPayOvertime
,
null
);
return
orderPayResponse
;
}
//储值卡支付
if
(
totalAmount
>
0
&&
StringUtils
.
isNotBlank
(
createOrderVo
.
getCardCode
()))
{
//svc卡支付
orderPayResponse
=
svcPay
(
createOrderVo
.
getCardCode
(),
fatherBeanListOne
,
paymentRequest
,
fatherBeanListOne
.
getOid
(),
LogThreadLocal
.
getTrackingNo
());
return
orderPayResponse
;
}
//扫脸支付
if
(
totalAmount
>
0
&&
StringUtils
.
isNotBlank
(
createOrderVo
.
getFaceCode
()))
{
//svc卡支付
orderPayResponse
=
facePay
(
createOrderVo
.
getFaceCode
(),
fatherBeanListOne
,
paymentRequest
,
LogThreadLocal
.
getTrackingNo
());
return
orderPayResponse
;
}
//0元订单,商品券订单等等
if
(
totalAmount
==
0
)
{
// 0元订单如果不需要支付,自定义支付单号
String
fmId
=
"SPAY"
+
ValidationCode
.
getRandomUuid
();
orderPayResponse
=
orderAdapter
.
getOrderPayResponse
(
fatherBeanListOne
.
getCompanyId
(),
paymentRequest
,
fatherBeanListOne
.
getOid
(),
fmId
);
return
orderPayResponse
;
}
return
orderPayResponse
;
}
/**
* 扫脸支付
*/
...
...
@@ -437,11 +334,9 @@ public class PayServiceImpl {
request
.
setOperatorId
(
"1"
);
request
.
setVer
(
"2"
);
//支付服务扫脸付接口
AppLogUtil
.
infoLog
(
"facePay_request"
,
JSONObject
.
toJSON
(
request
),
null
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
FacePayResponseDto
>
responseDto
=
null
;
try
{
responseDto
=
paymentNewClient
.
facePay
(
request
);
AppLogUtil
.
infoLog
(
"facePay_response"
,
null
,
JSONObject
.
toJSON
(
responseDto
));
}
catch
(
Exception
e
)
{
AppLogUtil
.
errorLog
(
"facePay_error"
,
null
,
null
,
e
);
}
...
...
order-application-service/src/main/java/cn/freemud/service/impl/SellCouponOrderServiceImpl.java
View file @
9750797d
...
...
@@ -16,6 +16,7 @@ import cn.freemud.entities.dto.product.ProductInfo;
import
cn.freemud.entities.dto.product.ValidateProductInfosDto
;
import
cn.freemud.entities.dto.promotion.CalculationDiscountGoodsDto
;
import
cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto
;
import
cn.freemud.entities.dto.store.StoreMixResponseDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.enums.integralproduct.IntegralProductStatusEnum
;
...
...
@@ -117,7 +118,8 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
@Autowired
private
OrderServiceImpl
orderservice
;
@Autowired
private
StoreCenterService
storeCenterService
;
// private StoreCenterService storeCenterService;
private
StoreServiceImpl
storeService
;
@Autowired
private
OrderAdapter
orderAdapter
;
@Autowired
...
...
@@ -167,6 +169,9 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
@Autowired
private
PayServiceImpl
payService
;
public
SellCouponOrderServiceImpl
()
{
}
/**
* 抖音卖券
...
...
@@ -193,12 +198,12 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
return
ResponseUtil
.
error
(
ResponseCodeConstant
.
RESPONSE_ERROR_STR
,
"支付门店未配置"
);
}
String
storeId
=
wxAppStore
.
getStoreId
();
//查询门店信息
StoreInfoRequest
storeInfoRequest
=
new
StoreInfoRequest
(
partnerId
,
storeId
,
null
);
StoreResponse
storeResponse
=
storeCenterService
.
getStoreInfo
(
storeInfoRequest
,
trackingNo
);
if
(
storeResponse
==
null
||
storeResponse
.
getStatusCode
()
!=
100
||
storeResponse
.
getBizVO
()
==
null
)
{
// 获取门店信息
StoreMixResponseDto
storeMixResponseDto
=
storeService
.
getStoreInfoNew
(
partnerId
,
storeId
,
false
);
if
(
storeMixResponseDto
==
null
||
storeMixResponseDto
.
getStoreInfo
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_NOT_FOUND
);
}
StoreResponseDto
storeResponse
=
storeMixResponseDto
.
getStoreInfo
();
GetProductInfoDto
getProductInfoDto
=
new
GetProductInfoDto
();
getProductInfoDto
.
setPartnerId
(
partnerId
);
...
...
@@ -305,13 +310,13 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
if
(
StringUtils
.
isNotBlank
(
requestVo
.
getCardCode
())
&&
CollectionUtils
.
isNotEmpty
(
virtualProductSvcPayPartnerId
)
&&
!
virtualProductSvcPayPartnerId
.
contains
(
partnerId
))
{
return
ResponseUtil
.
error
(
ResponseResult
.
PAY_SVC_CONFIG_ERROR
);
}
//查询门店信息
StoreInfoRequest
storeInfoRequest
=
new
StoreInfoRequest
(
partnerId
,
storeId
,
null
);
StoreResponse
storeResponse
=
storeCenterService
.
getStoreInfo
(
storeInfoRequest
,
trackingNo
);
if
(
storeResponse
==
null
||
storeResponse
.
getStatusCode
()
!=
100
||
storeResponse
.
getBizVO
()
==
null
)
{
// 获取门店信息
StoreMixResponseDto
storeMixResponseDto
=
storeService
.
getStoreInfoNew
(
partnerId
,
storeId
,
false
);
if
(
storeMixResponseDto
==
null
||
storeMixResponseDto
.
getStoreInfo
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_NOT_FOUND
);
}
StoreResponse
.
BizVO
storeResponseDto
=
storeResponse
.
getBizVO
();
StoreResponseDto
storeResponseDto
=
storeMixResponseDto
.
getStoreInfo
();
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
checkOrder
.
checkOrderByStore
(
storeResponseDto
);
...
...
@@ -343,7 +348,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
}
//卖券订单biztype默认传入6
BaseResponse
createOrderRequestResponse
=
checkOrderCoupon
(
userLoginInfoDto
,
storeResponse
,
trackingNo
,
requestVo
.
getMenuType
(),
6
,
partnerId
,
storeId
,
requestVo
.
getSkuId
(),
requestVo
.
getCardCode
());
BaseResponse
createOrderRequestResponse
=
checkOrderCoupon
(
userLoginInfoDto
,
storeResponse
Dto
,
trackingNo
,
requestVo
.
getMenuType
(),
6
,
partnerId
,
storeId
,
requestVo
.
getSkuId
(),
requestVo
.
getCardCode
());
if
(
createOrderRequestResponse
==
null
||
!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
createOrderRequestResponse
.
getCode
())
||
createOrderRequestResponse
.
getResult
()
==
null
)
{
return
createOrderRequestResponse
;
}
...
...
@@ -456,7 +461,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
* @return
*/
public
BaseResponse
checkOrderCoupon
(
AssortmentCustomerInfoVo
userLoginInfoDto
,
StoreResponse
storeResponse
,
StoreResponse
Dto
storeResponse
,
String
trackingNo
,
String
menuType
,
Integer
bizType
,
...
...
@@ -535,7 +540,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
CreateOrderRequest
createOrderRequest
=
convent2NEWCreateOrderRequest
(
userLoginInfoDto
,
productInfosByIds
.
getData
(),
activeDetailVOS
,
storeResponse
.
getBizVO
()
,
storeId
,
cardCode
,
skuId
,
menuType
,
bizType
);
storeResponse
,
storeId
,
cardCode
,
skuId
,
menuType
,
bizType
);
return
ResponseUtil
.
success
(
createOrderRequest
);
}
...
...
@@ -716,7 +721,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
*/
private
CreateOrderRequest
convent2NEWCreateOrderRequest
(
AssortmentCustomerInfoVo
userLoginInfoDto
,
GetProductInfosResponse
productInfosResponse
,
List
<
ActiveDetailVO
>
activeDetailVOS
,
StoreResponse
.
BizVO
storeInfo
,
StoreResponse
Dto
storeInfo
,
String
shopId
,
String
cardCode
,
String
skuId
,
...
...
@@ -822,7 +827,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
deliveryContactInfoList
.
add
(
deliveryContactInfoCreateReq
);
request
.
setDeliveryContactInfoList
(
deliveryContactInfoList
);
//保存门店渠道信息
request
.
setOrderExtended
(
orderAdapter
.
saveStoreInfo
(
storeInfo
));
request
.
setOrderExtended
(
orderAdapter
.
saveStoreInfo
New
(
storeInfo
));
request
.
setOperator
(
userLoginInfoDto
.
getNickName
());
request
.
setAppId
(
userLoginInfoDto
.
getWxAppId
());
return
request
;
...
...
order-application-service/src/main/java/cn/freemud/service/impl/StoreServiceImpl.java
View file @
9750797d
...
...
@@ -3,9 +3,15 @@ package cn.freemud.service.impl;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.dto.StoreDeliveryInfoDto
;
import
cn.freemud.entities.dto.UserDeliveryInfoDto
;
import
cn.freemud.entities.dto.store.StoreBaseResponseDto
;
import
cn.freemud.entities.dto.store.StoreInfoRequestDto
;
import
cn.freemud.entities.dto.store.StoreMixResponseDto
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.enums.ScopeConfigType
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.service.StoreService
;
import
cn.freemud.service.thirdparty.StoreClient
;
import
cn.freemud.utils.SpringBeanUtil
;
import
cn.freemud.utils.WebUtil
;
import
com.freemud.application.sdk.api.base.BaseResponse
;
...
...
@@ -31,11 +37,52 @@ public class StoreServiceImpl implements StoreService {
private
static
Gson
gson
=
new
Gson
();
//
@Autowired
//
private StoreClient storeClient;
@Autowired
private
StoreClient
storeClient
;
@Autowired
private
RedisCache
redisCache
;
/**
* 查询门店信息新接口
*/
public
StoreMixResponseDto
getStoremixDto
(
String
partnerId
,
String
shopId
,
StoreInfoRequestDto
.
QueryInfo
query
)
{
// 获取门店信息
StoreInfoRequestDto
request
=
new
StoreInfoRequestDto
();
request
.
setPartnerId
(
partnerId
);
request
.
setStoreCode
(
shopId
);
request
.
setQuery
(
query
);
StoreBaseResponseDto
<
StoreMixResponseDto
>
storeInfoNew
=
storeClient
.
getStoreInfoNew
(
request
);
if
(
storeInfoNew
==
null
||
storeInfoNew
.
getBizVO
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_NOT_FOUND
);
}
return
storeInfoNew
.
getBizVO
();
}
/**
* 查询门店信息新接口
*/
public
StoreMixResponseDto
getStoreInfoNew
(
String
partnerId
,
String
shopId
,
Boolean
queryBusinessInfo
)
{
// 获取门店信息
StoreInfoRequestDto
request
=
new
StoreInfoRequestDto
();
request
.
setPartnerId
(
partnerId
);
request
.
setStoreCode
(
shopId
);
StoreInfoRequestDto
.
QueryInfo
query
=
new
StoreInfoRequestDto
.
QueryInfo
();
// query.setQueryStoreInfo(true);
query
.
setQueryBusinessInfo
(
queryBusinessInfo
);
request
.
setQuery
(
query
);
StoreBaseResponseDto
<
StoreMixResponseDto
>
storeInfoNew
=
storeClient
.
getStoreInfoNew
(
request
);
if
(
storeInfoNew
==
null
||
storeInfoNew
.
getBizVO
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_NOT_FOUND
);
}
if
(
queryBusinessInfo
&&
storeInfoNew
.
getBizVO
().
getBusinessInfo
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_DATE_ERROR
);
}
return
storeInfoNew
.
getBizVO
();
}
/**
* 查询商户下的所有门店,按照距离排序缓存1分钟
* @param nearStoreRequestDto
...
...
order-application-service/src/main/java/cn/freemud/service/order/OrderRelationService.java
View file @
9750797d
...
...
@@ -12,10 +12,10 @@
package
cn
.
freemud
.
service
.
order
;
import
cn.freemud.entities.dto.StoreResponseDto
;
import
cn.freemud.entities.vo.CreateOrderBaseVo
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.QueryOrderResponseVo
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse
;
public
interface
OrderRelationService
{
...
...
@@ -24,14 +24,14 @@ public interface OrderRelationService {
* 创建订单的时间检查
* @param
*/
void
createOrderTimeCheck
(
StoreResponse
.
BizVO
storeResponseDto
,
CreateOrderVo
createOrderVo
);
//
void createOrderTimeCheck(StoreResponse.BizVO storeResponseDto, CreateOrderVo createOrderVo);
/**
* 创建订单的时间检查 订单优化使用
* @param
*/
void
createOrderTimeCheck
(
StoreResponse
.
BizVO
storeResponseDto
,
CreateOrderBaseVo
createOrderVo
);
void
createOrderTimeCheck
(
StoreResponse
Dto
storeResponseDto
,
CreateOrderBaseVo
createOrderVo
);
/**
...
...
order-application-service/src/main/java/cn/freemud/service/order/impl/CocoOrderRelationServiceImpl.java
View file @
9750797d
...
...
@@ -13,6 +13,7 @@
package
cn
.
freemud
.
service
.
order
.
impl
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.entities.dto.StoreResponseDto
;
import
cn.freemud.entities.dto.order.BusinessDate
;
import
cn.freemud.entities.vo.CreateOrderBaseVo
;
import
cn.freemud.entities.vo.CreateOrderVo
;
...
...
@@ -52,8 +53,8 @@ public class CocoOrderRelationServiceImpl implements OrderRelationService {
@Autowired
private
CheckOrder
checkOrder
;
@Override
public
void
createOrderTimeCheck
(
StoreResponse
.
BizVO
storeResponseDto
,
CreateOrderVo
createOrderVo
)
{
//
@Override
public
void
createOrderTimeCheck
(
StoreResponse
Dto
storeResponseDto
,
CreateOrderVo
createOrderVo
)
{
// 只有外卖单才做下单时间判断
if
(!
CreateOrderType
.
TAKE_OUT
.
getCode
().
equals
(
createOrderVo
.
getOrderType
())){
...
...
@@ -88,8 +89,8 @@ public class CocoOrderRelationServiceImpl implements OrderRelationService {
}
}
@Override
public
void
createOrderTimeCheck
(
StoreResponse
.
BizVO
storeResponseDto
,
CreateOrderBaseVo
createOrderVo
)
{
//
@Override
public
void
createOrderTimeCheck
(
StoreResponse
Dto
storeResponseDto
,
CreateOrderBaseVo
createOrderVo
)
{
// 只有外卖单才做下单时间判断
if
(!
CreateOrderType
.
TAKE_OUT
.
getCode
().
equals
(
createOrderVo
.
getOrderType
())){
return
;
...
...
order-application-service/src/main/java/cn/freemud/service/order/impl/PlatformOrderRelationServiceImpl.java
View file @
9750797d
...
...
@@ -12,6 +12,7 @@
package
cn
.
freemud
.
service
.
order
.
impl
;
import
cn.freemud.entities.dto.StoreResponseDto
;
import
cn.freemud.entities.vo.CreateOrderBaseVo
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.QueryOrderResponseVo
;
...
...
@@ -25,11 +26,7 @@ public class PlatformOrderRelationServiceImpl implements OrderRelationService {
@Override
public
void
createOrderTimeCheck
(
StoreResponse
.
BizVO
storeResponseDto
,
CreateOrderVo
createOrderVo
)
{
}
@Override
public
void
createOrderTimeCheck
(
StoreResponse
.
BizVO
storeResponseDto
,
CreateOrderBaseVo
createOrderVo
)
{
public
void
createOrderTimeCheck
(
StoreResponseDto
storeResponseDto
,
CreateOrderBaseVo
createOrderVo
)
{
}
...
...
order-application-service/src/main/java/cn/freemud/service/universal/UniversalOrderService.java
View file @
9750797d
...
...
@@ -10,6 +10,7 @@ import cn.freemud.base.util.DateUtil;
import
cn.freemud.constant.RedisKeyConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.bo.CreateOrderBo
;
import
cn.freemud.entities.dto.StoreResponseDto
;
import
cn.freemud.entities.dto.SvcComPayRequestDto
;
import
cn.freemud.entities.dto.SvcComPayResponseDto
;
import
cn.freemud.entities.dto.order.CreateOrderOperateDto
;
...
...
@@ -634,7 +635,7 @@ public abstract class UniversalOrderService {
public
OrderExtInfoDto
getExtInfoUniversal
(
CreateOrderBo
createOrderBo
)
{
CreateOrderBaseVo
createOrderBaseVo
=
createOrderBo
.
getCreateOrderBaseVo
();
StoreResponse
.
BizVO
storeResponseDto
=
createOrderBo
.
getStoreResponseDto
();
StoreResponse
Dto
storeResponseDto
=
createOrderBo
.
getStoreResponseDto
();
AssortmentCustomerInfoVo
userLoginInfoDto
=
createOrderBo
.
getUserLoginInfoDto
();
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
createOrderBo
.
getShoppingCartGoodsDto
();
...
...
order-application-service/src/main/java/cn/freemud/service/universal/impl/SaasMallOrderService.java
View file @
9750797d
...
...
@@ -220,7 +220,7 @@ public class SaasMallOrderService extends UniversalOrderService {
*/
@Override
protected
BaseResponse
createSharedOrder
(
CreateOrderBo
createOrderBo
)
{
OrderExtendedReq
orderExtendedReq
=
orderAdapter
.
saveStoreInfo
(
createOrderBo
.
getStoreResponseDto
());
OrderExtendedReq
orderExtendedReq
=
orderAdapter
.
saveStoreInfo
New
(
createOrderBo
.
getStoreResponseDto
());
CreateOrderBaseVo
createOrderBaseVo
=
createOrderBo
.
getCreateOrderBaseVo
();
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
createOrderBo
.
getShoppingCartGoodsDto
();
//创建普通订单
...
...
order-application-service/src/test/java/cn/freemud/service/impl/MallOrderServiceImplTest.java
View file @
9750797d
package
cn
.
freemud
.
service
.
impl
;
import
cn.freemud.constant.RedisKeyConstant
;
import
cn.freemud.entities.dto.StoreResponseDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
...
...
@@ -74,7 +75,7 @@ public class MallOrderServiceImplTest {
@Test
public
void
f1
()
{
mcCafeOrderService
.
createOrder
(
JSON
.
parseObject
(
"{\"buyType\":0,\"cardKeyCode\":\"509835\",\"channelType\":\"saas\",\"couponCode\":\"\",\"menuType\":\"saas\",\"needInvoice\":1,\"orderRemark\":\"\",\"orderType\":1,\"partnerId\":\"1628\",\"payChannelType\":1,\"receiveId\":\"\",\"sessionId\":\"18459edce0b4c5a5794e855b988d45e0b54ba705\",\"shopId\":\"1950512\",\"takeMealFlag\":\"0\"}"
,
CreateOrderVo
.
class
),
new
StoreResponse
.
BizVO
(),
new
StoreResponse
Dto
(),
JSON
.
parseObject
(
"{\"activityDiscountsDtos\":[{\"activityCode\":\"618535339440866\",\"activityName\":\"五元冰中杯拿铁\",\"activityType\":32,\"cartGoodsUid\":\"\",\"discountAmount\":0,\"extendType\":0},{\"activityCode\":\"601817311288933\",\"activityName\":\"麦咖啡6折月卡\",\"activityType\":38,\"cartGoodsUid\":\"\",\"discountAmount\":0,\"extendType\":12}],\"deliveryAmount\":0,\"discountDeliveryAmount\":0,\"isDiscountDelivery\":false,\"monthCardDiscount\":{\"couponCode\":\"601817311288933\",\"discountAmount\":0,\"discountDesc\":\"麦咖啡6折月卡\",\"discountLogo\":\"https://img0.sandload.cn/mcd_4ac948fb-e271-495c-8b59-02a2552b0385.png\"},\"originalTotalAmount\":1490,\"packageAmount\":0,\"payCardFee\":0,\"products\":[{\"activityDiscountsDtos\":[{\"activityCode\":\"618535339440866\",\"activityName\":\"五元冰中杯拿铁\",\"activityType\":32,\"discountAmount\":0,\"extendType\":0,\"tenderId\":\"510097\"}],\"attributeNames\":\"{\\\"attributeForeignNames\\\":\\\"\\\",\\\"attributeNames\\\":\\\"\\\"}\",\"cartGoodsUid\":\"fba23e82-f373-4efe-b269-3f894b7518d9\",\"classificationId\":\"\",\"classificationName\":\"\",\"comboProducts\":[{\"attributeNames\":\"{\\\"attributeForeignNames\\\":\\\"\\\",\\\"attributeNames\\\":\\\"\\\"}\",\"customerCode\":\"4284\",\"extraList\":[],\"hasProductCoupon\":false,\"isB3S1Coupon\":0,\"isB3S1CouponGoods\":0,\"isFixedProduct\":true,\"isMonthCard\":0,\"isTableware\":0,\"materialList\":[],\"originalPrice\":1900,\"parentProductId\":\"204906623301330748\",\"picture\":\"https://picture.sandload.cn/1608184940077.png\",\"productType\":6,\"qty\":1,\"skuId\":\"190075426702468663\",\"skuName\":\"冰拿铁中杯\",\"spuName\":\"冰拿铁中杯\",\"stockLimit\":false,\"tax\":0.01,\"taxId\":\"\",\"totalDiscountAmount\":0,\"unit\":\"\",\"weight\":0.0}],\"couponCode\":\"618535339440866\",\"customerCode\":\"510097\",\"extraList\":[],\"hasProductCoupon\":false,\"isB3S1Coupon\":0,\"isB3S1CouponGoods\":0,\"isMonthCard\":0,\"isTableware\":0,\"materialList\":[],\"originalPrice\":500,\"picture\":\"https://picture.sandload.cn/1625639691765.png\",\"productCode\":\"510097\",\"productType\":6,\"qty\":1,\"skuId\":\"204906623301330748\",\"skuName\":\"五元冰中杯拿铁\",\"spuId\":\"204906623301330748\",\"spuName\":\"五元冰中杯拿铁\",\"stockLimit\":false,\"tax\":0.01,\"taxId\":\"\",\"totalDiscountAmount\":0,\"unit\":\"\",\"weight\":0.0},{\"activityDiscountsDtos\":[],\"attributeNames\":\"{\\\"attributeForeignNames\\\":\\\"\\\",\\\"attributeNames\\\":\\\"\\\"}\",\"cartGoodsUid\":\"f6ef0233-9801-4eb5-b6c4-62edd9070ec4\",\"classificationId\":\"\",\"classificationName\":\"\",\"extraList\":[],\"hasProductCoupon\":false,\"isB3S1Coupon\":0,\"isB3S1CouponGoods\":0,\"isMonthCard\":1,\"isTableware\":0,\"materialList\":[],\"monthCardInfo\":{\"cardCode\":\"601817311288933\",\"cardNo\":\"MQYK4872D6896B41011BAEFD21C5C557F0A1\"},\"originalPrice\":990,\"picture\":\"https://picture.sandload.cn/1618542683267.png\",\"productCode\":\"509835\",\"productType\":9,\"qty\":1,\"skuId\":\"205155790621999679\",\"skuName\":\"麦咖啡6折月卡\",\"spuId\":\"205155790621999679\",\"spuName\":\"麦咖啡6折月卡\",\"stockLimit\":false,\"tax\":0.01,\"taxId\":\"26\",\"totalDiscountAmount\":0,\"unit\":\"\",\"weight\":0.0}],\"totalAmount\":1490,\"totalDiscountAmount\":0}"
,
ShoppingCartGoodsDto
.
class
),
new
OrderExtendedReq
(),
OrderClientType
.
SAAS
,
"www"
);
...
...
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