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
21b26916
Commit
21b26916
authored
Aug 30, 2021
by
ping.wu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
礼品卡支付调整
parent
ba22ef47
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
402 additions
and
151 deletions
+402
-151
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+6
-0
order-application-service/src/main/java/cn/freemud/entities/dto/pay/svc/CardSimpleInfo.java
+16
-0
order-application-service/src/main/java/cn/freemud/entities/dto/pay/svc/SVCCardAmountRequestDto.java
+13
-0
order-application-service/src/main/java/cn/freemud/entities/dto/pay/svc/SVCCardAmountResponseDto.java
+12
-0
order-application-service/src/main/java/cn/freemud/entities/dto/user/GetSvcInfoByMemberIdResponseVo.java
+13
-0
order-application-service/src/main/java/cn/freemud/entities/dto/user/StatisticalScoreRequestVo.java
+3
-0
order-application-service/src/main/java/cn/freemud/entities/vo/CreateOrderVo.java
+2
-0
order-application-service/src/main/java/cn/freemud/entities/vo/encircle/CreateReserveOrderVo.java
+3
-0
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
+31
-14
order-application-service/src/main/java/cn/freemud/service/impl/EncircleOrderServiceImpl.java
+16
-6
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
+42
-42
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+109
-51
order-application-service/src/main/java/cn/freemud/service/thirdparty/CustomerPropertyClient.java
+7
-0
order-application-service/src/main/java/cn/freemud/service/thirdparty/SvcAppClient.java
+20
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/enums/PayChannelType.java
+4
-2
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/pay/CardSimpleInfo.java
+16
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/pay/SVCCardAmountRequest.java
+13
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/pay/SVCCardAmountResponse.java
+12
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartCollageServiceImpl.java
+12
-11
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
+29
-25
shopping-cart-application-service/src/main/java/cn/freemud/service/thirdparty/SvcAppClient.java
+23
-0
No files found.
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
21b26916
...
@@ -4123,6 +4123,12 @@ public class OrderAdapter {
...
@@ -4123,6 +4123,12 @@ public class OrderAdapter {
payPlatformVO
.
setAmount
(
0L
);
payPlatformVO
.
setAmount
(
0L
);
platforms
.
add
(
payPlatformVO
);
platforms
.
add
(
payPlatformVO
);
payPlatformVO
=
new
PayPlatformVO
();
payPlatformVO
.
setClientCode
(
PayChannelType
.
GIFTCARD
.
getEbcode
());
payPlatformVO
.
setEbcode
(
PayChannelType
.
GIFTCARD
.
getEbcode
());
payPlatformVO
.
setAmount
(
0L
);
platforms
.
add
(
payPlatformVO
);
String
ebcode
=
PayChannelType
.
getByIndex
(
Byte
.
parseByte
(
channel
)).
getEbcode
();
String
ebcode
=
PayChannelType
.
getByIndex
(
Byte
.
parseByte
(
channel
)).
getEbcode
();
payPlatformVO
=
new
PayPlatformVO
();
payPlatformVO
=
new
PayPlatformVO
();
payPlatformVO
.
setAmount
(
0L
);
payPlatformVO
.
setAmount
(
0L
);
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/pay/svc/CardSimpleInfo.java
0 → 100644
View file @
21b26916
package
cn
.
freemud
.
entities
.
dto
.
pay
.
svc
;
import
lombok.Data
;
@Data
public
class
CardSimpleInfo
{
private
Integer
amount
;
private
String
applyId
;
private
String
cardCode
;
private
String
cardName
;
private
Integer
vamount
;
//储值卡类型:0一次性卡(礼品卡),3重复使用卡(储值卡),默认3"
private
Integer
applyType
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/pay/svc/SVCCardAmountRequestDto.java
0 → 100644
View file @
21b26916
package
cn
.
freemud
.
entities
.
dto
.
pay
.
svc
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
SVCCardAmountRequestDto
{
private
String
partnerId
;
private
List
<
String
>
cardCodes
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/pay/svc/SVCCardAmountResponseDto.java
0 → 100644
View file @
21b26916
package
cn
.
freemud
.
entities
.
dto
.
pay
.
svc
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
SVCCardAmountResponseDto
{
private
List
<
CardSimpleInfo
>
cardSimpleInfos
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/user/GetSvcInfoByMemberIdResponseVo.java
0 → 100644
View file @
21b26916
package
cn
.
freemud
.
entities
.
dto
.
user
;
import
lombok.Data
;
@Data
public
class
GetSvcInfoByMemberIdResponseVo
{
// private String memberId;
private
String
cardCode
;
private
Integer
statusFlag
;
private
String
createTime
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/user/StatisticalScoreRequestVo.java
View file @
21b26916
...
@@ -14,4 +14,7 @@ public class StatisticalScoreRequestVo {
...
@@ -14,4 +14,7 @@ public class StatisticalScoreRequestVo {
// @ApiModelProperty("是否查询即将到期积分{0:否,1:是}")
// @ApiModelProperty("是否查询即将到期积分{0:否,1:是}")
private
Integer
status
;
private
Integer
status
;
//卡类型(-1:查询全部 0:礼品卡,3:储值卡(默认))")
private
Integer
applyType
;
}
}
order-application-service/src/main/java/cn/freemud/entities/vo/CreateOrderVo.java
View file @
21b26916
...
@@ -225,6 +225,8 @@ public class CreateOrderVo {
...
@@ -225,6 +225,8 @@ public class CreateOrderVo {
*/
*/
private
String
cardCode
;
private
String
cardCode
;
private
List
<
String
>
cardCodes
;
/**
/**
* 扫脸支付使用
* 扫脸支付使用
*/
*/
...
...
order-application-service/src/main/java/cn/freemud/entities/vo/encircle/CreateReserveOrderVo.java
View file @
21b26916
...
@@ -2,6 +2,7 @@ package cn.freemud.entities.vo.encircle;
...
@@ -2,6 +2,7 @@ package cn.freemud.entities.vo.encircle;
import
lombok.Data
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
import
java.util.List
;
/**
/**
* All rights Reserved, Designed By www.freemud.cn
* All rights Reserved, Designed By www.freemud.cn
...
@@ -51,4 +52,6 @@ public class CreateReserveOrderVo extends EncircleReserveBaseVo{
...
@@ -51,4 +52,6 @@ public class CreateReserveOrderVo extends EncircleReserveBaseVo{
* svc 卡支付使用
* svc 卡支付使用
*/
*/
private
String
cardCode
;
private
String
cardCode
;
private
List
<
String
>
cardCodes
;
}
}
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
View file @
21b26916
...
@@ -26,6 +26,9 @@ import cn.freemud.entities.dto.order.BusinessDate;
...
@@ -26,6 +26,9 @@ import cn.freemud.entities.dto.order.BusinessDate;
import
cn.freemud.entities.dto.shoppingCart.GetShoppingCartGoodsApportionDto
;
import
cn.freemud.entities.dto.shoppingCart.GetShoppingCartGoodsApportionDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.store.*
;
import
cn.freemud.entities.dto.store.*
;
import
cn.freemud.entities.dto.user.CustomerPropertyBaseResponse
;
import
cn.freemud.entities.dto.user.GetSvcInfoByMemberIdResponseVo
;
import
cn.freemud.entities.dto.user.StatisticalScoreRequestVo
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.GetMemberCouponRequestVo
;
import
cn.freemud.entities.vo.GetMemberCouponRequestVo
;
import
cn.freemud.entities.vo.ShoppingCartInfoRequestVo
;
import
cn.freemud.entities.vo.ShoppingCartInfoRequestVo
;
...
@@ -36,10 +39,7 @@ import cn.freemud.service.CouponService;
...
@@ -36,10 +39,7 @@ import cn.freemud.service.CouponService;
import
cn.freemud.service.adapter.OrderCheckAdapter
;
import
cn.freemud.service.adapter.OrderCheckAdapter
;
import
cn.freemud.service.order.OrderRelationFactory
;
import
cn.freemud.service.order.OrderRelationFactory
;
import
cn.freemud.service.order.OrderRelationService
;
import
cn.freemud.service.order.OrderRelationService
;
import
cn.freemud.service.thirdparty.DeliveryFeiginClient
;
import
cn.freemud.service.thirdparty.*
;
import
cn.freemud.service.thirdparty.ShoppingCartClient
;
import
cn.freemud.service.thirdparty.StoreBaseApiClient
;
import
cn.freemud.service.thirdparty.StoreClient
;
import
cn.freemud.utils.AppLogUtil
;
import
cn.freemud.utils.AppLogUtil
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
...
@@ -108,8 +108,11 @@ public class CheckOrder {
...
@@ -108,8 +108,11 @@ public class CheckOrder {
@Autowired
@Autowired
private
MemberCenterService
memberCenterService
;
private
MemberCenterService
memberCenterService
;
//会员SDK
//会员SDK
// @Autowired
// private MemberPropertyService memberPropertyService;
@Autowired
@Autowired
private
MemberPropertyService
memberPropertyService
;
private
CustomerPropertyClient
customerPropertyClient
;
@Autowired
@Autowired
private
ShoppingCartClient
shoppingCartClient
;
private
ShoppingCartClient
shoppingCartClient
;
// @Autowired
// @Autowired
...
@@ -151,8 +154,15 @@ public class CheckOrder {
...
@@ -151,8 +154,15 @@ public class CheckOrder {
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isEmpty
(
userLoginInfoDto
.
getMemberId
()))
{
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isEmpty
(
userLoginInfoDto
.
getMemberId
()))
{
throw
new
ServiceException
(
ResponseResult
.
NOT_LOGIN
);
throw
new
ServiceException
(
ResponseResult
.
NOT_LOGIN
);
}
}
Set
<
String
>
cardCodes
=
new
HashSet
<>();
if
(
StringUtils
.
isNotEmpty
(
createOrderVo
.
getCardCode
())){
cardCodes
.
add
(
createOrderVo
.
getCardCode
());
}
if
(
CollectionUtils
.
isNotEmpty
(
createOrderVo
.
getCardCodes
())){
cardCodes
.
addAll
(
createOrderVo
.
getCardCodes
());
}
//校验会员svc卡信息
//校验会员svc卡信息
checkCardCode
(
createOrderVo
.
getPartnerId
(),
userLoginInfoDto
.
getMemberId
(),
c
reateOrderVo
.
getCardCode
()
);
checkCardCode
(
createOrderVo
.
getPartnerId
(),
userLoginInfoDto
.
getMemberId
(),
c
ardCodes
);
createOrderVo
.
setUserId
(
userLoginInfoDto
.
getMemberId
());
createOrderVo
.
setUserId
(
userLoginInfoDto
.
getMemberId
());
return
userLoginInfoDto
;
return
userLoginInfoDto
;
...
@@ -166,7 +176,7 @@ public class CheckOrder {
...
@@ -166,7 +176,7 @@ public class CheckOrder {
throw
new
ServiceException
(
ResponseResult
.
NOT_LOGIN
);
throw
new
ServiceException
(
ResponseResult
.
NOT_LOGIN
);
}
}
//校验会员svc卡信息
//校验会员svc卡信息
checkCardCode
(
userLoginInfoDto
.
getPartnerId
(),
userLoginInfoDto
.
getMemberId
(),
cardCode
);
//
checkCardCode(userLoginInfoDto.getPartnerId(), userLoginInfoDto.getMemberId(), cardCode);
return
userLoginInfoDto
;
return
userLoginInfoDto
;
}
}
...
@@ -1060,23 +1070,30 @@ public class CheckOrder {
...
@@ -1060,23 +1070,30 @@ public class CheckOrder {
}
}
public
void
checkCardCode
(
String
partnerId
,
String
memberId
,
String
cardCode
)
{
/**
if
(
StringUtils
.
isBlank
(
cardCode
))
{
* 校验卡是否是该会员的
*/
public
void
checkCardCode
(
String
partnerId
,
String
memberId
,
Set
<
String
>
cardCodes
)
{
if
(
CollectionUtils
.
isEmpty
(
cardCodes
))
{
return
;
return
;
}
}
Statistical
PropertyRequest
request
=
new
StatisticalPropertyRequest
();
Statistical
ScoreRequestVo
request
=
new
StatisticalScoreRequestVo
();
request
.
setPartnerId
(
partnerId
);
request
.
setPartnerId
(
partnerId
);
request
.
setMemberId
(
memberId
);
request
.
setMemberId
(
memberId
);
BaseResponse
<
List
<
GetSvcInfoByMemberIdResponse
>>
responseDTO
=
memberPropertyService
.
getSvcInfoByMemberId
(
request
,
LogThreadLocal
.
getTrackingNo
());
request
.
setApplyType
(-
1
);
CustomerPropertyBaseResponse
<
List
<
GetSvcInfoByMemberIdResponseVo
>>
responseDTO
=
customerPropertyClient
.
getMemberCards
(
request
);
if
(!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
responseDTO
.
getCode
())
||
responseDTO
.
getData
()
==
null
if
(!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
responseDTO
.
getCode
())
||
responseDTO
.
getData
()
==
null
||
responseDTO
.
getData
().
size
()
==
0
)
{
||
responseDTO
.
getData
().
size
()
==
0
)
{
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_ERROR
);
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_ERROR
);
}
}
//svc卡无效
//svc卡无效
boolean
b
=
true
;
boolean
b
=
true
;
for
(
GetSvcInfoByMemberIdResponse
getSvcInfoByMemberIdResponse
:
responseDTO
.
getData
())
{
for
(
GetSvcInfoByMemberIdResponseVo
getSvcInfoByMemberIdResponse
:
responseDTO
.
getData
())
{
if
(
cardCode
.
equals
(
getSvcInfoByMemberIdResponse
.
getCardCode
())
&&
getSvcInfoByMemberIdResponse
.
getStatusFlag
()
==
0
)
{
for
(
String
cardCode
:
cardCodes
){
b
=
false
;
if
(
cardCode
.
equals
(
getSvcInfoByMemberIdResponse
.
getCardCode
())
&&
getSvcInfoByMemberIdResponse
.
getStatusFlag
()
==
0
)
{
b
=
false
;
break
;
}
}
}
}
}
if
(
b
)
{
if
(
b
)
{
...
...
order-application-service/src/main/java/cn/freemud/service/impl/EncircleOrderServiceImpl.java
View file @
21b26916
...
@@ -6,6 +6,8 @@ import cn.freemud.base.entity.BaseResponse;
...
@@ -6,6 +6,8 @@ import cn.freemud.base.entity.BaseResponse;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.UpdateReserveOrderResponseVo
;
import
cn.freemud.entities.UpdateReserveOrderResponseVo
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.pay.svc.SVCCardAmountRequestDto
;
import
cn.freemud.entities.dto.pay.svc.SVCCardAmountResponseDto
;
import
cn.freemud.entities.dto.promotion.CouponPromotionDto
;
import
cn.freemud.entities.dto.promotion.CouponPromotionDto
;
import
cn.freemud.entities.dto.promotion.OrderBeanRequest
;
import
cn.freemud.entities.dto.promotion.OrderBeanRequest
;
import
cn.freemud.entities.dto.promotion.ShoppingCartGoodsResponse
;
import
cn.freemud.entities.dto.promotion.ShoppingCartGoodsResponse
;
...
@@ -24,6 +26,7 @@ import cn.freemud.service.EncircleOrderService;
...
@@ -24,6 +26,7 @@ import cn.freemud.service.EncircleOrderService;
import
cn.freemud.service.OrderAdapterService
;
import
cn.freemud.service.OrderAdapterService
;
import
cn.freemud.service.thirdparty.ShoppingCartClient
;
import
cn.freemud.service.thirdparty.ShoppingCartClient
;
import
cn.freemud.service.thirdparty.StoreItemClient
;
import
cn.freemud.service.thirdparty.StoreItemClient
;
import
cn.freemud.service.thirdparty.SvcAppClient
;
import
cn.freemud.utils.AmountUtils
;
import
cn.freemud.utils.AmountUtils
;
import
cn.freemud.utils.AppLogUtil
;
import
cn.freemud.utils.AppLogUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
cn.freemud.utils.ResponseUtil
;
...
@@ -103,6 +106,8 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
...
@@ -103,6 +106,8 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
@Autowired
@Autowired
private
PaymentNewService
paymentNewService
;
private
PaymentNewService
paymentNewService
;
@Autowired
@Autowired
private
SvcAppClient
svcAppClient
;
@Autowired
private
OrderCommonService
orderCommonService
;
private
OrderCommonService
orderCommonService
;
@Autowired
@Autowired
private
ShoppingCartClient
shoppingCartClient
;
private
ShoppingCartClient
shoppingCartClient
;
...
@@ -464,25 +469,26 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
...
@@ -464,25 +469,26 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
}
}
Integer
orderAmount
=
previewOrderInfoVo
.
getAmount
().
intValue
();
Integer
orderAmount
=
previewOrderInfoVo
.
getAmount
().
intValue
();
String
trackingNo
=
LogThreadLocal
.
getTrackingNo
();
String
trackingNo
=
LogThreadLocal
.
getTrackingNo
();
SVCCardAmountRequest
request
=
new
SVCCardAmountRequest
();
SVCCardAmountRequest
Dto
request
=
new
SVCCardAmountRequestDto
();
request
.
setPartnerId
(
partnerId
);
request
.
setPartnerId
(
partnerId
);
request
.
setCardCodes
(
Arrays
.
asList
(
cardCode
));
request
.
setCardCodes
(
Arrays
.
asList
(
cardCode
));
//查询svc卡金额
//查询svc卡金额
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
SVCCardAmountResponse
>
response
=
paymentNewService
.
querySVCCardAmount
(
request
,
trackingNo
);
BaseResponse
<
SVCCardAmountResponseDto
>
response
=
svcAppClient
.
batchQueryCardAmount
(
request
);
if
(
response
==
null
)
{
if
(
response
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
SYSTEM_BUSINESS_ERROR
);
throw
new
ServiceException
(
ResponseResult
.
SYSTEM_BUSINESS_ERROR
);
}
}
if
(
response
.
get
Data
()
==
null
||
response
.
getData
().
getData
()
==
null
||
response
.
getData
().
getData
().
getCardSimpleInfos
().
size
()
>
1
)
{
if
(
response
.
get
Result
()
==
null
||
CollectionUtils
.
isEmpty
(
response
.
getResult
().
getCardSimpleInfos
())
)
{
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_ERROR
);
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_ERROR
);
}
}
Integer
amount1
=
response
.
get
Data
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
amount1
=
response
.
get
Result
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
vamount
=
response
.
get
Data
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
Integer
vamount
=
response
.
get
Result
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
if
(
orderAmount
>
amount1
+
vamount
)
{
if
(
orderAmount
>
amount1
+
vamount
)
{
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_AMOUNT_DEFICIENCY
);
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_AMOUNT_DEFICIENCY
);
}
}
BigDecimal
bigDecimal
=
new
BigDecimal
(
orderAmount
);
BigDecimal
bigDecimal
=
new
BigDecimal
(
orderAmount
);
String
amountStr
=
bigDecimal
.
divide
(
new
BigDecimal
(
100
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
toString
();
String
amountStr
=
bigDecimal
.
divide
(
new
BigDecimal
(
100
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
toString
();
previewOrderInfoVo
.
setAmount
(
0L
);
previewOrderInfoVo
.
setAmount
(
0L
);
// TODO: 21-8-30 围餐礼品卡暂不支持
previewOrderInfoVo
.
setSvcDiscountDesc
(
"储值卡支付¥"
+
amountStr
);
previewOrderInfoVo
.
setSvcDiscountDesc
(
"储值卡支付¥"
+
amountStr
);
}
}
...
@@ -497,8 +503,12 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
...
@@ -497,8 +503,12 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
if
(
StringUtils
.
isBlank
(
orderId
)){
if
(
StringUtils
.
isBlank
(
orderId
)){
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
);
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
);
}
}
Set
<
String
>
cardCodes
=
new
HashSet
<>();
if
(
StringUtils
.
isNotBlank
(
createReserveOrderVo
.
getCardCode
())){
cardCodes
.
add
(
createReserveOrderVo
.
getCardCode
());
}
// 校验svc卡
// 校验svc卡
checkOrder
.
checkCardCode
(
assortmentCustomerInfoVo
.
getPartnerId
(),
assortmentCustomerInfoVo
.
getMemberId
(),
c
reateReserveOrderVo
.
getCardCode
()
);
checkOrder
.
checkCardCode
(
assortmentCustomerInfoVo
.
getPartnerId
(),
assortmentCustomerInfoVo
.
getMemberId
(),
c
ardCodes
);
CreateOrderResponseVo
orderResponseVo
=
null
;
CreateOrderResponseVo
orderResponseVo
=
null
;
//拉取订单详细信息
//拉取订单详细信息
BaseQueryOrderRequest
baseQueryOrderRequest
=
new
BaseQueryOrderRequest
();
BaseQueryOrderRequest
baseQueryOrderRequest
=
new
BaseQueryOrderRequest
();
...
...
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
View file @
21b26916
...
@@ -703,48 +703,48 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
...
@@ -703,48 +703,48 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
}
}
}
}
public
OrderPayResponse
svcPay
(
String
cardCode
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
PaymentRequest
paymentRequest
,
String
transId
,
String
trackingNo
)
{
//
public OrderPayResponse svcPay(String cardCode, QueryOrdersResponse.DataBean.OrderBean orderBean, PaymentRequest paymentRequest, String transId, String trackingNo) {
CodePayRequest
request
=
new
CodePayRequest
();
//
CodePayRequest request = new CodePayRequest();
String
partnerId
=
orderBean
.
getCompanyId
();
//
String partnerId = orderBean.getCompanyId();
request
.
setBody
(
orderBean
.
getShopName
());
//
request.setBody(orderBean.getShopName());
request
.
setBusinessDate
(
DateUtil
.
convert2String
(
new
Date
(),
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
));
//
request.setBusinessDate(DateUtil.convert2String(new Date(), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
request
.
setCode
(
cardCode
);
//
request.setCode(cardCode);
request
.
setPartnerId
(
partnerId
);
//
request.setPartnerId(partnerId);
request
.
setStoreId
(
orderBean
.
getShopId
());
//
request.setStoreId(orderBean.getShopId());
request
.
setAmount
(
orderBean
.
getAmount
());
//
request.setAmount(orderBean.getAmount());
request
.
setTransId
(
transId
);
//
request.setTransId(transId);
request
.
setStationId
(
"1"
);
//
request.setStationId("1");
request
.
setOperatorId
(
"1"
);
//
request.setOperatorId("1");
request
.
setVer
(
"2"
);
//
request.setVer("2");
SVCCardAmountRequest
svcRequest
=
new
SVCCardAmountRequest
();
//
SVCCardAmountRequest svcRequest = new SVCCardAmountRequest();
svcRequest
.
setPartnerId
(
partnerId
);
//
svcRequest.setPartnerId(partnerId);
svcRequest
.
setCardCodes
(
Arrays
.
asList
(
cardCode
));
//
svcRequest.setCardCodes(Arrays.asList(cardCode));
//查询svc卡余额
//
//查询svc卡余额
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
SVCCardAmountResponse
>
svcCardAmountResponseBaseResponse
=
paymentNewService
.
querySVCCardAmount
(
svcRequest
,
trackingNo
);
//
com.freemud.application.sdk.api.base.BaseResponse<SVCCardAmountResponse> svcCardAmountResponseBaseResponse = paymentNewService.querySVCCardAmount(svcRequest, trackingNo);
if
(
svcCardAmountResponseBaseResponse
==
null
||
!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
svcCardAmountResponseBaseResponse
.
getCode
())
//
if (svcCardAmountResponseBaseResponse == null || !ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(svcCardAmountResponseBaseResponse.getCode())
||
svcCardAmountResponseBaseResponse
.
getData
().
getData
()
==
null
||
CollectionUtils
.
isEmpty
(
svcCardAmountResponseBaseResponse
.
getData
().
getData
().
getCardSimpleInfos
()))
{
//
|| svcCardAmountResponseBaseResponse.getData().getData() == null || CollectionUtils.isEmpty(svcCardAmountResponseBaseResponse.getData().getData().getCardSimpleInfos())) {
return
null
;
//
return null;
}
//
}
Integer
amount
=
svcCardAmountResponseBaseResponse
.
getData
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
//
Integer amount = svcCardAmountResponseBaseResponse.getData().getData().getCardSimpleInfos().get(0).getAmount();
Integer
vamount
=
svcCardAmountResponseBaseResponse
.
getData
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
//
Integer vamount = svcCardAmountResponseBaseResponse.getData().getData().getCardSimpleInfos().get(0).getVamount();
if
(
amount
+
vamount
<
orderBean
.
getAmount
())
{
//
if (amount + vamount < orderBean.getAmount()) {
return
null
;
//
return null;
}
//
}
//svc卡支付
//
//svc卡支付
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
CodePayResponse
>
responseBase
=
paymentNewService
.
codePay
(
request
,
trackingNo
);
//
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
)
{
//
if (responseBase == null || !ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode()) || responseBase.getData().getData() == null) {
return
null
;
//
return null;
}
//
}
OrderPayResponse
orderPayResponse
=
new
OrderPayResponse
();
//
OrderPayResponse orderPayResponse = new OrderPayResponse();
CodePayResponse
.
CodePayDate
codePayResponse
=
responseBase
.
getData
().
getData
();
//
CodePayResponse.CodePayDate codePayResponse = responseBase.getData().getData();
orderPayResponse
.
setFmId
(
codePayResponse
.
getFmId
());
//
orderPayResponse.setFmId(codePayResponse.getFmId());
orderPayResponse
.
setPayTransId
(
codePayResponse
.
getPayTransId
());
//
orderPayResponse.setPayTransId(codePayResponse.getPayTransId());
orderPayResponse
.
setWxAppid
(
paymentRequest
.
getWxAppId
());
//
orderPayResponse.setWxAppid(paymentRequest.getWxAppId());
orderPayResponse
.
setOpenId
(
paymentRequest
.
getOpenId
());
//
orderPayResponse.setOpenId(paymentRequest.getOpenId());
orderPayResponse
.
setPartnerId
(
orderBean
.
getCompanyId
());
//
orderPayResponse.setPartnerId(orderBean.getCompanyId());
orderPayResponse
.
setOrderId
(
orderBean
.
getOid
());
//
orderPayResponse.setOrderId(orderBean.getOid());
return
orderPayResponse
;
//
return orderPayResponse;
}
//
}
private
PaymentRequest
orderBodyConvertToPaymentBody
(
String
openId
,
String
partnerId
,
String
appId
,
String
payCode
)
{
private
PaymentRequest
orderBodyConvertToPaymentBody
(
String
openId
,
String
partnerId
,
String
appId
,
String
payCode
)
{
//设置支付信息
//设置支付信息
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
21b26916
...
@@ -36,6 +36,8 @@ import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
...
@@ -36,6 +36,8 @@ import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
import
cn.freemud.entities.dto.order.FacePayRequestDto
;
import
cn.freemud.entities.dto.order.FacePayRequestDto
;
import
cn.freemud.entities.dto.order.FacePayResponseDto
;
import
cn.freemud.entities.dto.order.FacePayResponseDto
;
import
cn.freemud.entities.dto.pay.*
;
import
cn.freemud.entities.dto.pay.*
;
import
cn.freemud.entities.dto.pay.svc.SVCCardAmountRequestDto
;
import
cn.freemud.entities.dto.pay.svc.SVCCardAmountResponseDto
;
import
cn.freemud.entities.dto.product.AttributeValue
;
import
cn.freemud.entities.dto.product.AttributeValue
;
import
cn.freemud.entities.dto.product.GroupDetail
;
import
cn.freemud.entities.dto.product.GroupDetail
;
import
cn.freemud.entities.dto.product.ProductAttributeGroup
;
import
cn.freemud.entities.dto.product.ProductAttributeGroup
;
...
@@ -259,6 +261,8 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -259,6 +261,8 @@ public class OrderServiceImpl implements Orderservice {
@Autowired
@Autowired
private
PaymentNewService
paymentNewService
;
private
PaymentNewService
paymentNewService
;
@Autowired
@Autowired
private
SvcAppClient
svcAppClient
;
@Autowired
private
ActivityApplicationClient
activityApplicationClient
;
private
ActivityApplicationClient
activityApplicationClient
;
@Autowired
@Autowired
private
AssortmentOpenPlatformWxappAuthorizerManager
wxappAuthorizerManager
;
private
AssortmentOpenPlatformWxappAuthorizerManager
wxappAuthorizerManager
;
...
@@ -2897,27 +2901,30 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -2897,27 +2901,30 @@ public class OrderServiceImpl implements Orderservice {
request
.
setOperatorId
(
"1"
);
request
.
setOperatorId
(
"1"
);
request
.
setVer
(
"2"
);
request
.
setVer
(
"2"
);
request
.
setMerchantDiscount
(
orderBean
.
getOriginalAmount
().
longValue
()-
orderBean
.
getAmount
());
request
.
setMerchantDiscount
(
orderBean
.
getOriginalAmount
().
longValue
()-
orderBean
.
getAmount
());
SVCCardAmountRequest
svcRequest
=
new
SVCCardAmountRequest
();
SVCCardAmountRequest
Dto
svcRequest
=
new
SVCCardAmountRequestDto
();
svcRequest
.
setPartnerId
(
partnerId
);
svcRequest
.
setPartnerId
(
partnerId
);
svcRequest
.
setCardCodes
(
Arrays
.
asList
(
cardCode
));
svcRequest
.
setCardCodes
(
Arrays
.
asList
(
cardCode
));
//查询svc卡余额
//查询svc卡余额
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
SVCCardAmountResponse
>
svcCardAmountResponseBaseResponse
=
paymentNewService
.
querySVCCardAmount
(
svcRequest
,
trackingNo
);
BaseResponse
<
SVCCardAmountResponseDto
>
svcCardAmountResponseBaseResponse
=
svcAppClient
.
batchQueryCardAmount
(
svcRequest
);
if
(
svcCardAmountResponseBaseResponse
==
null
||
!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
svcCardAmountResponseBaseResponse
.
getCode
())
if
(
svcCardAmountResponseBaseResponse
==
null
||
!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
svcCardAmountResponseBaseResponse
.
getCode
())
||
svcCardAmountResponseBaseResponse
.
get
Data
().
getData
()
==
null
||
CollectionUtils
.
isEmpty
(
svcCardAmountResponseBaseResponse
.
getData
().
getData
().
getCardSimpleInfos
()))
{
||
svcCardAmountResponseBaseResponse
.
get
Result
()
==
null
||
CollectionUtils
.
isEmpty
(
svcCardAmountResponseBaseResponse
.
getResult
().
getCardSimpleInfos
()))
{
orderPayResponse
.
setMsg
(
Objects
.
isNull
(
svcCardAmountResponseBaseResponse
)
?
"获取
svc
卡余额异常"
:
svcCardAmountResponseBaseResponse
.
getMessage
());
orderPayResponse
.
setMsg
(
Objects
.
isNull
(
svcCardAmountResponseBaseResponse
)
?
"获取卡余额异常"
:
svcCardAmountResponseBaseResponse
.
getMessage
());
return
orderPayResponse
;
return
orderPayResponse
;
}
}
Integer
amount
=
svcCardAmountResponseBaseResponse
.
getData
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
amount
=
svcCardAmountResponseBaseResponse
.
getResult
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
vamount
=
svcCardAmountResponseBaseResponse
.
getData
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
Integer
vamount
=
svcCardAmountResponseBaseResponse
.
getResult
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
Integer
applyType
=
svcCardAmountResponseBaseResponse
.
getResult
().
getCardSimpleInfos
().
get
(
0
).
getApplyType
();
applyType
=
applyType
==
null
?
3
:
applyType
;
String
payMode
=
applyType
==
3
?
PayChannelType
.
SVC
.
getEbcode
()
:
PayChannelType
.
GIFTCARD
.
getEbcode
();
if
(
amount
+
vamount
<
orderBean
.
getAmount
())
{
if
(
amount
+
vamount
<
orderBean
.
getAmount
())
{
orderPayResponse
.
setMsg
(
"
svc
卡余额不足"
);
orderPayResponse
.
setMsg
(
"卡余额不足"
);
return
orderPayResponse
;
return
orderPayResponse
;
}
}
//svc卡支付
//svc卡支付
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
CodePayResponse
>
responseBase
=
paymentNewService
.
codePay
(
request
,
trackingNo
);
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
)
{
if
(
responseBase
==
null
||
!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
responseBase
.
getCode
())
||
responseBase
.
getData
().
getData
()
==
null
)
{
// 1.9.34 预支付失败需要把原因进行记录
// 1.9.34 预支付失败需要把原因进行记录
orderPayResponse
.
setMsg
(
Objects
.
isNull
(
responseBase
)
?
"
svc
卡支付异常"
:
responseBase
.
getMessage
());
orderPayResponse
.
setMsg
(
Objects
.
isNull
(
responseBase
)
?
"卡支付异常"
:
responseBase
.
getMessage
());
}
else
{
}
else
{
CodePayResponse
.
CodePayDate
codePayResponse
=
responseBase
.
getData
().
getData
();
CodePayResponse
.
CodePayDate
codePayResponse
=
responseBase
.
getData
().
getData
();
orderPayResponse
.
setFmId
(
codePayResponse
.
getFmId
());
orderPayResponse
.
setFmId
(
codePayResponse
.
getFmId
());
...
@@ -2926,7 +2933,7 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -2926,7 +2933,7 @@ public class OrderServiceImpl implements Orderservice {
orderPayResponse
.
setOpenId
(
paymentRequest
.
getOpenId
());
orderPayResponse
.
setOpenId
(
paymentRequest
.
getOpenId
());
orderPayResponse
.
setPartnerId
(
orderBean
.
getCompanyId
());
orderPayResponse
.
setPartnerId
(
orderBean
.
getCompanyId
());
orderPayResponse
.
setOrderId
(
orderBean
.
getOid
());
orderPayResponse
.
setOrderId
(
orderBean
.
getOid
());
orderPayResponse
.
setPayMode
(
PayChannelType
.
SVC
.
getEbcode
()
);
orderPayResponse
.
setPayMode
(
payMode
);
}
}
return
orderPayResponse
;
return
orderPayResponse
;
}
}
...
@@ -3607,60 +3614,111 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -3607,60 +3614,111 @@ public class OrderServiceImpl implements Orderservice {
CombPayRequest
combPayRequest
=
orderAdapter
.
convent2CombPayOrderRequest
(
cardNo
,
orderBean
,
paymentRequest
,
partnerPayOvertime
,
ebCode
,
channel
,
totalAmount
);
CombPayRequest
combPayRequest
=
orderAdapter
.
convent2CombPayOrderRequest
(
cardNo
,
orderBean
,
paymentRequest
,
partnerPayOvertime
,
ebCode
,
channel
,
totalAmount
);
CombPayResponse
combPayResponse
=
comPayClient
.
combPay
(
combPayRequest
,
combPayRequest
.
getPartner_id
());
CombPayResponse
combPayResponse
=
comPayClient
.
combPay
(
combPayRequest
,
combPayRequest
.
getPartner_id
());
if
(
combPayResponse
==
null
||
!
ResponseCodeConstant
.
PAYMENT_RESPONSE_SUCCESS
.
equals
(
combPayResponse
.
getCode
()))
{
if
(
combPayResponse
==
null
||
!
ResponseCodeConstant
.
PAYMENT_RESPONSE_SUCCESS
.
equals
(
combPayResponse
.
getCode
()))
{
// AppLogUtil.debugLotsParams("混合支付返回信息错误,trackingNo:{} request:{} response:{}", trackingNo, JSONObject.toJSONString(combPayRequest), JSONObject.toJSONString(combPayResponse));
orderPayResponse
.
setMsg
(
combPayResponse
!=
null
?
"支付:"
+
combPayResponse
.
getMsg
()
:
"混合支付忙不过来啦,请稍后再试"
);
orderPayResponse
.
setMsg
(
combPayResponse
!=
null
?
"支付:"
+
combPayResponse
.
getMsg
()
:
"混合支付忙不过来啦,请稍后再试"
);
return
orderPayResponse
;
return
orderPayResponse
;
}
}
// Integer svcAmount = 0;
// Integer svcVAmount = 0;
List
<
CombPayResponse
.
PayPlatform
>
payPlatforms
=
combPayResponse
.
getData
().
getPayPlatformResponseList
();
List
<
CombPayResponse
.
PayPlatform
>
payPlatforms
=
combPayResponse
.
getData
().
getPayPlatformResponseList
();
if
(
payPlatforms
.
size
()
==
0
)
{
if
(
payPlatforms
.
size
()
==
0
)
{
orderPayResponse
.
setMsg
(
"混合支付:生成预支付失败"
);
orderPayResponse
.
setMsg
(
"混合支付:生成预支付失败"
);
return
orderPayResponse
;
return
orderPayResponse
;
}
}
//生成预支付参数
CombPayResponse
.
PayPlatform
cashPay
=
payPlatforms
.
stream
()
orderPayResponse
.
setWxAppid
(
paymentRequest
.
getWxAppId
());
.
filter
(
f
->
!
PayChannelType
.
SVC
.
getEbcode
().
equals
(
f
.
getEbCode
())).
findFirst
()
orderPayResponse
.
setOpenId
(
paymentRequest
.
getOpenId
());
.
orElse
(
null
);
orderPayResponse
.
setPartnerId
(
orderBean
.
getCompanyId
());
orderPayResponse
.
setOrderId
(
orderBean
.
getOid
());
//现金+svc 现金
orderPayResponse
.
setMsg
(
"success"
);
if
(
payPlatforms
.
size
()
==
2
||
(
payPlatforms
.
size
()
==
1
&&
cashPay
!=
null
))
{
orderPayResponse
=
orderAdapter
.
convent2OrderCombPayResponse
(
combPayResponse
.
getData
().
getPayPlatformResponseList
(),
orderBean
.
getCompanyId
(),
storeId
);
boolean
cashPay1
=
false
;
orderPayResponse
.
setOpenId
(
paymentRequest
.
getOpenId
());
String
transId
=
""
;
orderPayResponse
.
setWxAppid
(
paymentRequest
.
getWxAppId
());
for
(
CombPayResponse
.
PayPlatform
pt
:
payPlatforms
)
{
orderPayResponse
.
setPartnerId
(
orderBean
.
getCompanyId
());
if
(!
PayChannelType
.
SVC
.
getEbcode
().
equals
(
pt
.
getEbCode
())
&&
!
PayChannelType
.
GIFTCARD
.
getEbcode
().
equals
(
pt
.
getEbCode
())){
orderPayResponse
.
setOrderId
(
orderBean
.
getOid
());
cashPay1
=
true
;
orderPayResponse
.
setPayMode
(
orderPayResponse
.
getPayMode
());
transId
=
pt
.
getTransId
();
orderPayResponse
.
setFmId
(
pt
.
getFmTradeNo
());
}
else
{
orderPayResponse
.
setFmId
(
pt
.
getTransId
());
}
orderPayResponse
.
setPayTransId
(
pt
.
getTransId
());
orderPayResponse
.
setPayMode
(
pt
.
getEbCode
());
orderPayResponse
.
setPayEbcode
(
pt
.
getEbCode
());
orderPayResponse
.
setPayId
(
""
);
PayItem
payItem
=
new
PayItem
();
payItem
.
setFmTradeNo
(
pt
.
getFmTradeNo
());
payItem
.
setStoreId
(
storeId
);
payItem
.
setPayChannelType
(
PayChannelType
.
getByEbcode
(
pt
.
getEbCode
()).
getIndex
().
intValue
());
payItem
.
setPayChannelName
(
PayChannelType
.
getByEbcode
(
pt
.
getEbCode
()).
getName
());
payItem
.
setTransId
(
pt
.
getTransId
());
payItem
.
setPartnerId
(
combPayRequest
.
getPartner_id
());
payItem
.
setPayAmount
(
new
BigDecimal
(
pt
.
getPayAmount
()));
orderPayResponse
.
getPayItem
().
add
(
payItem
);
CombPayResponse
.
PayPlatform
.
PayOrderBean
payOrderBean
=
pt
.
getPayOrder
();
if
(
null
!=
payOrderBean
)
{
OrderPayResponse
.
PayOrderBean
payBean
=
new
OrderPayResponse
.
PayOrderBean
();
payBean
.
setAppid
(
payOrderBean
.
getAppId
());
payBean
.
setNonceStr
(
payOrderBean
.
getNonceStr
());
payBean
.
setPackageX
(
payOrderBean
.
getPackageX
());
payBean
.
setSign
(
payOrderBean
.
getPaySign
());
payBean
.
setSignType
(
payOrderBean
.
getSignType
());
payBean
.
setTimestamp
(
payOrderBean
.
getTimeStamp
());
payBean
.
setAliPayOrder
(
payOrderBean
.
getAliPayOrder
());
orderPayResponse
.
setPayOrder
(
payBean
);
}
}
if
(
payPlatforms
.
size
()
>
1
)
{
orderPayResponse
.
setPayMode
(
PayChannelType
.
COMB
.
getEbcode
());
}
if
(
cashPay1
){
//隐射关系
//隐射关系
redisCache
.
save
(
RedisUtil
.
getPaymentTransIdOrderKey
(
cashPay
.
getTransId
()
),
orderBean
.
getOid
(),
1L
,
TimeUnit
.
DAYS
);
redisCache
.
save
(
RedisUtil
.
getPaymentTransIdOrderKey
(
transId
),
orderBean
.
getOid
(),
1L
,
TimeUnit
.
DAYS
);
//加入轮训队列
//加入轮训队列
putDelMq
(
orderBean
.
getCompanyId
(),
storeId
,
orderPayResponse
.
getFmId
(),
orderBean
.
getOid
(),
PayChannelType
.
getByEbcode
(
cashPay
.
getEbCode
()
).
getIndex
().
intValue
());
putDelMq
(
orderBean
.
getCompanyId
(),
storeId
,
orderPayResponse
.
getFmId
(),
orderBean
.
getOid
(),
PayChannelType
.
getByEbcode
(
transId
).
getIndex
().
intValue
());
return
orderPayResponse
;
return
orderPayResponse
;
}
else
{
//单svc
CombPayResponse
.
PayPlatform
svcPay
=
payPlatforms
.
stream
()
.
filter
(
f
->
PayChannelType
.
SVC
.
getEbcode
().
equals
(
f
.
getEbCode
())).
findFirst
()
.
orElse
(
null
);
orderPayResponse
.
setFmId
(
svcPay
.
getTransId
());
orderPayResponse
.
setPayTransId
(
svcPay
.
getTransId
());
orderPayResponse
.
setWxAppid
(
paymentRequest
.
getWxAppId
());
orderPayResponse
.
setOpenId
(
paymentRequest
.
getOpenId
());
orderPayResponse
.
setPartnerId
(
orderBean
.
getCompanyId
());
orderPayResponse
.
setOrderId
(
orderBean
.
getOid
());
orderPayResponse
.
setPayMode
(
PayChannelType
.
SVC
.
getEbcode
());
for
(
CombPayResponse
.
PayPlatform
pt
:
payPlatforms
)
{
PayItem
payItem
=
new
PayItem
();
payItem
.
setFmTradeNo
(
pt
.
getFmTradeNo
());
payItem
.
setStoreId
(
storeId
);
payItem
.
setPayChannelType
(
PayChannelType
.
getByEbcode
(
pt
.
getEbCode
()).
getIndex
().
intValue
());
payItem
.
setPayChannelName
(
PayChannelType
.
getByEbcode
(
pt
.
getEbCode
()).
getName
());
payItem
.
setTransId
(
pt
.
getTransId
());
payItem
.
setPartnerId
(
combPayRequest
.
getPartner_id
());
payItem
.
setPayAmount
(
new
BigDecimal
(
pt
.
getPayAmount
()));
orderPayResponse
.
getPayItem
().
add
(
payItem
);
}
}
}
// return orderPayResponse;
//生成预支付参数
// CombPayResponse.PayPlatform cashPay = payPlatforms.stream()
// .filter(f -> (!PayChannelType.SVC.getEbcode().equals(f.getEbCode()) && !PayChannelType.GIFTCARD.getEbcode().equals(f.getEbCode()))).findFirst()
// .orElse(null);
// //现金+svc 现金
// if (payPlatforms.size() == 2 || (payPlatforms.size() == 1 && cashPay != null)) {
// orderPayResponse = orderAdapter.convent2OrderCombPayResponse(combPayResponse.getData().getPayPlatformResponseList(), orderBean.getCompanyId(), storeId);
// orderPayResponse.setOpenId(paymentRequest.getOpenId());
// orderPayResponse.setWxAppid(paymentRequest.getWxAppId());
// orderPayResponse.setPartnerId(orderBean.getCompanyId());
// orderPayResponse.setOrderId(orderBean.getOid());
// orderPayResponse.setPayMode(orderPayResponse.getPayMode());
// //隐射关系
// redisCache.save(RedisUtil.getPaymentTransIdOrderKey(cashPay.getTransId()), orderBean.getOid(), 1L, TimeUnit.DAYS);
// //加入轮训队列
// putDelMq(orderBean.getCompanyId(), storeId, orderPayResponse.getFmId(), orderBean.getOid(), PayChannelType.getByEbcode(cashPay.getEbCode()).getIndex().intValue());
// return orderPayResponse;
// } else {//单svc
// CombPayResponse.PayPlatform svcPay = payPlatforms
// .stream()
// .filter(f -> PayChannelType.SVC.getEbcode().equals(f.getEbCode())).findFirst()
// .orElse(null);
// orderPayResponse.setFmId(svcPay.getTransId());
// orderPayResponse.setPayTransId(svcPay.getTransId());
// orderPayResponse.setWxAppid(paymentRequest.getWxAppId());
// orderPayResponse.setOpenId(paymentRequest.getOpenId());
// orderPayResponse.setPartnerId(orderBean.getCompanyId());
// orderPayResponse.setOrderId(orderBean.getOid());
// orderPayResponse.setPayMode(PayChannelType.SVC.getEbcode());
// for (CombPayResponse.PayPlatform pt : payPlatforms) {
// PayItem payItem = new PayItem();
// payItem.setFmTradeNo(pt.getFmTradeNo());
// payItem.setStoreId(storeId);
// payItem.setPayChannelType(PayChannelType.getByEbcode(pt.getEbCode()).getIndex().intValue());
// payItem.setPayChannelName(PayChannelType.getByEbcode(pt.getEbCode()).getName());
// payItem.setTransId(pt.getTransId());
// payItem.setPartnerId(combPayRequest.getPartner_id());
// payItem.setPayAmount(new BigDecimal(pt.getPayAmount()));
// orderPayResponse.getPayItem().add(payItem);
// }
// }
return
orderPayResponse
;
return
orderPayResponse
;
}
}
...
...
order-application-service/src/main/java/cn/freemud/service/thirdparty/CustomerPropertyClient.java
View file @
21b26916
...
@@ -7,6 +7,8 @@ import org.springframework.web.bind.annotation.PostMapping;
...
@@ -7,6 +7,8 @@ import org.springframework.web.bind.annotation.PostMapping;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
java.util.List
;
@FeignClient
(
name
=
"customer-property-service"
,
url
=
"${customer.property.service.url:}"
)
@FeignClient
(
name
=
"customer-property-service"
,
url
=
"${customer.property.service.url:}"
)
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
public
interface
CustomerPropertyClient
{
public
interface
CustomerPropertyClient
{
...
@@ -21,4 +23,9 @@ public interface CustomerPropertyClient {
...
@@ -21,4 +23,9 @@ public interface CustomerPropertyClient {
@PostMapping
({
"/propertyservice/score/statisticalScore"
})
@PostMapping
({
"/propertyservice/score/statisticalScore"
})
CustomerPropertyBaseResponse
<
StatislScoreResponse
>
statisticalScore
(
StatisticalScoreRequestVo
request
);
CustomerPropertyBaseResponse
<
StatislScoreResponse
>
statisticalScore
(
StatisticalScoreRequestVo
request
);
//查询用户储值卡或会员卡
@LogIgnoreFeign
(
logMessage
=
"getMemberCards"
)
@PostMapping
({
"/propertyservice/card/getMemberCards"
})
CustomerPropertyBaseResponse
<
List
<
GetSvcInfoByMemberIdResponseVo
>>
getMemberCards
(
StatisticalScoreRequestVo
request
);
}
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/SvcAppClient.java
0 → 100644
View file @
21b26916
package
cn
.
freemud
.
service
.
thirdparty
;
import
cn.freemud.annotations.LogIgnoreFeign
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.dto.pay.svc.SVCCardAmountRequestDto
;
import
cn.freemud.entities.dto.pay.svc.SVCCardAmountResponseDto
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
@FeignClient
(
name
=
"fm-svc-app"
,
url
=
"${saas.svc.app.feign.url:}"
)
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
public
interface
SvcAppClient
{
//批量查询卡余额
@PostMapping
(
value
=
"/svc/card/batch-query-card-amount"
)
@LogIgnoreFeign
(
logMessage
=
"batchQueryCardAmount"
)
BaseResponse
<
SVCCardAmountResponseDto
>
batchQueryCardAmount
(
SVCCardAmountRequestDto
svcComPayRequestDto
);
}
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/enums/PayChannelType.java
View file @
21b26916
...
@@ -13,7 +13,9 @@ public enum PayChannelType {
...
@@ -13,7 +13,9 @@ public enum PayChannelType {
COMB
((
byte
)
4
,
"10212"
,
"混合支付"
,
"comb"
),
COMB
((
byte
)
4
,
"10212"
,
"混合支付"
,
"comb"
),
USVCP
((
byte
)
5
,
"10556"
,
"电子风味卡支付"
,
"usvcp"
),
USVCP
((
byte
)
5
,
"10556"
,
"电子风味卡支付"
,
"usvcp"
),
ZERO
((
byte
)
6
,
"100000"
,
"0元支付"
,
"zero"
),
ZERO
((
byte
)
6
,
"100000"
,
"0元支付"
,
"zero"
),
TIKTOKPAY
((
byte
)
7
,
"10066"
,
"抖音支付"
,
"tiktokpay"
);
TIKTOKPAY
((
byte
)
7
,
"10066"
,
"抖音支付"
,
"tiktokpay"
),
GIFTCARD
((
byte
)
8
,
"10199"
,
"礼品卡"
,
"giftCard"
),
;
private
Byte
index
;
private
Byte
index
;
private
String
ebcode
;
private
String
ebcode
;
...
@@ -36,6 +38,6 @@ public enum PayChannelType {
...
@@ -36,6 +38,6 @@ public enum PayChannelType {
return
payType
;
return
payType
;
}
}
}
}
return
null
;
return
WECHAT
;
}
}
}
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/pay/CardSimpleInfo.java
0 → 100644
View file @
21b26916
package
cn
.
freemud
.
entities
.
dto
.
pay
;
import
lombok.Data
;
@Data
public
class
CardSimpleInfo
{
private
Integer
amount
;
private
String
applyId
;
private
String
cardCode
;
private
String
cardName
;
private
Integer
vamount
;
//储值卡类型:0一次性卡(礼品卡),3重复使用卡(储值卡),默认3"
private
Integer
applyType
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/pay/SVCCardAmountRequest.java
0 → 100644
View file @
21b26916
package
cn
.
freemud
.
entities
.
dto
.
pay
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
SVCCardAmountRequest
{
private
String
partnerId
;
private
List
<
String
>
cardCodes
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/pay/SVCCardAmountResponse.java
0 → 100644
View file @
21b26916
package
cn
.
freemud
.
entities
.
dto
.
pay
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
SVCCardAmountResponse
{
private
List
<
CardSimpleInfo
>
cardSimpleInfos
;
}
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartCollageServiceImpl.java
View file @
21b26916
...
@@ -4,13 +4,14 @@ import cn.freemud.adapter.ActivityAdapter;
...
@@ -4,13 +4,14 @@ import cn.freemud.adapter.ActivityAdapter;
import
cn.freemud.adapter.CouponAdapter
;
import
cn.freemud.adapter.CouponAdapter
;
import
cn.freemud.adapter.ShoppingCartConvertAdapter
;
import
cn.freemud.adapter.ShoppingCartConvertAdapter
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.constant.ApplicationConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ShoppingCartConstant
;
import
cn.freemud.constant.ShoppingCartConstant
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.activity.ActivityQueryDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryDto
;
import
cn.freemud.entities.dto.calculate.ActivityCalculationDiscountRequestDto
;
import
cn.freemud.entities.dto.calculate.ActivityCalculationDiscountRequestDto
;
import
cn.freemud.entities.dto.calculate.ActivityCalculationDiscountResponseDto
;
import
cn.freemud.entities.dto.calculate.ActivityCalculationDiscountResponseDto
;
import
cn.freemud.entities.dto.pay.SVCCardAmountRequest
;
import
cn.freemud.entities.dto.pay.SVCCardAmountResponse
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.ActivityChannelEnum
;
import
cn.freemud.enums.ActivityChannelEnum
;
...
@@ -21,6 +22,7 @@ import cn.freemud.interceptor.ServiceException;
...
@@ -21,6 +22,7 @@ import cn.freemud.interceptor.ServiceException;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.service.*
;
import
cn.freemud.service.*
;
import
cn.freemud.service.thirdparty.ActivityClient
;
import
cn.freemud.service.thirdparty.ActivityClient
;
import
cn.freemud.service.thirdparty.SvcAppClient
;
import
cn.freemud.service.thirdparty.SvcComPayClient
;
import
cn.freemud.service.thirdparty.SvcComPayClient
;
import
cn.freemud.utils.PropertyConvertUtil
;
import
cn.freemud.utils.PropertyConvertUtil
;
import
cn.freemud.utils.RedisLock
;
import
cn.freemud.utils.RedisLock
;
...
@@ -29,9 +31,6 @@ import com.alibaba.fastjson.JSONArray;
...
@@ -29,9 +31,6 @@ import com.alibaba.fastjson.JSONArray;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.base.SDKCommonBaseContextWare
;
import
com.freemud.application.sdk.api.base.SDKCommonBaseContextWare
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.SVCCardAmountRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.SVCCardAmountResponse
;
import
com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant
;
import
com.freemud.sdk.api.assortment.shoppingcart.domain.CollageMemberState
;
import
com.freemud.sdk.api.assortment.shoppingcart.domain.CollageMemberState
;
...
@@ -106,7 +105,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
...
@@ -106,7 +105,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
private
CollageOrderBaseServiceImpl
collageOrderBaseService
;
private
CollageOrderBaseServiceImpl
collageOrderBaseService
;
@Autowired
@Autowired
private
PaymentNewService
paymentNewService
;
private
SvcAppClient
svcAppClient
;
@Autowired
@Autowired
private
SvcComPayClient
svcComPayClient
;
private
SvcComPayClient
svcComPayClient
;
...
@@ -1334,28 +1333,30 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
...
@@ -1334,28 +1333,30 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
request
.
setPartnerId
(
partnerId
);
request
.
setPartnerId
(
partnerId
);
request
.
setCardCodes
(
Arrays
.
asList
(
cardCode
));
request
.
setCardCodes
(
Arrays
.
asList
(
cardCode
));
//查询svc卡金额
//查询svc卡金额
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
SVCCardAmountResponse
>
response
=
paymentNewService
.
querySVCCardAmount
(
request
,
trackingNo
);
BaseResponse
<
SVCCardAmountResponse
>
response
=
svcAppClient
.
batchQueryCardAmount
(
request
);
if
(
response
==
null
)
{
if
(
response
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
SYSTEM_BUSINESS_ERROR
);
throw
new
ServiceException
(
ResponseResult
.
SYSTEM_BUSINESS_ERROR
);
}
}
if
(
response
.
get
Data
()
==
null
||
response
.
getData
().
getData
()
==
null
||
response
.
getData
().
getData
().
getCardSimpleInfos
().
size
()
>
1
)
{
if
(
response
.
get
Result
()
==
null
||
CollectionUtils
.
isEmpty
(
response
.
getResult
().
getCardSimpleInfos
())
)
{
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_ERROR
);
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_ERROR
);
}
}
//获取实际配送费
//获取实际配送费
if
(
StringUtils
.
isNotBlank
(
receiveId
)
&&
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
()
!=
null
)
{
if
(
StringUtils
.
isNotBlank
(
receiveId
)
&&
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
()
!=
null
)
{
// Integer deliveryAmount = getDeliveryAmount(receiveId, partnerId, storeId);
Integer
deliveryAmount
=
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
().
intValue
();
Integer
deliveryAmount
=
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
().
intValue
();
orderAmount
+=
deliveryAmount
;
orderAmount
+=
deliveryAmount
;
}
}
Integer
amount1
=
response
.
getData
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
amount1
=
response
.
getResult
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
vamount
=
response
.
getData
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
Integer
vamount
=
response
.
getResult
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
Integer
applyType
=
response
.
getResult
().
getCardSimpleInfos
().
get
(
0
).
getApplyType
();
applyType
=
applyType
==
null
?
3
:
0
;
String
svcDesc
=
applyType
==
3
?
"储值卡支付¥"
:
"礼品卡支付¥"
;
if
(
orderAmount
>
amount1
+
vamount
)
{
if
(
orderAmount
>
amount1
+
vamount
)
{
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_AMOUNT_DEFICIENCY
);
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_AMOUNT_DEFICIENCY
);
}
}
BigDecimal
bigDecimal
=
new
BigDecimal
(
orderAmount
);
BigDecimal
bigDecimal
=
new
BigDecimal
(
orderAmount
);
String
amountStr
=
bigDecimal
.
divide
(
new
BigDecimal
(
100
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
toString
();
String
amountStr
=
bigDecimal
.
divide
(
new
BigDecimal
(
100
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
toString
();
shoppingCartGoodsResponseVo
.
setTotalAmount
(
0L
);
shoppingCartGoodsResponseVo
.
setTotalAmount
(
0L
);
shoppingCartGoodsResponseVo
.
setSvcDiscountDesc
(
"储值卡支付¥"
+
amountStr
);
shoppingCartGoodsResponseVo
.
setSvcDiscountDesc
(
svcDesc
+
amountStr
);
}
}
/**
/**
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
View file @
21b26916
...
@@ -30,6 +30,9 @@ import cn.freemud.entities.dto.calculate.ActivityCalculationDiscountRequestDto;
...
@@ -30,6 +30,9 @@ import cn.freemud.entities.dto.calculate.ActivityCalculationDiscountRequestDto;
import
cn.freemud.entities.dto.calculate.ActivityCalculationDiscountResponseDto
;
import
cn.freemud.entities.dto.calculate.ActivityCalculationDiscountResponseDto
;
import
cn.freemud.entities.dto.openplatform.WeixinProductRequestDto
;
import
cn.freemud.entities.dto.openplatform.WeixinProductRequestDto
;
import
cn.freemud.entities.dto.openplatform.WeixinProductResponseDto
;
import
cn.freemud.entities.dto.openplatform.WeixinProductResponseDto
;
import
cn.freemud.entities.dto.pay.CardSimpleInfo
;
import
cn.freemud.entities.dto.pay.SVCCardAmountRequest
;
import
cn.freemud.entities.dto.pay.SVCCardAmountResponse
;
import
cn.freemud.entities.dto.shoppingCart.SendPoint
;
import
cn.freemud.entities.dto.shoppingCart.SendPoint
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.user.GetUserScoreUseDetailRequest
;
import
cn.freemud.entities.dto.user.GetUserScoreUseDetailRequest
;
...
@@ -68,9 +71,6 @@ import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddress
...
@@ -68,9 +71,6 @@ import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddress
import
com.freemud.application.sdk.api.membercenter.response.StatisticalScoreResponse
;
import
com.freemud.application.sdk.api.membercenter.response.StatisticalScoreResponse
;
import
com.freemud.application.sdk.api.membercenter.service.MemberCenterService
;
import
com.freemud.application.sdk.api.membercenter.service.MemberCenterService
;
import
com.freemud.application.sdk.api.membercenter.service.MemberPropertyService
;
import
com.freemud.application.sdk.api.membercenter.service.MemberPropertyService
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.SVCCardAmountRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.SVCCardAmountResponse
;
import
com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO
;
import
com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest
;
import
com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
...
@@ -139,7 +139,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -139,7 +139,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
@Autowired
@Autowired
private
AssortmentCustomerInfoManager
customerInfoManager
;
private
AssortmentCustomerInfoManager
customerInfoManager
;
@Autowired
@Autowired
private
PaymentNewService
paymentNewService
;
private
SvcAppClient
svcAppClient
;
@Autowired
@Autowired
private
MemberCenterService
memberCenterService
;
private
MemberCenterService
memberCenterService
;
@Autowired
@Autowired
...
@@ -1257,11 +1257,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -1257,11 +1257,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
SVCCardAmountRequest
svcCardAmountRequest
=
new
SVCCardAmountRequest
();
SVCCardAmountRequest
svcCardAmountRequest
=
new
SVCCardAmountRequest
();
svcCardAmountRequest
.
setCardCodes
(
cardCodes
);
svcCardAmountRequest
.
setCardCodes
(
cardCodes
);
svcCardAmountRequest
.
setPartnerId
(
partnerId
);
svcCardAmountRequest
.
setPartnerId
(
partnerId
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
SVCCardAmountResponse
>
svcCardAmountResponseBaseResponse
=
paymentNewService
.
querySVCCardAmount
(
svcCardAmountRequest
,
LogThreadLocal
.
getTrackingNo
()
);
BaseResponse
<
SVCCardAmountResponse
>
svcCardAmountResponseBaseResponse
=
svcAppClient
.
batchQueryCardAmount
(
svcCardAmountRequest
);
List
<
SVCCardAmountResponse
.
CardSimpleInfo
>
cardSimpleInfos
=
svcCardAmountResponseBaseResponse
.
getData
().
getData
().
getCardSimpleInfos
();
List
<
CardSimpleInfo
>
cardSimpleInfos
=
svcCardAmountResponseBaseResponse
.
getResult
().
getCardSimpleInfos
();
List
<
GetMemberInfoResponseVo
.
Card
>
cards
=
cardSimpleInfos
.
stream
().
map
(
each
->
convert2MemberSvcCard
(
each
)).
collect
(
toList
());
List
<
GetMemberInfoResponseVo
.
Card
>
cards
=
cardSimpleInfos
.
stream
().
map
(
each
->
convert2MemberSvcCard
(
each
)).
collect
(
toList
());
responseData
.
setCards
(
cards
);
responseData
.
setCards
(
cards
);
}
}
return
ResponseUtil
.
success
(
responseData
);
return
ResponseUtil
.
success
(
responseData
);
}
}
...
@@ -1321,7 +1320,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -1321,7 +1320,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
}
}
private
GetMemberInfoResponseVo
.
Card
convert2MemberSvcCard
(
SVCCardAmountResponse
.
CardSimpleInfo
each
)
{
private
GetMemberInfoResponseVo
.
Card
convert2MemberSvcCard
(
CardSimpleInfo
each
)
{
GetMemberInfoResponseVo
.
Card
card
=
new
GetMemberInfoResponseVo
.
Card
();
GetMemberInfoResponseVo
.
Card
card
=
new
GetMemberInfoResponseVo
.
Card
();
card
.
setAmount
(
each
.
getAmount
());
card
.
setAmount
(
each
.
getAmount
());
card
.
setApplyId
(
each
.
getApplyId
());
card
.
setApplyId
(
each
.
getApplyId
());
...
@@ -2294,18 +2293,21 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -2294,18 +2293,21 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
request
.
setPartnerId
(
partnerId
);
request
.
setPartnerId
(
partnerId
);
request
.
setCardCodes
(
Arrays
.
asList
(
cardCode
));
request
.
setCardCodes
(
Arrays
.
asList
(
cardCode
));
//查询svc卡金额
//查询svc卡金额
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
SVCCardAmountResponse
>
response
=
paymentNewService
.
querySVCCardAmount
(
request
,
trackingNo
);
BaseResponse
<
SVCCardAmountResponse
>
response
=
svcAppClient
.
batchQueryCardAmount
(
request
);
if
(
response
==
null
)
{
if
(
response
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
SYSTEM_BUSINESS_ERROR
);
throw
new
ServiceException
(
ResponseResult
.
SYSTEM_BUSINESS_ERROR
);
}
}
if
(
response
.
get
Data
()
==
null
||
response
.
getData
().
getData
()
==
null
||
response
.
getData
().
getData
().
getCardSimpleInfos
().
size
()
>
1
)
{
if
(
response
.
get
Result
()
==
null
||
CollectionUtils
.
isEmpty
(
response
.
getResult
().
getCardSimpleInfos
())
)
{
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_ERROR
);
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_ERROR
);
}
}
boolean
check
=
this
.
checkSvcComPay
(
partnerId
,
storeId
);
boolean
check
=
this
.
checkSvcComPay
(
partnerId
,
storeId
);
Integer
applyType
=
response
.
getResult
().
getCardSimpleInfos
().
get
(
0
).
getApplyType
();
applyType
=
applyType
==
null
?
3
:
0
;
String
svcDesc
=
applyType
==
3
?
"储值卡支付¥"
:
"礼品卡支付¥"
;
if
(
check
)
{
if
(
check
)
{
//混合支付无需校验svc卡余额,但是配送和包装费不计算在svc卡支付
//混合支付无需校验svc卡余额,但是配送和包装费不计算在svc卡支付
Integer
amount1
=
response
.
get
Data
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
amount1
=
response
.
get
Result
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
vamount
=
response
.
get
Data
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
Integer
vamount
=
response
.
get
Result
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
Integer
svcTotalAmount
=
amount1
+
vamount
;
Integer
svcTotalAmount
=
amount1
+
vamount
;
//获取实际配送费
//获取实际配送费
Integer
deliveryAmount
=
0
;
Integer
deliveryAmount
=
0
;
...
@@ -2325,22 +2327,22 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -2325,22 +2327,22 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
BigDecimal
bigDecimal
=
new
BigDecimal
(
svcPayAmount
);
BigDecimal
bigDecimal
=
new
BigDecimal
(
svcPayAmount
);
String
amountStr
=
bigDecimal
.
divide
(
new
BigDecimal
(
100
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
toString
();
String
amountStr
=
bigDecimal
.
divide
(
new
BigDecimal
(
100
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
toString
();
shoppingCartGoodsResponseVo
.
setSvcPayAmount
(
amountStr
);
shoppingCartGoodsResponseVo
.
setSvcPayAmount
(
amountStr
);
shoppingCartGoodsResponseVo
.
setSvcDiscountDesc
(
"储值卡支付¥"
+
amountStr
);
shoppingCartGoodsResponseVo
.
setSvcDiscountDesc
(
svcDesc
+
amountStr
);
}
else
{
}
else
{
//获取实际配送费
//获取实际配送费
if
(
StringUtils
.
isNotBlank
(
receiveId
)
&&
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
()
!=
null
)
{
if
(
StringUtils
.
isNotBlank
(
receiveId
)
&&
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
()
!=
null
)
{
Integer
deliveryAmount
=
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
().
intValue
();
Integer
deliveryAmount
=
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
().
intValue
();
orderAmount
+=
deliveryAmount
;
orderAmount
+=
deliveryAmount
;
}
}
Integer
amount1
=
response
.
get
Data
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
amount1
=
response
.
get
Result
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
vamount
=
response
.
get
Data
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
Integer
vamount
=
response
.
get
Result
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
if
(
orderAmount
>
amount1
+
vamount
)
{
if
(
orderAmount
>
amount1
+
vamount
)
{
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_AMOUNT_DEFICIENCY
);
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_AMOUNT_DEFICIENCY
);
}
}
BigDecimal
bigDecimal
=
new
BigDecimal
(
orderAmount
);
BigDecimal
bigDecimal
=
new
BigDecimal
(
orderAmount
);
String
amountStr
=
bigDecimal
.
divide
(
new
BigDecimal
(
100
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
toString
();
String
amountStr
=
bigDecimal
.
divide
(
new
BigDecimal
(
100
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
toString
();
shoppingCartGoodsResponseVo
.
setTotalAmount
(
0L
);
shoppingCartGoodsResponseVo
.
setTotalAmount
(
0L
);
shoppingCartGoodsResponseVo
.
setSvcDiscountDesc
(
"储值卡支付¥"
+
amountStr
);
shoppingCartGoodsResponseVo
.
setSvcDiscountDesc
(
svcDesc
+
amountStr
);
}
}
}
}
...
@@ -2360,24 +2362,26 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -2360,24 +2362,26 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
request
.
setPartnerId
(
partnerId
);
request
.
setPartnerId
(
partnerId
);
request
.
setCardCodes
(
Arrays
.
asList
(
cardCode
));
request
.
setCardCodes
(
Arrays
.
asList
(
cardCode
));
//查询svc卡金额
//查询svc卡金额
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
SVCCardAmountResponse
>
response
=
paymentNewService
.
querySVCCardAmount
(
request
,
trackingNo
);
BaseResponse
<
SVCCardAmountResponse
>
response
=
svcAppClient
.
batchQueryCardAmount
(
request
);
if
(
response
==
null
)
{
if
(
response
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
SYSTEM_BUSINESS_ERROR
);
throw
new
ServiceException
(
ResponseResult
.
SYSTEM_BUSINESS_ERROR
);
}
}
if
(
response
.
get
Data
()
==
null
||
response
.
getData
().
getData
()
==
null
||
response
.
getData
().
getData
().
getCardSimpleInfos
().
size
()
>
1
)
{
if
(
response
.
get
Result
()
==
null
||
CollectionUtils
.
isEmpty
(
response
.
getResult
().
getCardSimpleInfos
())
)
{
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_ERROR
);
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_ERROR
);
}
}
boolean
check
=
this
.
checkSvcComPay
(
partnerId
,
storeId
);
boolean
check
=
this
.
checkSvcComPay
(
partnerId
,
storeId
);
Integer
applyType
=
response
.
getResult
().
getCardSimpleInfos
().
get
(
0
).
getApplyType
();
applyType
=
applyType
==
null
?
3
:
0
;
String
svcDesc
=
applyType
==
3
?
"储值卡支付¥"
:
"礼品卡支付¥"
;
if
(
check
)
{
if
(
check
)
{
//混合支付无需校验svc卡余额,但是配送和包装费不计算在svc卡支付
//混合支付无需校验svc卡余额,但是配送和包装费不计算在svc卡支付
Integer
amount1
=
response
.
get
Data
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
amount1
=
response
.
get
Result
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
vamount
=
response
.
get
Data
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
Integer
vamount
=
response
.
get
Result
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
Integer
svcTotalAmount
=
amount1
+
vamount
;
Integer
svcTotalAmount
=
amount1
+
vamount
;
//获取实际配送费
//获取实际配送费
Integer
deliveryAmount
=
0
;
Integer
deliveryAmount
=
0
;
Integer
svcPayAmount
=
0
;
Integer
svcPayAmount
=
0
;
if
(
StringUtils
.
isNotBlank
(
receiveId
)
&&
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
()
!=
null
)
{
if
(
StringUtils
.
isNotBlank
(
receiveId
)
&&
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
()
!=
null
)
{
//Integer deliveryAmount = getDeliveryAmount(receiveId, partnerId, storeId);
deliveryAmount
=
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
().
intValue
();
deliveryAmount
=
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
().
intValue
();
orderAmount
+=
deliveryAmount
;
orderAmount
+=
deliveryAmount
;
}
}
...
@@ -2391,22 +2395,22 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -2391,22 +2395,22 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
BigDecimal
bigDecimal
=
new
BigDecimal
(
svcPayAmount
);
BigDecimal
bigDecimal
=
new
BigDecimal
(
svcPayAmount
);
String
amountStr
=
bigDecimal
.
divide
(
new
BigDecimal
(
100
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
toString
();
String
amountStr
=
bigDecimal
.
divide
(
new
BigDecimal
(
100
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
toString
();
shoppingCartGoodsResponseVo
.
setSvcPayAmount
(
amountStr
);
shoppingCartGoodsResponseVo
.
setSvcPayAmount
(
amountStr
);
shoppingCartGoodsResponseVo
.
setSvcDiscountDesc
(
"储值卡支付¥"
+
amountStr
);
shoppingCartGoodsResponseVo
.
setSvcDiscountDesc
(
svcDesc
+
amountStr
);
}
else
{
}
else
{
//获取实际配送费
//获取实际配送费
if
(
StringUtils
.
isNotBlank
(
receiveId
)
&&
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
()
!=
null
)
{
if
(
StringUtils
.
isNotBlank
(
receiveId
)
&&
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
()
!=
null
)
{
Integer
deliveryAmount
=
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
().
intValue
();
Integer
deliveryAmount
=
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
().
intValue
();
orderAmount
+=
deliveryAmount
;
orderAmount
+=
deliveryAmount
;
}
}
Integer
amount1
=
response
.
get
Data
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
amount1
=
response
.
get
Result
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
vamount
=
response
.
get
Data
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
Integer
vamount
=
response
.
get
Result
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
if
(
orderAmount
>
amount1
+
vamount
)
{
if
(
orderAmount
>
amount1
+
vamount
)
{
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_AMOUNT_DEFICIENCY
);
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_AMOUNT_DEFICIENCY
);
}
}
BigDecimal
bigDecimal
=
new
BigDecimal
(
orderAmount
);
BigDecimal
bigDecimal
=
new
BigDecimal
(
orderAmount
);
String
amountStr
=
bigDecimal
.
divide
(
new
BigDecimal
(
100
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
toString
();
String
amountStr
=
bigDecimal
.
divide
(
new
BigDecimal
(
100
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
toString
();
shoppingCartGoodsResponseVo
.
setTotalAmount
(
0L
);
shoppingCartGoodsResponseVo
.
setTotalAmount
(
0L
);
shoppingCartGoodsResponseVo
.
setSvcDiscountDesc
(
"储值卡支付¥"
+
amountStr
);
shoppingCartGoodsResponseVo
.
setSvcDiscountDesc
(
svcDesc
+
amountStr
);
}
}
}
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/thirdparty/SvcAppClient.java
0 → 100644
View file @
21b26916
package
cn
.
freemud
.
service
.
thirdparty
;
import
cn.freemud.annotations.IgnoreFeignLogAnnotation
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ResponseCodeKeyConstant
;
import
cn.freemud.entities.dto.pay.SVCCardAmountRequest
;
import
cn.freemud.entities.dto.pay.SVCCardAmountResponse
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
@FeignClient
(
name
=
"fm-svc-app"
,
url
=
"${saas.svc.app.feign.url:}"
)
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
public
interface
SvcAppClient
{
//批量查询卡余额
@PostMapping
(
value
=
"/svc/card/batch-query-card-amount"
)
@IgnoreFeignLogAnnotation
(
logMessage
=
"batchQueryCardAmount"
,
excludeStatusCodes
=
{
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
},
statusCodeFieldName
=
ResponseCodeKeyConstant
.
STATUS_CODE
,
messageFieldName
=
ResponseCodeKeyConstant
.
MSG
)
BaseResponse
<
SVCCardAmountResponse
>
batchQueryCardAmount
(
SVCCardAmountRequest
svcComPayRequestDto
);
}
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