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
039fb6e3
Commit
039fb6e3
authored
Aug 07, 2020
by
xiaoer.li@freemud.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/develop' into develop
parents
a77edd71
cbf43f52
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
523 additions
and
508 deletions
+523
-508
order-application-service/pom.xml
+1
-1
order-application-service/src/main/java/cn/freemud/adapter/CouponAdapter.java
+157
-4
order-application-service/src/main/java/cn/freemud/entities/dto/coupon/MCCafeCouponRequest.java
+1
-1
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+5
-0
order-application-service/src/main/java/cn/freemud/service/impl/CheckMCCafeOrder.java
+77
-216
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
+29
-166
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
+0
-4
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+33
-26
order-application-service/src/main/java/cn/freemud/service/mccafe/CouponClientService.java
+12
-3
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
+162
-21
order-application-service/src/main/java/cn/freemud/service/mccafe/impl/MCCafeOrderCenterSdkServiceImpl.java
+32
-53
order-application-service/src/main/java/cn/freemud/service/mccafe/thirdparty/CouponOfflineMCCafeClient.java
+4
-4
order-application-service/src/main/java/cn/freemud/service/thirdparty/ShoppingCartClient.java
+6
-0
order-application-service/src/test/java/cn.freemud/service/CouponActivityServiceTest.java
+4
-4
No files found.
order-application-service/pom.xml
View file @
039fb6e3
...
...
@@ -89,7 +89,7 @@
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
<artifactId>
storecenter-sdk
</artifactId>
<version>
3.
1.1.RELEASE
</version>
<version>
3.
2.1-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
cn.freemud
</groupId>
...
...
order-application-service/src/main/java/cn/freemud/adapter/CouponAdapter.java
View file @
039fb6e3
...
...
@@ -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,16 +26,19 @@ 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.OldOrderAccountType
;
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
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.math.BigDecimal
;
...
...
@@ -42,6 +49,9 @@ import java.util.stream.Collectors;
@Component
public
class
CouponAdapter
{
@Autowired
private
OrderAdapter
orderAdapter
;
public
CouponListDto
convert2CouponListDto
(
String
userId
,
String
partnerId
)
{
CouponListDto
couponListDto
=
new
CouponListDto
();
couponListDto
.
setPartnerCode
(
partnerId
);
...
...
@@ -557,4 +567,147 @@ 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
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
)
{
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
;
}
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/entities/dto/coupon/MCCafeCo
n
ponRequest.java
→
order-application-service/src/main/java/cn/freemud/entities/dto/coupon/MCCafeCo
u
ponRequest.java
View file @
039fb6e3
...
...
@@ -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/enums/ResponseResult.java
View file @
039fb6e3
...
...
@@ -63,6 +63,7 @@ public enum ResponseResult {
STORE_DISCONTENT_DELIVERY_CUP
(
"43016"
,
"不满足起送杯数"
),
STORE_CLOSED_FOREVER
(
"43017"
,
"门店已关闭,请选择其他门店"
),
STORE_CLOSED_THE_NIGHT
(
"43018"
,
"门店已打烊,请选择其他门店"
),
STORE_DELIVERY_HOUR_ERROR
(
"43019"
,
"门店外卖时间错误"
),
/**
* 购物车状态码
...
...
@@ -148,6 +149,10 @@ public enum ResponseResult {
ORDER_STATUS_PRE_PAYMENT_NOT_SUPPORT
(
"45060"
,
"订单非待支付状态, 创建预支付失败"
),
ORDER_TAKEMEALTIME_INVALID
(
"45061"
,
"你的隔日预约时间有误,请重新刷新后选择!"
),
ORDER_CONVERT_ERROR
(
"45062"
,
"查询订单结果转换失败"
),
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 @
039fb6e3
...
...
@@ -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
;
...
...
@@ -74,10 +74,6 @@ import java.util.stream.Collectors;
@Component
public
class
CheckMCCafeOrder
{
// 配送费逻辑是否使用旧的
@Value
(
"${store.delivery.use.old}"
)
private
boolean
storeDeliveryUseOld
;
@Autowired
private
StoreTableNumberManager
storeTableNumberManager
;
@Autowired
...
...
@@ -123,8 +119,6 @@ public class CheckMCCafeOrder {
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isEmpty
(
userLoginInfoDto
.
getMemberId
()))
{
throw
new
ServiceException
(
ResponseResult
.
NOT_LOGIN
);
}
//校验会员svc卡信息
checkCardCode
(
createOrderVo
.
getPartnerId
(),
userLoginInfoDto
.
getMemberId
(),
createOrderVo
.
getCardCode
());
createOrderVo
.
setUserId
(
userLoginInfoDto
.
getMemberId
());
return
userLoginInfoDto
;
...
...
@@ -207,12 +201,7 @@ public class CheckMCCafeOrder {
throw
new
ServiceException
(
ResponseResult
.
STORE_ITEM_NOT_DELIVERY
);
}
//获取门店配送信息
StoreDeliveryInfoDto
storeDeliveryInfoDto
=
null
;
if
(
storeDeliveryUseOld
)
{
storeDeliveryInfoDto
=
getStoreDeliveryInfo
(
storeResponseDto
,
config
,
appId
);
}
else
{
storeDeliveryInfoDto
=
getNewStoreDeliveryInfo
(
storeResponseDto
,
config
,
appId
,
trackingNo
);
}
StoreDeliveryInfoDto
storeDeliveryInfoDto
=
getNewStoreDeliveryInfo
(
storeResponseDto
,
config
,
appId
,
trackingNo
);
//todo : 这里不再支持从表中获取门店配送信息 改用接口方式调用
//外卖起送条件(1:杯数,2:金额)
if
(!
Arrays
.
asList
(
1
,
2
).
contains
(
storeDeliveryInfoDto
.
getDeliveryCondition
()))
{
...
...
@@ -246,61 +235,75 @@ public class CheckMCCafeOrder {
if
(!
StoreConstant
.
BUSINESS
.
equals
(
storeResponseDto
.
getState
()))
{
throw
new
ServiceException
(
ResponseResult
.
STORE_ITEM_CHECK_CLOSE
);
}
// 校验下单时间是否在营业时间内
checkOrderExpectTime
(
storeResponseDto
,
new
Date
());
// 外卖单选择立即送达的话,下单时间必须在店铺外卖时间内
if
(
createOrderVo
.
getOrderType
().
compareTo
(
CreateOrderType
.
TAKE_OUT
.
getCode
())
==
0
)
{
checkTakeOutTime
(
storeResponseDto
,
new
Date
()
,
new
Date
()
);
checkTakeOutTime
(
storeResponseDto
,
new
Date
());
}
}
//有预约时间的自提单
else
if
(
CreateOrderType
.
COLLECT_GOODS
.
getCode
().
equals
(
createOrderVo
.
getOrderType
())
&&
StringUtils
.
isNotBlank
(
takeMealTime
))
{
// 设置预约时间
Date
takeMealDateTime
=
getOrderExpectTime
(
takeMealFlag
,
takeMealTime
,
createOrderVo
.
getExpectTime
(),
CreateOrderType
.
getByCode
(
createOrderVo
.
getOrderType
()),
storeResponseDto
.
getServiceTime
(),
storeResponseDto
);
Integer
minute
=
0
;
try
{
minute
=
Integer
.
parseInt
(
takeMealTime
);
}
catch
(
Exception
e
)
{
throw
new
ServiceException
(
ResponseResult
.
ORDER_TAKE_MEAL_TIME_ERROR
);
}
if
(
null
==
minute
||
0
==
minute
)
{
throw
new
ServiceException
(
ResponseResult
.
ORDER_TAKE_MEAL_TIME_ERROR
);
}
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
new
Date
());
calendar
.
add
(
Calendar
.
MINUTE
,
minute
);
Date
takeMealDateTime
=
calendar
.
getTime
();
if
(
takeMealDateTime
!=
null
){
//校验
预约
时间
checkOrderExpectTime
(
createOrderVo
,
storeResponseDto
,
takeMealDateTime
);
//校验
营业
时间
checkOrderExpectTime
(
storeResponseDto
,
takeMealDateTime
);
//重新赋值为yyyy-MM-dd HH:mm:ss格式字符串时间
createOrderVo
.
setExpectTime
(
DateUtil
.
convert2String
(
takeMealDateTime
,
"yyyy-MM-dd HH:mm:ss"
));
}
else
{
throw
new
ServiceException
(
ResponseResult
.
ORDER_TAKE_MEAL_TIME_ERROR
);
}
}
//有预约时间的外卖单
else
if
(
CreateOrderType
.
TAKE_OUT
.
getCode
().
equals
(
createOrderVo
.
getOrderType
())
&&
StringUtils
.
isNotBlank
(
expectTime
))
{
Date
takeMealDateTime
=
DateUtil
.
convert2Date
(
createOrderVo
.
getExpectTime
(),
"yyyy-MM-dd HH:mm:ss"
);
Date
takeOutDateTime
=
DateUtil
.
convert2Date
(
createOrderVo
.
getExpectTime
(),
"yyyy-MM-dd HH:mm:ss"
);
if
(
takeOutDateTime
!=
null
)
{
//校验营业时间
checkOrderExpectTime
(
storeResponseDto
,
takeOutDateTime
);
//校验外卖时间
checkTakeOutTime
(
storeResponseDto
,
takeOutDateTime
);
//重新赋值为yyyy-MM-dd HH:mm:ss格式字符串时间
createOrderVo
.
setExpectTime
(
DateUtil
.
convert2String
(
takeOutDateTime
,
"yyyy-MM-dd HH:mm:ss"
));
}
else
{
throw
new
ServiceException
(
ResponseResult
.
PARAMETER_MISSING
);
throw
new
ServiceException
(
ResponseResult
.
ORDER_TAKE_OUT_TIME_ERROR
);
}
}
else
{
throw
new
ServiceException
(
ResponseResult
.
ORDER_MEALTIME_MISSING
);
}
return
pushOrderTime
;
}
public
void
checkOrderExpectTime
(
CreateOrderVo
createOrderVo
,
StoreResponse
.
BizVO
storeResponseDto
,
Date
takeMealDateTime
)
{
public
void
checkOrderExpectTime
(
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
(
todayB
usinessTimes
))
{
//获取门店
预约
当天营业时间
List
<
String
>
businessTimes
=
storeCenterService
.
getBusinessTimeByDate
(
com
.
freemud
.
application
.
sdk
.
api
.
util
.
DateUtil
.
convert2String
(
takeMealDateTime
,
com
.
freemud
.
application
.
sdk
.
api
.
util
.
DateUtil
.
FORMAT_yyyyMMdd_date
),
storeResponseDto
.
getBusinessHours
());
if
(
CollectionUtils
.
isEmpty
(
b
usinessTimes
))
{
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
:
todayB
usinessTimes
)
{
for
(
String
businessTime
:
b
usinessTimes
)
{
//每段营业时间校验
BusinessDate
businessDate2
=
getStoreBusinessDate
(
todayTime
,
true
);
if
(
takeMealDateTime
.
getTime
()
>=
businessDate2
.
getStartDate
().
getTime
()
&&
takeMealDateTime
.
getTime
()
<=
businessDate2
.
getEndDate
().
getTime
())
{
BusinessDate
businessDate
=
getStoreBusinessDate
(
businessTime
,
takeMealDateTime
,
1
);
if
(
takeMealDateTime
.
getTime
()
>=
businessDate
.
getStartDate
().
getTime
()
&&
takeMealDateTime
.
getTime
()
<=
businessDate
.
getEndDate
().
getTime
())
{
inTodayBusinessTime
=
false
;
break
;
}
...
...
@@ -309,116 +312,42 @@ public class CheckMCCafeOrder {
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
);
}
}
/**
* 检验订单是否在外卖时间内
* @param storeResponseDto 店铺信息
* @param now 当前时间
* @param expectTime 预约单送达时间/即时单下单时间
*/
private
void
checkTakeOutTime
(
StoreResponse
.
BizVO
storeResponseDto
,
Date
now
,
Date
expectTime
)
{
String
deliveryStr
=
storeResponseDto
.
getDeliveryHoursDay
().
replace
(
"-"
,
","
)
.
replace
(
"_"
,
","
);
String
[]
deliverys
=
deliveryStr
.
split
(
","
);
Date
deliveryStartDate
=
null
;
Date
deliveryEndDate
=
null
;
if
(
deliverys
.
length
==
2
)
{
SimpleDateFormat
hhmmss
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
SimpleDateFormat
yyyyMMdd
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
String
startDateTimeStr
=
yyyyMMdd
.
format
(
now
)
+
" "
+
deliverys
[
0
]
+
":00"
;
String
endDateTimeStr
=
yyyyMMdd
.
format
(
now
)
+
" "
+
deliverys
[
1
]
+
":00"
;
try
{
deliveryStartDate
=
hhmmss
.
parse
(
startDateTimeStr
);
deliveryEndDate
=
hhmmss
.
parse
(
endDateTimeStr
);
}
catch
(
ParseException
e
)
{
LogUtil
.
error
(
"getStoreDeliveryInfo_error"
,
endDateTimeStr
,
e
.
getMessage
());
}
}
if
(
deliveryStartDate
==
null
||
deliveryEndDate
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
ORDER_CREATE_TIME_NOT_DELIVERY
);
}
// 校验预约配送时间
if
(
expectTime
.
before
(
deliveryStartDate
)
||
expectTime
.
after
(
deliveryEndDate
))
{
throw
new
ServiceException
(
ResponseResult
.
ORDER_CREATE_TIME_NOT_DELIVERY
);
}
}
public
Date
getOrderExpectTime
(
String
takeMealFlag
,
String
takeMealTimes
,
String
expectTime
,
CreateOrderType
createOrderType
,
Integer
serviceTime
,
StoreResponse
.
BizVO
storeResponseDto
){
Date
takeMealDateTime
=
null
;
//0=到店单我已到店、外卖单尽快送出
if
(
StringUtils
.
isNotBlank
(
takeMealFlag
)
&&
"0"
.
equals
(
takeMealFlag
))
{
return
takeMealDateTime
;
}
if
(
StringUtils
.
isBlank
(
takeMealTimes
)
&&
StringUtils
.
isBlank
(
expectTime
))
{
return
takeMealDateTime
;
}
//兼容门店隔日预约单格式修改,HH:mm变yyyy-MM-dd HH:mm,前端未升级,未按要求传
if
(
StringUtils
.
isNotBlank
(
takeMealTimes
)
&&
takeMealTimes
.
length
()
>
5
)
{
expectTime
=
takeMealTimes
+
":00"
;
}
Date
date
=
new
Date
();
//takeMealTimes格式必须为HH:mm
if
(
StringUtils
.
isNotBlank
(
takeMealTimes
)
&&
takeMealTimes
.
length
()
<=
5
)
{
StringBuffer
takeMealTime
=
new
StringBuffer
(
""
);
takeMealTime
=
takeMealTime
.
append
(
DateUtil
.
convert2String
(
date
,
"yyyy-MM-dd"
))
.
append
(
" "
).
append
(
takeMealTimes
).
append
(
":00"
);
takeMealDateTime
=
DateUtil
.
convert2Date
(
takeMealTime
.
toString
(),
"yyyy-MM-dd HH:mm:ss"
);
Date
newDate
=
DateUtil
.
convert2Date
(
date
,
DateUtil
.
FORMAT_yyyyMMdd_date
);
newDate
=
DateUtil
.
addDays
(
newDate
,
1
);
//获取门店当天营业结束时间
Date
todayEndDate
=
null
;
List
<
String
>
todayBusinessTimes
=
storeCenterService
.
getTodayBusinessTime
(
Integer
.
parseInt
(
storeResponseDto
.
getBusinessType
()),
storeResponseDto
.
getBusinessHoursDay
());
if
(
CollectionUtils
.
isEmpty
(
todayBusinessTimes
)){
private
void
checkTakeOutTime
(
StoreResponse
.
BizVO
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
());
if
(
CollectionUtils
.
isEmpty
(
deliveryTimes
))
{
throw
new
ServiceException
(
ResponseResult
.
STORE_BUSINESS_HOUR_ERROR
);
}
BusinessDate
businessDate
=
getStoreBusinessDate
(
todayBusinessTimes
.
get
(
todayBusinessTimes
.
size
()-
1
),
true
);
todayEndDate
=
businessDate
.
getEndDate
();
//隔天营业的预约时间处理 计算出预约时间在当前时间之前,预约时间加1天 newDate.before(todayEndDate)=隔天营业
if
(
takeMealDateTime
!=
null
&&
takeMealDateTime
.
before
(
date
)
&&
newDate
.
before
(
todayEndDate
)){
takeMealDateTime
=
DateUtil
.
addDays
(
takeMealDateTime
,
1
);
}
}
if
(
StringUtils
.
isNotBlank
(
expectTime
))
{
takeMealDateTime
=
DateUtil
.
convert2Date
(
expectTime
,
"yyyy-MM-dd HH:mm:ss"
);
boolean
inTodayBusinessTime
=
true
;
for
(
String
deliveryTime
:
deliveryTimes
)
{
//每段营业时间校验
BusinessDate
deliveryDate
=
getStoreBusinessDate
(
deliveryTime
,
expectTime
,
2
);
if
(
expectTime
.
getTime
()
>=
deliveryDate
.
getStartDate
().
getTime
()
&&
expectTime
.
getTime
()
<=
deliveryDate
.
getEndDate
().
getTime
())
{
inTodayBusinessTime
=
false
;
break
;
}
//当顾客指定送达时间小于当前时间,订单记录类型为即时单
if
(
takeMealDateTime
!=
null
&&
takeMealDateTime
.
before
(
date
))
{
takeMealDateTime
=
null
;
}
//当顾客指定送达时间小于当前时间+提前预约时间时,订单记录类型为即时单
if
(
CreateOrderType
.
TAKE_OUT
.
equals
(
createOrderType
)
&&
takeMealDateTime
!=
null
&&
serviceTime
!=
null
&&
takeMealDateTime
.
before
(
DateUtil
.
addMinutes
(
date
,
serviceTime
)))
{
takeMealDateTime
=
null
;
if
(
inTodayBusinessTime
)
{
throw
new
ServiceException
(
ResponseResult
.
ORDER_TAKEMEALTIME_INVAILD
);
}
return
takeMealDateTime
;
}
public
BusinessDate
getStoreBusinessDate
(
String
businessHoursDay
,
boolean
today
){
/**
*
* @param businessHoursDay 营业时间段
* @param date 点餐时间
* @param dateType 时间类型 1营业时间 2外卖时间
* @return
*/
public
BusinessDate
getStoreBusinessDate
(
String
businessHoursDay
,
Date
date
,
Integer
dateType
){
BusinessDate
businessDate
=
new
BusinessDate
();
//设置营业开始和结束时间
String
businessHourStr
=
businessHoursDay
.
replace
(
"-"
,
","
).
replace
(
"_"
,
","
);
...
...
@@ -426,28 +355,16 @@ public class CheckMCCafeOrder {
if
(
businessHours
.
length
!=
2
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_NOT_FOUND
);
}
Date
date
=
new
Date
();
if
(!
today
){
date
=
DateUtil
.
addDays
(
date
,
1
);
}
String
startDateTimeStr
=
DateUtil
.
convert2String
(
date
,
DateUtil
.
FORMAT_YMD
)
+
" "
+
businessHours
[
0
]
+
":00"
;
String
endDateTimeStr
=
DateUtil
.
convert2String
(
date
,
DateUtil
.
FORMAT_YMD
)
+
" "
+
businessHours
[
1
]
+
":00"
;
Date
startDateTime
;
Date
endDateTime
;
startDateTime
=
DateUtil
.
convert2Date
(
startDateTimeStr
,
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
);
SimpleDateFormat
hhmmss
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
try
{
endDateTime
=
hhmmss
.
parse
(
endDateTimeStr
);
}
catch
(
ParseException
e
)
{
Date
startDateTime
=
DateUtil
.
convert2Date
(
startDateTimeStr
,
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
);
Date
endDateTime
=
DateUtil
.
convert2Date
(
endDateTimeStr
,
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
);
if
(
null
==
startDateTime
||
null
==
endDateTime
)
{
if
(
1
==
dateType
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_BUSINESS_HOUR_ERROR
);
}
else
{
throw
new
ServiceException
(
ResponseResult
.
STORE_DELIVERY_HOUR_ERROR
);
}
//隔天营业时间处理
if
(
startDateTime
.
after
(
endDateTime
)){
endDateTime
=
DateUtil
.
addDays
(
endDateTime
,
1
);
}
// 校验门店是否打烊,打烊了则不让操作
if
(
startDateTime
==
null
||
endDateTime
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_ITEM_STOP_BUSINESS
);
}
businessDate
.
setStartDate
(
startDateTime
);
businessDate
.
setEndDate
(
endDateTime
);
...
...
@@ -522,12 +439,6 @@ public class CheckMCCafeOrder {
public
ShoppingCartGoodsDto
getMCCafeShoppingCartGoodsDto
(
CreateOrderVo
createOrderVo
)
{
ShoppingCartInfoRequestVo
.
BuyMemberCard
buyMemberCard
=
null
;
if
(
createOrderVo
.
getBuyMemberCard
()
!=
null
)
{
buyMemberCard
=
new
ShoppingCartInfoRequestVo
.
BuyMemberCard
();
buyMemberCard
.
setPaidId
(
createOrderVo
.
getBuyMemberCard
().
getPaidId
());
buyMemberCard
.
setRuleId
(
createOrderVo
.
getBuyMemberCard
().
getRuleId
());
}
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
=
ShoppingCartInfoRequestVo
.
builder
()
.
partnerId
(
createOrderVo
.
getPartnerId
())
.
shopId
(
createOrderVo
.
getShopId
())
...
...
@@ -538,7 +449,7 @@ public class CheckMCCafeOrder {
.
flag
(
CouponFlag
.
NO
.
getCode
())
.
receiveId
(
createOrderVo
.
getReceiveId
())
.
useCustomerScore
(
createOrderVo
.
getUseCustomerScore
())
.
buyMemberCard
(
buyMemberCard
)
.
buyMemberCard
(
null
)
.
menuType
(
createOrderVo
.
getMenuType
())
.
build
();
// 如果使用优惠券或者商品券,校验 couponCode
...
...
@@ -568,7 +479,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
()))
...
...
@@ -594,7 +505,7 @@ public class CheckMCCafeOrder {
requestDto
.
setShoppingCartInfoRequestVo
(
shoppingCartInfoRequestVo
);
//加价购商品 校验放购物车校验
requestDto
.
setPremiumExchangeActivity
(
createOrderVo
.
getPremiumExchangeActivity
());
// cn.freemud.base.entity.BaseResponse<ShoppingCartGoodsDto> apportionResponse = shoppingCartClient.getShoppingCartGoodsApportionNew(requestDto);
// cn.freemud.base.entity.BaseResponse<ShoppingCartGoodsDto> apportionResponse = shoppingCartClient.get
MCCafe
ShoppingCartGoodsApportionNew(requestDto);
//暂时写死测试数据
cn
.
freemud
.
base
.
entity
.
BaseResponse
<
ShoppingCartGoodsDto
>
apportionResponse
=
JSON
.
parseObject
(
"{\n"
+
...
...
@@ -652,56 +563,6 @@ public class CheckMCCafeOrder {
/**
* 获取门店配送信息
*/
public
StoreDeliveryInfoDto
getStoreDeliveryInfo
(
StoreResponse
.
BizVO
storeResponseDto
,
AssortmentOpenPlatformIappWxappConfig
openPlatformIappWxappConfig
,
String
wxAppid
)
{
StoreDeliveryInfoDto
storeDeliveryInfoDto
=
new
StoreDeliveryInfoDto
();
storeDeliveryInfoDto
.
setPartnerId
(
storeResponseDto
.
getPartnerId
());
storeDeliveryInfoDto
.
setStoreId
(
storeResponseDto
.
getStoreCode
());
storeDeliveryInfoDto
.
setStoreName
(
storeResponseDto
.
getStoreName
());
// 查询外卖配送信息
AssortmentOpenPlatformPartnerStoreDeliveryConfig
deliveryConfig
=
deliveryConfigManager
.
findByPartnerIdAndStoreCode
(
storeResponseDto
.
getPartnerId
(),
storeResponseDto
.
getStoreCode
());
if
(
deliveryConfig
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_ITEM_NOT_DELIVERY
);
}
// 判断门店是否启用外卖,只有当小程序开通外卖,且门店开通外卖,设置 外卖配送时间 才开启外卖功能
storeDeliveryInfoDto
.
setDeliveryLimitAmount
(
deliveryConfig
==
null
?
0
:
deliveryConfig
.
getDeliveryLimitAmount
());
storeDeliveryInfoDto
.
setDeliveryAmount
(
deliveryConfig
==
null
?
0
:
deliveryConfig
.
getDeliveryAmount
());
storeDeliveryInfoDto
.
setDefaultDeliveryRange
(
deliveryConfig
==
null
?
0L
:
deliveryConfig
.
getDefaultDeliveryRange
());
storeDeliveryInfoDto
.
setAddRangeAmount
(
deliveryConfig
==
null
?
0L
:
deliveryConfig
.
getAddRangeAmount
());
storeDeliveryInfoDto
.
setAddRangeCount
(
deliveryConfig
==
null
?
0L
:
deliveryConfig
.
getAddRangeCount
());
storeDeliveryInfoDto
.
setPoint2DList
(
getDeliveryPoint2DList
(
storeResponseDto
.
getDistributionScope
()));
storeDeliveryInfoDto
.
setDeliveryHoursDay
(
storeResponseDto
.
getDeliveryHoursDay
());
storeDeliveryInfoDto
.
setLongitude
(
storeResponseDto
.
getLongitude
());
storeDeliveryInfoDto
.
setLatitude
(
storeResponseDto
.
getLatitude
());
storeDeliveryInfoDto
.
setScopeConfig
(
storeResponseDto
.
getScopeConfig
());
if
(
StringUtils
.
isNotEmpty
(
storeResponseDto
.
getDeliveryRadius
()))
{
storeDeliveryInfoDto
.
setDeliveryRadius
(
Integer
.
valueOf
(
storeResponseDto
.
getDeliveryRadius
()));
}
else
{
storeDeliveryInfoDto
.
setDeliveryRadius
(
0
);
}
// 只有小程序设置了外卖,并且开通了第三方配送账户,才是第三方配送单
if
(
openPlatformIappWxappConfig
==
null
)
{
openPlatformIappWxappConfig
=
openPlatformIappWxappConfigManager
.
selectIappWxappConfigByWxAppId
(
wxAppid
);
}
if
(
openPlatformIappWxappConfig
==
null
)
{
storeDeliveryInfoDto
.
setDeliveryType
(
"self"
);
storeDeliveryInfoDto
.
setPushOrderTime
(
0
);
}
else
{
if
(
ObjectUtils
.
equals
(
openPlatformIappWxappConfig
.
getTakeType
(),
1
))
{
storeDeliveryInfoDto
.
setDeliveryType
(
"self"
);
storeDeliveryInfoDto
.
setPushOrderTime
(
0
);
}
else
{
storeDeliveryInfoDto
.
setDeliveryType
(
"third"
);
storeDeliveryInfoDto
.
setPushOrderTime
(
0
);
}
}
return
storeDeliveryInfoDto
;
}
/**
* 获取门店配送信息
*/
public
StoreDeliveryInfoDto
getNewStoreDeliveryInfo
(
StoreResponse
.
BizVO
storeResponseDto
,
AssortmentOpenPlatformIappWxappConfig
openPlatformIappWxappConfig
,
String
wxAppid
,
String
trackingNo
)
{
StoreDeliveryInfoDto
storeDeliveryInfoDto
=
new
StoreDeliveryInfoDto
();
...
...
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
View file @
039fb6e3
...
...
@@ -17,7 +17,6 @@ import cn.freemud.amqp.Header;
import
cn.freemud.amqp.MQAction
;
import
cn.freemud.amqp.MQMessage
;
import
cn.freemud.amqp.MQService
;
import
cn.freemud.base.constant.Version
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.log.LogTreadLocal
;
import
cn.freemud.base.util.DateUtil
;
...
...
@@ -53,6 +52,7 @@ import com.freemud.api.assortment.datamanager.manager.cache.CacheOpenPlatformPar
import
com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager
;
import
com.freemud.api.assortment.datamanager.meal.MealCacheManager
;
import
com.freemud.application.sdk.api.constant.ResponseResultEnum
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
import
com.freemud.application.sdk.api.deliverycenter.service.DeliveryService
;
import
com.freemud.application.sdk.api.log.ApiLog
;
...
...
@@ -69,21 +69,12 @@ import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewSe
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
import
com.freemud.application.sdk.api.structure.service.MessageCenterClient
;
import
com.freemud.sdk.api.assortment.message.config.MessageOfficialRefundPushMqConfig
;
import
com.freemud.sdk.api.assortment.message.entity.MpTemplateMsg
;
import
com.freemud.sdk.api.assortment.message.entity.MpTemplateMsgDataValue
;
import
com.freemud.sdk.api.assortment.message.enums.MessageEventType
;
import
com.freemud.sdk.api.assortment.message.request.MessagePushOrderTemplateRequest
;
import
com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest
;
import
com.freemud.sdk.api.assortment.message.service.IMessageTemplatePushService
;
import
cn.freemud.enums.CouponReqTypeEnum
;
import
cn.freemud.enums.MCCafeChannelEnum
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderStatus
;
import
com.freemud.sdk.api.assortment.order.enums.QueryOrderAccountType
;
import
cn.freemud.entities.dto.coupon.MCCafeConponRequest
;
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.coupon.MCCafeCouponRequest
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderType
;
import
com.freemud.sdk.api.assortment.order.request.order.*
;
import
com.freemud.sdk.api.assortment.order.response.order.*
;
import
com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse
;
...
...
@@ -112,6 +103,8 @@ import java.util.*;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
import
static
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
;
@Service
@Slf4j
public
class
MCCafeOrderServiceImpl
implements
MCCafeOrderService
{
...
...
@@ -208,12 +201,12 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
@Override
public
BaseResponse
createMCCafeOrder
(
CreateOrderVo
createOrderVo
)
{
String
trackingNo
=
LogThreadLocal
.
getTrackingNo
();
// 查询用户信息
、校验svc卡
,余额购物车校验
// 查询用户信息,余额购物车校验
AssortmentCustomerInfoVo
userLoginInfoDto
=
checkMCCafeOrder
.
checkOrderByMember
(
createOrderVo
,
trackingNo
);
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内
StoreResponse
.
BizVO
storeResponseDto
=
checkMCCafeOrder
.
checkOrderByStore
(
createOrderVo
,
trackingNo
);
// 查询购物车(内部校验券点餐方式,券是否可用) 校验当前订单类型的下单参数
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
checkMCCafeOrder
.
getMCCafeShoppingCartGoodsDto
(
createOrderVo
);
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内
StoreResponse
.
BizVO
storeResponseDto
=
checkMCCafeOrder
.
checkOrderByStore
(
createOrderVo
,
trackingNo
);
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满足起送条件
Integer
pushOrderTime
=
checkMCCafeOrder
.
checkOrderByOrderType
(
createOrderVo
,
userLoginInfoDto
,
storeResponseDto
,
shoppingCartGoodsDto
,
trackingNo
);
OrderExtInfoDto
extInfo
=
getExtInfo
(
userLoginInfoDto
,
storeResponseDto
,
pushOrderTime
,
createOrderVo
);
...
...
@@ -533,40 +526,18 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
}
else
if
(
UserLoginChannelEnum
.
APP
.
getCode
().
equals
(
userLoginInfoDto
.
getChannel
()))
{
orderClient
=
OrderClientType
.
APP
;
}
long
totalAmount
=
0
;
int
cardAmount
=
0
;
QueryOrdersResponse
.
DataBean
.
OrderBean
fatherBeanListOne
=
new
QueryOrdersResponse
.
DataBean
.
OrderBean
();
QueryOrdersResponse
.
DataBean
.
OrderBean
productBeanListOne
=
new
QueryOrdersResponse
.
DataBean
.
OrderBean
();
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
);
if
(
ObjectUtils
.
notEqual
(
Integer
.
valueOf
(
ResponseResult
.
SUCCESS
.
getCode
()),
createFatherSonOrderResponse
.
getErrcode
()))
{
return
ResponseUtil
.
error
(
createFatherSonOrderResponse
.
getErrcode
().
toString
(),
createFatherSonOrderResponse
.
getErrmsg
());
}
List
<
QueryOrdersResponse
.
DataBean
.
OrderBean
>
orderBeanList
=
createFatherSonOrderResponse
.
getOrderBeanList
();
List
<
QueryOrdersResponse
.
DataBean
.
OrderBean
>
fatherBeanList
=
orderBeanList
.
stream
().
filter
(
orderBeanTemp
->
orderBeanTemp
.
getIsParent
()).
collect
(
Collectors
.
toList
());
List
<
QueryOrdersResponse
.
DataBean
.
OrderBean
>
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
(
QueryOrdersResponse
.
DataBean
.
OrderBean
::
getAmount
).
count
();
fatherBeanList
.
get
(
0
).
setShopId
(
storeResponseDto
.
getStoreCode
());
fatherBeanList
.
get
(
0
).
setCompanyId
(
createOrderVo
.
getPartnerId
());
}
else
{
//普通订单
//麦咖啡只有普通订单
CreateOrderResponse
createOrderFlowResponse
=
createOrder
(
createOrderVo
,
storeResponseDto
,
shoppingCartGoodsDto
,
orderExtendedReq
,
orderClient
,
appId
);
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
();
}
QueryOrdersResponse
.
DataBean
.
OrderBean
fatherBeanListOne
=
createOrderFlowResponse
.
getData
();
QueryOrdersResponse
.
DataBean
.
OrderBean
productBeanListOne
=
createOrderFlowResponse
.
getData
();
long
totalAmount
=
createOrderFlowResponse
.
getData
().
getAmount
();
response
.
setTotalAmount
(
totalAmount
);
response
.
setCardAmount
(
cardAmount
);
response
.
setCardAmount
(
0
);
response
.
setFatherOrderBean
(
fatherBeanListOne
);
response
.
setProductOrderBean
(
productBeanListOne
);
return
ResponseUtil
.
success
(
response
);
...
...
@@ -651,21 +622,6 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
createOrderRequest
.
setTrackingNo
(
LogThreadLocal
.
getTrackingNo
());
return
mcCafeOrderCenterSdkService
.
createMCCafeOrderFlow
(
createOrderRequest
);
}
/**
* 创建父子订单
*/
public
CreateFatherSonOrderResponse
createFatherSonOrder
(
CreateOrderVo
createOrderVo
,
StoreResponse
.
BizVO
storeResponseDto
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
OrderExtendedReq
orderExtendedReq
,
String
appId
)
{
CreateFatherSonOrderRequest
createFatherSonOrderRequest
=
orderAdapter
.
convertFatherSonOrderRequest
(
createOrderVo
,
shoppingCartGoodsDto
,
orderExtendedReq
,
storeResponseDto
,
appId
);
//查询第三方商品编号
createFatherSonOrderRequest
=
getProductCustomerCodeNew
(
createFatherSonOrderRequest
);
MqMessageRequest
mqMessageRequest
=
new
MqMessageRequest
();
mqMessageRequest
.
setBackOrdersNotifyActivityExchange
(
backOrdersNotifyActivityExchange
);
mqMessageRequest
.
setBackOrdersNotifyActivityQueue
(
backOrdersChangeOrderStatusConsumerQueue
);
createFatherSonOrderRequest
.
setMqMessageRequest
(
mqMessageRequest
);
return
mcCafeOrderCenterSdkService
.
createMCCafeFatherSonOrder
(
createFatherSonOrderRequest
);
}
private
OrderPayResponse
getOrderPayResponse
(
PaymentRequest
paymentRequest
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
OrderPayResponse
orderPayResponse
;
...
...
@@ -695,7 +651,6 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
public
OrderPayResponse
getPreOrderPay
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
PaymentRequest
paymentRequest
,
String
trackingNo
,
Integer
cardAmount
,
String
transId
)
{
try
{
UnifiedOrderRequest
request
=
orderAdapter
.
convent2UnifiedOrderRequest
(
orderBean
,
paymentRequest
,
orderBean
.
getAmount
(),
cardAmount
,
transId
);
System
.
out
.
println
(
JSON
.
toJSONString
(
request
));
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
UnifiedOrderResponse
>
responseBase
=
standardPaymentService
.
unifiedOrder
(
request
,
trackingNo
);
if
(!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
responseBase
.
getCode
()))
{
log
.
error
(
"支付SDK返回信息错误,trackingNo:{} request:{} response:{}"
,
trackingNo
,
JSONObject
.
toJSONString
(
request
),
JSONObject
.
toJSONString
(
responseBase
));
...
...
@@ -890,18 +845,20 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return
sendPaySuccessNoticeMessage
();
}
//核销优惠券
MCCafeConponRequest
mcCafeConponRequest
=
convertOrderBean2CouponLockRequest
(
orderBean
);
if
(
null
!=
mcCafeConponRequest
)
{
CouponRedeemResponse
couponRedeemResponse
=
couponClientService
.
redeem
(
mcCafeConponRequest
);
//失败则取消订单并解锁优惠券
if
(!
RESPONSE_SUCCESS_CODE
.
equals
(
couponRedeemResponse
.
getStatusCode
()))
{
//异步冲正库存积分等
CancelOrderRequest
cancelOrderRequest
=
orderAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
orderBean
.
getCompanyId
(),
AfterSalesType
.
SYSTEM_CANCEL
,
"支付核销优惠券失败"
,
LogTreadLocal
.
getTrackingNo
(),
null
);
orderCenterSdkService
.
orderCancel
(
cancelOrderRequest
);
backOrdersStatusChange
(
orderBean
.
getOid
(),
orderBean
.
getStatus
());
throw
new
ServiceException
(
ResponseResult
.
COUPON_VERIFICATION_FAIL
);
// 如果是到店,则冻结优惠券
// 如果是外卖,则核销优惠券
// 失败重试三次
if
(
OldOrderType
.
TAKE_OUT
.
getCode
().
equals
(
orderBean
.
getType
()))
{
List
<
CouponRedeemResponse
>
couponRedeemResponseList
=
couponClientService
.
redeemBatch
(
orderBean
);
if
(
CollectionUtils
.
isNotEmpty
(
couponRedeemResponseList
)){
// TODO 记录一下核销失败的券
}
}
else
if
(
OldOrderType
.
COLLECT_GOODS
.
getCode
().
equals
(
orderBean
.
getType
())
||
OldOrderType
.
EAT_IN
.
getCode
().
equals
(
orderBean
.
getType
()))
{
List
<
CouponBaseResponse
>
couponBaseResponseList
=
couponClientService
.
lockBatch
(
orderBean
);
if
(
CollectionUtils
.
isNotEmpty
(
couponBaseResponseList
)){
// TODO 记录一下冻结失败的券
}
}
...
...
@@ -1021,100 +978,6 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return
list
;
}
private
MCCafeConponRequest
convertOrderBean2CouponLockRequest
(
OrderBean
orderBean
)
{
if
(
null
==
orderBean
||
CollectionUtils
.
isEmpty
(
orderBean
.
getAccountList
()))
{
return
null
;
}
Optional
<
OrderBean
.
AccountBean
>
accountRequest
=
orderBean
.
getAccountList
().
stream
().
filter
(
account
->
orderAdapter
.
getQueryOrderAccountType
(
orderAdapter
.
getOrderAccountType
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
COUPON
)
||
orderAdapter
.
getQueryOrderAccountType
(
orderAdapter
.
getOrderAccountType
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
PRODUCT_COUPON
)
||
orderAdapter
.
getQueryOrderAccountType
(
orderAdapter
.
getOrderAccountType
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
DISCOUNT_COUPON
)).
findFirst
();
if
(!
accountRequest
.
isPresent
()
||
accountRequest
.
get
().
getPrice
()
==
0
)
{
return
null
;
}
OrderBean
.
AccountBean
accountBean
=
accountRequest
.
get
();
List
<
MCCafeProductRedeemVo
>
products
=
new
ArrayList
<>();
//商品券核销核销参数
if
(
QueryOrderAccountType
.
PRODUCT_COUPON
.
equals
(
orderAdapter
.
getQueryOrderAccountType
(
orderAdapter
.
getOrderAccountType
(
accountBean
.
getType
()))))
{
for
(
int
i
=
0
;
i
<
orderBean
.
getProductList
().
size
();
i
++)
{
OrderBean
.
ProductBean
productBean
=
orderBean
.
getProductList
().
get
(
i
);
String
pid
=
StringUtils
.
isNotBlank
(
productBean
.
getSpecification
())
?
productBean
.
getSpecification
()
:
productBean
.
getProductId
();
if
(!
org
.
springframework
.
util
.
CollectionUtils
.
isEmpty
(
orderBean
.
getProductList
().
get
(
i
).
getDiscountList
()))
{
List
<
OrderBean
.
ProductBean
.
ProductDiscount
>
discounts
=
orderBean
.
getProductList
().
get
(
i
).
getDiscountList
().
stream
().
filter
(
productDiscount
->
productDiscount
.
getDiscountId
().
equals
(
accountBean
.
getAccountId
())).
collect
(
Collectors
.
toList
());
for
(
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
);
}
}
}
}
MCCafeConponRequest
mcCafeConponRequest
=
new
MCCafeConponRequest
();
mcCafeConponRequest
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
mcCafeConponRequest
.
setReqtype
(
CouponReqTypeEnum
.
REDEEM
.
getCode
());
mcCafeConponRequest
.
setPartnerId
(
Integer
.
parseInt
(
orderBean
.
getCompanyId
()));
mcCafeConponRequest
.
setStore_id
(
orderBean
.
getShopId
());
mcCafeConponRequest
.
setStation_id
(
"-1"
);
mcCafeConponRequest
.
setOperator_id
(
"-1"
);
// 订单号
mcCafeConponRequest
.
setTrans_id
(
orderBean
.
getOid
());
mcCafeConponRequest
.
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
);
mcCafeConponRequest
.
setTransactions
(
transactions
);
mcCafeConponRequest
.
setSign
(
"skip"
);
mcCafeConponRequest
.
setAppFlag
(
"kgd.N"
);
mcCafeConponRequest
.
setBusiness_date
(
cn
.
freemud
.
base
.
util
.
DateUtil
.
convert2Str
(
new
Date
(),
cn
.
freemud
.
base
.
util
.
DateUtil
.
FORMAT_yyyyMMdd
));
return
mcCafeConponRequest
;
}
private
MCCafeCouponLockRequest
convertOrderBean2CouponUnlockRequest
(
OrderBean
orderBean
)
{
if
(
null
==
orderBean
||
CollectionUtils
.
isEmpty
(
orderBean
.
getAccountList
()))
{
return
null
;
}
Optional
<
OrderBean
.
AccountBean
>
accountRequest
=
orderBean
.
getAccountList
().
stream
().
filter
(
account
->
orderAdapter
.
getQueryOrderAccountType
(
orderAdapter
.
getOrderAccountType
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
COUPON
)
||
orderAdapter
.
getQueryOrderAccountType
(
orderAdapter
.
getOrderAccountType
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
PRODUCT_COUPON
)
||
orderAdapter
.
getQueryOrderAccountType
(
orderAdapter
.
getOrderAccountType
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
DISCOUNT_COUPON
)).
findFirst
();
if
(!
accountRequest
.
isPresent
()
||
accountRequest
.
get
().
getPrice
()
==
0
)
{
return
null
;
}
OrderBean
.
AccountBean
accountBean
=
accountRequest
.
get
();
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/service/impl/OrderAdapterServiceImpl.java
View file @
039fb6e3
...
...
@@ -254,10 +254,6 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
if
(!
PayStatus
.
NOT_PAY
.
getCode
().
equals
(
orderBean
.
getPayStatus
())){
return
orderAdapter
.
sendPaySuccessNoticeMessage
();
}
//买券虚拟订单
if
(
orderBean
.
getBizType
()
==
6
)
{
return
sellCouponOrderService
.
paySuccessCallback
(
message
,
confirmOrderDto
,
orderBeans
);
}
/**
* 默认点餐处理
*/
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
039fb6e3
...
...
@@ -111,7 +111,6 @@ import com.freemud.sdk.api.assortment.order.request.order.*;
import
com.freemud.sdk.api.assortment.order.response.order.*
;
import
com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse
;
import
com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService
;
import
com.freemud.sdk.api.assortment.order.util.LockUtils
;
import
com.freemud.sdk.api.assortment.order.vo.ProductGroupVo
;
import
com.freemud.sdk.api.assortment.orderdistributor.entity.dto.PaymentMqMessageDto
;
import
com.freemud.sdk.api.assortment.orderdistributor.service.PaymentQueueService
;
...
...
@@ -123,22 +122,16 @@ import com.google.common.collect.Lists;
import
com.google.common.collect.Maps
;
import
com.google.gson.Gson
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.beanutils.BeanUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.MapUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.builder.ToStringBuilder
;
import
org.apache.commons.lang.time.DateUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.boot.autoconfigure.AutoConfigureOrder
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.stereotype.Service
;
import
tk.mybatis.mapper.util.StringUtil
;
import
java.lang.reflect.InvocationTargetException
;
import
java.math.BigDecimal
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
...
...
@@ -1791,8 +1784,9 @@ public class OrderServiceImpl implements Orderservice {
// 0元订单如果不需要支付,自定义支付单号
orderPayResponse
=
getOrderPayResponse
(
paymentRequest
,
createPrepayRequestDto
.
getFatherOrderBean
());
}
if
(
orderPayResponse
==
null
)
{
return
failPreOrderPay
(
LogThreadLocal
.
getTrackingNo
(),
createPrepayRequestDto
.
getProductOrderBean
(),
cardCode
,
createPrepayRequestDto
.
getOrderClient
());
if
(
orderPayResponse
==
null
||
Objects
.
isNull
(
orderPayResponse
.
getFmId
()))
{
return
failPreOrderPay
(
LogThreadLocal
.
getTrackingNo
(),
createPrepayRequestDto
.
getProductOrderBean
(),
cardCode
,
createPrepayRequestDto
.
getOrderClient
(),
Objects
.
isNull
(
orderPayResponse
)
?
null
:
orderPayResponse
.
getMsg
());
}
createOrderResponse
=
orderAdapter
.
convent2CreateFatherSonOrderResponseVo
(
orderPayResponse
,
createPrepayRequestDto
.
getProductOrderBean
());
BaseResponse
baseEditResponse
=
this
.
updateOrderInfo
(
orderPayResponse
,
createPrepayRequestDto
.
getOrderExtInfoDTO
(),
createPrepayRequestDto
.
getProductOrderBean
(),
LogThreadLocal
.
getTrackingNo
());
...
...
@@ -1869,12 +1863,12 @@ public class OrderServiceImpl implements Orderservice {
return
orderPayResponse
;
}
private
BaseResponse
failPreOrderPay
(
String
trackingNo
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
String
cardCode
,
OrderClientType
orderClient
)
{
private
BaseResponse
failPreOrderPay
(
String
trackingNo
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
String
cardCode
,
OrderClientType
orderClient
,
String
msg
)
{
List
<
OrderClientType
>
notCancelOrderClientList
=
Lists
.
newArrayList
(
OrderClientType
.
APP
);
if
(!
notCancelOrderClientList
.
contains
(
orderClient
))
{
//失败冲正库存,冲正活动库存,取消订单
CancelOrderRequest
cancelOrderRequest
=
orderAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
orderBean
.
getCompanyId
(),
AfterSalesType
.
SYSTEM_CANCEL
,
"获取预支付失败"
,
trackingNo
,
null
);
AfterSalesType
.
SYSTEM_CANCEL
,
StringUtils
.
defaultIfBlank
(
msg
,
"获取预支付失败"
)
,
trackingNo
,
null
);
orderCenterSdkService
.
orderCancel
(
cancelOrderRequest
);
// TODO: 2019/9/10 hubowen mq推送变更
backOrdersStatusChange
(
orderBean
.
getOid
(),
orderBean
.
getStatus
());
...
...
@@ -1887,29 +1881,35 @@ public class OrderServiceImpl implements Orderservice {
}
public
OrderPayResponse
getPreOrderPay
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
PaymentRequest
paymentRequest
,
String
trackingNo
,
Integer
cardAmount
,
String
transId
)
{
OrderPayResponse
orderPayResponse
;
try
{
UnifiedOrderRequest
request
=
orderAdapter
.
convent2UnifiedOrderRequest
(
orderBean
,
paymentRequest
,
orderBean
.
getAmount
(),
cardAmount
,
transId
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
UnifiedOrderResponse
>
responseBase
=
standardPaymentService
.
unifiedOrder
(
request
,
trackingNo
);
if
(!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
responseBase
.
getCode
()))
{
log
.
error
(
"支付SDK返回信息错误,trackingNo:{} request:{} response:{}"
,
trackingNo
,
JSONObject
.
toJSONString
(
request
),
JSONObject
.
toJSONString
(
responseBase
));
return
null
;
}
// 1.9.34 预支付失败需要把原因进行记录
orderPayResponse
=
new
OrderPayResponse
();
orderPayResponse
.
setMsg
(
responseBase
.
getMessage
());
}
else
{
putDelMq
(
request
.
getPartnerId
(),
request
.
getStoreId
(),
responseBase
.
getData
().
getFmId
(),
orderBean
.
getOid
());
OrderPayResponse
orderPayResponse
=
orderAdapter
.
convent2OrderPayResponse
(
responseBase
.
getData
());
orderPayResponse
=
orderAdapter
.
convent2OrderPayResponse
(
responseBase
.
getData
());
orderPayResponse
.
setWxAppid
(
paymentRequest
.
getWxAppId
());
orderPayResponse
.
setOpenId
(
paymentRequest
.
getOpenId
());
orderPayResponse
.
setPartnerId
(
orderBean
.
getCompanyId
());
orderPayResponse
.
setOrderId
(
orderBean
.
getOid
());
return
orderPayResponse
;
}
}
catch
(
Exception
e
)
{
LogUtil
.
error
(
"getPreOrderPay_error"
,
JSONObject
.
toJSONString
(
orderBean
),
JSONObject
.
toJSONString
(
paymentRequest
));
//TODO 邮件告警
return
null
;
orderPayResponse
=
new
OrderPayResponse
();
orderPayResponse
.
setMsg
(
"getPreOrderPay_error"
);
}
return
orderPayResponse
;
}
public
OrderPayResponse
svcPay
(
String
cardCode
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
PaymentRequest
paymentRequest
,
String
transId
,
String
trackingNo
)
{
CodePayRequest
request
=
new
CodePayRequest
();
OrderPayResponse
orderPayResponse
=
new
OrderPayResponse
();
String
partnerId
=
orderBean
.
getCompanyId
();
request
.
setBody
(
orderBean
.
getShopName
());
request
.
setBusinessDate
(
DateUtil
.
convert2String
(
new
Date
(),
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
));
...
...
@@ -1928,19 +1928,21 @@ public class OrderServiceImpl implements Orderservice {
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
SVCCardAmountResponse
>
svcCardAmountResponseBaseResponse
=
paymentNewService
.
querySVCCardAmount
(
svcRequest
,
trackingNo
);
if
(
svcCardAmountResponseBaseResponse
==
null
||
!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
svcCardAmountResponseBaseResponse
.
getCode
())
||
svcCardAmountResponseBaseResponse
.
getData
().
getData
()
==
null
||
CollectionUtils
.
isEmpty
(
svcCardAmountResponseBaseResponse
.
getData
().
getData
().
getCardSimpleInfos
()))
{
return
null
;
orderPayResponse
.
setMsg
(
Objects
.
isNull
(
svcCardAmountResponseBaseResponse
)
?
"获取svc卡余额异常"
:
svcCardAmountResponseBaseResponse
.
getMessage
());
return
orderPayResponse
;
}
Integer
amount
=
svcCardAmountResponseBaseResponse
.
getData
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
vamount
=
svcCardAmountResponseBaseResponse
.
getData
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
if
(
amount
+
vamount
<
orderBean
.
getAmount
())
{
return
null
;
orderPayResponse
.
setMsg
(
"svc卡余额不足"
);
return
orderPayResponse
;
}
//svc卡支付
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
CodePayResponse
>
responseBase
=
paymentNewService
.
codePay
(
request
,
trackingNo
);
if
(
responseBase
==
null
||
!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
responseBase
.
getCode
())
||
responseBase
.
getData
().
getData
()
==
null
)
{
return
null
;
}
OrderPayResponse
orderPayResponse
=
new
OrderPayResponse
();
// 1.9.34 预支付失败需要把原因进行记录
orderPayResponse
.
setMsg
(
Objects
.
isNull
(
responseBase
)
?
"svc卡支付异常"
:
responseBase
.
getMessage
());
}
else
{
CodePayResponse
.
CodePayDate
codePayResponse
=
responseBase
.
getData
().
getData
();
orderPayResponse
.
setFmId
(
codePayResponse
.
getFmId
());
orderPayResponse
.
setPayTransId
(
codePayResponse
.
getPayTransId
());
...
...
@@ -1948,6 +1950,7 @@ public class OrderServiceImpl implements Orderservice {
orderPayResponse
.
setOpenId
(
paymentRequest
.
getOpenId
());
orderPayResponse
.
setPartnerId
(
orderBean
.
getCompanyId
());
orderPayResponse
.
setOrderId
(
orderBean
.
getOid
());
}
return
orderPayResponse
;
}
...
...
@@ -2201,11 +2204,13 @@ public class OrderServiceImpl implements Orderservice {
QueryOrdersResponse
.
DataBean
.
OrderBean
productOrderBean
=
operateDto
.
getProductOrderBean
();
//支付-- 包含商品券无需支付、唤起微信支付、储值卡支付直接支付、扫脸支付
OrderPayResponse
orderPayResponse
=
pay
(
userLoginInfoDto
,
createOrderVo
,
totalAmount
,
cardAmount
,
fatherOrderBean
);
if
(
orderPayResponse
==
null
)
{
// 默认支付成功必有非码订单号,不管成功与否,orderPayResponse都是不空的.此处是防御式处理
if
(
orderPayResponse
==
null
||
Objects
.
isNull
(
orderPayResponse
.
getFmId
()))
{
if
(
createOrderVo
.
getFaceCode
()
!=
null
){
createOrderVo
.
setCardCode
(
createOrderVo
.
getFaceCode
());
}
return
failPreOrderPay
(
LogThreadLocal
.
getTrackingNo
(),
productOrderBean
,
createOrderVo
.
getCardCode
(),
null
);
return
failPreOrderPay
(
LogThreadLocal
.
getTrackingNo
(),
productOrderBean
,
createOrderVo
.
getCardCode
(),
null
,
Objects
.
isNull
(
orderPayResponse
)
?
null
:
orderPayResponse
.
getMsg
());
}
//更新订单extinfo信息
BaseResponse
baseEditResponse
=
this
.
updateOrderInfo
(
orderPayResponse
,
orderExtInfoDTO
,
productOrderBean
,
LogThreadLocal
.
getTrackingNo
());
...
...
@@ -2360,6 +2365,7 @@ public class OrderServiceImpl implements Orderservice {
*/
public
OrderPayResponse
facePay
(
String
cardCode
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
PaymentRequest
paymentRequest
,
String
trackingNo
)
{
FacePayRequestDto
request
=
new
FacePayRequestDto
();
OrderPayResponse
orderPayResponse
=
new
OrderPayResponse
();
String
partnerId
=
orderBean
.
getCompanyId
();
request
.
setBody
(
orderBean
.
getShopName
());
request
.
setBusinessDate
(
DateUtil
.
convert2String
(
new
Date
(),
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
));
...
...
@@ -2381,16 +2387,17 @@ public class OrderServiceImpl implements Orderservice {
LogUtil
.
error
(
"facePay_error"
,
null
,
null
,
e
);
}
if
(
responseDto
==
null
||
!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
responseDto
.
getCode
())
||
responseDto
.
getData
()
==
null
)
{
return
null
;
}
// 1.9.34 预支付失败需要把原因进行记录
orderPayResponse
.
setMsg
(
Objects
.
isNull
(
responseDto
)
?
"扫脸支付异常"
:
responseDto
.
getMessage
());
}
else
{
FacePayResponseDto
response
=
responseDto
.
getData
();
OrderPayResponse
orderPayResponse
=
new
OrderPayResponse
();
orderPayResponse
.
setFmId
(
response
.
getFmId
());
orderPayResponse
.
setPayTransId
(
response
.
getPayTransId
());
orderPayResponse
.
setWxAppid
(
paymentRequest
.
getWxAppId
());
orderPayResponse
.
setOpenId
(
paymentRequest
.
getOpenId
());
orderPayResponse
.
setPartnerId
(
orderBean
.
getCompanyId
());
orderPayResponse
.
setOrderId
(
orderBean
.
getOid
());
}
return
orderPayResponse
;
}
...
...
order-application-service/src/main/java/cn/freemud/service/mccafe/CouponClientService.java
View file @
039fb6e3
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.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 +15,23 @@ 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
);
List
<
CouponRedeemResponse
>
redeemBatch
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
);
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
);
List
<
CouponBaseResponse
>
lockBatch
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
);
CouponBaseResponse
unlock
(
MCCafeCouponLockRequest
mcCafeCouponLockRequest
);
}
order-application-service/src/main/java/cn/freemud/service/mccafe/MCCafeOrderCenterSdkService.java
View file @
039fb6e3
...
...
@@ -14,10 +14,5 @@ public interface MCCafeOrderCenterSdkService {
*/
CreateOrderResponse
createMCCafeOrderFlow
(
CreateOrderRequest
createOrderRequest
);
/**
* 创建麦咖啡父子订单
*/
CreateFatherSonOrderResponse
createMCCafeFatherSonOrder
(
CreateFatherSonOrderRequest
createFatherSonOrderRequest
);
}
order-application-service/src/main/java/cn/freemud/service/mccafe/impl/CouponClientServiceImpl.java
View file @
039fb6e3
package
cn
.
freemud
.
service
.
mccafe
.
impl
;
import
cn.freemud.adapter.CouponAdapter
;
import
cn.freemud.adapter.OrderAdapter
;
import
cn.freemud.base.constant.Version
;
import
cn.freemud.entities.dto.coupon.MCCafeConponRequest
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.dto.QueryOrdersResponseDto
;
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.enums.CouponReqTypeEnum
;
import
cn.freemud.enums.MCCafeChannelEnum
;
import
cn.freemud.enums.OrderAccountType
;
import
cn.freemud.service.mccafe.CouponClientService
;
import
cn.freemud.service.mccafe.thirdparty.CouponOfflineMCCafeClient
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse
;
...
...
@@ -18,6 +23,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 +36,12 @@ public class CouponClientServiceImpl implements CouponClientService {
@Autowired
private
CouponOfflineMCCafeClient
couponOfflineMCCafeClient
;
@Autowired
private
CouponAdapter
couponAdapter
;
@Autowired
private
OrderAdapter
orderAdapter
;
@Override
public
CouponRedeemResponse
redeem
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
)
{
if
(
null
==
orderBean
||
CollectionUtils
.
isEmpty
(
accounts
))
{
...
...
@@ -67,16 +79,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 +97,94 @@ 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
)
{
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
;
}
List
<
MCCafeCouponRequest
>
list
=
accountList
.
stream
().
map
(
accountBean
->
couponAdapter
.
convert2MCCafeCouponRequest
(
orderBean
,
accountBean
)).
collect
(
Collectors
.
toList
());
CouponRedeemResponse
couponRedeemResponse
=
new
CouponRedeemResponse
();
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
;
}
List
<
MCCafeCouponRequest
>
list
=
accountList
.
stream
().
map
(
accountBean
->
couponAdapter
.
convert2MCCafeCouponRequest
(
orderBean
,
accountBean
)).
collect
(
Collectors
.
toList
());
List
<
CouponRedeemResponse
>
couponRedeemResponseList
=
new
ArrayList
<>();
redeem:
for
(
MCCafeCouponRequest
request
:
list
)
{
CouponRedeemResponse
couponRedeemResponse
=
null
;
retry:
for
(
int
i
=
0
;
i
<
3
;
i
++)
{
couponRedeemResponse
=
redeem
(
request
);
if
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
couponRedeemResponse
.
getStatusCode
()))
{
continue
redeem
;
}
}
couponRedeemResponseList
.
add
(
couponRedeemResponse
);
}
return
couponRedeemResponseList
;
}
@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 +220,75 @@ 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
;
}
List
<
MCCafeCouponLockRequest
>
list
=
accountList
.
stream
().
map
(
accountBean
->
couponAdapter
.
convert2MCCafeCouponLockRequest
(
orderBean
,
accountBean
)).
collect
(
Collectors
.
toList
());
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
)
{
CouponBaseResponse
baseResponse
=
null
;
retry:
for
(
int
i
=
0
;
i
<
3
;
i
++)
{
baseResponse
=
lock
(
request
);
if
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
baseResponse
.
getStatusCode
()))
{
continue
lock
;
}
}
baseResponseList
.
add
(
baseResponse
);
}
return
baseResponseList
;
}
@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 @
039fb6e3
...
...
@@ -119,27 +119,6 @@ public class MCCafeOrderCenterSdkServiceImpl implements MCCafeOrderCenterSdkServ
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
,
List
<
CreateOrderAccountRequest
>
accounts
,
MqMessageRequest
mqMessageRequest
,
String
menuType
)
{
//TODO 转换获取库存信息,扣减库存
...
...
@@ -201,39 +180,39 @@ public class MCCafeOrderCenterSdkServiceImpl implements MCCafeOrderCenterSdkServ
// }
// }
// 如果是
自提
,则冻结优惠券,失败提示下单失败并冲正库存积分等
// 如果是
到店
,则冻结优惠券,失败提示下单失败并冲正库存积分等
// 如果是外卖,则核销优惠券,失败提示下单失败并冲正库存积分等
if
(
OldOrderType
.
TAKE_OUT
.
getCode
().
equals
(
orderBean
.
getType
()))
{
CouponRedeemResponse
couponRedeemResponse
=
couponClientService
.
redeem
(
orderBean
,
accounts
);
if
(
couponRedeemResponse
!=
null
){
if
(!
ObjectUtils
.
equals
(
RESPONSE_SUCCESS_STR
,
couponRedeemResponse
.
getStatusCode
()))
{
//TODO 失败取消订单,异步冲正库存
CancelOrderRequest
cancelOrderRequest
=
orderSdkAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
orderBean
.
getCompanyId
(),
AfterSalesType
.
SYSTEM_CANCEL
,
"核销券码失败"
,
""
,
null
);
orderCenterSdkService
.
orderCancel
(
cancelOrderRequest
);
//失败异步冲正库存,取消订单
backOrdersNotifyActivity
(
orderBean
,
mqMessageRequest
.
getBackOrdersNotifyActivityQueue
(),
mqMessageRequest
.
getBackOrdersNotifyActivityExchange
());
return
BaseOrderResponse
.
getErrorBaseOrderResponse
(
couponRedeemResponse
.
getStatusCode
(),
"核销券码失败"
);
}
}
}
else
if
(
OldOrderType
.
COLLECT_GOODS
.
getCode
().
equals
(
orderBean
.
getType
())
||
OldOrderType
.
EAT_IN
.
getCode
().
equals
(
orderBean
.
getType
()))
{
CouponBaseResponse
couponBaseResponse
=
couponClientService
.
lock
(
orderBean
,
accounts
);
if
(
couponBaseResponse
!=
null
){
if
(!
ObjectUtils
.
equals
(
RESPONSE_SUCCESS_STR
,
couponBaseResponse
.
getStatusCode
()))
{
//TODO 失败取消订单,异步冲正库存
CancelOrderRequest
cancelOrderRequest
=
orderSdkAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
orderBean
.
getCompanyId
(),
AfterSalesType
.
SYSTEM_CANCEL
,
"冻结券码失败"
,
""
,
null
);
orderCenterSdkService
.
orderCancel
(
cancelOrderRequest
);
//失败异步冲正库存,取消订单
backOrdersNotifyActivity
(
orderBean
,
mqMessageRequest
.
getBackOrdersNotifyActivityQueue
(),
mqMessageRequest
.
getBackOrdersNotifyActivityExchange
());
return
BaseOrderResponse
.
getErrorBaseOrderResponse
(
couponBaseResponse
.
getStatusCode
(),
"冻结券码失败"
);
}
}
}
//
if(OldOrderType.TAKE_OUT.getCode().equals(orderBean.getType())) {
// CouponRedeemResponse couponRedeemResponse = couponClientService.redeemBatch
(orderBean, accounts);
//
//
if (couponRedeemResponse!=null){
//
//
if (!ObjectUtils.equals(RESPONSE_SUCCESS_STR, couponRedeemResponse.getStatusCode())) {
//
//TODO 失败取消订单,异步冲正库存
//
CancelOrderRequest cancelOrderRequest = orderSdkAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(),
//
AfterSalesType.SYSTEM_CANCEL, "核销券码失败", "", null);
//
orderCenterSdkService.orderCancel(cancelOrderRequest);
//
//失败异步冲正库存,取消订单
//
backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange());
//
return BaseOrderResponse.getErrorBaseOrderResponse(couponRedeemResponse.getStatusCode(), "核销券码失败");
//
}
//
}
//
} else if(OldOrderType.COLLECT_GOODS.getCode().equals(orderBean.getType()) || OldOrderType.EAT_IN.getCode().equals(orderBean.getType())) {
// CouponBaseResponse couponBaseResponse = couponClientService.lockBatch
(orderBean, accounts);
//
//
if (couponBaseResponse!=null){
//
//
if (!ObjectUtils.equals(RESPONSE_SUCCESS_STR, couponBaseResponse.getStatusCode())) {
//
//TODO 失败取消订单,异步冲正库存
//
CancelOrderRequest cancelOrderRequest = orderSdkAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(),
//
AfterSalesType.SYSTEM_CANCEL, "冻结券码失败", "", null);
//
orderCenterSdkService.orderCancel(cancelOrderRequest);
//
//失败异步冲正库存,取消订单
//
backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange());
//
return BaseOrderResponse.getErrorBaseOrderResponse(couponBaseResponse.getStatusCode(), "冻结券码失败");
//
}
//
}
//
}
return
BaseOrderResponse
.
getErrorBaseOrderResponse
(
RESPONSE_SUCCESS_STR
,
""
);
}
...
...
order-application-service/src/main/java/cn/freemud/service/mccafe/thirdparty/CouponOfflineMCCafeClient.java
View file @
039fb6e3
...
...
@@ -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/main/java/cn/freemud/service/thirdparty/ShoppingCartClient.java
View file @
039fb6e3
...
...
@@ -73,4 +73,10 @@ public interface ShoppingCartClient {
@PostMapping
(
value
=
"/getShoppingCartGoodsApportion?lang=zh_CN"
)
BaseResponse
<
ShoppingCartGoodsDto
>
getShoppingCartGoodsApportionNew
(
@RequestBody
GetShoppingCartGoodsApportionDto
getShoppingCartGoodsApportionDto
);
/**
* 获取购物车详情,包含均摊信息
*/
@PostMapping
(
value
=
"/MCoffee/getshoppingcartGoodsApportion?lang=zh_CN"
)
BaseResponse
<
ShoppingCartGoodsDto
>
getMCCafeShoppingCartGoodsApportionNew
(
@RequestBody
GetShoppingCartGoodsApportionDto
getShoppingCartGoodsApportionDto
);
}
order-application-service/src/test/java/cn.freemud/service/CouponActivityServiceTest.java
View file @
039fb6e3
...
...
@@ -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