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
aaeacf76
Commit
aaeacf76
authored
Sep 10, 2020
by
徐康
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
下单前校验优惠券
parent
20f33e95
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
392 additions
and
21 deletions
+392
-21
assortment-ordercenter-sdk/pom.xml
+1
-1
order-application-service/src/main/java/cn/freemud/enums/CouponReqTypeEnum.java
+1
-0
order-application-service/src/main/java/cn/freemud/service/impl/CheckMCCafeOrder.java
+63
-12
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
+1
-1
order-application-service/src/main/java/cn/freemud/service/mccafe/CouponClientService.java
+3
-0
order-application-service/src/main/java/cn/freemud/service/mccafe/impl/CouponClientServiceImpl.java
+6
-0
order-application-service/src/test/java/cn.freemud/service/CouponActivityServiceTest.java
+51
-7
order-management/src/main/java/cn/freemud/management/entities/dto/request/order/MCCafeCouponRequest.java
+2
-0
order-management/src/main/java/cn/freemud/management/entities/dto/request/order/MCCafeCouponVo.java
+13
-0
order-management/src/main/java/cn/freemud/management/entities/dto/response/coupon/MccofeBaseResponse.java
+25
-0
order-management/src/main/java/cn/freemud/management/entities/dto/response/coupon/McdNetBatchQueryResponse.java
+35
-0
order-management/src/main/java/cn/freemud/management/entities/dto/response/coupon/McdNetCouponInfoRespDto.java
+106
-0
order-management/src/main/java/cn/freemud/management/entities/dto/response/coupon/McdNetCouponPaymentRespDto.java
+26
-0
order-management/src/main/java/cn/freemud/management/entities/dto/response/coupon/McdNetCouponProductRespDto.java
+55
-0
order-management/src/main/java/cn/freemud/management/thirdparty/CouponOfflineMCCafeClient.java
+4
-0
No files found.
assortment-ordercenter-sdk/pom.xml
View file @
aaeacf76
...
...
@@ -10,7 +10,7 @@
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
assortment-ordercenter-sdk
</artifactId>
<version>
1.5.17-RELEASE
</version>
<version>
2.0.16-SNAPSHOT
</version>
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
...
...
order-application-service/src/main/java/cn/freemud/enums/CouponReqTypeEnum.java
View file @
aaeacf76
...
...
@@ -16,6 +16,7 @@ public enum CouponReqTypeEnum {
QUERY
(
0
,
"查询"
),
CANCEL_REDEEM
(
3
,
"冲正"
),
REDEEM
(
71
,
"核销"
),
BATCH_QUERY
(
88
,
"批量查询"
),
LOCK
(
89
,
"锁定"
),
UNLOCK
(
90
,
"解锁"
),
;
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CheckMCCafeOrder.java
View file @
aaeacf76
...
...
@@ -19,15 +19,15 @@ 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.enums.*
;
import
cn.freemud.management.entities.dto.request.order.MCCafeCouponRequest
;
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.vo.*
;
import
cn.freemud.enums.CouponFlag
;
import
cn.freemud.enums.CreateOrderType
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.management.entities.dto.request.order.MCCafeCouponVo
;
import
cn.freemud.management.entities.dto.response.coupon.McdNetBatchQueryResponse
;
import
cn.freemud.manager.StoreTableNumberManager
;
import
cn.freemud.service.CouponService
;
import
cn.freemud.service.mccafe.CouponClientService
;
...
...
@@ -35,6 +35,7 @@ import cn.freemud.service.mccafe.thirdparty.DeliveryFeiginMCCafeClient;
import
cn.freemud.service.mccafe.thirdparty.DeliveryServiceFeiginMCCafeClient
;
import
cn.freemud.service.thirdparty.ShoppingCartClient
;
import
cn.freemud.service.thirdparty.StockClient
;
import
cn.freemud.utils.LogUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.TypeReference
;
...
...
@@ -53,12 +54,12 @@ import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddress
import
com.freemud.application.sdk.api.membercenter.service.MemberCenterService
;
import
com.freemud.application.sdk.api.membercenter.service.MemberPropertyService
;
import
com.freemud.application.sdk.api.ordercenter.constant.ResponseConstant
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderClientType
;
import
com.freemud.application.sdk.api.storecenter.request.QueryDeliveryRequest
;
import
com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest
;
import
com.freemud.application.sdk.api.storecenter.response.QueryDeliverDetailResponse
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
import
cn.freemud.enums.CouponReqTypeEnum
;
import
com.google.common.collect.Lists
;
import
com.google.gson.Gson
;
import
org.apache.commons.collections4.CollectionUtils
;
...
...
@@ -465,7 +466,7 @@ public class CheckMCCafeOrder {
public
ShoppingCartGoodsDto
getMCCafeShoppingCartGoodsDto
(
CreateOrderVo
createOrderVo
)
{
public
ShoppingCartGoodsDto
getMCCafeShoppingCartGoodsDto
(
CreateOrderVo
createOrderVo
,
AssortmentCustomerInfoVo
userLoginInfoDto
)
{
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
=
ShoppingCartInfoRequestVo
.
builder
()
.
partnerId
(
createOrderVo
.
getPartnerId
())
.
shopId
(
createOrderVo
.
getShopId
())
...
...
@@ -506,21 +507,32 @@ public class CheckMCCafeOrder {
// }
if
(
StringUtils
.
isNotBlank
(
createOrderVo
.
getCouponCode
()))
{
// 校验couponCode
CouponQueryResponse
couponQueryResponse
=
couponClientService
.
query
(
MCCafeCouponRequest
.
builder
()
MCCafeCouponRequest
mcCafeCouponRequest
=
MCCafeCouponRequest
.
builder
()
.
ver
(
Integer
.
valueOf
(
Version
.
VERSION_1
))
.
reqtype
(
CouponReqTypeEnum
.
QUERY
.
getCode
())
.
partnerId
(
Integer
.
parseInt
(
createOrderVo
.
getPartnerId
()))
.
store_id
(
createOrderVo
.
getShopId
())
.
station_id
(
"1"
)
.
operator_id
(
createOrderVo
.
getUserId
())
.
channel
(
createOrderVo
.
getChannel
())
.
coupon
(
createOrderVo
.
getCouponCode
(
))
.
channel
(
UserLoginChannelEnum
.
ALIPAY
.
getCode
().
equals
(
userLoginInfoDto
.
getChannel
())?
MCCafeChannelEnum
.
MOCOFFEE_ZFB
.
getName
():
MCCafeChannelEnum
.
MOCOFFEE_WX
.
getName
())
.
coupon
list
(
Arrays
.
asList
(
new
MCCafeCouponVo
(
createOrderVo
.
getCouponCode
())
))
.
sign
(
"skip"
)
.
build
());
if
(
couponQueryResponse
==
null
||
!
ResponseCodeConstant
.
RESPONSE_SUCCESS
.
equals
(
couponQueryResponse
.
getStatusCode
()))
{
throw
new
ServiceException
(
ResponseResult
.
COUPON_SHOP_NOTSUPPORT
);
.
build
();
McdNetBatchQueryResponse
mcdNetBatchQueryResponse
=
couponClientService
.
batchQuery
(
mcCafeCouponRequest
);
if
(
mcdNetBatchQueryResponse
==
null
||
!
ResponseCodeConstant
.
RESPONSE_SUCCESS
.
equals
(
mcdNetBatchQueryResponse
.
getStatusCode
())
||
CollectionUtils
.
isEmpty
(
mcdNetBatchQueryResponse
.
getCouponlist
()))
{
LogUtil
.
error
(
"该代金券当前不可用"
,
mcCafeCouponRequest
,
mcdNetBatchQueryResponse
);
throw
new
ServiceException
(
ResponseResult
.
COUPON_SHOP_NOTSUPPORT
,
"该代金券当前不可用"
);
}
else
if
(!
ResponseCodeConstant
.
RESPONSE_SUCCESS
.
equals
(
mcdNetBatchQueryResponse
.
getCouponlist
().
get
(
0
).
getStatusCode
()))
{
if
(
mcdNetBatchQueryResponse
.
getCouponlist
().
get
(
0
).
getCodeInfo
()
!=
null
)
{
LogUtil
.
error
(
mcdNetBatchQueryResponse
.
getCouponlist
().
get
(
0
).
getCodeInfo
().
getAct_name
()+
"当前不可用"
,
mcCafeCouponRequest
,
mcdNetBatchQueryResponse
);
throw
new
ServiceException
(
ResponseResult
.
COUPON_SHOP_NOTSUPPORT
,
mcdNetBatchQueryResponse
.
getCouponlist
().
get
(
0
).
getCodeInfo
().
getAct_name
()+
"当前不可用"
);
}
else
{
LogUtil
.
error
(
"该代金券暂不可用"
,
mcCafeCouponRequest
,
mcdNetBatchQueryResponse
);
throw
new
ServiceException
(
ResponseResult
.
COUPON_SHOP_NOTSUPPORT
,
"该代金券暂不可用"
);
}
}
String
activeCode
=
couponQueryResponse
.
getCodeInfo
().
getAct_id
();
String
activeCode
=
mcdNetBatchQueryResponse
.
getCouponlist
().
get
(
0
)
.
getCodeInfo
().
getAct_id
();
// 校验点餐方式,查询购物车接口内部已校验
shoppingCartInfoRequestVo
.
setCouponCode
(
createOrderVo
.
getCouponCode
());
// 活动code
...
...
@@ -544,6 +556,45 @@ public class CheckMCCafeOrder {
if
(
shoppingCartGoodsDto
.
getOriginalTotalAmount
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_GETINFO_INVAILD
);
}
List
<
MCCafeCouponVo
>
mcCafeCouponVos
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
shoppingCartGoodsDto
.
getActivityDiscountsDtos
()))
{
shoppingCartGoodsDto
.
getActivityDiscountsDtos
().
forEach
(
o
->
{
if
(
ActivityTypeEnum
.
TYPE_3
.
getCode
().
equals
(
o
.
getActivityType
())
||
ActivityTypeEnum
.
TYPE_32
.
getCode
().
equals
(
o
.
getActivityType
()))
{
mcCafeCouponVos
.
add
(
new
MCCafeCouponVo
(
o
.
getActivityCode
()));
}
});
}
if
(
CollectionUtils
.
isNotEmpty
(
mcCafeCouponVos
))
{
MCCafeCouponRequest
mcCafeCouponRequest
=
MCCafeCouponRequest
.
builder
()
.
ver
(
Integer
.
valueOf
(
Version
.
VERSION_1
))
.
reqtype
(
CouponReqTypeEnum
.
BATCH_QUERY
.
getCode
())
.
partnerId
(
Integer
.
parseInt
(
createOrderVo
.
getPartnerId
()))
.
store_id
(
createOrderVo
.
getShopId
())
.
station_id
(
"1"
)
.
operator_id
(
createOrderVo
.
getUserId
())
.
channel
(
UserLoginChannelEnum
.
ALIPAY
.
getCode
().
equals
(
userLoginInfoDto
.
getChannel
())?
MCCafeChannelEnum
.
MOCOFFEE_ZFB
.
getName
():
MCCafeChannelEnum
.
MOCOFFEE_WX
.
getName
())
.
couponlist
(
mcCafeCouponVos
)
.
sign
(
"skip"
)
.
build
();
McdNetBatchQueryResponse
mcdNetBatchQueryResponse
=
couponClientService
.
batchQuery
(
mcCafeCouponRequest
);
if
(
mcdNetBatchQueryResponse
==
null
||
!
ResponseCodeConstant
.
RESPONSE_SUCCESS
.
equals
(
mcdNetBatchQueryResponse
.
getStatusCode
())
||
CollectionUtils
.
isEmpty
(
mcdNetBatchQueryResponse
.
getCouponlist
()))
{
LogUtil
.
error
(
"部分优惠券当前不可用"
,
mcCafeCouponRequest
,
mcdNetBatchQueryResponse
);
throw
new
ServiceException
(
ResponseResult
.
COUPON_SHOP_NOTSUPPORT
,
"部分优惠券当前不可用"
);
}
else
{
mcdNetBatchQueryResponse
.
getCouponlist
().
forEach
(
o
->
{
if
(!
ResponseCodeConstant
.
RESPONSE_SUCCESS
.
equals
(
o
.
getStatusCode
()))
{
if
(
o
.
getCodeInfo
()
!=
null
)
{
LogUtil
.
error
(
o
.
getCodeInfo
().
getAct_name
()+
"当前不可用"
,
mcCafeCouponRequest
,
mcdNetBatchQueryResponse
);
throw
new
ServiceException
(
ResponseResult
.
COUPON_SHOP_NOTSUPPORT
,
o
.
getCodeInfo
().
getAct_name
()+
"当前不可用"
);
}
else
{
LogUtil
.
error
(
"部分优惠券暂时不可用"
,
mcCafeCouponRequest
,
mcdNetBatchQueryResponse
);
throw
new
ServiceException
(
ResponseResult
.
COUPON_SHOP_NOTSUPPORT
,
"部分优惠券暂时不可用"
);
}
}
});
}
}
return
shoppingCartGoodsDto
;
}
...
...
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
View file @
aaeacf76
...
...
@@ -240,7 +240,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
// 查询用户信息,余额购物车校验
AssortmentCustomerInfoVo
userLoginInfoDto
=
checkMCCafeOrder
.
checkOrderByMember
(
createOrderVo
,
trackingNo
);
// 查询购物车(内部校验券点餐方式,券是否可用) 校验当前订单类型的下单参数
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
checkMCCafeOrder
.
getMCCafeShoppingCartGoodsDto
(
createOrderVo
);
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
checkMCCafeOrder
.
getMCCafeShoppingCartGoodsDto
(
createOrderVo
,
userLoginInfoDto
);
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内
StoreResponse
.
BizVO
storeResponseDto
=
checkMCCafeOrder
.
checkOrderByStore
(
createOrderVo
,
trackingNo
);
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满足起送条件
...
...
order-application-service/src/main/java/cn/freemud/service/mccafe/CouponClientService.java
View file @
aaeacf76
...
...
@@ -2,6 +2,7 @@ package cn.freemud.service.mccafe;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.dto.QueryOrdersResponseDto
;
import
cn.freemud.management.entities.dto.response.coupon.McdNetBatchQueryResponse
;
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
;
...
...
@@ -26,6 +27,8 @@ public interface CouponClientService {
CouponQueryResponse
query
(
MCCafeCouponRequest
mcCafeCouponRequest
);
McdNetBatchQueryResponse
batchQuery
(
MCCafeCouponRequest
mcCafeCouponRequest
);
CouponBaseResponse
lock
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
);
CouponBaseResponse
lock
(
MCCafeCouponLockRequest
mcCafeCouponLockRequest
);
...
...
order-application-service/src/main/java/cn/freemud/service/mccafe/impl/CouponClientServiceImpl.java
View file @
aaeacf76
...
...
@@ -14,6 +14,7 @@ import cn.freemud.management.entities.dto.request.order.MCCafeProductRedeemVo;
import
cn.freemud.management.entities.dto.request.order.MCCafeTransactionVo
;
import
cn.freemud.enums.CouponReqTypeEnum
;
import
cn.freemud.enums.MCCafeChannelEnum
;
import
cn.freemud.management.entities.dto.response.coupon.McdNetBatchQueryResponse
;
import
cn.freemud.management.thirdparty.CouponOfflineMCCafeClient
;
import
cn.freemud.service.mccafe.CouponClientService
;
import
cn.freemud.utils.LogUtil
;
...
...
@@ -210,6 +211,11 @@ public class CouponClientServiceImpl implements CouponClientService {
}
@Override
public
McdNetBatchQueryResponse
batchQuery
(
MCCafeCouponRequest
mcCafeCouponRequest
)
{
return
couponOfflineMCCafeClient
.
batchQuery
(
mcCafeCouponRequest
);
}
@Override
public
CouponBaseResponse
lock
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
)
{
if
(
null
==
orderBean
||
CollectionUtils
.
isEmpty
(
accounts
))
{
return
null
;
...
...
order-application-service/src/test/java/cn.freemud/service/CouponActivityServiceTest.java
View file @
aaeacf76
...
...
@@ -2,14 +2,18 @@ package cn.freemud.service;
import
cn.freemud.OrderApplication
;
import
cn.freemud.base.constant.Version
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.dto.CancelDeliveryRequest
;
import
cn.freemud.management.entities.dto.request.order.MCCafeCouponRequest
;
import
cn.freemud.management.entities.dto.request.order.MCCafeCouponLockRequest
;
import
cn.freemud.management.entities.dto.request.order.MCCafeProductRedeemVo
;
import
cn.freemud.management.entities.dto.request.order.MCCafeTransactionVo
;
import
cn.freemud.enums.MCCafeChannelEnum
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.enums.UserLoginChannelEnum
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.management.entities.dto.request.order.*
;
import
cn.freemud.entities.dto.delivery.CancelDeliveryResponseDto
;
import
cn.freemud.management.entities.dto.response.coupon.McdNetBatchQueryResponse
;
import
cn.freemud.management.thirdparty.CouponOfflineMCCafeClient
;
import
cn.freemud.service.mccafe.thirdparty.DeliveryFeiginMCCafeClient
;
import
cn.freemud.utils.LogUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponQueryResponse
;
...
...
@@ -18,6 +22,7 @@ import cn.freemud.enums.CouponReqTypeEnum;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.request.UpdateDownstreamOrderCodeReq
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -25,6 +30,7 @@ import org.springframework.boot.test.context.SpringBootTest;
import
org.springframework.test.context.junit4.SpringRunner
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
...
...
@@ -133,9 +139,9 @@ public class CouponActivityServiceTest {
couponCodeVerificationDto
.
setPartnerId
(
"1206"
);
couponCodeVerificationDto
.
setStoreId
(
"99992"
);
// 订单号
couponCodeVerificationDto
.
setTransId
(
"1857993121529493130000
3
"
);
couponCodeVerificationDto
.
setOfferId
(
"2
9793302337128
8"
);
couponCodeVerificationDto
.
setCoupon
(
"2
9793302337128
8"
);
couponCodeVerificationDto
.
setTransId
(
"1857993121529493130000
6
"
);
couponCodeVerificationDto
.
setOfferId
(
"2
2436849368203
8"
);
couponCodeVerificationDto
.
setCoupon
(
"2
2436849368203
8"
);
couponCodeVerificationDto
.
setNumber
(
"1"
);
couponCodeVerificationDto
.
setChannel
(
"mocoffee_wx"
);
couponCodeVerificationDto
.
setOperatorId
(
"1"
);
...
...
@@ -196,4 +202,41 @@ public class CouponActivityServiceTest {
System
.
out
.
println
(
linkedHashMap
.
get
(
"downstreamThirdOrderCode"
));
}
@Test
public
void
batchQueryTest
()
{
MCCafeCouponRequest
mcCafeCouponRequest
=
MCCafeCouponRequest
.
builder
()
.
ver
(
Integer
.
valueOf
(
Version
.
VERSION_1
))
.
reqtype
(
CouponReqTypeEnum
.
QUERY
.
getCode
())
.
partnerId
(
1206
)
.
store_id
(
"khl-12345"
)
.
station_id
(
"1"
)
.
operator_id
(
"1"
)
.
channel
(
"mocoffee_wx"
)
.
couponlist
(
Arrays
.
asList
(
new
MCCafeCouponVo
(
"229382080857268"
),
new
MCCafeCouponVo
(
"212791286228799"
),
new
MCCafeCouponVo
(
"224368493682038"
)))
.
sign
(
"skip"
)
.
build
();
System
.
out
.
println
(
JSON
.
toJSONString
(
mcCafeCouponRequest
));
McdNetBatchQueryResponse
mcdNetBatchQueryResponse
=
offlineMCCafeClient
.
batchQuery
(
mcCafeCouponRequest
);
System
.
out
.
println
(
JSON
.
toJSONString
(
mcdNetBatchQueryResponse
));
if
(
mcdNetBatchQueryResponse
==
null
||
!
ResponseCodeConstant
.
RESPONSE_SUCCESS
.
equals
(
mcdNetBatchQueryResponse
.
getStatusCode
())
||
CollectionUtils
.
isEmpty
(
mcdNetBatchQueryResponse
.
getCouponlist
()))
{
LogUtil
.
error
(
"部分优惠券当前不可用"
,
mcCafeCouponRequest
,
mcdNetBatchQueryResponse
);
throw
new
ServiceException
(
ResponseResult
.
COUPON_SHOP_NOTSUPPORT
,
"部分优惠券当前不可用"
);
}
else
{
mcdNetBatchQueryResponse
.
getCouponlist
().
forEach
(
o
->
{
if
(!
ResponseCodeConstant
.
RESPONSE_SUCCESS
.
equals
(
o
.
getStatusCode
()))
{
if
(
o
.
getCodeInfo
()
!=
null
)
{
LogUtil
.
error
(
o
.
getCodeInfo
().
getAct_name
()+
"当前不可用"
,
mcCafeCouponRequest
,
mcdNetBatchQueryResponse
);
throw
new
ServiceException
(
ResponseResult
.
COUPON_SHOP_NOTSUPPORT
,
o
.
getCodeInfo
().
getAct_name
()+
"当前不可用"
);
}
else
{
LogUtil
.
error
(
"部分优惠券暂时不可用"
,
mcCafeCouponRequest
,
mcdNetBatchQueryResponse
);
throw
new
ServiceException
(
ResponseResult
.
COUPON_SHOP_NOTSUPPORT
,
"部分优惠券暂时不可用"
);
}
}
});
}
}
}
\ No newline at end of file
order-management/src/main/java/cn/freemud/management/entities/dto/request/order/MCCafeCouponRequest.java
View file @
aaeacf76
...
...
@@ -104,4 +104,6 @@ public class MCCafeCouponRequest {
private
Boolean
isManual
;
private
String
channel
;
private
List
<
MCCafeCouponVo
>
couponlist
;
}
order-management/src/main/java/cn/freemud/management/entities/dto/request/order/MCCafeCouponVo.java
0 → 100644
View file @
aaeacf76
package
cn
.
freemud
.
management
.
entities
.
dto
.
request
.
order
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
java.util.List
;
@Data
@AllArgsConstructor
public
class
MCCafeCouponVo
{
private
String
coupon
;
}
order-management/src/main/java/cn/freemud/management/entities/dto/response/coupon/MccofeBaseResponse.java
0 → 100644
View file @
aaeacf76
package
cn
.
freemud
.
management
.
entities
.
dto
.
response
.
coupon
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
@Data
@NoArgsConstructor
public
class
MccofeBaseResponse
implements
Serializable
{
public
Integer
statusCode
;
public
String
msg
;
public
String
act_id
;
public
Integer
ver
=
1
;
public
MccofeBaseResponse
(
Integer
statusCode
,
String
msg
)
{
this
.
statusCode
=
statusCode
;
this
.
msg
=
msg
;
}
}
order-management/src/main/java/cn/freemud/management/entities/dto/response/coupon/McdNetBatchQueryResponse.java
0 → 100644
View file @
aaeacf76
package
cn
.
freemud
.
management
.
entities
.
dto
.
response
.
coupon
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
@EqualsAndHashCode
(
callSuper
=
true
)
@AllArgsConstructor
@NoArgsConstructor
@Data
public
class
McdNetBatchQueryResponse
extends
MccofeBaseResponse
{
private
List
<
Coupon
>
couponlist
;
/**
* 响应描述
*/
private
String
content
;
@AllArgsConstructor
@NoArgsConstructor
@Data
public
static
class
Coupon
{
private
Integer
statusCode
;
private
String
msg
;
private
Integer
couponType
;
private
String
code
;
private
McdNetCouponInfoRespDto
codeInfo
;
}
}
order-management/src/main/java/cn/freemud/management/entities/dto/response/coupon/McdNetCouponInfoRespDto.java
0 → 100644
View file @
aaeacf76
package
cn
.
freemud
.
management
.
entities
.
dto
.
response
.
coupon
;
import
lombok.Data
;
import
java.util.List
;
/**
* 麦当劳.net券详情响应对象
* <p>
* 此对象和.net接口保持一致
*
* @author Tony
*/
@Data
public
class
McdNetCouponInfoRespDto
{
/**
* 活动编号
*/
private
String
act_id
;
/**
* 活动名称
*/
private
String
act_name
;
/**
* 活动描述
*/
private
String
act_desc
;
/**
* 优惠券过期时间
*/
private
String
vdata
;
/**
* 优惠券编号
*/
private
String
code
;
private
String
start_time
;
private
String
end_time
;
/**
* 优惠券渠道商编号
*/
private
String
ebcode
;
/**
* 优惠券渠道商名称
*/
private
String
ebname
;
/**
* 最低消费金额,单位是分,代金券或者折扣券返回、
* 满减券满的金额;
* 满免券满的金额;
*/
private
Integer
minamount
;
/**
* 代金券金额,单位是分
* 只有代金券时返回;
* 满减券减的金额;
*/
private
Integer
amount
;
/**
* 满免券最低消费的商品数量
*/
private
Integer
min_product_amount
;
/**
* 折扣编码
*/
private
String
promotion_type
;
/**
* 平台编码
*/
private
String
platformitemid
;
/**
* 可用次数
*/
private
Integer
availableTimes
;
/**
* 当天可用次数
*/
private
Integer
limitTimes
;
/**
* 折扣券折扣百分比,7.5折 = 75
*/
private
Integer
percent_discount
;
/**
* 券状态
*/
private
Integer
status
;
/**
* 只有商品券时返回
*/
private
List
<
McdNetCouponProductRespDto
>
products
;
}
order-management/src/main/java/cn/freemud/management/entities/dto/response/coupon/McdNetCouponPaymentRespDto.java
0 → 100644
View file @
aaeacf76
package
cn
.
freemud
.
management
.
entities
.
dto
.
response
.
coupon
;
import
lombok.Data
;
/**
* 麦当劳.net支付信息响应对象
* <p>
* 此对象和.net接口保持一致
*
* @author Tony
*/
@Data
public
class
McdNetCouponPaymentRespDto
{
/**
* 线上已付金额,以分为单位
*/
private
Integer
paid
;
/**
* 线下需要收取的金额,以分为单位
*/
private
Integer
remaining
;
}
order-management/src/main/java/cn/freemud/management/entities/dto/response/coupon/McdNetCouponProductRespDto.java
0 → 100644
View file @
aaeacf76
package
cn
.
freemud
.
management
.
entities
.
dto
.
response
.
coupon
;
import
lombok.Data
;
/**
* 麦当劳.net商品信息响应对象
* <p>
* 此对象和.net接口保持一致
*
* @author Tony
*/
@Data
public
class
McdNetCouponProductRespDto
{
/**
* 商户商品编号(或键位编号)
*/
private
String
pid
;
/**
* 商品自增id
*/
private
String
mcd_productCode
;
/**
* 商品名称
*/
private
String
name
;
/**
* 商品数量
*/
private
Integer
amount
;
/**
* 可用商品个数
*/
private
Integer
number
;
/**
* 商品折扣价,以分为单位
*/
private
Integer
price_act
;
/**
* 商品原价
*/
private
Integer
price_original
;
/**
* 支付信息
*/
private
McdNetCouponPaymentRespDto
payment
;
}
order-management/src/main/java/cn/freemud/management/thirdparty/CouponOfflineMCCafeClient.java
View file @
aaeacf76
...
...
@@ -2,6 +2,7 @@ package cn.freemud.management.thirdparty;
import
cn.freemud.management.entities.dto.request.order.MCCafeCouponLockRequest
;
import
cn.freemud.management.entities.dto.request.order.MCCafeCouponRequest
;
import
cn.freemud.management.entities.dto.response.coupon.McdNetBatchQueryResponse
;
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.CouponBaseResponse
;
...
...
@@ -22,6 +23,9 @@ public interface CouponOfflineMCCafeClient {
@PostMapping
(
"/mccafe/query"
)
CouponQueryResponse
query
(
MCCafeCouponRequest
mcCafeCouponRequest
);
@PostMapping
(
"/mccafe/batchQuery"
)
McdNetBatchQueryResponse
batchQuery
(
MCCafeCouponRequest
mcCafeCouponRequest
);
@PostMapping
(
"/mccafe/lock"
)
CouponBaseResponse
lock
(
MCCafeCouponLockRequest
MCCafeCouponLockRequest
);
...
...
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