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
8875579c
Commit
8875579c
authored
Nov 18, 2020
by
xiaoer.li@freemud.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
调整混合支付流程
parent
56bd8f8e
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
40 additions
and
140 deletions
+40
-140
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
+0
-1
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/BaseCreateOrderRequest.java
+0
-1
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+34
-72
order-application-service/src/main/java/cn/freemud/entities/dto/order/CreatePrepayRequestDto.java
+1
-10
order-application-service/src/main/java/cn/freemud/entities/vo/CreateOrderVo.java
+0
-13
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
+0
-43
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+0
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/entities/PayItem.java
+5
-0
No files found.
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
View file @
8875579c
...
@@ -262,7 +262,6 @@ public class OrderSdkAdapter {
...
@@ -262,7 +262,6 @@ public class OrderSdkAdapter {
//订单重量
//订单重量
Double
orderWeight
=
sumOrderWeight
(
requestVO
.
getProducts
());
Double
orderWeight
=
sumOrderWeight
(
requestVO
.
getProducts
());
request
.
setWeight
(
orderWeight
);
request
.
setWeight
(
orderWeight
);
request
.
setOrderPayItemCreateReqList
(
requestVO
.
getOrderPayItemCreateReqList
());
return
request
;
return
request
;
}
}
...
...
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/BaseCreateOrderRequest.java
View file @
8875579c
...
@@ -166,7 +166,6 @@ public class BaseCreateOrderRequest extends BaseConfig {
...
@@ -166,7 +166,6 @@ public class BaseCreateOrderRequest extends BaseConfig {
* 收货地址Id
* 收货地址Id
*/
*/
private
String
receiveId
;
private
String
receiveId
;
private
List
<
OrderPayItemCreateReq
>
orderPayItemCreateReqList
;
@Data
@Data
public
static
class
DeliveryTypeInfo
{
public
static
class
DeliveryTypeInfo
{
/**
/**
...
...
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
8875579c
...
@@ -303,8 +303,6 @@ public class OrderAdapter {
...
@@ -303,8 +303,6 @@ public class OrderAdapter {
createOrderDto
.
setActivityUpdateStockRequest
(
activityUpdateStockRequest
);
createOrderDto
.
setActivityUpdateStockRequest
(
activityUpdateStockRequest
);
}
}
createOrderDto
.
setPayChannelType
(
createOrderVo
.
getPayChannelType
());
createOrderDto
.
setPayChannelType
(
createOrderVo
.
getPayChannelType
());
createOrderDto
.
setOrderPayItemCreateReqList
(
createOrderVo
.
getOrderPayItemCreateReqList
());
// createOrderDto.setOtherInfo(getOrderOtherInfo(shoppingCartGoodsDto));
return
createOrderDto
;
return
createOrderDto
;
}
}
...
@@ -3361,9 +3359,8 @@ public class OrderAdapter {
...
@@ -3361,9 +3359,8 @@ public class OrderAdapter {
,
null
,
null
,
createOrderVo
.
getUnionPayCard
()
,
createOrderVo
.
getUnionPayCard
()
,
createOrderVo
.
getShopId
()
,
createOrderVo
.
getShopId
()
,
createOrderVo
.
getOrderPayItemCreateReqList
()
,
createOrderVo
.
getChannel
()
,
createOrderVo
.
getCashAmount
()
);
,
createOrderVo
.
getSvcAmount
());
}
}
public
CreatePrepayRequestDto
convertToCreatePrepayRequestDto
(
String
partnerId
public
CreatePrepayRequestDto
convertToCreatePrepayRequestDto
(
String
partnerId
,
String
wxAppId
,
String
openId
,
String
wxAppId
,
String
openId
...
@@ -3375,13 +3372,11 @@ public class OrderAdapter {
...
@@ -3375,13 +3372,11 @@ public class OrderAdapter {
,
long
totalAmount
,
long
totalAmount
,
int
cardAmount
,
int
cardAmount
,
OrderExtInfoDto
orderExtInfoDTO
,
OrderExtInfoDto
orderExtInfoDTO
,
String
transId
,
String
transId
,
OrderClientType
orderClient
,
OrderClientType
orderClient
,
CreateOrderVo
.
UnionPayCard
unionPayCard
,
CreateOrderVo
.
UnionPayCard
unionPayCard
,
String
storeId
,
String
storeId
,
List
<
OrderPayItemCreateReq
>
payItem
,
String
channel
){
,
BigDecimal
cashAmount
,
BigDecimal
svcAmount
){
CreatePrepayRequestDto
requestDto
=
new
CreatePrepayRequestDto
();
CreatePrepayRequestDto
requestDto
=
new
CreatePrepayRequestDto
();
requestDto
.
setPartnerId
(
partnerId
);
requestDto
.
setPartnerId
(
partnerId
);
requestDto
.
setWxAppId
(
wxAppId
);
requestDto
.
setWxAppId
(
wxAppId
);
...
@@ -3398,9 +3393,7 @@ public class OrderAdapter {
...
@@ -3398,9 +3393,7 @@ public class OrderAdapter {
requestDto
.
setOrderClient
(
orderClient
);
requestDto
.
setOrderClient
(
orderClient
);
requestDto
.
setUnionPayCard
(
unionPayCard
);
requestDto
.
setUnionPayCard
(
unionPayCard
);
requestDto
.
setStoreId
(
storeId
);
requestDto
.
setStoreId
(
storeId
);
requestDto
.
setOrderPayItemCreateReqList
(
payItem
);
requestDto
.
setChannel
(
channel
);
requestDto
.
setCashAmount
(
cashAmount
);
requestDto
.
setSvcAmount
(
svcAmount
);
return
requestDto
;
return
requestDto
;
}
}
...
@@ -3505,62 +3498,33 @@ public class OrderAdapter {
...
@@ -3505,62 +3498,33 @@ public class OrderAdapter {
return
deleteOrderDto
;
return
deleteOrderDto
;
}
}
/**
public
CombPayRequest
convent2CombPayOrderRequest
(
String
cardNo
* svc卡支付+现金支付
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
* @param cashAmount
,
PaymentRequest
paymentRequest
* @param svcAmount
,
String
partnerPayOvertime
* @param payChannelType
,
String
orderClient
* @return
,
String
channel
*/
,
Integer
totalAmount
public
List
<
OrderPayItemCreateReq
>
setOrderPayItem
(
BigDecimal
cashAmount
,
BigDecimal
svcAmount
,
Byte
payChannelType
){
,
Integer
svcAmount
List
<
OrderPayItemCreateReq
>
orderPayItemCreateReqs
=
new
ArrayList
<>(
0
);
,
Integer
svcVAmount
)
{
OrderPayItemCreateReq
orderPayItemCreateReqSvc
=
new
OrderPayItemCreateReq
();
//svc卡
orderPayItemCreateReqSvc
.
setPayAmount
(
svcAmount
);
orderPayItemCreateReqSvc
.
setPayChannelType
(
PayChannelType
.
SVC
.
getIndex
().
intValue
());
orderPayItemCreateReqSvc
.
setPayChannelName
(
PayChannelType
.
SVC
.
getName
());
orderPayItemCreateReqSvc
.
setPayEbCode
(
PayChannelType
.
SVC
.
getEbcode
());
orderPayItemCreateReqs
.
add
(
orderPayItemCreateReqSvc
);
//现金支付
OrderPayItemCreateReq
orderPayItemCreateReqOther
=
new
OrderPayItemCreateReq
();
orderPayItemCreateReqOther
.
setPayAmount
(
cashAmount
);
orderPayItemCreateReqOther
.
setPayChannelType
(
PayChannelType
.
getByIndex
(
payChannelType
).
getIndex
().
intValue
());
orderPayItemCreateReqOther
.
setPayChannelName
(
PayChannelType
.
getByIndex
(
payChannelType
).
getName
());
orderPayItemCreateReqOther
.
setPayEbCode
(
PayChannelType
.
getByIndex
(
payChannelType
).
getEbcode
());
orderPayItemCreateReqs
.
add
(
orderPayItemCreateReqOther
);
return
orderPayItemCreateReqs
;
}
/**
* 混合支付预支付信息转换
* @param paymentRequest
* @param createPrepayRequestDto
* @param partnerPayOvertime
* @return
*/
public
CombPayRequest
convent2CombPayOrderRequest
(
PaymentRequest
paymentRequest
,
CreatePrepayRequestDto
createPrepayRequestDto
,
String
partnerPayOvertime
,
String
orderClient
)
{
CombPayRequest
orderPayDto
=
new
CombPayRequest
();
CombPayRequest
orderPayDto
=
new
CombPayRequest
();
orderPayDto
.
setEbCode
(
paymentRequest
.
getPayCode
());
orderPayDto
.
setEbCode
(
paymentRequest
.
getPayCode
());
orderPayDto
.
setPartner_id
(
createPrepayRequestDto
.
getPartner
Id
());
orderPayDto
.
setPartner_id
(
orderBean
.
getCompany
Id
());
orderPayDto
.
setBody
(
paymentRequest
.
getPrincipalName
());
orderPayDto
.
setBody
(
paymentRequest
.
getPrincipalName
());
orderPayDto
.
setNotify_url
(
paymentRequest
.
getReverseNotifyiDcUrl
());
orderPayDto
.
setNotify_url
(
paymentRequest
.
getReverseNotifyiDcUrl
());
orderPayDto
.
setStore_id
(
createPrepayRequestDto
.
getStore
Id
());
orderPayDto
.
setStore_id
(
orderBean
.
getShop
Id
());
orderPayDto
.
setOpen_id
(
paymentRequest
.
getOpenId
());
orderPayDto
.
setOpen_id
(
paymentRequest
.
getOpenId
());
String
businessDate
=
com
.
freemud
.
application
.
sdk
.
api
.
util
.
DateUtil
.
convert2String
(
new
Date
(),
"yyyyMMdd"
);
String
businessDate
=
com
.
freemud
.
application
.
sdk
.
api
.
util
.
DateUtil
.
convert2String
(
new
Date
(),
"yyyyMMdd"
);
orderPayDto
.
setBusiness_date
(
businessDate
);
orderPayDto
.
setBusiness_date
(
businessDate
);
orderPayDto
.
setAmount
(
createPrepayRequestDto
.
getTotalAmount
());
orderPayDto
.
setAmount
(
totalAmount
.
longValue
());
orderPayDto
.
setVip_amount
(
0L
);
orderPayDto
.
setVip_amount
(
0L
);
orderPayDto
.
setAppId
(
paymentRequest
.
getWxAppId
());
orderPayDto
.
setAppId
(
paymentRequest
.
getWxAppId
());
orderPayDto
.
setPayCode
(
paymentRequest
.
getPayCode
());
orderPayDto
.
setPayCode
(
paymentRequest
.
getPayCode
());
orderPayDto
.
setVer
(
"V1"
);
orderPayDto
.
setVer
(
"V1"
);
orderPayDto
.
setPayTimeOutTime
(
StringUtils
.
defaultIfBlank
(
partnerPayOvertime
,
"30"
));
orderPayDto
.
setPayTimeOutTime
(
StringUtils
.
defaultIfBlank
(
partnerPayOvertime
,
"30"
));
List
<
ProductVO
>
productVOS
=
new
ArrayList
<
ProductVO
>();
List
<
ProductVO
>
productVOS
=
new
ArrayList
<
ProductVO
>();
if
(
CollectionUtils
.
isNotEmpty
(
createPrepayRequestDto
.
getFatherOrderBean
()
.
getProductList
()))
{
if
(
CollectionUtils
.
isNotEmpty
(
orderBean
.
getProductList
()))
{
for
(
QueryOrdersResponse
.
DataBean
.
OrderBean
.
ProductBean
product
:
createPrepayRequestDto
.
getFatherOrderBean
()
.
getProductList
())
{
for
(
QueryOrdersResponse
.
DataBean
.
OrderBean
.
ProductBean
product
:
orderBean
.
getProductList
())
{
ProductVO
productBean
=
new
ProductVO
();
ProductVO
productBean
=
new
ProductVO
();
productBean
.
setId
(
product
.
getProductId
());
productBean
.
setId
(
product
.
getProductId
());
productBean
.
setQuantity
(
product
.
getNumber
());
productBean
.
setQuantity
(
product
.
getNumber
());
...
@@ -3573,29 +3537,26 @@ public class OrderAdapter {
...
@@ -3573,29 +3537,26 @@ public class OrderAdapter {
}
}
orderPayDto
.
setProducts
(
productVOS
);
orderPayDto
.
setProducts
(
productVOS
);
List
<
PayPlatformVO
>
platforms
=
new
ArrayList
<>();
List
<
PayPlatformVO
>
platforms
=
new
ArrayList
<>();
if
(
null
!=
createPrepayRequestDto
.
getOrderPayItemCreateReqList
()
&&
createPrepayRequestDto
.
getOrderPayItemCreateReqList
().
size
()>
0
){
Long
svc
=
svcAmount
.
longValue
()+
svcVAmount
.
longValue
();
for
(
OrderPayItemCreateReq
orderPayItemCreateReq
:
createPrepayRequestDto
.
getOrderPayItemCreateReqList
())
{
PayPlatformVO
payPlatformVO
=
new
PayPlatformVO
();
PayPlatformVO
payPlatformVO
=
new
PayPlatformVO
();
payPlatformVO
.
setAmount
(
orderPayItemCreateReq
.
getPayAmount
().
longValue
());
payPlatformVO
.
setClientCode
(
PayChannelType
.
SVC
.
getEbcode
());
payPlatformVO
.
setEbcode
(
orderPayItemCreateReq
.
getPayEbCode
());
payPlatformVO
.
setEbcode
(
PayChannelType
.
SVC
.
getEbcode
());
if
(
orderPayItemCreateReq
.
getPayEbCode
().
equals
(
PayChannelType
.
SVC
.
getEbcode
()))
{
payPlatformVO
.
setAmount
(
svc
);
payPlatformVO
.
setClientCode
(
orderPayItemCreateReq
.
getPayEbCode
());
platforms
.
add
(
payPlatformVO
);
}
else
if
(
orderPayItemCreateReq
.
getPayEbCode
().
equals
(
PayChannelType
.
WECHAT
.
getEbcode
()))
{
String
ebcode
=
PayChannelType
.
getByIndex
(
Byte
.
parseByte
(
channel
)).
getEbcode
();
payPlatformVO
.
setClientCode
(
orderClient
);
payPlatformVO
=
new
PayPlatformVO
();
}
payPlatformVO
.
setAmount
(
totalAmount
.
longValue
()
-
svc
);
else
if
(
orderPayItemCreateReq
.
getPayEbCode
().
equals
(
PayChannelType
.
ALIPAY
.
getEbcode
()))
{
payPlatformVO
.
setClientCode
(
orderClient
);
payPlatformVO
.
setClientCode
(
orderClient
);
}
payPlatformVO
.
setEbcode
(
ebcode
);
platforms
.
add
(
payPlatformVO
);
platforms
.
add
(
payPlatformVO
);
}
}
orderPayDto
.
setPlatforms
(
platforms
);
orderPayDto
.
setPlatforms
(
platforms
);
orderPayDto
.
setOut_order_no
(
createPrepayRequestDto
.
getFatherOrderBean
()
.
getOid
());
orderPayDto
.
setOut_order_no
(
orderBean
.
getOid
());
orderPayDto
.
setCardCode
(
c
reatePrepayRequestDto
.
getCardCode
()
);
orderPayDto
.
setCardCode
(
c
ardNo
);
return
orderPayDto
;
return
orderPayDto
;
}
}
/**
/**
* 混合支付返回的支付参数
* 混合支付返回的支付参数
* @param payPlatforms
* @param payPlatforms
...
@@ -3630,6 +3591,7 @@ public class OrderAdapter {
...
@@ -3630,6 +3591,7 @@ public class OrderAdapter {
PayItem
payItem
=
new
PayItem
();
PayItem
payItem
=
new
PayItem
();
payItem
.
setFmTradeNo
(
pt
.
getFmTradeNo
());
payItem
.
setFmTradeNo
(
pt
.
getFmTradeNo
());
payItem
.
setPayChannelType
(
PayChannelType
.
getByEbcode
(
pt
.
getEbCode
()).
getIndex
().
intValue
());
payItem
.
setPayChannelType
(
PayChannelType
.
getByEbcode
(
pt
.
getEbCode
()).
getIndex
().
intValue
());
//payItem.setPayChannelName(PayChannelType.getByEbcode(pt.getEbCode()).getName());
payItem
.
setTransId
(
pt
.
getTransId
());
payItem
.
setTransId
(
pt
.
getTransId
());
payItem
.
setPartnerId
(
partnerId
);
payItem
.
setPartnerId
(
partnerId
);
responseDto
.
getPayItem
().
add
(
payItem
);
responseDto
.
getPayItem
().
add
(
payItem
);
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/order/CreatePrepayRequestDto.java
View file @
8875579c
...
@@ -71,15 +71,6 @@ public class CreatePrepayRequestDto {
...
@@ -71,15 +71,6 @@ public class CreatePrepayRequestDto {
* 使用电子风味卡
* 使用电子风味卡
*/
*/
private
CreateOrderVo
.
UnionPayCard
unionPayCard
;
private
CreateOrderVo
.
UnionPayCard
unionPayCard
;
private
List
<
OrderPayItemCreateReq
>
orderPayItemCreateReqList
;
/**
* svc支付金额
*/
private
BigDecimal
svcAmount
;
/**
* 现金支付金额
*/
private
BigDecimal
cashAmount
;
private
String
storeId
;
private
String
storeId
;
private
String
channel
;
}
}
order-application-service/src/main/java/cn/freemud/entities/vo/CreateOrderVo.java
View file @
8875579c
...
@@ -249,19 +249,6 @@ public class CreateOrderVo {
...
@@ -249,19 +249,6 @@ public class CreateOrderVo {
@Valid
@Valid
@ApiModelProperty
(
value
=
"电子风味卡"
)
@ApiModelProperty
(
value
=
"电子风味卡"
)
private
UnionPayCard
unionPayCard
;
private
UnionPayCard
unionPayCard
;
/**
* 混合支付
*/
private
List
<
OrderPayItemCreateReq
>
orderPayItemCreateReqList
=
new
ArrayList
<>();
/**
* svc支付金额
*/
private
BigDecimal
svcAmount
;
/**
* 现金支付金额
*/
private
BigDecimal
cashAmount
;
/**
/**
* 电子风味卡
* 电子风味卡
*/
*/
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
View file @
8875579c
...
@@ -750,47 +750,4 @@ public class CheckOrder {
...
@@ -750,47 +750,4 @@ public class CheckOrder {
// throw new ServiceException(ResponseResult.STORE_ITEM_STOP_BUSINESS);
// throw new ServiceException(ResponseResult.STORE_ITEM_STOP_BUSINESS);
// }
// }
}
}
/**
* 混合支付
* @param createOrderVo
* @param shoppingCartGoodsDto
* @param trackingNo
* @return
*/
public
boolean
checkSvcPay
(
CreateOrderVo
createOrderVo
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
String
trackingNo
)
{
if
(
StringUtils
.
isBlank
(
createOrderVo
.
getCardCode
()))
{
return
false
;
}
//这么不合规的粗暴搞法 设置支付方式
PayChannelType
payType
=
PayChannelType
.
getByIndex
(
Byte
.
parseByte
(
createOrderVo
.
getChannel
()));
createOrderVo
.
setPayChannelType
(
payType
.
getIndex
());
SVCCardAmountRequest
request
=
new
SVCCardAmountRequest
();
request
.
setPartnerId
(
createOrderVo
.
getPartnerId
());
request
.
setCardCodes
(
Arrays
.
asList
(
createOrderVo
.
getCardCode
()));
BaseResponse
<
SVCCardAmountResponse
>
svcCardAmount
=
paymentNewService
.
querySVCCardAmount
(
request
,
trackingNo
);
if
(
svcCardAmount
==
null
||
svcCardAmount
.
getData
()==
null
||!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
svcCardAmount
.
getCode
()))
{
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_ERROR
);
}
Integer
svcAmount
=
0
;
Integer
svcVAmount
=
0
;
Long
totalVAmount
=
shoppingCartGoodsDto
.
getTotalAmount
()
+
shoppingCartGoodsDto
.
getPackageAmount
();
if
(
svcCardAmount
.
getData
().
getData
().
getCardSimpleInfos
().
size
()>
0
)
{
svcAmount
=
svcCardAmount
.
getData
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
svcVAmount
=
svcCardAmount
.
getData
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
//todo : svc卡的金额小于订单金额
if
(
svcAmount
+
svcVAmount
>
0
&&
totalVAmount
>
svcAmount
+
svcVAmount
){
BigDecimal
total
=
new
BigDecimal
(
totalVAmount
);
BigDecimal
svcAmounts
=
new
BigDecimal
(
svcAmount
+
svcVAmount
);
BigDecimal
cashAmout
=
total
.
subtract
(
svcAmounts
);
createOrderVo
.
setOrderPayItemCreateReqList
(
orderAdapter
.
setOrderPayItem
(
cashAmout
,
svcAmounts
,
Byte
.
parseByte
(
createOrderVo
.
getChannel
())));
createOrderVo
.
setPayChannelType
(
PayChannelType
.
COMB
.
getIndex
());
createOrderVo
.
setCashAmount
(
cashAmout
);
createOrderVo
.
setSvcAmount
(
svcAmounts
);
return
true
;
}
}
return
false
;
}
}
}
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
8875579c
This diff is collapsed.
Click to expand it.
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/entities/PayItem.java
View file @
8875579c
...
@@ -20,5 +20,10 @@ public class PayItem {
...
@@ -20,5 +20,10 @@ public class PayItem {
private
String
partnerId
;
private
String
partnerId
;
private
String
fmTradeNo
;
private
String
fmTradeNo
;
private
Integer
payChannelType
;
private
Integer
payChannelType
;
private
Integer
payChannelName
;
private
String
transId
;
private
String
transId
;
private
String
orderPayItemCode
;
private
String
outOrderNo
;
private
String
platformTradeNo
;
private
String
endTransTradeNo
;
}
}
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