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
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
264 additions
and
75 deletions
+264
-75
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
+0
-0
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
+0
-0
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 {
payPlatformVO
.
setAmount
(
0L
);
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
();
payPlatformVO
=
new
PayPlatformVO
();
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 {
// @ApiModelProperty("是否查询即将到期积分{0:否,1:是}")
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 {
*/
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;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.util.List
;
/**
* All rights Reserved, Designed By www.freemud.cn
...
...
@@ -51,4 +52,6 @@ public class CreateReserveOrderVo extends EncircleReserveBaseVo{
* svc 卡支付使用
*/
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;
import
cn.freemud.entities.dto.shoppingCart.GetShoppingCartGoodsApportionDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
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.GetMemberCouponRequestVo
;
import
cn.freemud.entities.vo.ShoppingCartInfoRequestVo
;
...
...
@@ -36,10 +39,7 @@ import cn.freemud.service.CouponService;
import
cn.freemud.service.adapter.OrderCheckAdapter
;
import
cn.freemud.service.order.OrderRelationFactory
;
import
cn.freemud.service.order.OrderRelationService
;
import
cn.freemud.service.thirdparty.DeliveryFeiginClient
;
import
cn.freemud.service.thirdparty.ShoppingCartClient
;
import
cn.freemud.service.thirdparty.StoreBaseApiClient
;
import
cn.freemud.service.thirdparty.StoreClient
;
import
cn.freemud.service.thirdparty.*
;
import
cn.freemud.utils.AppLogUtil
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
...
...
@@ -108,8 +108,11 @@ public class CheckOrder {
@Autowired
private
MemberCenterService
memberCenterService
;
//会员SDK
// @Autowired
// private MemberPropertyService memberPropertyService;
@Autowired
private
MemberPropertyService
memberPropertyService
;
private
CustomerPropertyClient
customerPropertyClient
;
@Autowired
private
ShoppingCartClient
shoppingCartClient
;
// @Autowired
...
...
@@ -151,8 +154,15 @@ public class CheckOrder {
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isEmpty
(
userLoginInfoDto
.
getMemberId
()))
{
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卡信息
checkCardCode
(
createOrderVo
.
getPartnerId
(),
userLoginInfoDto
.
getMemberId
(),
c
reateOrderVo
.
getCardCode
()
);
checkCardCode
(
createOrderVo
.
getPartnerId
(),
userLoginInfoDto
.
getMemberId
(),
c
ardCodes
);
createOrderVo
.
setUserId
(
userLoginInfoDto
.
getMemberId
());
return
userLoginInfoDto
;
...
...
@@ -166,7 +176,7 @@ public class CheckOrder {
throw
new
ServiceException
(
ResponseResult
.
NOT_LOGIN
);
}
//校验会员svc卡信息
checkCardCode
(
userLoginInfoDto
.
getPartnerId
(),
userLoginInfoDto
.
getMemberId
(),
cardCode
);
//
checkCardCode(userLoginInfoDto.getPartnerId(), userLoginInfoDto.getMemberId(), cardCode);
return
userLoginInfoDto
;
}
...
...
@@ -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
;
}
Statistical
PropertyRequest
request
=
new
StatisticalPropertyRequest
();
Statistical
ScoreRequestVo
request
=
new
StatisticalScoreRequestVo
();
request
.
setPartnerId
(
partnerId
);
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
||
responseDTO
.
getData
().
size
()
==
0
)
{
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_ERROR
);
}
//svc卡无效
boolean
b
=
true
;
for
(
GetSvcInfoByMemberIdResponse
getSvcInfoByMemberIdResponse
:
responseDTO
.
getData
())
{
if
(
cardCode
.
equals
(
getSvcInfoByMemberIdResponse
.
getCardCode
())
&&
getSvcInfoByMemberIdResponse
.
getStatusFlag
()
==
0
)
{
b
=
false
;
for
(
GetSvcInfoByMemberIdResponseVo
getSvcInfoByMemberIdResponse
:
responseDTO
.
getData
())
{
for
(
String
cardCode
:
cardCodes
){
if
(
cardCode
.
equals
(
getSvcInfoByMemberIdResponse
.
getCardCode
())
&&
getSvcInfoByMemberIdResponse
.
getStatusFlag
()
==
0
)
{
b
=
false
;
break
;
}
}
}
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;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.UpdateReserveOrderResponseVo
;
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.OrderBeanRequest
;
import
cn.freemud.entities.dto.promotion.ShoppingCartGoodsResponse
;
...
...
@@ -24,6 +26,7 @@ import cn.freemud.service.EncircleOrderService;
import
cn.freemud.service.OrderAdapterService
;
import
cn.freemud.service.thirdparty.ShoppingCartClient
;
import
cn.freemud.service.thirdparty.StoreItemClient
;
import
cn.freemud.service.thirdparty.SvcAppClient
;
import
cn.freemud.utils.AmountUtils
;
import
cn.freemud.utils.AppLogUtil
;
import
cn.freemud.utils.ResponseUtil
;
...
...
@@ -103,6 +106,8 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
@Autowired
private
PaymentNewService
paymentNewService
;
@Autowired
private
SvcAppClient
svcAppClient
;
@Autowired
private
OrderCommonService
orderCommonService
;
@Autowired
private
ShoppingCartClient
shoppingCartClient
;
...
...
@@ -464,25 +469,26 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
}
Integer
orderAmount
=
previewOrderInfoVo
.
getAmount
().
intValue
();
String
trackingNo
=
LogThreadLocal
.
getTrackingNo
();
SVCCardAmountRequest
request
=
new
SVCCardAmountRequest
();
SVCCardAmountRequest
Dto
request
=
new
SVCCardAmountRequestDto
();
request
.
setPartnerId
(
partnerId
);
request
.
setCardCodes
(
Arrays
.
asList
(
cardCode
));
//查询svc卡金额
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
SVCCardAmountResponse
>
response
=
paymentNewService
.
querySVCCardAmount
(
request
,
trackingNo
);
BaseResponse
<
SVCCardAmountResponseDto
>
response
=
svcAppClient
.
batchQueryCardAmount
(
request
);
if
(
response
==
null
)
{
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
);
}
Integer
amount1
=
response
.
get
Data
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
vamount
=
response
.
get
Data
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
Integer
amount1
=
response
.
get
Result
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
vamount
=
response
.
get
Result
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
if
(
orderAmount
>
amount1
+
vamount
)
{
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_AMOUNT_DEFICIENCY
);
}
BigDecimal
bigDecimal
=
new
BigDecimal
(
orderAmount
);
String
amountStr
=
bigDecimal
.
divide
(
new
BigDecimal
(
100
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
toString
();
previewOrderInfoVo
.
setAmount
(
0L
);
// TODO: 21-8-30 围餐礼品卡暂不支持
previewOrderInfoVo
.
setSvcDiscountDesc
(
"储值卡支付¥"
+
amountStr
);
}
...
...
@@ -497,8 +503,12 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
if
(
StringUtils
.
isBlank
(
orderId
)){
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
);
}
Set
<
String
>
cardCodes
=
new
HashSet
<>();
if
(
StringUtils
.
isNotBlank
(
createReserveOrderVo
.
getCardCode
())){
cardCodes
.
add
(
createReserveOrderVo
.
getCardCode
());
}
// 校验svc卡
checkOrder
.
checkCardCode
(
assortmentCustomerInfoVo
.
getPartnerId
(),
assortmentCustomerInfoVo
.
getMemberId
(),
c
reateReserveOrderVo
.
getCardCode
()
);
checkOrder
.
checkCardCode
(
assortmentCustomerInfoVo
.
getPartnerId
(),
assortmentCustomerInfoVo
.
getMemberId
(),
c
ardCodes
);
CreateOrderResponseVo
orderResponseVo
=
null
;
//拉取订单详细信息
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 {
}
}
public
OrderPayResponse
svcPay
(
String
cardCode
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
PaymentRequest
paymentRequest
,
String
transId
,
String
trackingNo
)
{
CodePayRequest
request
=
new
CodePayRequest
();
String
partnerId
=
orderBean
.
getCompanyId
();
request
.
setBody
(
orderBean
.
getShopName
());
request
.
setBusinessDate
(
DateUtil
.
convert2String
(
new
Date
(),
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
));
request
.
setCode
(
cardCode
);
request
.
setPartnerId
(
partnerId
);
request
.
setStoreId
(
orderBean
.
getShopId
());
request
.
setAmount
(
orderBean
.
getAmount
());
request
.
setTransId
(
transId
);
request
.
setStationId
(
"1"
);
request
.
setOperatorId
(
"1"
);
request
.
setVer
(
"2"
);
SVCCardAmountRequest
svcRequest
=
new
SVCCardAmountRequest
();
svcRequest
.
setPartnerId
(
partnerId
);
svcRequest
.
setCardCodes
(
Arrays
.
asList
(
cardCode
));
//查询svc卡余额
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
;
}
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
;
}
//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
();
CodePayResponse
.
CodePayDate
codePayResponse
=
responseBase
.
getData
().
getData
();
orderPayResponse
.
setFmId
(
codePayResponse
.
getFmId
());
orderPayResponse
.
setPayTransId
(
codePayResponse
.
getPayTransId
());
orderPayResponse
.
setWxAppid
(
paymentRequest
.
getWxAppId
());
orderPayResponse
.
setOpenId
(
paymentRequest
.
getOpenId
());
orderPayResponse
.
setPartnerId
(
orderBean
.
getCompanyId
());
orderPayResponse
.
setOrderId
(
orderBean
.
getOid
());
return
orderPayResponse
;
}
//
public OrderPayResponse svcPay(String cardCode, QueryOrdersResponse.DataBean.OrderBean orderBean, PaymentRequest paymentRequest, String transId, String trackingNo) {
//
CodePayRequest request = new CodePayRequest();
//
String partnerId = orderBean.getCompanyId();
//
request.setBody(orderBean.getShopName());
//
request.setBusinessDate(DateUtil.convert2String(new Date(), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
//
request.setCode(cardCode);
//
request.setPartnerId(partnerId);
//
request.setStoreId(orderBean.getShopId());
//
request.setAmount(orderBean.getAmount());
//
request.setTransId(transId);
//
request.setStationId("1");
//
request.setOperatorId("1");
//
request.setVer("2");
//
SVCCardAmountRequest svcRequest = new SVCCardAmountRequest();
//
svcRequest.setPartnerId(partnerId);
//
svcRequest.setCardCodes(Arrays.asList(cardCode));
//
//查询svc卡余额
//
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;
//
}
//
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;
//
}
//
//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();
//
CodePayResponse.CodePayDate codePayResponse = responseBase.getData().getData();
//
orderPayResponse.setFmId(codePayResponse.getFmId());
//
orderPayResponse.setPayTransId(codePayResponse.getPayTransId());
//
orderPayResponse.setWxAppid(paymentRequest.getWxAppId());
//
orderPayResponse.setOpenId(paymentRequest.getOpenId());
//
orderPayResponse.setPartnerId(orderBean.getCompanyId());
//
orderPayResponse.setOrderId(orderBean.getOid());
//
return orderPayResponse;
//
}
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
This diff is collapsed.
Click to expand it.
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;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
java.util.List
;
@FeignClient
(
name
=
"customer-property-service"
,
url
=
"${customer.property.service.url:}"
)
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
public
interface
CustomerPropertyClient
{
...
...
@@ -21,4 +23,9 @@ public interface CustomerPropertyClient {
@PostMapping
({
"/propertyservice/score/statisticalScore"
})
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 {
COMB
((
byte
)
4
,
"10212"
,
"混合支付"
,
"comb"
),
USVCP
((
byte
)
5
,
"10556"
,
"电子风味卡支付"
,
"usvcp"
),
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
String
ebcode
;
...
...
@@ -36,6 +38,6 @@ public enum PayChannelType {
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;
import
cn.freemud.adapter.CouponAdapter
;
import
cn.freemud.adapter.ShoppingCartConvertAdapter
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.constant.ApplicationConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ShoppingCartConstant
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.activity.ActivityQueryDto
;
import
cn.freemud.entities.dto.calculate.ActivityCalculationDiscountRequestDto
;
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.vo.*
;
import
cn.freemud.enums.ActivityChannelEnum
;
...
...
@@ -21,6 +22,7 @@ import cn.freemud.interceptor.ServiceException;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.service.*
;
import
cn.freemud.service.thirdparty.ActivityClient
;
import
cn.freemud.service.thirdparty.SvcAppClient
;
import
cn.freemud.service.thirdparty.SvcComPayClient
;
import
cn.freemud.utils.PropertyConvertUtil
;
import
cn.freemud.utils.RedisLock
;
...
...
@@ -29,9 +31,6 @@ import com.alibaba.fastjson.JSONArray;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.base.SDKCommonBaseContextWare
;
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.sdk.api.assortment.shoppingcart.constant.CommonsConstant
;
import
com.freemud.sdk.api.assortment.shoppingcart.domain.CollageMemberState
;
...
...
@@ -106,7 +105,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
private
CollageOrderBaseServiceImpl
collageOrderBaseService
;
@Autowired
private
PaymentNewService
paymentNewService
;
private
SvcAppClient
svcAppClient
;
@Autowired
private
SvcComPayClient
svcComPayClient
;
...
...
@@ -1334,28 +1333,30 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
request
.
setPartnerId
(
partnerId
);
request
.
setCardCodes
(
Arrays
.
asList
(
cardCode
));
//查询svc卡金额
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
SVCCardAmountResponse
>
response
=
paymentNewService
.
querySVCCardAmount
(
request
,
trackingNo
);
BaseResponse
<
SVCCardAmountResponse
>
response
=
svcAppClient
.
batchQueryCardAmount
(
request
);
if
(
response
==
null
)
{
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
);
}
//获取实际配送费
if
(
StringUtils
.
isNotBlank
(
receiveId
)
&&
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
()
!=
null
)
{
// Integer deliveryAmount = getDeliveryAmount(receiveId, partnerId, storeId);
Integer
deliveryAmount
=
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
().
intValue
();
orderAmount
+=
deliveryAmount
;
}
Integer
amount1
=
response
.
getData
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
vamount
=
response
.
getData
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
Integer
amount1
=
response
.
getResult
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
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
)
{
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_AMOUNT_DEFICIENCY
);
}
BigDecimal
bigDecimal
=
new
BigDecimal
(
orderAmount
);
String
amountStr
=
bigDecimal
.
divide
(
new
BigDecimal
(
100
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
toString
();
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
This diff is collapsed.
Click to expand it.
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