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
ad7aea96
Commit
ad7aea96
authored
Nov 16, 2020
by
zhiheng.zhang
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/qa' into qa
parents
f14c51f6
e01fd249
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
80 additions
and
18 deletions
+80
-18
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+23
-5
order-application-service/src/main/java/cn/freemud/entities/vo/QueryOrderResponseVo.java
+4
-0
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
+7
-1
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+46
-12
No files found.
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
ad7aea96
...
...
@@ -88,6 +88,7 @@ import org.springframework.beans.factory.annotation.Value;
import
org.springframework.stereotype.Component
;
import
java.awt.geom.Point2D
;
import
java.io.*
;
import
java.math.BigDecimal
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.spec.InvalidKeySpecException
;
...
...
@@ -613,12 +614,27 @@ public class OrderAdapter {
createOrderDto
.
setLongitude
(
longitude
);
createOrderDto
.
setOrderType
(
convent2OrderTypeEnum
(
orderType
));
createOrderDto
.
setPayType
(
QueryPayType
.
ONLINE_PAY
);
//电子风味卡
if
(
Objects
.
nonNull
(
createOrderVo
.
getUnionPayCard
()))
{
createOrderDto
.
setPayChannel
(
PayChannel
.
USVCP
.
getCode
());
createOrderDto
.
setPayChannelName
(
PayChannel
.
USVCP
.
getDesc
());
}
else
if
(
StringUtils
.
isNotBlank
(
createOrderVo
.
getCardCode
())){
createOrderDto
.
setPayChannel
(
"10102"
);
createOrderDto
.
setPayChannelName
(
"储值卡支付"
);
createOrderDto
.
setPayChannel
(
PayChannelType
.
USVCP
.
getEbcode
());
createOrderDto
.
setPayChannelName
(
PayChannelType
.
USVCP
.
getName
());
}
//混合支付
else
if
(
PayChannelType
.
COMB
.
getIndex
().
equals
(
createOrderVo
.
getPayChannelType
()))
{
createOrderDto
.
setPayChannel
(
PayChannelType
.
COMB
.
getEbcode
());
createOrderDto
.
setPayChannelName
(
PayChannelType
.
COMB
.
getName
());
}
else
if
(
PayChannelType
.
WECHAT
.
getIndex
().
equals
(
createOrderVo
.
getPayChannelType
()))
{
createOrderDto
.
setPayChannel
(
PayChannelType
.
WECHAT
.
getEbcode
());
createOrderDto
.
setPayChannelName
(
PayChannelType
.
WECHAT
.
getName
());
}
else
if
(
PayChannelType
.
ALIPAY
.
getIndex
().
equals
(
createOrderVo
.
getPayChannelType
()))
{
createOrderDto
.
setPayChannel
(
PayChannelType
.
ALIPAY
.
getEbcode
());
createOrderDto
.
setPayChannelName
(
PayChannelType
.
ALIPAY
.
getName
());
}
else
if
(
StringUtils
.
isNotBlank
(
createOrderVo
.
getCardCode
())){
createOrderDto
.
setPayChannel
(
PayChannelType
.
SVC
.
getEbcode
());
createOrderDto
.
setPayChannelName
(
PayChannelType
.
SVC
.
getName
());
}
createOrderDto
.
setSource
(
OrderSourceType
.
SAAS
.
getCode
());
createOrderDto
.
setSourceName
(
OrderSourceType
.
SAAS
.
getDesc
());
...
...
@@ -1120,6 +1136,8 @@ public class OrderAdapter {
responseVo
.
setPayStatusDesc
(
Optional
.
ofNullable
(
PayStatus
.
getByCode
(
ordersBean
.
getPayStatus
()))
.
map
(
PayStatus:
:
getDesc
).
orElse
(
""
));
responseVo
.
setPayVoucher
(
orderExtInfoDto
!=
null
?
orderExtInfoDto
.
getPayTransId
()
:
""
);
responseVo
.
setPayVoucherBarCode
(
Base64
.
getEncoder
().
encodeToString
(
BarcodeUtil
.
generateBarCode128
(
responseVo
.
getPayVoucher
(),
null
,
null
,
true
,
true
)));
responseVo
.
setPayCreateTime
(
orderExtInfoDto
!=
null
?
orderExtInfoDto
.
getPayDate
()
:
""
);
responseVo
.
setPayChannel
(
ordersBean
.
getPayChannel
());
if
(
StringUtils
.
isNotBlank
(
ordersBean
.
getPayChannel
()))
{
...
...
order-application-service/src/main/java/cn/freemud/entities/vo/QueryOrderResponseVo.java
View file @
ad7aea96
...
...
@@ -203,6 +203,10 @@ public class QueryOrderResponseVo {
*/
private
String
payVoucher
;
/**
* 付款单号条形码
*/
private
String
payVoucherBarCode
;
/**
* 退款状态 enum refundStatus
*/
private
Integer
refundStatus
;
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
View file @
ad7aea96
...
...
@@ -54,12 +54,14 @@ import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
import
com.google.common.collect.Lists
;
import
com.google.gson.Gson
;
import
lombok.extern.log4j.Log4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
sun.rmi.runtime.Log
;
import
java.awt.geom.Point2D
;
import
java.math.BigDecimal
;
...
...
@@ -69,6 +71,7 @@ import java.util.*;
import
java.util.stream.Collectors
;
@Component
@Log4j
public
class
CheckOrder
{
// 配送费逻辑是否使用旧的
...
...
@@ -748,10 +751,13 @@ public class CheckOrder {
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
);
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
ad7aea96
...
...
@@ -2445,6 +2445,31 @@ public class OrderServiceImpl implements Orderservice {
return
ResponseUtil
.
error
(
ResponseResultEnum
.
PAY_UNIFIED_ORDER_ERROR
.
getCode
(),
ResponseResultEnum
.
PAY_UNIFIED_ORDER_ERROR
.
getMessage
(),
null
);
}
/**
* 混合预支付
* @param trackingNo
* @param orderBean
* @param cardCode
* @param orderClient
* @param msg
* @return
*/
private
BaseResponse
failCombPreOrderPay
(
String
trackingNo
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
String
cardCode
,
OrderClientType
orderClient
,
String
msg
)
{
List
<
OrderClientType
>
notCancelOrderClientList
=
Lists
.
newArrayList
(
OrderClientType
.
APP
);
if
(!
notCancelOrderClientList
.
contains
(
orderClient
))
{
//失败冲正库存,冲正活动库存,取消订单
CancelOrderRequest
cancelOrderRequest
=
orderAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
orderBean
.
getCompanyId
(),
AfterSalesType
.
SYSTEM_CANCEL
,
StringUtils
.
join
(
new
String
[]{
"获取预支付失败"
,
msg
},
'-'
),
trackingNo
,
null
);
orderCenterSdkService
.
orderCancel
(
cancelOrderRequest
);
// TODO: 2019/9/10 hubowen mq推送变更
backOrdersStatusChange
(
orderBean
.
getOid
(),
orderBean
.
getStatus
());
}
//svc 卡支付失败
//if (StringUtils.isNotBlank(cardCode)) {
// return ResponseUtil.error(ResponseResultEnum.PAY_BACKEND_CONFIG_ERROR.getCode(), ResponseResultEnum.PAY_BACKEND_CONFIG_ERROR.getMessage(), null);
//}
return
ResponseUtil
.
error
(
ResponseResultEnum
.
PAY_UNIFIED_ORDER_ERROR
.
getCode
(),
"获取混合预支付信息失败"
,
null
);
}
public
OrderPayResponse
getPreOrderPay
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
PaymentRequest
paymentRequest
,
String
trackingNo
,
Integer
cardAmount
,
String
transId
,
String
partnerPayOvertime
,
OrderExtInfoDto
orderExtInfoDto
)
{
try
{
UnifiedOrderRequest
request
=
orderAdapter
.
convent2UnifiedOrderRequest
(
orderBean
,
paymentRequest
,
orderBean
.
getAmount
(),
cardAmount
,
transId
,
partnerPayOvertime
);
...
...
@@ -2472,6 +2497,7 @@ public class OrderServiceImpl implements Orderservice {
public
OrderPayResponse
svcPay
(
String
cardCode
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
PaymentRequest
paymentRequest
,
String
transId
,
String
trackingNo
)
{
CodePayRequest
request
=
new
CodePayRequest
();
OrderPayResponse
orderPayResponse
=
new
OrderPayResponse
();
String
partnerId
=
orderBean
.
getCompanyId
();
request
.
setBody
(
orderBean
.
getShopName
());
request
.
setBusinessDate
(
DateUtil
.
convert2String
(
new
Date
(),
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
));
...
...
@@ -2487,29 +2513,33 @@ public class OrderServiceImpl implements Orderservice {
svcRequest
.
setPartnerId
(
partnerId
);
svcRequest
.
setCardCodes
(
Arrays
.
asList
(
cardCode
));
//查询svc卡余额
log
.
info
(
"svc支付:{}"
,
transId
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
SVCCardAmountResponse
>
svcCardAmountResponseBaseResponse
=
paymentNewService
.
querySVCCardAmount
(
svcRequest
,
trackingNo
);
if
(
svcCardAmountResponseBaseResponse
==
null
||
!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
svcCardAmountResponseBaseResponse
.
getCode
())
||
svcCardAmountResponseBaseResponse
.
getData
().
getData
()
==
null
||
CollectionUtils
.
isEmpty
(
svcCardAmountResponseBaseResponse
.
getData
().
getData
().
getCardSimpleInfos
()))
{
return
null
;
orderPayResponse
.
setMsg
(
Objects
.
isNull
(
svcCardAmountResponseBaseResponse
)
?
"获取svc卡余额异常"
:
svcCardAmountResponseBaseResponse
.
getMessage
());
return
orderPayResponse
;
}
Integer
amount
=
svcCardAmountResponseBaseResponse
.
getData
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
vamount
=
svcCardAmountResponseBaseResponse
.
getData
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
if
(
amount
+
vamount
<
orderBean
.
getAmount
())
{
return
null
;
orderPayResponse
.
setMsg
(
"svc卡余额不足"
);
return
orderPayResponse
;
}
//svc卡支付
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
CodePayResponse
>
responseBase
=
paymentNewService
.
codePay
(
request
,
trackingNo
);
if
(
responseBase
==
null
||
!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
responseBase
.
getCode
())
||
responseBase
.
getData
().
getData
()
==
null
)
{
return
null
;
// 1.9.34 预支付失败需要把原因进行记录
orderPayResponse
.
setMsg
(
Objects
.
isNull
(
responseBase
)
?
"svc卡支付异常"
:
responseBase
.
getMessage
());
}
else
{
CodePayResponse
.
CodePayDate
codePayResponse
=
responseBase
.
getData
().
getData
();
orderPayResponse
.
setFmId
(
codePayResponse
.
getFmId
());
orderPayResponse
.
setPayTransId
(
codePayResponse
.
getPayTransId
());
orderPayResponse
.
setWxAppid
(
paymentRequest
.
getWxAppId
());
orderPayResponse
.
setOpenId
(
paymentRequest
.
getOpenId
());
orderPayResponse
.
setPartnerId
(
orderBean
.
getCompanyId
());
orderPayResponse
.
setOrderId
(
orderBean
.
getOid
());
}
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
;
}
...
...
@@ -3175,7 +3205,8 @@ public class OrderServiceImpl implements Orderservice {
orderPayResponse
=
comPayOrder
(
paymentRequest
,
createPrepayRequestDto
,
partnerPayOvertime
,
LogThreadLocal
.
getTrackingNo
());
if
(
orderPayResponse
==
null
||
Objects
.
isNull
(
orderPayResponse
.
getFmId
()))
{
return
failPreOrderPay
(
LogThreadLocal
.
getTrackingNo
()
log
.
info
(
"混合支付返回:{}"
,
JSON
.
toJSONString
(
orderPayResponse
));
return
failCombPreOrderPay
(
LogThreadLocal
.
getTrackingNo
()
,
createPrepayRequestDto
.
getProductOrderBean
()
,
cardCode
,
createPrepayRequestDto
.
getOrderClient
()
...
...
@@ -3229,6 +3260,7 @@ public class OrderServiceImpl implements Orderservice {
CombPayResponse
responseBase
=
null
;
CombPayRequest
combPayRequest
=
null
;
CombPayResponse
.
PayPlatform
payPlatform
=
null
;
log
.
info
(
"混合支付..."
);
try
{
String
orderClient
=
this
.
getPayCodeByChanel
(
createPrepayRequestDto
);
if
(
StringUtils
.
isBlank
(
orderClient
))
{
...
...
@@ -3244,6 +3276,7 @@ public class OrderServiceImpl implements Orderservice {
orderPayResponse
.
setMsg
(
responseBase
.
getMsg
());
}
else
{
log
.
info
(
"混合支付请求request:{},response:{}"
,
JSON
.
toJSONString
(
combPayRequest
),
JSON
.
toJSONString
(
responseBase
));
/**
* 生成预支付参数
*/
...
...
@@ -3275,6 +3308,7 @@ public class OrderServiceImpl implements Orderservice {
}
}
catch
(
Exception
e
)
{
log
.
info
(
"混合支付异常..."
);
//TODO 邮件告警
LogUtil
.
error
(
"comPay_error"
,
JSONObject
.
toJSONString
(
responseBase
),
JSONObject
.
toJSONString
(
paymentRequest
),
e
);
orderPayResponse
=
new
OrderPayResponse
();
...
...
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