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
38d42395
Commit
38d42395
authored
Aug 07, 2020
by
徐康
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
创单校验和多个券冻结核销
parent
4198f4d3
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
217 additions
and
78 deletions
+217
-78
order-application-service/pom.xml
+1
-1
order-application-service/src/main/java/cn/freemud/adapter/CouponAdapter.java
+77
-0
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+4
-0
order-application-service/src/main/java/cn/freemud/service/impl/CheckMCCafeOrder.java
+0
-0
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
+0
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
+0
-4
order-application-service/src/main/java/cn/freemud/service/mccafe/CouponClientService.java
+5
-0
order-application-service/src/main/java/cn/freemud/service/mccafe/MCCafeOrderCenterSdkService.java
+0
-5
order-application-service/src/main/java/cn/freemud/service/mccafe/impl/CouponClientServiceImpl.java
+92
-15
order-application-service/src/main/java/cn/freemud/service/mccafe/impl/MCCafeOrderCenterSdkServiceImpl.java
+32
-53
order-application-service/src/main/java/cn/freemud/service/thirdparty/ShoppingCartClient.java
+6
-0
No files found.
order-application-service/pom.xml
View file @
38d42395
...
@@ -88,7 +88,7 @@
...
@@ -88,7 +88,7 @@
<dependency>
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
<groupId>
com.freemud.application.service.sdk
</groupId>
<artifactId>
storecenter-sdk
</artifactId>
<artifactId>
storecenter-sdk
</artifactId>
<version>
3.
1.1.RELEASE
</version>
<version>
3.
2.1-SNAPSHOT
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
cn.freemud
</groupId>
<groupId>
cn.freemud
</groupId>
...
...
order-application-service/src/main/java/cn/freemud/adapter/CouponAdapter.java
View file @
38d42395
...
@@ -30,6 +30,7 @@ import cn.freemud.enums.*;
...
@@ -30,6 +30,7 @@ import cn.freemud.enums.*;
import
cn.freemud.utils.BeanUtil
;
import
cn.freemud.utils.BeanUtil
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderClientType
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderClientType
;
import
com.freemud.card.sdk.vo.coupon.request.MemberAddCouponVo
;
import
com.freemud.card.sdk.vo.coupon.request.MemberAddCouponVo
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType
;
import
com.freemud.sdk.api.assortment.order.enums.QueryOrderAccountType
;
import
com.freemud.sdk.api.assortment.order.enums.QueryOrderAccountType
;
import
com.freemud.sdk.api.assortment.order.request.order.CreateOrderAccountRequest
;
import
com.freemud.sdk.api.assortment.order.request.order.CreateOrderAccountRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
...
@@ -37,6 +38,7 @@ import com.google.common.collect.Lists;
...
@@ -37,6 +38,7 @@ import com.google.common.collect.Lists;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Maps
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
...
@@ -47,6 +49,9 @@ import java.util.stream.Collectors;
...
@@ -47,6 +49,9 @@ import java.util.stream.Collectors;
@Component
@Component
public
class
CouponAdapter
{
public
class
CouponAdapter
{
@Autowired
private
OrderAdapter
orderAdapter
;
public
CouponListDto
convert2CouponListDto
(
String
userId
,
String
partnerId
)
{
public
CouponListDto
convert2CouponListDto
(
String
userId
,
String
partnerId
)
{
CouponListDto
couponListDto
=
new
CouponListDto
();
CouponListDto
couponListDto
=
new
CouponListDto
();
couponListDto
.
setPartnerCode
(
partnerId
);
couponListDto
.
setPartnerCode
(
partnerId
);
...
@@ -614,6 +619,58 @@ public class CouponAdapter {
...
@@ -614,6 +619,58 @@ public class CouponAdapter {
return
mcCafeCouponRequest
;
return
mcCafeCouponRequest
;
}
}
public
MCCafeCouponRequest
convert2MCCafeCouponRequest
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
,
QueryOrdersResponseDto
.
DataBean
.
OrderBean
.
AccountBean
accountBean
)
{
List
<
MCCafeProductRedeemVo
>
products
=
new
ArrayList
<>();
//商品券核销核销参数
if
(
QueryOrderAccountType
.
PRODUCT_COUPON
.
equals
(
orderAdapter
.
getQueryOrderAccountType
(
OldOrderAccountType
.
getByCode
(
accountBean
.
getType
()))))
{
for
(
int
i
=
0
;
i
<
orderBean
.
getProductList
().
size
();
i
++)
{
QueryOrdersResponseDto
.
DataBean
.
OrderBean
.
ProductBean
productBean
=
orderBean
.
getProductList
().
get
(
i
);
String
pid
=
org
.
apache
.
commons
.
lang3
.
StringUtils
.
isNotBlank
(
productBean
.
getSpecification
())
?
productBean
.
getSpecification
()
:
productBean
.
getProductId
();
if
(!
org
.
springframework
.
util
.
CollectionUtils
.
isEmpty
(
productBean
.
getDiscountList
()))
{
List
<
QueryOrdersResponseDto
.
DataBean
.
OrderBean
.
ProductBean
.
ProductDiscount
>
discounts
=
productBean
.
getDiscountList
().
stream
().
filter
(
productDiscount
->
productDiscount
.
getDiscountId
().
equals
(
accountBean
.
getAccountId
())).
collect
(
Collectors
.
toList
());
for
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
.
ProductBean
.
ProductDiscount
productDiscount
:
discounts
)
{
if
(
productDiscount
.
getDiscountType
()
==
null
||
productDiscount
.
getDiscountType
()
==
0
)
{
continue
;
}
MCCafeProductRedeemVo
mcCafeProductRedeemVo
=
new
MCCafeProductRedeemVo
();
mcCafeProductRedeemVo
.
setPid
(
pid
);
mcCafeProductRedeemVo
.
setKeyProductCode
(
productBean
.
getCustomerCode
());
mcCafeProductRedeemVo
.
setCustomer_code
(
productBean
.
getCustomerCode
());
mcCafeProductRedeemVo
.
setConsume_num
(
productDiscount
.
getDiscountQty
());
mcCafeProductRedeemVo
.
setSeq
(
i
+
1
);
products
.
add
(
mcCafeProductRedeemVo
);
}
}
}
}
MCCafeCouponRequest
mcCafeCouponRequest
=
new
MCCafeCouponRequest
();
mcCafeCouponRequest
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
mcCafeCouponRequest
.
setReqtype
(
CouponReqTypeEnum
.
REDEEM
.
getCode
());
mcCafeCouponRequest
.
setPartnerId
(
Integer
.
parseInt
(
orderBean
.
getCompanyId
()));
mcCafeCouponRequest
.
setStore_id
(
orderBean
.
getShopId
());
mcCafeCouponRequest
.
setStation_id
(
"-1"
);
mcCafeCouponRequest
.
setOperator_id
(
"-1"
);
// 订单号
mcCafeCouponRequest
.
setTrans_id
(
orderBean
.
getOid
());
mcCafeCouponRequest
.
setChannel
(
OrderSourceType
.
ALIPAY
.
getCode
().
equals
(
orderBean
.
getSource
())?
MCCafeChannelEnum
.
MOCOFFEE_ZFB
.
getName
():
MCCafeChannelEnum
.
MOCOFFEE_WX
.
getName
());
List
<
MCCafeTransactionVo
>
transactions
=
new
ArrayList
<>();
MCCafeTransactionVo
mcCafeTransactionVo
=
new
MCCafeTransactionVo
();
mcCafeTransactionVo
.
setCode
(
accountBean
.
getAccountId
());
mcCafeTransactionVo
.
setTotalAmount
(-
accountBean
.
getPrice
());
if
(
CollectionUtils
.
isNotEmpty
(
products
))
{
mcCafeTransactionVo
.
setProducts
(
products
);
}
transactions
.
add
(
mcCafeTransactionVo
);
mcCafeCouponRequest
.
setTransactions
(
transactions
);
mcCafeCouponRequest
.
setSign
(
"skip"
);
mcCafeCouponRequest
.
setAppFlag
(
"kgd.N"
);
mcCafeCouponRequest
.
setBusiness_date
(
cn
.
freemud
.
base
.
util
.
DateUtil
.
convert2Str
(
new
Date
(),
cn
.
freemud
.
base
.
util
.
DateUtil
.
FORMAT_yyyyMMdd
));
return
mcCafeCouponRequest
;
}
public
MCCafeCouponLockRequest
convert2MCCafeCouponLockRequest
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
CreateOrderAccountRequest
accountBean
)
{
public
MCCafeCouponLockRequest
convert2MCCafeCouponLockRequest
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
CreateOrderAccountRequest
accountBean
)
{
MCCafeCouponLockRequest
mcCafeCouponLockRequest
=
new
MCCafeCouponLockRequest
();
MCCafeCouponLockRequest
mcCafeCouponLockRequest
=
new
MCCafeCouponLockRequest
();
mcCafeCouponLockRequest
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
mcCafeCouponLockRequest
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
...
@@ -633,4 +690,24 @@ public class CouponAdapter {
...
@@ -633,4 +690,24 @@ public class CouponAdapter {
return
mcCafeCouponLockRequest
;
return
mcCafeCouponLockRequest
;
}
}
public
MCCafeCouponLockRequest
convert2MCCafeCouponLockRequest
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
,
QueryOrdersResponseDto
.
DataBean
.
OrderBean
.
AccountBean
accountBean
)
{
MCCafeCouponLockRequest
mcCafeCouponLockRequest
=
new
MCCafeCouponLockRequest
();
mcCafeCouponLockRequest
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
mcCafeCouponLockRequest
.
setReqType
(
CouponReqTypeEnum
.
UNLOCK
.
getCode
());
mcCafeCouponLockRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
mcCafeCouponLockRequest
.
setStoreId
(
orderBean
.
getShopId
());
// 订单号
mcCafeCouponLockRequest
.
setTransId
(
orderBean
.
getOid
());
mcCafeCouponLockRequest
.
setCoupon
(
accountBean
.
getAccountId
());
mcCafeCouponLockRequest
.
setOfferId
(
accountBean
.
getAccountId
());
mcCafeCouponLockRequest
.
setNumber
(
"1"
);
mcCafeCouponLockRequest
.
setChannel
(
OrderSourceType
.
ALIPAY
.
getCode
().
equals
(
orderBean
.
getSource
())?
MCCafeChannelEnum
.
MOCOFFEE_ZFB
.
getName
():
MCCafeChannelEnum
.
MOCOFFEE_WX
.
getName
());
mcCafeCouponLockRequest
.
setOperatorId
(
"-1"
);
mcCafeCouponLockRequest
.
setStationId
(
"-1"
);
mcCafeCouponLockRequest
.
setSign
(
"skip"
);
return
mcCafeCouponLockRequest
;
}
}
}
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
View file @
38d42395
...
@@ -63,6 +63,7 @@ public enum ResponseResult {
...
@@ -63,6 +63,7 @@ public enum ResponseResult {
STORE_DISCONTENT_DELIVERY_CUP
(
"43016"
,
"不满足起送杯数"
),
STORE_DISCONTENT_DELIVERY_CUP
(
"43016"
,
"不满足起送杯数"
),
STORE_CLOSED_FOREVER
(
"43017"
,
"门店已关闭,请选择其他门店"
),
STORE_CLOSED_FOREVER
(
"43017"
,
"门店已关闭,请选择其他门店"
),
STORE_CLOSED_THE_NIGHT
(
"43018"
,
"门店已打烊,请选择其他门店"
),
STORE_CLOSED_THE_NIGHT
(
"43018"
,
"门店已打烊,请选择其他门店"
),
STORE_DELIVERY_HOUR_ERROR
(
"43019"
,
"门店外卖时间错误"
),
/**
/**
* 购物车状态码
* 购物车状态码
...
@@ -147,6 +148,9 @@ public enum ResponseResult {
...
@@ -147,6 +148,9 @@ public enum ResponseResult {
ORDER_OWNER_ERROR
(
"45059"
,
"订单归属错误"
),
ORDER_OWNER_ERROR
(
"45059"
,
"订单归属错误"
),
ORDER_STATUS_PRE_PAYMENT_NOT_SUPPORT
(
"45060"
,
"订单非待支付状态, 创建预支付失败"
),
ORDER_STATUS_PRE_PAYMENT_NOT_SUPPORT
(
"45060"
,
"订单非待支付状态, 创建预支付失败"
),
ORDER_TAKEMEALTIME_INVALID
(
"45061"
,
"你的隔日预约时间有误,请重新刷新后选择!"
),
ORDER_TAKEMEALTIME_INVALID
(
"45061"
,
"你的隔日预约时间有误,请重新刷新后选择!"
),
ORDER_TAKE_MEAL_TIME_ERROR
(
"450062"
,
"你的到店取餐时间异常,请重新选择!"
),
ORDER_MEALTIME_MISSING
(
"450063"
,
"你的取餐方式或取餐时间异常,请重新选择!"
),
ORDER_TAKE_OUT_TIME_ERROR
(
"450062"
,
"你的外卖送达时间异常,请重新选择!"
),
/**
/**
* 支付
* 支付
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CheckMCCafeOrder.java
View file @
38d42395
This diff is collapsed.
Click to expand it.
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
View file @
38d42395
This diff is collapsed.
Click to expand it.
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
View file @
38d42395
...
@@ -239,10 +239,6 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
...
@@ -239,10 +239,6 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
if
(!
PayStatus
.
NOT_PAY
.
getCode
().
equals
(
orderBean
.
getPayStatus
())){
if
(!
PayStatus
.
NOT_PAY
.
getCode
().
equals
(
orderBean
.
getPayStatus
())){
return
orderAdapter
.
sendPaySuccessNoticeMessage
();
return
orderAdapter
.
sendPaySuccessNoticeMessage
();
}
}
//买券虚拟订单
if
(
orderBean
.
getBizType
()
==
6
)
{
return
sellCouponOrderService
.
paySuccessCallback
(
message
,
confirmOrderDto
,
orderBeans
);
}
/**
/**
* 默认点餐处理
* 默认点餐处理
*/
*/
...
...
order-application-service/src/main/java/cn/freemud/service/mccafe/CouponClientService.java
View file @
38d42395
package
cn
.
freemud
.
service
.
mccafe
;
package
cn
.
freemud
.
service
.
mccafe
;
import
cn.freemud.entities.dto.QueryOrdersResponseDto
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponQueryResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponQueryResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
...
@@ -18,6 +19,8 @@ public interface CouponClientService {
...
@@ -18,6 +19,8 @@ public interface CouponClientService {
CouponRedeemResponse
redeemBatch
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
);
CouponRedeemResponse
redeemBatch
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
);
List
<
CouponRedeemResponse
>
redeemBatch
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
);
CouponRedeemResponse
cancelRedeem
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
);
CouponRedeemResponse
cancelRedeem
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
);
CouponQueryResponse
query
(
MCCafeCouponRequest
mcCafeCouponRequest
);
CouponQueryResponse
query
(
MCCafeCouponRequest
mcCafeCouponRequest
);
...
@@ -28,5 +31,7 @@ public interface CouponClientService {
...
@@ -28,5 +31,7 @@ public interface CouponClientService {
CouponBaseResponse
lockBatch
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
);
CouponBaseResponse
lockBatch
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
);
List
<
CouponBaseResponse
>
lockBatch
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
);
CouponBaseResponse
unlock
(
MCCafeCouponLockRequest
mcCafeCouponLockRequest
);
CouponBaseResponse
unlock
(
MCCafeCouponLockRequest
mcCafeCouponLockRequest
);
}
}
order-application-service/src/main/java/cn/freemud/service/mccafe/MCCafeOrderCenterSdkService.java
View file @
38d42395
...
@@ -14,10 +14,5 @@ public interface MCCafeOrderCenterSdkService {
...
@@ -14,10 +14,5 @@ public interface MCCafeOrderCenterSdkService {
*/
*/
CreateOrderResponse
createMCCafeOrderFlow
(
CreateOrderRequest
createOrderRequest
);
CreateOrderResponse
createMCCafeOrderFlow
(
CreateOrderRequest
createOrderRequest
);
/**
* 创建麦咖啡父子订单
*/
CreateFatherSonOrderResponse
createMCCafeFatherSonOrder
(
CreateFatherSonOrderRequest
createFatherSonOrderRequest
);
}
}
order-application-service/src/main/java/cn/freemud/service/mccafe/impl/CouponClientServiceImpl.java
View file @
38d42395
package
cn
.
freemud
.
service
.
mccafe
.
impl
;
package
cn
.
freemud
.
service
.
mccafe
.
impl
;
import
cn.freemud.adapter.CouponAdapter
;
import
cn.freemud.adapter.CouponAdapter
;
import
cn.freemud.adapter.OrderAdapter
;
import
cn.freemud.base.constant.Version
;
import
cn.freemud.base.constant.Version
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.dto.QueryOrdersResponseDto
;
import
cn.freemud.entities.dto.coupon.MCCafeCouponRequest
;
import
cn.freemud.entities.dto.coupon.MCCafeCouponRequest
;
import
cn.freemud.entities.dto.coupon.MCCafeCouponLockRequest
;
import
cn.freemud.entities.dto.coupon.MCCafeCouponLockRequest
;
import
cn.freemud.entities.dto.coupon.MCCafeProductRedeemVo
;
import
cn.freemud.entities.dto.coupon.MCCafeProductRedeemVo
;
import
cn.freemud.entities.dto.coupon.MCCafeTransactionVo
;
import
cn.freemud.entities.dto.coupon.MCCafeTransactionVo
;
import
cn.freemud.enums.CouponReqTypeEnum
;
import
cn.freemud.enums.CouponReqTypeEnum
;
import
cn.freemud.enums.MCCafeChannelEnum
;
import
cn.freemud.enums.MCCafeChannelEnum
;
import
cn.freemud.enums.OrderAccountType
;
import
cn.freemud.service.mccafe.CouponClientService
;
import
cn.freemud.service.mccafe.CouponClientService
;
import
cn.freemud.service.mccafe.thirdparty.CouponOfflineMCCafeClient
;
import
cn.freemud.service.mccafe.thirdparty.CouponOfflineMCCafeClient
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse
;
...
@@ -36,6 +39,9 @@ public class CouponClientServiceImpl implements CouponClientService {
...
@@ -36,6 +39,9 @@ public class CouponClientServiceImpl implements CouponClientService {
@Autowired
@Autowired
private
CouponAdapter
couponAdapter
;
private
CouponAdapter
couponAdapter
;
@Autowired
private
OrderAdapter
orderAdapter
;
@Override
@Override
public
CouponRedeemResponse
redeem
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
)
{
public
CouponRedeemResponse
redeem
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
)
{
if
(
null
==
orderBean
||
CollectionUtils
.
isEmpty
(
accounts
))
{
if
(
null
==
orderBean
||
CollectionUtils
.
isEmpty
(
accounts
))
{
...
@@ -118,20 +124,56 @@ public class CouponClientServiceImpl implements CouponClientService {
...
@@ -118,20 +124,56 @@ public class CouponClientServiceImpl implements CouponClientService {
return
null
;
return
null
;
}
}
List
<
MCCafeCouponRequest
>
list
=
accountList
.
stream
().
map
(
accountBean
->
couponAdapter
.
convert2MCCafeCouponRequest
(
orderBean
,
accountBean
)).
collect
(
Collectors
.
toList
());
CouponRedeemResponse
couponRedeemResponse
=
new
CouponRedeemResponse
();
CouponRedeemResponse
couponRedeemResponse
=
new
CouponRedeemResponse
();
List
<
MCCafeCouponRequest
>
list
=
new
ArrayList
<>();
redeem:
for
(
MCCafeCouponRequest
request
:
list
)
{
retry:
for
(
int
i
=
0
;
i
<
3
;
i
++)
{
couponRedeemResponse
=
redeem
(
request
);
if
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
couponRedeemResponse
.
getStatusCode
()))
{
continue
redeem
;
}
}
}
return
couponRedeemResponse
;
}
@Override
public
List
<
CouponRedeemResponse
>
redeemBatch
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
)
{
if
(
null
==
orderBean
||
CollectionUtils
.
isEmpty
(
orderBean
.
getAccountList
()))
{
return
null
;
}
List
<
QueryOrdersResponseDto
.
DataBean
.
OrderBean
.
AccountBean
>
accountList
=
orderBean
.
getAccountList
().
stream
().
filter
(
account
->
(
orderAdapter
.
getQueryOrderAccountType
(
OldOrderAccountType
.
getByCode
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
COUPON
)
||
orderAdapter
.
getQueryOrderAccountType
(
OldOrderAccountType
.
getByCode
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
PRODUCT_COUPON
)
||
orderAdapter
.
getQueryOrderAccountType
(
OldOrderAccountType
.
getByCode
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
DISCOUNT_COUPON
))
&&
account
.
getPrice
()
!=
0
l
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
accountList
))
{
return
null
;
}
accountList
.
forEach
(
accountBean
->
list
.
add
(
couponAdapter
.
convert2MCCafeCouponRequest
(
orderBean
,
accountBean
)));
List
<
MCCafeCouponRequest
>
list
=
accountList
.
stream
().
map
(
accountBean
->
couponAdapter
.
convert2MCCafeCouponRequest
(
orderBean
,
accountBean
)).
collect
(
Collectors
.
toList
());
List
<
CouponRedeemResponse
>
couponRedeemResponseList
=
new
ArrayList
<>();
redeem:
for
(
MCCafeCouponRequest
request
:
list
)
{
for
(
MCCafeCouponRequest
request
:
list
)
{
CouponRedeemResponse
redeemResponse
=
redeem
(
request
);
CouponRedeemResponse
couponRedeemResponse
=
null
;
if
(!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
redeemResponse
.
getStatusCode
()))
{
retry:
BeanUtils
.
copyProperties
(
redeemResponse
,
couponRedeemResponse
);
for
(
int
i
=
0
;
i
<
3
;
i
++)
{
break
;
couponRedeemResponse
=
redeem
(
request
);
if
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
couponRedeemResponse
.
getStatusCode
()))
{
continue
redeem
;
}
}
}
}
couponRedeemResponseList
.
add
(
couponRedeemResponse
);
}
return
couponRedeemResponse
;
return
couponRedeemResponse
List
;
}
}
@Override
@Override
...
@@ -195,20 +237,55 @@ public class CouponClientServiceImpl implements CouponClientService {
...
@@ -195,20 +237,55 @@ public class CouponClientServiceImpl implements CouponClientService {
return
null
;
return
null
;
}
}
CouponBaseResponse
couponBaseResponse
=
new
CouponBaseResponse
();
List
<
MCCafeCouponLockRequest
>
list
=
List
<
MCCafeCouponLockRequest
>
list
=
new
ArrayList
<>(
);
accountList
.
stream
().
map
(
accountBean
->
couponAdapter
.
convert2MCCafeCouponLockRequest
(
orderBean
,
accountBean
)).
collect
(
Collectors
.
toList
()
);
accountList
.
forEach
(
accountBean
->
list
.
add
(
couponAdapter
.
convert2MCCafeCouponLockRequest
(
orderBean
,
accountBean
)));
CouponBaseResponse
baseResponse
=
new
CouponBaseResponse
();
lock:
for
(
MCCafeCouponLockRequest
request
:
list
)
{
retry:
for
(
int
i
=
0
;
i
<
3
;
i
++)
{
baseResponse
=
lock
(
request
);
if
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
baseResponse
.
getStatusCode
()))
{
continue
lock
;
}
}
}
return
baseResponse
;
}
@Override
public
List
<
CouponBaseResponse
>
lockBatch
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
)
{
if
(
null
==
orderBean
||
CollectionUtils
.
isEmpty
(
orderBean
.
getAccountList
()))
{
return
null
;
}
List
<
QueryOrdersResponseDto
.
DataBean
.
OrderBean
.
AccountBean
>
accountList
=
orderBean
.
getAccountList
().
stream
().
filter
(
account
->
(
orderAdapter
.
getQueryOrderAccountType
(
OldOrderAccountType
.
getByCode
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
COUPON
)
||
orderAdapter
.
getQueryOrderAccountType
(
OldOrderAccountType
.
getByCode
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
PRODUCT_COUPON
)
||
orderAdapter
.
getQueryOrderAccountType
(
OldOrderAccountType
.
getByCode
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
DISCOUNT_COUPON
))
&&
account
.
getPrice
()
!=
0
l
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
accountList
))
{
return
null
;
}
List
<
MCCafeCouponLockRequest
>
list
=
accountList
.
stream
().
map
(
accountBean
->
couponAdapter
.
convert2MCCafeCouponLockRequest
(
orderBean
,
accountBean
)).
collect
(
Collectors
.
toList
());
List
<
CouponBaseResponse
>
baseResponseList
=
new
ArrayList
<>();
lock:
for
(
MCCafeCouponLockRequest
request
:
list
)
{
for
(
MCCafeCouponLockRequest
request
:
list
)
{
CouponBaseResponse
baseResponse
=
lock
(
request
);
CouponBaseResponse
baseResponse
=
null
;
if
(!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
baseResponse
.
getStatusCode
()))
{
retry:
BeanUtils
.
copyProperties
(
baseResponse
,
couponBaseResponse
);
for
(
int
i
=
0
;
i
<
3
;
i
++)
{
break
;
baseResponse
=
lock
(
request
);
if
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
baseResponse
.
getStatusCode
()))
{
continue
lock
;
}
}
}
baseResponseList
.
add
(
baseResponse
);
}
}
return
couponBaseResponse
;
return
baseResponseList
;
}
}
@Override
@Override
...
...
order-application-service/src/main/java/cn/freemud/service/mccafe/impl/MCCafeOrderCenterSdkServiceImpl.java
View file @
38d42395
...
@@ -119,27 +119,6 @@ public class MCCafeOrderCenterSdkServiceImpl implements MCCafeOrderCenterSdkServ
...
@@ -119,27 +119,6 @@ public class MCCafeOrderCenterSdkServiceImpl implements MCCafeOrderCenterSdkServ
return
createOrderResponse
;
return
createOrderResponse
;
}
}
@Override
public
CreateFatherSonOrderResponse
createMCCafeFatherSonOrder
(
CreateFatherSonOrderRequest
createFatherSonOrderRequest
)
{
CreateFatherSonOrderReq
request
=
orderSdkAdapter
.
convent2NEWCreateFatherSonOrderRequest
(
createFatherSonOrderRequest
);
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
response
.
BaseResponse
<
List
<
OrderInfoReqs
>>
baseResponse
=
orderSdkService
.
createFatherSonOrder
(
request
,
createFatherSonOrderRequest
.
getTrackingNo
());
if
(!
RESPONSE_SUCCESS_STR
.
equals
(
baseResponse
.
getCode
())
||
baseResponse
.
getResult
()
==
null
)
{
return
CreateFatherSonOrderResponse
.
error
(
baseResponse
.
getCode
(),
baseResponse
.
getMessage
());
}
CreateFatherSonOrderResponse
createFatherSonOrderResponse
=
orderSdkAdapter
.
convent2NEWFatherOrderInfoReqs
(
baseResponse
);
List
<
QueryOrdersResponse
.
DataBean
.
OrderBean
>
productOrderInfo
=
createFatherSonOrderResponse
.
getOrderBeanList
().
stream
().
filter
(
orderBeanTemp
->
1
==
orderBeanTemp
.
getBizType
()).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
productOrderInfo
))
{
return
CreateFatherSonOrderResponse
.
error
(
"500"
,
""
);
}
CreateFatherSonOrderRequest
.
OrderInfo
productOrderRequest
=
createFatherSonOrderRequest
.
getOrderInfoList
().
stream
().
filter
(
orderBeanTemp
->
1
==
orderBeanTemp
.
getBizType
()).
collect
(
Collectors
.
toList
()).
get
(
0
);
BaseOrderResponse
baseOrderResponse
=
updateMCCafeStockAndScore
(
productOrderInfo
.
get
(
0
),
productOrderRequest
.
getProducts
(),
productOrderRequest
.
getActivityUpdateStockRequest
(),
productOrderRequest
.
getAccounts
(),
createFatherSonOrderRequest
.
getMqMessageRequest
(),
createFatherSonOrderRequest
.
getMenuType
());
if
(!
RESPONSE_SUCCESS
.
equals
(
baseOrderResponse
.
getErrcode
()))
{
return
CreateFatherSonOrderResponse
.
error
(
baseOrderResponse
.
getErrcode
().
toString
(),
baseOrderResponse
.
getErrmsg
());
}
return
createFatherSonOrderResponse
;
}
private
BaseOrderResponse
updateMCCafeStockAndScore
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderProductRequest
>
products
,
ActivityUpdateStockRequest
updateStockRequest
,
private
BaseOrderResponse
updateMCCafeStockAndScore
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderProductRequest
>
products
,
ActivityUpdateStockRequest
updateStockRequest
,
List
<
CreateOrderAccountRequest
>
accounts
,
MqMessageRequest
mqMessageRequest
,
String
menuType
)
{
List
<
CreateOrderAccountRequest
>
accounts
,
MqMessageRequest
mqMessageRequest
,
String
menuType
)
{
//TODO 转换获取库存信息,扣减库存
//TODO 转换获取库存信息,扣减库存
...
@@ -201,39 +180,39 @@ public class MCCafeOrderCenterSdkServiceImpl implements MCCafeOrderCenterSdkServ
...
@@ -201,39 +180,39 @@ public class MCCafeOrderCenterSdkServiceImpl implements MCCafeOrderCenterSdkServ
// }
// }
// }
// }
// 如果是
自提
,则冻结优惠券,失败提示下单失败并冲正库存积分等
// 如果是
到店
,则冻结优惠券,失败提示下单失败并冲正库存积分等
// 如果是外卖,则核销优惠券,失败提示下单失败并冲正库存积分等
// 如果是外卖,则核销优惠券,失败提示下单失败并冲正库存积分等
if
(
OldOrderType
.
TAKE_OUT
.
getCode
().
equals
(
orderBean
.
getType
()))
{
//
if(OldOrderType.TAKE_OUT.getCode().equals(orderBean.getType())) {
CouponRedeemResponse
couponRedeemResponse
=
couponClientService
.
redeemBatch
(
orderBean
,
accounts
);
//
CouponRedeemResponse couponRedeemResponse = couponClientService.redeemBatch(orderBean, accounts);
//
if
(
couponRedeemResponse
!=
null
){
//
if (couponRedeemResponse!=null){
//
if
(!
ObjectUtils
.
equals
(
RESPONSE_SUCCESS_STR
,
couponRedeemResponse
.
getStatusCode
()))
{
//
if (!ObjectUtils.equals(RESPONSE_SUCCESS_STR, couponRedeemResponse.getStatusCode())) {
//TODO 失败取消订单,异步冲正库存
//
//TODO 失败取消订单,异步冲正库存
CancelOrderRequest
cancelOrderRequest
=
orderSdkAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
orderBean
.
getCompanyId
(),
//
CancelOrderRequest cancelOrderRequest = orderSdkAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(),
AfterSalesType
.
SYSTEM_CANCEL
,
"核销券码失败"
,
""
,
null
);
//
AfterSalesType.SYSTEM_CANCEL, "核销券码失败", "", null);
orderCenterSdkService
.
orderCancel
(
cancelOrderRequest
);
//
orderCenterSdkService.orderCancel(cancelOrderRequest);
//失败异步冲正库存,取消订单
//
//失败异步冲正库存,取消订单
backOrdersNotifyActivity
(
orderBean
,
mqMessageRequest
.
getBackOrdersNotifyActivityQueue
(),
mqMessageRequest
.
getBackOrdersNotifyActivityExchange
());
//
backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange());
return
BaseOrderResponse
.
getErrorBaseOrderResponse
(
couponRedeemResponse
.
getStatusCode
(),
"核销券码失败"
);
//
return BaseOrderResponse.getErrorBaseOrderResponse(couponRedeemResponse.getStatusCode(), "核销券码失败");
}
//
}
}
//
}
}
else
if
(
OldOrderType
.
COLLECT_GOODS
.
getCode
().
equals
(
orderBean
.
getType
())
||
OldOrderType
.
EAT_IN
.
getCode
().
equals
(
orderBean
.
getType
()))
{
//
} else if(OldOrderType.COLLECT_GOODS.getCode().equals(orderBean.getType()) || OldOrderType.EAT_IN.getCode().equals(orderBean.getType())) {
CouponBaseResponse
couponBaseResponse
=
couponClientService
.
lockBatch
(
orderBean
,
accounts
);
//
CouponBaseResponse couponBaseResponse = couponClientService.lockBatch(orderBean, accounts);
//
if
(
couponBaseResponse
!=
null
){
//
if (couponBaseResponse!=null){
//
if
(!
ObjectUtils
.
equals
(
RESPONSE_SUCCESS_STR
,
couponBaseResponse
.
getStatusCode
()))
{
//
if (!ObjectUtils.equals(RESPONSE_SUCCESS_STR, couponBaseResponse.getStatusCode())) {
//TODO 失败取消订单,异步冲正库存
//
//TODO 失败取消订单,异步冲正库存
CancelOrderRequest
cancelOrderRequest
=
orderSdkAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
orderBean
.
getCompanyId
(),
//
CancelOrderRequest cancelOrderRequest = orderSdkAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(),
AfterSalesType
.
SYSTEM_CANCEL
,
"冻结券码失败"
,
""
,
null
);
//
AfterSalesType.SYSTEM_CANCEL, "冻结券码失败", "", null);
orderCenterSdkService
.
orderCancel
(
cancelOrderRequest
);
//
orderCenterSdkService.orderCancel(cancelOrderRequest);
//失败异步冲正库存,取消订单
//
//失败异步冲正库存,取消订单
backOrdersNotifyActivity
(
orderBean
,
mqMessageRequest
.
getBackOrdersNotifyActivityQueue
(),
mqMessageRequest
.
getBackOrdersNotifyActivityExchange
());
//
backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange());
return
BaseOrderResponse
.
getErrorBaseOrderResponse
(
couponBaseResponse
.
getStatusCode
(),
"冻结券码失败"
);
//
return BaseOrderResponse.getErrorBaseOrderResponse(couponBaseResponse.getStatusCode(), "冻结券码失败");
}
//
}
}
//
}
}
//
}
return
BaseOrderResponse
.
getErrorBaseOrderResponse
(
RESPONSE_SUCCESS_STR
,
""
);
return
BaseOrderResponse
.
getErrorBaseOrderResponse
(
RESPONSE_SUCCESS_STR
,
""
);
}
}
...
...
order-application-service/src/main/java/cn/freemud/service/thirdparty/ShoppingCartClient.java
View file @
38d42395
...
@@ -73,4 +73,10 @@ public interface ShoppingCartClient {
...
@@ -73,4 +73,10 @@ public interface ShoppingCartClient {
@PostMapping
(
value
=
"/getShoppingCartGoodsApportion?lang=zh_CN"
)
@PostMapping
(
value
=
"/getShoppingCartGoodsApportion?lang=zh_CN"
)
BaseResponse
<
ShoppingCartGoodsDto
>
getShoppingCartGoodsApportionNew
(
@RequestBody
GetShoppingCartGoodsApportionDto
getShoppingCartGoodsApportionDto
);
BaseResponse
<
ShoppingCartGoodsDto
>
getShoppingCartGoodsApportionNew
(
@RequestBody
GetShoppingCartGoodsApportionDto
getShoppingCartGoodsApportionDto
);
/**
* 获取购物车详情,包含均摊信息
*/
@PostMapping
(
value
=
"/MCoffee/getshoppingcartGoodsApportion?lang=zh_CN"
)
BaseResponse
<
ShoppingCartGoodsDto
>
getMCCafeShoppingCartGoodsApportionNew
(
@RequestBody
GetShoppingCartGoodsApportionDto
getShoppingCartGoodsApportionDto
);
}
}
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