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
4198f4d3
Commit
4198f4d3
authored
Aug 06, 2020
by
徐康
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
麦咖啡批量锁券和核销券
parent
5e28039c
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
186 additions
and
42 deletions
+186
-42
order-application-service/src/main/java/cn/freemud/adapter/CouponAdapter.java
+80
-4
order-application-service/src/main/java/cn/freemud/entities/dto/coupon/MCCafeCouponRequest.java
+1
-1
order-application-service/src/main/java/cn/freemud/service/impl/CheckMCCafeOrder.java
+2
-2
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
+0
-0
order-application-service/src/main/java/cn/freemud/service/mccafe/CouponClientService.java
+7
-3
order-application-service/src/main/java/cn/freemud/service/mccafe/impl/CouponClientServiceImpl.java
+86
-22
order-application-service/src/main/java/cn/freemud/service/mccafe/impl/MCCafeOrderCenterSdkServiceImpl.java
+2
-2
order-application-service/src/main/java/cn/freemud/service/mccafe/thirdparty/CouponOfflineMCCafeClient.java
+4
-4
order-application-service/src/test/java/cn.freemud/service/CouponActivityServiceTest.java
+4
-4
No files found.
order-application-service/src/main/java/cn/freemud/adapter/CouponAdapter.java
View file @
4198f4d3
...
...
@@ -15,6 +15,10 @@ package cn.freemud.adapter;
import
cn.freemud.base.constant.Version
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.coupon.MCCafeCouponRequest
;
import
cn.freemud.entities.dto.coupon.MCCafeCouponLockRequest
;
import
cn.freemud.entities.dto.coupon.MCCafeProductRedeemVo
;
import
cn.freemud.entities.dto.coupon.MCCafeTransactionVo
;
import
cn.freemud.entities.dto.openplatform.AddWeixinCardCodeRequestDto
;
import
cn.freemud.entities.dto.openplatform.AddWeixinCardCodeResponseDto
;
import
cn.freemud.entities.dto.openplatform.AddWeixinCardJudgeRequestDto
;
...
...
@@ -22,12 +26,13 @@ import cn.freemud.entities.dto.openplatform.AddWeixinCardJudgeResponseDto;
import
cn.freemud.entities.dto.promotion.CouponPromotionDto
;
import
cn.freemud.entities.dto.promotion.OrderBeanRequest
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.ActivityChannelEnum
;
import
cn.freemud.enums.ActivityShareType
;
import
cn.freemud.enums.CouponStatus
;
import
cn.freemud.enums.CouponTypeEnum
;
import
cn.freemud.enums.*
;
import
cn.freemud.utils.BeanUtil
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderClientType
;
import
com.freemud.card.sdk.vo.coupon.request.MemberAddCouponVo
;
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.response.order.QueryOrdersResponse
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
org.apache.commons.collections4.CollectionUtils
;
...
...
@@ -557,4 +562,75 @@ public class CouponAdapter {
couponPromotionDto
.
setFlg
(
flg
);
return
couponPromotionDto
;
}
public
MCCafeCouponRequest
convert2MCCafeCouponRequest
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
CreateOrderAccountRequest
accountBean
)
{
List
<
MCCafeProductRedeemVo
>
products
=
new
ArrayList
<>();
//商品券核销核销参数
if
(
QueryOrderAccountType
.
PRODUCT_COUPON
.
equals
(
accountBean
.
getAccountType
()))
{
for
(
int
i
=
0
;
i
<
orderBean
.
getProductList
().
size
();
i
++)
{
QueryOrdersResponse
.
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
<
QueryOrdersResponse
.
DataBean
.
OrderBean
.
ProductBean
.
ProductDiscount
>
discounts
=
productBean
.
getDiscountList
().
stream
().
filter
(
productDiscount
->
productDiscount
.
getDiscountId
().
equals
(
accountBean
.
getAccountId
())).
collect
(
Collectors
.
toList
());
for
(
QueryOrdersResponse
.
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
(
OrderClientType
.
ALIPAY
.
getIndex
().
toString
().
equals
(
orderBean
.
getOrderClient
())?
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
)
{
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/entities/dto/coupon/MCCafeCo
n
ponRequest.java
→
order-application-service/src/main/java/cn/freemud/entities/dto/coupon/MCCafeCo
u
ponRequest.java
View file @
4198f4d3
...
...
@@ -13,7 +13,7 @@ import java.util.List;
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
MCCafeCo
n
ponRequest
{
public
class
MCCafeCo
u
ponRequest
{
/**
* 接口版本
*/
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CheckMCCafeOrder.java
View file @
4198f4d3
...
...
@@ -17,7 +17,7 @@ import cn.freemud.base.util.DateUtil;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.StoreConstant
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.coupon.MCCafeCo
n
ponRequest
;
import
cn.freemud.entities.dto.coupon.MCCafeCo
u
ponRequest
;
import
cn.freemud.entities.dto.order.BusinessDate
;
import
cn.freemud.entities.dto.shoppingCart.GetShoppingCartGoodsApportionDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
...
...
@@ -568,7 +568,7 @@ public class CheckMCCafeOrder {
// }
if
(
StringUtils
.
isNotBlank
(
createOrderVo
.
getCouponCode
()))
{
// 校验couponCode
CouponQueryResponse
couponQueryResponse
=
couponClientService
.
query
(
MCCafeCo
n
ponRequest
.
builder
()
CouponQueryResponse
couponQueryResponse
=
couponClientService
.
query
(
MCCafeCo
u
ponRequest
.
builder
()
.
ver
(
Integer
.
valueOf
(
Version
.
VERSION_1
))
.
reqtype
(
CouponReqTypeEnum
.
QUERY
.
getCode
())
.
partnerId
(
Integer
.
parseInt
(
createOrderVo
.
getPartnerId
()))
...
...
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
View file @
4198f4d3
This diff is collapsed.
Click to expand it.
order-application-service/src/main/java/cn/freemud/service/mccafe/CouponClientService.java
View file @
4198f4d3
...
...
@@ -3,7 +3,7 @@ package cn.freemud.service.mccafe;
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.CouponRedeemResponse
;
import
cn.freemud.entities.dto.coupon.MCCafeCo
n
ponRequest
;
import
cn.freemud.entities.dto.coupon.MCCafeCo
u
ponRequest
;
import
cn.freemud.entities.dto.coupon.MCCafeCouponLockRequest
;
import
com.freemud.sdk.api.assortment.order.request.order.CreateOrderAccountRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
...
...
@@ -14,15 +14,19 @@ public interface CouponClientService {
CouponRedeemResponse
redeem
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
);
CouponRedeemResponse
redeem
(
MCCafeCo
nponRequest
mcCafeCon
ponRequest
);
CouponRedeemResponse
redeem
(
MCCafeCo
uponRequest
mcCafeCou
ponRequest
);
CouponRedeemResponse
redeemBatch
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
);
CouponRedeemResponse
cancelRedeem
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
);
CouponQueryResponse
query
(
MCCafeCo
nponRequest
mcCafeCon
ponRequest
);
CouponQueryResponse
query
(
MCCafeCo
uponRequest
mcCafeCou
ponRequest
);
CouponBaseResponse
lock
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
);
CouponBaseResponse
lock
(
MCCafeCouponLockRequest
mcCafeCouponLockRequest
);
CouponBaseResponse
lockBatch
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
);
CouponBaseResponse
unlock
(
MCCafeCouponLockRequest
mcCafeCouponLockRequest
);
}
order-application-service/src/main/java/cn/freemud/service/mccafe/impl/CouponClientServiceImpl.java
View file @
4198f4d3
package
cn
.
freemud
.
service
.
mccafe
.
impl
;
import
cn.freemud.adapter.CouponAdapter
;
import
cn.freemud.base.constant.Version
;
import
cn.freemud.entities.dto.coupon.MCCafeConponRequest
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.dto.coupon.MCCafeCouponRequest
;
import
cn.freemud.entities.dto.coupon.MCCafeCouponLockRequest
;
import
cn.freemud.entities.dto.coupon.MCCafeProductRedeemVo
;
import
cn.freemud.entities.dto.coupon.MCCafeTransactionVo
;
...
...
@@ -18,6 +20,7 @@ import com.freemud.sdk.api.assortment.order.request.order.CreateOrderAccountRequ
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -30,6 +33,9 @@ public class CouponClientServiceImpl implements CouponClientService {
@Autowired
private
CouponOfflineMCCafeClient
couponOfflineMCCafeClient
;
@Autowired
private
CouponAdapter
couponAdapter
;
@Override
public
CouponRedeemResponse
redeem
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
)
{
if
(
null
==
orderBean
||
CollectionUtils
.
isEmpty
(
accounts
))
{
...
...
@@ -67,16 +73,16 @@ public class CouponClientServiceImpl implements CouponClientService {
}
}
}
MCCafeCo
nponRequest
mcCafeConponRequest
=
new
MCCafeCon
ponRequest
();
mcCafeCo
n
ponRequest
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
mcCafeCo
n
ponRequest
.
setReqtype
(
CouponReqTypeEnum
.
REDEEM
.
getCode
());
mcCafeCo
n
ponRequest
.
setPartnerId
(
Integer
.
parseInt
(
orderBean
.
getCompanyId
()));
mcCafeCo
n
ponRequest
.
setStore_id
(
orderBean
.
getShopId
());
mcCafeCo
n
ponRequest
.
setStation_id
(
"-1"
);
mcCafeCo
n
ponRequest
.
setOperator_id
(
"-1"
);
MCCafeCo
uponRequest
mcCafeCouponRequest
=
new
MCCafeCou
ponRequest
();
mcCafeCo
u
ponRequest
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
mcCafeCo
u
ponRequest
.
setReqtype
(
CouponReqTypeEnum
.
REDEEM
.
getCode
());
mcCafeCo
u
ponRequest
.
setPartnerId
(
Integer
.
parseInt
(
orderBean
.
getCompanyId
()));
mcCafeCo
u
ponRequest
.
setStore_id
(
orderBean
.
getShopId
());
mcCafeCo
u
ponRequest
.
setStation_id
(
"-1"
);
mcCafeCo
u
ponRequest
.
setOperator_id
(
"-1"
);
// 订单号
mcCafeCo
n
ponRequest
.
setTrans_id
(
orderBean
.
getOid
());
mcCafeCo
n
ponRequest
.
setChannel
(
OrderClientType
.
ALIPAY
.
getIndex
().
toString
().
equals
(
orderBean
.
getOrderClient
())?
MCCafeChannelEnum
.
MOCOFFEE_ZFB
.
getName
():
MCCafeChannelEnum
.
MOCOFFEE_WX
.
getName
());
mcCafeCo
u
ponRequest
.
setTrans_id
(
orderBean
.
getOid
());
mcCafeCo
u
ponRequest
.
setChannel
(
OrderClientType
.
ALIPAY
.
getIndex
().
toString
().
equals
(
orderBean
.
getOrderClient
())?
MCCafeChannelEnum
.
MOCOFFEE_ZFB
.
getName
():
MCCafeChannelEnum
.
MOCOFFEE_WX
.
getName
());
List
<
MCCafeTransactionVo
>
transactions
=
new
ArrayList
<>();
MCCafeTransactionVo
mcCafeTransactionVo
=
new
MCCafeTransactionVo
();
mcCafeTransactionVo
.
setCode
(
accountBean
.
getAccountId
());
...
...
@@ -85,34 +91,58 @@ public class CouponClientServiceImpl implements CouponClientService {
mcCafeTransactionVo
.
setProducts
(
products
);
}
transactions
.
add
(
mcCafeTransactionVo
);
mcCafeCo
n
ponRequest
.
setTransactions
(
transactions
);
mcCafeCo
n
ponRequest
.
setSign
(
"skip"
);
mcCafeCo
u
ponRequest
.
setTransactions
(
transactions
);
mcCafeCo
u
ponRequest
.
setSign
(
"skip"
);
mcCafeCo
n
ponRequest
.
setAppFlag
(
"kgd.N"
);
mcCafeCo
n
ponRequest
.
setBusiness_date
(
cn
.
freemud
.
base
.
util
.
DateUtil
.
convert2Str
(
new
Date
(),
cn
.
freemud
.
base
.
util
.
DateUtil
.
FORMAT_yyyyMMdd
));
mcCafeCo
u
ponRequest
.
setAppFlag
(
"kgd.N"
);
mcCafeCo
u
ponRequest
.
setBusiness_date
(
cn
.
freemud
.
base
.
util
.
DateUtil
.
convert2Str
(
new
Date
(),
cn
.
freemud
.
base
.
util
.
DateUtil
.
FORMAT_yyyyMMdd
));
return
couponOfflineMCCafeClient
.
redeem
(
mcCafeCo
n
ponRequest
);
return
couponOfflineMCCafeClient
.
redeem
(
mcCafeCo
u
ponRequest
);
}
@Override
public
CouponRedeemResponse
redeem
(
MCCafeCo
nponRequest
mcCafeCon
ponRequest
)
{
return
couponOfflineMCCafeClient
.
redeem
(
mcCafeCo
n
ponRequest
);
public
CouponRedeemResponse
redeem
(
MCCafeCo
uponRequest
mcCafeCou
ponRequest
)
{
return
couponOfflineMCCafeClient
.
redeem
(
mcCafeCo
u
ponRequest
);
}
@Override
public
CouponRedeemResponse
redeemBatch
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
)
{
return
null
;
if
(
null
==
orderBean
||
CollectionUtils
.
isEmpty
(
accounts
))
{
return
null
;
}
List
<
CreateOrderAccountRequest
>
accountList
=
accounts
.
stream
().
filter
(
account
->
(
account
.
getAccountType
().
equals
(
QueryOrderAccountType
.
COUPON
)
||
account
.
getAccountType
().
equals
(
QueryOrderAccountType
.
PRODUCT_COUPON
)
||
account
.
getAccountType
().
equals
(
QueryOrderAccountType
.
DISCOUNT_COUPON
))
&&
account
.
getPrice
()
!=
0
l
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
accountList
))
{
return
null
;
}
CouponRedeemResponse
couponRedeemResponse
=
new
CouponRedeemResponse
();
List
<
MCCafeCouponRequest
>
list
=
new
ArrayList
<>();
accountList
.
forEach
(
accountBean
->
list
.
add
(
couponAdapter
.
convert2MCCafeCouponRequest
(
orderBean
,
accountBean
)));
for
(
MCCafeCouponRequest
request
:
list
)
{
CouponRedeemResponse
redeemResponse
=
redeem
(
request
);
if
(!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
redeemResponse
.
getStatusCode
()))
{
BeanUtils
.
copyProperties
(
redeemResponse
,
couponRedeemResponse
);
break
;
}
}
return
couponRedeemResponse
;
}
@Override
public
CouponRedeemResponse
cancelRedeem
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
)
{
MCCafeCo
nponRequest
mcCafeConponRequest
=
new
MCCafeCon
ponRequest
();
return
couponOfflineMCCafeClient
.
cancelRedeem
(
mcCafeCo
n
ponRequest
);
MCCafeCo
uponRequest
mcCafeCouponRequest
=
new
MCCafeCou
ponRequest
();
return
couponOfflineMCCafeClient
.
cancelRedeem
(
mcCafeCo
u
ponRequest
);
}
@Override
public
CouponQueryResponse
query
(
MCCafeCo
nponRequest
mcCafeCon
ponRequest
)
{
return
couponOfflineMCCafeClient
.
query
(
mcCafeCo
n
ponRequest
);
public
CouponQueryResponse
query
(
MCCafeCo
uponRequest
mcCafeCou
ponRequest
)
{
return
couponOfflineMCCafeClient
.
query
(
mcCafeCo
u
ponRequest
);
}
@Override
...
...
@@ -148,6 +178,40 @@ public class CouponClientServiceImpl implements CouponClientService {
}
@Override
public
CouponBaseResponse
lock
(
MCCafeCouponLockRequest
mcCafeCouponLockRequest
)
{
return
null
;
}
@Override
public
CouponBaseResponse
lockBatch
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
)
{
if
(
null
==
orderBean
||
CollectionUtils
.
isEmpty
(
accounts
))
{
return
null
;
}
List
<
CreateOrderAccountRequest
>
accountList
=
accounts
.
stream
().
filter
(
account
->
(
account
.
getAccountType
().
equals
(
QueryOrderAccountType
.
COUPON
)
||
account
.
getAccountType
().
equals
(
QueryOrderAccountType
.
PRODUCT_COUPON
)
||
account
.
getAccountType
().
equals
(
QueryOrderAccountType
.
DISCOUNT_COUPON
))
&&
account
.
getPrice
()
!=
0
l
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
accountList
))
{
return
null
;
}
CouponBaseResponse
couponBaseResponse
=
new
CouponBaseResponse
();
List
<
MCCafeCouponLockRequest
>
list
=
new
ArrayList
<>();
accountList
.
forEach
(
accountBean
->
list
.
add
(
couponAdapter
.
convert2MCCafeCouponLockRequest
(
orderBean
,
accountBean
)));
for
(
MCCafeCouponLockRequest
request
:
list
)
{
CouponBaseResponse
baseResponse
=
lock
(
request
);
if
(!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
baseResponse
.
getStatusCode
()))
{
BeanUtils
.
copyProperties
(
baseResponse
,
couponBaseResponse
);
break
;
}
}
return
couponBaseResponse
;
}
@Override
public
CouponBaseResponse
unlock
(
MCCafeCouponLockRequest
mcCafeCouponLockRequest
)
{
return
couponOfflineMCCafeClient
.
unlock
(
mcCafeCouponLockRequest
);
}
...
...
order-application-service/src/main/java/cn/freemud/service/mccafe/impl/MCCafeOrderCenterSdkServiceImpl.java
View file @
4198f4d3
...
...
@@ -204,7 +204,7 @@ public class MCCafeOrderCenterSdkServiceImpl implements MCCafeOrderCenterSdkServ
// 如果是自提,则冻结优惠券,失败提示下单失败并冲正库存积分等
// 如果是外卖,则核销优惠券,失败提示下单失败并冲正库存积分等
if
(
OldOrderType
.
TAKE_OUT
.
getCode
().
equals
(
orderBean
.
getType
()))
{
CouponRedeemResponse
couponRedeemResponse
=
couponClientService
.
redeem
(
orderBean
,
accounts
);
CouponRedeemResponse
couponRedeemResponse
=
couponClientService
.
redeem
Batch
(
orderBean
,
accounts
);
if
(
couponRedeemResponse
!=
null
){
...
...
@@ -219,7 +219,7 @@ public class MCCafeOrderCenterSdkServiceImpl implements MCCafeOrderCenterSdkServ
}
}
}
else
if
(
OldOrderType
.
COLLECT_GOODS
.
getCode
().
equals
(
orderBean
.
getType
())
||
OldOrderType
.
EAT_IN
.
getCode
().
equals
(
orderBean
.
getType
()))
{
CouponBaseResponse
couponBaseResponse
=
couponClientService
.
lock
(
orderBean
,
accounts
);
CouponBaseResponse
couponBaseResponse
=
couponClientService
.
lock
Batch
(
orderBean
,
accounts
);
if
(
couponBaseResponse
!=
null
){
...
...
order-application-service/src/main/java/cn/freemud/service/mccafe/thirdparty/CouponOfflineMCCafeClient.java
View file @
4198f4d3
...
...
@@ -4,7 +4,7 @@ import com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseR
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponQueryResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
import
cn.freemud.entities.dto.coupon.MCCafeCouponLockRequest
;
import
cn.freemud.entities.dto.coupon.MCCafeCo
n
ponRequest
;
import
cn.freemud.entities.dto.coupon.MCCafeCo
u
ponRequest
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
...
...
@@ -14,13 +14,13 @@ import org.springframework.web.bind.annotation.RequestMapping;
public
interface
CouponOfflineMCCafeClient
{
@PostMapping
(
"/mccafe/redeem"
)
CouponRedeemResponse
redeem
(
MCCafeCo
nponRequest
mcCafeCon
ponRequest
);
CouponRedeemResponse
redeem
(
MCCafeCo
uponRequest
mcCafeCou
ponRequest
);
@PostMapping
(
"/mccafe/cancelRedeem"
)
CouponRedeemResponse
cancelRedeem
(
MCCafeCo
nponRequest
mcCafeCon
ponRequest
);
CouponRedeemResponse
cancelRedeem
(
MCCafeCo
uponRequest
mcCafeCou
ponRequest
);
@PostMapping
(
"/mccafe/query"
)
CouponQueryResponse
query
(
MCCafeCo
nponRequest
mcCafeCon
ponRequest
);
CouponQueryResponse
query
(
MCCafeCo
uponRequest
mcCafeCou
ponRequest
);
@PostMapping
(
"/mccafe/lock"
)
CouponBaseResponse
lock
(
MCCafeCouponLockRequest
MCCafeCouponLockRequest
);
...
...
order-application-service/src/test/java/cn.freemud/service/CouponActivityServiceTest.java
View file @
4198f4d3
...
...
@@ -2,7 +2,7 @@ package cn.freemud.service;
import
cn.freemud.OrderApplication
;
import
cn.freemud.base.constant.Version
;
import
cn.freemud.entities.dto.coupon.MCCafeCo
n
ponRequest
;
import
cn.freemud.entities.dto.coupon.MCCafeCo
u
ponRequest
;
import
cn.freemud.entities.dto.coupon.MCCafeCouponLockRequest
;
import
cn.freemud.entities.dto.coupon.MCCafeProductRedeemVo
;
import
cn.freemud.entities.dto.coupon.MCCafeTransactionVo
;
...
...
@@ -30,7 +30,7 @@ public class CouponActivityServiceTest {
@Test
public
void
redeemTest
()
{
MCCafeCo
nponRequest
couponCodeVerificationDto
=
new
MCCafeCon
ponRequest
();
MCCafeCo
uponRequest
couponCodeVerificationDto
=
new
MCCafeCou
ponRequest
();
couponCodeVerificationDto
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
couponCodeVerificationDto
.
setReqtype
(
CouponReqTypeEnum
.
REDEEM
.
getCode
());
couponCodeVerificationDto
.
setPartnerId
(
1205
);
...
...
@@ -63,7 +63,7 @@ public class CouponActivityServiceTest {
@Test
public
void
cancelRedeemTest
()
{
MCCafeCo
nponRequest
couponCodeVerificationDto
=
new
MCCafeCon
ponRequest
();
MCCafeCo
uponRequest
couponCodeVerificationDto
=
new
MCCafeCou
ponRequest
();
couponCodeVerificationDto
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
couponCodeVerificationDto
.
setReqtype
(
CouponReqTypeEnum
.
CANCEL_REDEEM
.
getCode
());
couponCodeVerificationDto
.
setPartnerId
(
1205
);
...
...
@@ -96,7 +96,7 @@ public class CouponActivityServiceTest {
@Test
public
void
queryTest
()
{
MCCafeCo
nponRequest
couponCodeVerificationDto
=
new
MCCafeCon
ponRequest
();
MCCafeCo
uponRequest
couponCodeVerificationDto
=
new
MCCafeCou
ponRequest
();
couponCodeVerificationDto
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
couponCodeVerificationDto
.
setReqtype
(
CouponReqTypeEnum
.
QUERY
.
getCode
());
couponCodeVerificationDto
.
setPartnerId
(
1205
);
...
...
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