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
e3efb70a
Commit
e3efb70a
authored
Nov 26, 2021
by
ping.wu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
去除支付sdk,换成Feign调用
parent
85f95889
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
807 additions
and
375 deletions
+807
-375
order-application-service/src/main/java/cn/freemud/entities/dto/pay/PayRefundData.java
+18
-0
order-application-service/src/main/java/cn/freemud/entities/dto/pay/PayRefundRequestDto.java
+76
-0
order-application-service/src/main/java/cn/freemud/entities/dto/pay/PayRefundResponseDto.java
+12
-0
order-application-service/src/main/java/cn/freemud/entities/dto/pay/PaymentQueryOrderRequestDto.java
+21
-0
order-application-service/src/main/java/cn/freemud/entities/dto/pay/PaymentQueryOrderResponseDto.java
+17
-0
order-application-service/src/main/java/cn/freemud/entities/dto/pay/PaymentQueryRequestDto.java
+22
-0
order-application-service/src/main/java/cn/freemud/entities/dto/pay/PaymentQueryResponseDto.java
+23
-0
order-application-service/src/main/java/cn/freemud/service/impl/AppOrderServiceImpl.java
+9
-12
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
+1
-6
order-application-service/src/main/java/cn/freemud/service/impl/EncircleOrderServiceImpl.java
+8
-15
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
+13
-29
order-application-service/src/main/java/cn/freemud/service/impl/MallOrderServiceImpl.java
+1
-1
order-application-service/src/main/java/cn/freemud/service/impl/PayServiceImpl.java
+349
-85
order-application-service/src/main/java/cn/freemud/service/thirdparty/PaymentNewClient.java
+19
-2
order-application-service/src/main/java/cn/freemud/service/universal/UniversalOrderService.java
+216
-224
order-application-service/src/main/java/cn/freemud/service/universal/impl/SaasMallOrderService.java
+2
-1
No files found.
order-application-service/src/main/java/cn/freemud/entities/dto/pay/PayRefundData.java
0 → 100644
View file @
e3efb70a
package
cn
.
freemud
.
entities
.
dto
.
pay
;
import
lombok.Data
;
@Data
public
class
PayRefundData
{
private
Integer
resultCode
;
private
String
resultMsg
;
private
String
thirdPartTradeNo
;
private
String
tradeNo
;
private
String
refundTradeNo
;
private
String
thirdPartRefundTradeNo
;
private
Long
refundAmount
;
private
Long
totalAmount
;
private
Integer
refundStatus
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/pay/PayRefundRequestDto.java
0 → 100644
View file @
e3efb70a
package
cn
.
freemud
.
entities
.
dto
.
pay
;
import
lombok.Data
;
import
java.util.Map
;
@Data
public
class
PayRefundRequestDto
{
/**
* 接口版本,必须为2
*/
private
Integer
ver
;
/**
* 商户编号(由非码提供)
*/
private
String
partnerId
;
/**
* 退款交易序号
*/
private
String
refundId
;
/**
* 营业员编号(可以使用固定值)
*/
private
String
operatorId
;
/**
* 商家POS机编号(可以使用固定值)
*/
private
String
stationId
;
/**
* 商家门店号(在线支付需要提前定义)
*/
private
String
storeId
;
/**
* 终端交易序号
*/
private
String
transId
;
/**
* 业务日期
*/
private
String
businessDate
;
/**
* 客户端code
*/
private
Long
clientCode
;
/**
* 非码交易流水号
*/
private
String
fmId
;
/**
* 总金额
*/
private
Long
totalAmount
;
/**
* 退款金额
*/
private
Long
refundAmount
;
/**
* 退款原因描述
*/
private
String
refundDesc
;
/**
* 退款回调地址
*/
private
String
notifyUrl
;
/**
* 退款时分账规则
*/
private
String
accountDivided
;
/**
* 扩展字段,存放扩展信息
*/
private
Map
<
String
,
String
>
extendParams
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/pay/PayRefundResponseDto.java
0 → 100644
View file @
e3efb70a
package
cn
.
freemud
.
entities
.
dto
.
pay
;
import
lombok.Data
;
@Data
public
class
PayRefundResponseDto
{
private
Integer
code
;
private
String
message
;
private
PayRefundData
data
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/pay/PaymentQueryOrderRequestDto.java
0 → 100644
View file @
e3efb70a
package
cn
.
freemud
.
entities
.
dto
.
pay
;
import
lombok.Data
;
@Data
public
class
PaymentQueryOrderRequestDto
{
private
String
transactionCode
;
private
String
ver
;
private
String
partnerId
;
private
String
storeId
;
private
String
frontTransId
;
private
String
stationId
;
private
String
operatorId
;
private
String
transId
;
private
String
businessDate
;
private
String
clientCode
;
private
String
fmId
;
private
String
thirdPartTradeNo
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/pay/PaymentQueryOrderResponseDto.java
0 → 100644
View file @
e3efb70a
package
cn
.
freemud
.
entities
.
dto
.
pay
;
import
lombok.Data
;
@Data
public
class
PaymentQueryOrderResponseDto
{
private
String
userId
;
private
Integer
merchantCoupon
;
private
Integer
platformCoupon
;
private
Integer
vipAmount
;
private
Long
amount
;
private
String
transactionCode
;
private
String
status
;
private
String
payCode
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/pay/PaymentQueryRequestDto.java
0 → 100644
View file @
e3efb70a
package
cn
.
freemud
.
entities
.
dto
.
pay
;
import
lombok.Data
;
@Data
public
class
PaymentQueryRequestDto
{
private
String
transactionCode
;
private
String
ver
;
private
String
partnerId
;
private
String
storeId
;
private
String
frontTransId
;
private
String
stationId
;
private
String
operatorId
;
private
String
transId
;
private
String
businessDate
;
private
String
clientCode
;
private
String
fmId
;
private
String
thirdPartTradeNo
;
private
String
endTransId
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/pay/PaymentQueryResponseDto.java
0 → 100644
View file @
e3efb70a
package
cn
.
freemud
.
entities
.
dto
.
pay
;
import
lombok.Data
;
@Data
public
class
PaymentQueryResponseDto
{
private
Integer
resultCode
;
private
String
resultMsg
;
private
String
userId
;
private
String
transCurrency
;
private
Integer
totalAmount
;
private
Integer
merchantCoupon
;
private
Integer
platformCoupon
;
private
String
tradeNo
;
private
String
thirdPartTradeNo
;
private
String
tradeTime
;
private
String
tradeState
;
private
String
platformMchId
;
private
String
appId
;
private
String
endTransId
;
}
order-application-service/src/main/java/cn/freemud/service/impl/AppOrderServiceImpl.java
View file @
e3efb70a
...
@@ -10,6 +10,8 @@ import cn.freemud.entities.dto.coupon.InvalidCouponsRequestDto;
...
@@ -10,6 +10,8 @@ import cn.freemud.entities.dto.coupon.InvalidCouponsRequestDto;
import
cn.freemud.entities.dto.coupon.InvalidCouponsResponseDto
;
import
cn.freemud.entities.dto.coupon.InvalidCouponsResponseDto
;
import
cn.freemud.entities.dto.order.CreateOrderOperateDto
;
import
cn.freemud.entities.dto.order.CreateOrderOperateDto
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
import
cn.freemud.entities.dto.pay.PaymentQueryRequestDto
;
import
cn.freemud.entities.dto.pay.PaymentQueryResponseDto
;
import
cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto
;
import
cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.store.StoreMixResponseDto
;
import
cn.freemud.entities.dto.store.StoreMixResponseDto
;
...
@@ -21,8 +23,8 @@ import cn.freemud.enums.TradeState;
...
@@ -21,8 +23,8 @@ import cn.freemud.enums.TradeState;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.service.AppOrderService
;
import
cn.freemud.service.AppOrderService
;
import
cn.freemud.service.StoreService
;
import
cn.freemud.service.thirdparty.CouponOnlineClient
;
import
cn.freemud.service.thirdparty.CouponOnlineClient
;
import
cn.freemud.service.thirdparty.PaymentNewClient
;
import
cn.freemud.utils.BeanUtil
;
import
cn.freemud.utils.BeanUtil
;
import
cn.freemud.utils.RedisUtil
;
import
cn.freemud.utils.RedisUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
cn.freemud.utils.ResponseUtil
;
...
@@ -42,17 +44,11 @@ import com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp;
...
@@ -42,17 +44,11 @@ import com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.PaymentCloseUnifiedOrderRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.PaymentCloseUnifiedOrderRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.PaymentQueryRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.PaymentCloseUnifiedOrderResponse
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.PaymentCloseUnifiedOrderResponse
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.PaymentQueryResponse
;
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.productcenter.domain.ProductInfosDTO
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductInfosDTO
;
import
com.freemud.application.sdk.api.productcenter.request.product.GetProductRequest
;
import
com.freemud.application.sdk.api.productcenter.request.product.GetProductRequest
;
import
com.freemud.application.sdk.api.productcenter.service.ProductService
;
import
com.freemud.application.sdk.api.productcenter.service.ProductService
;
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.service.StoreCenterService
;
import
com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter
;
import
com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter
;
import
com.freemud.sdk.api.assortment.order.request.order.CancelOrderRequest
;
import
com.freemud.sdk.api.assortment.order.request.order.CancelOrderRequest
;
import
com.freemud.sdk.api.assortment.order.request.order.OrderEditRequest
;
import
com.freemud.sdk.api.assortment.order.request.order.OrderEditRequest
;
...
@@ -87,8 +83,6 @@ public class AppOrderServiceImpl implements AppOrderService {
...
@@ -87,8 +83,6 @@ public class AppOrderServiceImpl implements AppOrderService {
@Autowired
@Autowired
private
OrderCenterSdkService
orderCenterSdkService
;
private
OrderCenterSdkService
orderCenterSdkService
;
@Autowired
@Autowired
private
PaymentNewService
paymentNewService
;
@Autowired
private
RedisCache
redisCache
;
private
RedisCache
redisCache
;
@Autowired
@Autowired
private
RedisService
redisService
;
private
RedisService
redisService
;
...
@@ -109,6 +103,9 @@ public class AppOrderServiceImpl implements AppOrderService {
...
@@ -109,6 +103,9 @@ public class AppOrderServiceImpl implements AppOrderService {
@Autowired
@Autowired
private
PayServiceImpl
payServiceimpl
;
private
PayServiceImpl
payServiceimpl
;
@Autowired
private
PaymentNewClient
paymentNewClient
;
/**
/**
* 不支持会员卡
* 不支持会员卡
*/
*/
...
@@ -332,12 +329,12 @@ public class AppOrderServiceImpl implements AppOrderService {
...
@@ -332,12 +329,12 @@ public class AppOrderServiceImpl implements AppOrderService {
if
(
extInfo
!=
null
&&
StringUtils
.
isNotEmpty
(
extInfo
.
getFmId
()))
{
if
(
extInfo
!=
null
&&
StringUtils
.
isNotEmpty
(
extInfo
.
getFmId
()))
{
//订单状态未支付且存在预支付订单:
//订单状态未支付且存在预支付订单:
// 1.查询预支付订单支付状态
// 1.查询预支付订单支付状态
PaymentQueryRequest
paymentQueryRequest
=
new
PaymentQueryRequest
();
PaymentQueryRequest
Dto
paymentQueryRequest
=
new
PaymentQueryRequestDto
();
paymentQueryRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
paymentQueryRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
paymentQueryRequest
.
setStoreId
(
orderBean
.
getShopId
());
paymentQueryRequest
.
setStoreId
(
orderBean
.
getShopId
());
paymentQueryRequest
.
setFmId
(
extInfo
.
getFmId
());
paymentQueryRequest
.
setFmId
(
extInfo
.
getFmId
());
paymentQueryRequest
.
setVer
(
"2"
);
paymentQueryRequest
.
setVer
(
"2"
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PaymentQueryResponse
>
queryResponseBaseResponse
=
paymentNewService
.
query
(
paymentQueryRequest
,
LogThreadLocal
.
getTrackingNo
()
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PaymentQueryResponse
Dto
>
queryResponseBaseResponse
=
paymentNewClient
.
payQuery
(
paymentQueryRequest
);
//判断预支付订单状态
//判断预支付订单状态
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
queryResponseBaseResponse
.
getCode
()))
{
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
queryResponseBaseResponse
.
getCode
()))
{
throw
new
ServiceException
(
ResponseResult
.
ORDER_PAY_GETPRE_MESSAGE_ERROR
);
throw
new
ServiceException
(
ResponseResult
.
ORDER_PAY_GETPRE_MESSAGE_ERROR
);
...
@@ -353,7 +350,7 @@ public class AppOrderServiceImpl implements AppOrderService {
...
@@ -353,7 +350,7 @@ public class AppOrderServiceImpl implements AppOrderService {
closeUnifiedOrderRequest
.
setVer
(
"2"
);
closeUnifiedOrderRequest
.
setVer
(
"2"
);
closeUnifiedOrderRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
closeUnifiedOrderRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
closeUnifiedOrderRequest
.
setStoreId
(
orderBean
.
getShopId
());
closeUnifiedOrderRequest
.
setStoreId
(
orderBean
.
getShopId
());
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PaymentCloseUnifiedOrderResponse
>
cancelNewUnifiedOrder
=
paymentNew
Service
.
cancelNewUnifiedOrder
(
closeUnifiedOrderRequest
,
LogThreadLocal
.
getTrackingNo
()
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PaymentCloseUnifiedOrderResponse
>
cancelNewUnifiedOrder
=
paymentNew
Client
.
cancelNewUnifiedOrder
(
closeUnifiedOrderRequest
);
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
cancelNewUnifiedOrder
.
getCode
()))
{
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
cancelNewUnifiedOrder
.
getCode
()))
{
throw
new
ServiceException
(
ResponseResult
.
ORDER_PRE_PAYMENT_CLOSE_FAILED
);
throw
new
ServiceException
(
ResponseResult
.
ORDER_PRE_PAYMENT_CLOSE_FAILED
);
}
}
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
View file @
e3efb70a
...
@@ -33,10 +33,6 @@ import cn.freemud.entities.dto.user.CustomerPropertyBaseResponse;
...
@@ -33,10 +33,6 @@ import cn.freemud.entities.dto.user.CustomerPropertyBaseResponse;
import
cn.freemud.entities.dto.user.GetSvcInfoByMemberIdResponseVo
;
import
cn.freemud.entities.dto.user.GetSvcInfoByMemberIdResponseVo
;
import
cn.freemud.entities.dto.user.StatisticalScoreRequestVo
;
import
cn.freemud.entities.dto.user.StatisticalScoreRequestVo
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.GetMemberCouponRequestVo
;
import
cn.freemud.entities.vo.SellCouponCreateOrderVo
;
import
cn.freemud.entities.vo.ShoppingCartInfoRequestVo
;
import
cn.freemud.entities.vo.order.CreateOrderCouponCodeVo
;
import
cn.freemud.entities.vo.order.CreateOrderCouponCodeVo
;
import
cn.freemud.enums.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
...
@@ -61,10 +57,9 @@ import com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressR
...
@@ -61,10 +57,9 @@ import com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressR
import
com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse
;
import
com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse
;
import
com.freemud.application.sdk.api.membercenter.service.MemberCenterService
;
import
com.freemud.application.sdk.api.membercenter.service.MemberCenterService
;
import
com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum
;
import
com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderItemResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderItemResp
;
import
com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
import
com.freemud.application.sdk.api.storecenter.request.QueryDeliveryRequest
;
import
com.freemud.application.sdk.api.storecenter.request.QueryDeliveryRequest
;
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.QueryDeliverDetailResponse
;
import
com.freemud.application.sdk.api.storecenter.response.QueryDeliverDetailResponse
;
...
...
order-application-service/src/main/java/cn/freemud/service/impl/EncircleOrderServiceImpl.java
View file @
e3efb70a
...
@@ -7,12 +7,10 @@ import cn.freemud.constant.ResponseCodeConstant;
...
@@ -7,12 +7,10 @@ import cn.freemud.constant.ResponseCodeConstant;
import
cn.freemud.entities.UpdateReserveOrderResponseVo
;
import
cn.freemud.entities.UpdateReserveOrderResponseVo
;
import
cn.freemud.entities.bo.CreateOrderBONew
;
import
cn.freemud.entities.bo.CreateOrderBONew
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.pay.PaymentQueryRequestDto
;
import
cn.freemud.entities.dto.pay.PaymentQueryResponseDto
;
import
cn.freemud.entities.dto.pay.svc.SVCCardAmountRequestDto
;
import
cn.freemud.entities.dto.pay.svc.SVCCardAmountRequestDto
;
import
cn.freemud.entities.dto.pay.svc.SVCCardAmountResponseDto
;
import
cn.freemud.entities.dto.pay.svc.SVCCardAmountResponseDto
;
import
cn.freemud.entities.dto.GetShopDishWareProductDto
;
import
cn.freemud.entities.dto.ProductListDto
;
import
cn.freemud.entities.dto.ShopBaseResponseDto
;
import
cn.freemud.entities.dto.ShoppingCartBaseResponse
;
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
;
...
@@ -28,6 +26,7 @@ import cn.freemud.enums.*;
...
@@ -28,6 +26,7 @@ import cn.freemud.enums.*;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.service.EncircleOrderService
;
import
cn.freemud.service.EncircleOrderService
;
import
cn.freemud.service.thirdparty.PaymentNewClient
;
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.service.thirdparty.SvcAppClient
;
...
@@ -48,15 +47,9 @@ import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
...
@@ -48,15 +47,9 @@ import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import
com.freemud.application.sdk.api.ordercenter.enums.ProductTypeEnum
;
import
com.freemud.application.sdk.api.ordercenter.enums.ProductTypeEnum
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.PaymentCloseUnifiedOrderRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.PaymentCloseUnifiedOrderRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.PaymentQueryRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.SVCCardAmountRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.PaymentCloseUnifiedOrderResponse
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.PaymentCloseUnifiedOrderResponse
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.PaymentQueryResponse
;
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.storecenter.request.GetStoreTableRequest
;
import
com.freemud.application.sdk.api.storecenter.request.GetStoreTableRequest
;
import
com.freemud.application.sdk.api.storecenter.response.GetStoreTableResponse
;
import
com.freemud.application.sdk.api.storecenter.response.GetStoreTableResponse
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
import
com.freemud.sdk.api.assortment.order.request.order.*
;
import
com.freemud.sdk.api.assortment.order.request.order.*
;
import
com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse
;
...
@@ -107,8 +100,6 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
...
@@ -107,8 +100,6 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
@Autowired
@Autowired
private
OrderAdapter
orderAdapter
;
private
OrderAdapter
orderAdapter
;
@Autowired
@Autowired
private
PaymentNewService
paymentNewService
;
@Autowired
private
SvcAppClient
svcAppClient
;
private
SvcAppClient
svcAppClient
;
@Autowired
@Autowired
private
OrderCommonService
orderCommonService
;
private
OrderCommonService
orderCommonService
;
...
@@ -124,6 +115,8 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
...
@@ -124,6 +115,8 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
private
CouponAdapter
couponAdapter
;
private
CouponAdapter
couponAdapter
;
@Autowired
@Autowired
private
PayServiceImpl
payService
;
private
PayServiceImpl
payService
;
@Autowired
private
PaymentNewClient
paymentNewClient
;
private
final
Integer
RESPONSE_SUCCESS_CODE
=
100
;
private
final
Integer
RESPONSE_SUCCESS_CODE
=
100
;
...
@@ -575,12 +568,12 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
...
@@ -575,12 +568,12 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
if
(
extInfo
!=
null
&&
StringUtils
.
isNotEmpty
(
extInfo
.
getPrePayTransId
())
&&
StringUtils
.
isNotEmpty
(
extInfo
.
getFmId
())){
if
(
extInfo
!=
null
&&
StringUtils
.
isNotEmpty
(
extInfo
.
getPrePayTransId
())
&&
StringUtils
.
isNotEmpty
(
extInfo
.
getFmId
())){
//订单状态未支付且存在预支付订单:
//订单状态未支付且存在预支付订单:
// 1.查询预支付订单支付状态
// 1.查询预支付订单支付状态
PaymentQueryRequest
paymentQueryRequest
=
new
PaymentQueryRequest
();
PaymentQueryRequest
Dto
paymentQueryRequest
=
new
PaymentQueryRequestDto
();
paymentQueryRequest
.
setPartnerId
(
assortmentCustomerInfoVo
.
getPartnerId
());
paymentQueryRequest
.
setPartnerId
(
assortmentCustomerInfoVo
.
getPartnerId
());
paymentQueryRequest
.
setStoreId
(
assortmentCustomerInfoVo
.
getStoreId
());
paymentQueryRequest
.
setStoreId
(
assortmentCustomerInfoVo
.
getStoreId
());
paymentQueryRequest
.
setFmId
(
extInfo
.
getFmId
());
paymentQueryRequest
.
setFmId
(
extInfo
.
getFmId
());
paymentQueryRequest
.
setVer
(
"2"
);
paymentQueryRequest
.
setVer
(
"2"
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PaymentQueryResponse
>
queryResponseBaseResponse
=
paymentNewService
.
query
(
paymentQueryRequest
,
LogThreadLocal
.
getTrackingNo
()
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PaymentQueryResponse
Dto
>
queryResponseBaseResponse
=
paymentNewClient
.
payQuery
(
paymentQueryRequest
);
//判断预支付订单状态
//判断预支付订单状态
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
queryResponseBaseResponse
.
getCode
())){
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
queryResponseBaseResponse
.
getCode
())){
return
ResponseUtil
.
error
(
ResponseResultEnum
.
PAY_BACKEND_QUERY_DETAIL_ERROR
.
getCode
(),
ResponseResultEnum
.
PAY_BACKEND_QUERY_DETAIL_ERROR
.
getMessage
(),
null
);
return
ResponseUtil
.
error
(
ResponseResultEnum
.
PAY_BACKEND_QUERY_DETAIL_ERROR
.
getCode
(),
ResponseResultEnum
.
PAY_BACKEND_QUERY_DETAIL_ERROR
.
getMessage
(),
null
);
...
@@ -596,7 +589,7 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
...
@@ -596,7 +589,7 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
closeUnifiedOrderRequest
.
setVer
(
"2"
);
closeUnifiedOrderRequest
.
setVer
(
"2"
);
closeUnifiedOrderRequest
.
setPartnerId
(
assortmentCustomerInfoVo
.
getPartnerId
());
closeUnifiedOrderRequest
.
setPartnerId
(
assortmentCustomerInfoVo
.
getPartnerId
());
closeUnifiedOrderRequest
.
setStoreId
(
assortmentCustomerInfoVo
.
getStoreId
());
closeUnifiedOrderRequest
.
setStoreId
(
assortmentCustomerInfoVo
.
getStoreId
());
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PaymentCloseUnifiedOrderResponse
>
cancelNewUnifiedOrder
=
paymentNew
Service
.
cancelNewUnifiedOrder
(
closeUnifiedOrderRequest
,
LogThreadLocal
.
getTrackingNo
()
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PaymentCloseUnifiedOrderResponse
>
cancelNewUnifiedOrder
=
paymentNew
Client
.
cancelNewUnifiedOrder
(
closeUnifiedOrderRequest
);
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
cancelNewUnifiedOrder
.
getCode
())){
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
cancelNewUnifiedOrder
.
getCode
())){
return
ResponseUtil
.
error
(
ResponseResult
.
ENCIRCLEORDER_PRE_PAYMENT_CLOSE_FAILED
);
return
ResponseUtil
.
error
(
ResponseResult
.
ENCIRCLEORDER_PRE_PAYMENT_CLOSE_FAILED
);
}
}
...
...
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
View file @
e3efb70a
...
@@ -26,13 +26,13 @@ import cn.freemud.base.util.DateUtil;
...
@@ -26,13 +26,13 @@ import cn.freemud.base.util.DateUtil;
import
cn.freemud.constant.RedisKeyConstant
;
import
cn.freemud.constant.RedisKeyConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.db.PushMccafeOrder
;
import
cn.freemud.entities.db.PushMccafeOrder
;
import
cn.freemud.entities.dto.order.McCafePushOrderDto
;
import
cn.freemud.entities.dto.MCCafeDeliveryBaseResponse
;
import
cn.freemud.entities.dto.MCCafeDeliveryBaseResponse
;
import
cn.freemud.entities.dto.PayAccessResponse
;
import
cn.freemud.entities.dto.PayAccessResponse
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.delivery.*
;
import
cn.freemud.entities.dto.delivery.*
;
import
cn.freemud.entities.dto.order.CreateOrderOperateDto
;
import
cn.freemud.entities.dto.order.CreateOrderOperateDto
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
import
cn.freemud.entities.dto.order.McCafePushOrderDto
;
import
cn.freemud.entities.dto.pay.OrderPayResponse
;
import
cn.freemud.entities.dto.pay.OrderPayResponse
;
import
cn.freemud.entities.dto.pay.PaymentMqMessageDto
;
import
cn.freemud.entities.dto.pay.PaymentMqMessageDto
;
import
cn.freemud.entities.dto.product.AttributeValue
;
import
cn.freemud.entities.dto.product.AttributeValue
;
...
@@ -48,8 +48,8 @@ import cn.freemud.entities.dto.user.SendCouponForqujiaRequestDto;
...
@@ -48,8 +48,8 @@ import cn.freemud.entities.dto.user.SendCouponForqujiaRequestDto;
import
cn.freemud.entities.vo.CreateDeliveryVo
;
import
cn.freemud.entities.vo.CreateDeliveryVo
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.mccafe.RecentGoodsInfoVo
;
import
cn.freemud.entities.vo.mccafe.RecentGoodsInfoVo
;
import
cn.freemud.enums.*
;
import
cn.freemud.enums.OrderType
;
import
cn.freemud.enums.OrderType
;
import
cn.freemud.enums.*
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.management.entities.dto.request.order.MCCafeCouponRequest
;
import
cn.freemud.management.entities.dto.request.order.MCCafeCouponRequest
;
import
cn.freemud.management.entities.dto.request.order.MCCafeCouponVo
;
import
cn.freemud.management.entities.dto.request.order.MCCafeCouponVo
;
...
@@ -79,35 +79,25 @@ import com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseR
...
@@ -79,35 +79,25 @@ import com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseR
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
import
com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto
;
import
com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.ProductBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.RefundBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderClientType
;
import
com.freemud.application.sdk.api.ordercenter.enums.ProductTypeEnum
;
import
com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest
;
import
com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest
;
import
com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse
;
import
com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse
;
import
com.freemud.application.sdk.api.membercenter.service.MemberCenterService
;
import
com.freemud.application.sdk.api.membercenter.service.MemberCenterService
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.ProductBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.RefundBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.enums.*
;
import
com.freemud.application.sdk.api.ordercenter.enums.*
;
import
com.freemud.application.sdk.api.ordercenter.request.*
;
import
com.freemud.application.sdk.api.ordercenter.request.*
;
import
com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp
;
import
com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse
;
import
com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse
;
import
com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.*
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.*
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.CodePayRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.SVCCardAmountRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.CodePayResponse
;
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.service.EmailAlertService
;
import
com.freemud.application.sdk.api.service.EmailAlertService
;
import
com.freemud.application.sdk.api.storecenter.request.GetListByCodesRequest
;
import
com.freemud.application.sdk.api.storecenter.request.GetListByCodesRequest
;
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.GetListByCodesResponse
;
import
com.freemud.application.sdk.api.storecenter.response.GetListByCodesResponse
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
import
com.freemud.application.sdk.api.util.Md5Util
;
import
com.freemud.sdk.api.assortment.message.config.MessageOfficialRefundPushMqConfig
;
import
com.freemud.sdk.api.assortment.message.config.MessageOfficialRefundPushMqConfig
;
import
com.freemud.sdk.api.assortment.message.entity.MpTemplateMsg
;
import
com.freemud.sdk.api.assortment.message.entity.MpTemplateMsg
;
import
com.freemud.sdk.api.assortment.message.entity.MpTemplateMsgDataValue
;
import
com.freemud.sdk.api.assortment.message.entity.MpTemplateMsgDataValue
;
...
@@ -121,9 +111,6 @@ import com.freemud.sdk.api.assortment.order.enums.OldOrderStatus;
...
@@ -121,9 +111,6 @@ import com.freemud.sdk.api.assortment.order.enums.OldOrderStatus;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderType
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderType
;
import
com.freemud.sdk.api.assortment.order.request.order.*
;
import
com.freemud.sdk.api.assortment.order.request.order.*
;
import
com.freemud.sdk.api.assortment.order.response.order.*
;
import
com.freemud.sdk.api.assortment.order.response.order.*
;
//import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse;
import
cn.freemud.service.mccafe.CouponClientService
;
import
cn.freemud.service.mccafe.MCCafeOrderCenterSdkService
;
import
com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService
;
import
com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService
;
import
com.freemud.sdk.api.assortment.order.util.LockUtils
;
import
com.freemud.sdk.api.assortment.order.util.LockUtils
;
import
com.freemud.sdk.api.assortment.order.vo.ProductGroupVo
;
import
com.freemud.sdk.api.assortment.order.vo.ProductGroupVo
;
...
@@ -132,8 +119,6 @@ import com.freemud.sdk.api.assortment.payment.request.UnifiedOrderRequest;
...
@@ -132,8 +119,6 @@ import com.freemud.sdk.api.assortment.payment.request.UnifiedOrderRequest;
import
com.freemud.sdk.api.assortment.payment.response.OrderRefundQueryResponse
;
import
com.freemud.sdk.api.assortment.payment.response.OrderRefundQueryResponse
;
import
com.freemud.sdk.api.assortment.payment.response.OrderRefundResponse
;
import
com.freemud.sdk.api.assortment.payment.response.OrderRefundResponse
;
import
com.freemud.sdk.api.assortment.payment.response.UnifiedOrderResponse
;
import
com.freemud.sdk.api.assortment.payment.response.UnifiedOrderResponse
;
import
com.freemud.sdk.api.assortment.payment.service.PaymentCenterService
;
import
com.freemud.sdk.api.assortment.payment.service.StandardPaymentService
;
import
com.freemud.sdk.api.assortment.payment.service.process.NewPaymentCenterServiceImpl
;
import
com.freemud.sdk.api.assortment.payment.service.process.NewPaymentCenterServiceImpl
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Maps
;
...
@@ -144,7 +129,6 @@ import org.apache.commons.collections4.CollectionUtils;
...
@@ -144,7 +129,6 @@ import org.apache.commons.collections4.CollectionUtils;
import
org.apache.commons.collections4.MapUtils
;
import
org.apache.commons.collections4.MapUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.http.client.HttpClient
;
import
org.joda.time.DateTime
;
import
org.joda.time.DateTime
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -156,15 +140,12 @@ import org.springframework.stereotype.Service;
...
@@ -156,15 +140,12 @@ import org.springframework.stereotype.Service;
import
org.springframework.web.client.RestTemplate
;
import
org.springframework.web.client.RestTemplate
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.io.UnsupportedEncodingException
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.math.BigInteger
;
import
java.security.MessageDigest
;
import
java.security.NoSuchAlgorithmException
;
import
java.util.*
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
@Service
@Service
public
class
MCCafeOrderServiceImpl
implements
MCCafeOrderService
{
public
class
MCCafeOrderServiceImpl
implements
MCCafeOrderService
{
...
@@ -255,8 +236,6 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
...
@@ -255,8 +236,6 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
@Autowired
@Autowired
private
PaymentQueueService
paymentQueueService
;
private
PaymentQueueService
paymentQueueService
;
@Autowired
@Autowired
private
PaymentNewService
paymentNewService
;
@Autowired
private
AssortmentOpenPlatformWxappAuthorizerManager
wxappAuthorizerManager
;
private
AssortmentOpenPlatformWxappAuthorizerManager
wxappAuthorizerManager
;
@Autowired
@Autowired
private
OrderAdapterServiceImpl
orderAdapterService
;
private
OrderAdapterServiceImpl
orderAdapterService
;
...
@@ -296,6 +275,10 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
...
@@ -296,6 +275,10 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
@Autowired
@Autowired
private
AssortmentCustomerInfoManager
assortmentCustomerInfoManager
;
private
AssortmentCustomerInfoManager
assortmentCustomerInfoManager
;
@Autowired
private
PayServiceImpl
payServiceImpl
;
private
static
MapperFacade
mapper
=
new
DefaultMapperFactory
.
Builder
().
build
().
getMapperFacade
();
private
static
MapperFacade
mapper
=
new
DefaultMapperFactory
.
Builder
().
build
().
getMapperFacade
();
/**
/**
* 下单检查key,防止重复下单
* 下单检查key,防止重复下单
...
@@ -676,7 +659,8 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
...
@@ -676,7 +659,8 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
if
(
totalAmount
<
0
)
{
if
(
totalAmount
<
0
)
{
throw
new
ServiceException
(
ResponseResult
.
PAY_AMOUNT_ERROR
);
throw
new
ServiceException
(
ResponseResult
.
PAY_AMOUNT_ERROR
);
}
else
if
(
totalAmount
>
0
)
{
}
else
if
(
totalAmount
>
0
)
{
orderPayResponse
=
getPreOrderPay
(
createPrepayRequestDto
.
getFatherOrderBean
(),
paymentRequest
,
LogThreadLocal
.
getTrackingNo
(),
createPrepayRequestDto
.
getCardAmount
(),
transId
,
createPrepayRequestDto
.
getNeedInvoice
());
orderPayResponse
=
payServiceImpl
.
getPreOrderPay
(
createPrepayRequestDto
.
getFatherOrderBean
(),
paymentRequest
,
createPrepayRequestDto
.
getCardAmount
(),
transId
,
null
);
// orderPayResponse = getPreOrderPay(createPrepayRequestDto.getFatherOrderBean(), paymentRequest, LogThreadLocal.getTrackingNo(), createPrepayRequestDto.getCardAmount(), transId, createPrepayRequestDto.getNeedInvoice());
}
else
{
}
else
{
// 0元订单如果不需要支付,自定义支付单号
// 0元订单如果不需要支付,自定义支付单号
orderPayResponse
=
getOrderPayResponse
(
paymentRequest
,
createPrepayRequestDto
.
getFatherOrderBean
());
orderPayResponse
=
getOrderPayResponse
(
paymentRequest
,
createPrepayRequestDto
.
getFatherOrderBean
());
...
...
order-application-service/src/main/java/cn/freemud/service/impl/MallOrderServiceImpl.java
View file @
e3efb70a
...
@@ -306,7 +306,7 @@ public class MallOrderServiceImpl implements MallOrderService {
...
@@ -306,7 +306,7 @@ public class MallOrderServiceImpl implements MallOrderService {
if
(
totalAmount
<
0
)
{
if
(
totalAmount
<
0
)
{
throw
new
ServiceException
(
ResponseResult
.
PAY_AMOUNT_ERROR
);
throw
new
ServiceException
(
ResponseResult
.
PAY_AMOUNT_ERROR
);
}
else
if
(
totalAmount
>
0
)
{
}
else
if
(
totalAmount
>
0
)
{
orderPayResponse
=
getPreOrderPay
(
orderBean
,
paymentRequest
,
LogThreadLocal
.
getTrackingNo
(),
0
);
orderPayResponse
=
payServiceImpl
.
getPreOrderPay
(
orderBean
,
paymentRequest
,
0
,
orderBean
.
getOid
(),
orderExtInfoDTO
);
}
else
{
}
else
{
// 0元订单如果不需要支付,自定义支付单号
// 0元订单如果不需要支付,自定义支付单号
orderPayResponse
=
getOrderPayResponse
(
paymentRequest
,
orderBean
);
orderPayResponse
=
getOrderPayResponse
(
paymentRequest
,
orderBean
);
...
...
order-application-service/src/main/java/cn/freemud/service/impl/PayServiceImpl.java
View file @
e3efb70a
...
@@ -7,19 +7,16 @@ import cn.freemud.constant.RedisKeyConstant;
...
@@ -7,19 +7,16 @@ import cn.freemud.constant.RedisKeyConstant;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.dto.SvcComPayRequestDto
;
import
cn.freemud.entities.dto.SvcComPayRequestDto
;
import
cn.freemud.entities.dto.SvcComPayResponseDto
;
import
cn.freemud.entities.dto.SvcComPayResponseDto
;
import
cn.freemud.entities.dto.order.CreateOrderOperateDto
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
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.UnifiedPayResponseDto
;
import
cn.freemud.entities.dto.order.UnifiedPayResponseDto
;
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.SVCCardAmountRequestDto
;
import
cn.freemud.entities.dto.pay.svc.SVCCardAmountResponseDto
;
import
cn.freemud.entities.dto.pay.svc.SVCCardAmountResponseDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.vo.CreateOrderResponseVo
;
import
cn.freemud.entities.vo.CreateOrderResponseVo
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.PaysuccessNoticeMessage
;
import
cn.freemud.entities.vo.PaysuccessNoticeMessage
;
import
cn.freemud.entities.vo.order.PlugInParameter
;
import
cn.freemud.entities.vo.order.CreateOrderUnionPayCardVo
;
import
cn.freemud.entities.vo.order.CreateOrderUnionPayCardVo
;
import
cn.freemud.entities.vo.order.PlugInParameter
;
import
cn.freemud.enums.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.management.entities.dto.request.BatchOrderRefundV2Request
;
import
cn.freemud.management.entities.dto.request.BatchOrderRefundV2Request
;
...
@@ -53,14 +50,9 @@ import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
...
@@ -53,14 +50,9 @@ import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import
com.freemud.application.sdk.api.ordercenter.request.UpdateOrderReq
;
import
com.freemud.application.sdk.api.ordercenter.request.UpdateOrderReq
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderPayItemResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderPayItemResp
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.CodePayRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.PaymentCloseUnifiedOrderRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.PaymentCloseUnifiedOrderRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.PaymentQueryRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.CodePayResponse
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.PaymentCloseUnifiedOrderResponse
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.PaymentCloseUnifiedOrderResponse
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.PaymentQueryResponse
;
import
com.freemud.application.sdk.api.util.ResponseUtils
;
import
com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
com.freemud.sdk.api.assortment.order.constant.OrderRedisKeyConstant
;
import
com.freemud.sdk.api.assortment.order.constant.OrderRedisKeyConstant
;
import
com.freemud.sdk.api.assortment.order.request.order.CancelOrderRequest
;
import
com.freemud.sdk.api.assortment.order.request.order.CancelOrderRequest
;
import
com.freemud.sdk.api.assortment.order.request.order.MultiOrderRefundRequest
;
import
com.freemud.sdk.api.assortment.order.request.order.MultiOrderRefundRequest
;
...
@@ -68,10 +60,19 @@ import com.freemud.sdk.api.assortment.order.request.order.OrderEditRequest;
...
@@ -68,10 +60,19 @@ import com.freemud.sdk.api.assortment.order.request.order.OrderEditRequest;
import
com.freemud.sdk.api.assortment.order.request.order.PaymentRequest
;
import
com.freemud.sdk.api.assortment.order.request.order.PaymentRequest
;
import
com.freemud.sdk.api.assortment.order.request.payment.CombPayRequest
;
import
com.freemud.sdk.api.assortment.order.request.payment.CombPayRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.MultiOrderRefundResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.MultiOrderRefundResponse
;
import
com.freemud.sdk.api.assortment.payment.biz.ReceiverBiz
;
import
com.freemud.sdk.api.assortment.payment.constant.ConstantPaymentReqType
;
import
com.freemud.sdk.api.assortment.payment.constant.ResponseConstant
;
import
com.freemud.sdk.api.assortment.payment.domain.AccountDivideVo
;
import
com.freemud.sdk.api.assortment.payment.enums.PayRuleIdEnum
;
import
com.freemud.sdk.api.assortment.payment.enums.PayRuleTypeEnum
;
import
com.freemud.sdk.api.assortment.payment.enums.PaymentRefundStatus
;
import
com.freemud.sdk.api.assortment.payment.enums.PlatformType
;
import
com.freemud.sdk.api.assortment.payment.request.OrderRefundRequest
;
import
com.freemud.sdk.api.assortment.payment.request.UnifiedOrderRequest
;
import
com.freemud.sdk.api.assortment.payment.request.UnifiedOrderRequest
;
import
com.freemud.sdk.api.assortment.payment.response.OrderRefundResponse
;
import
com.freemud.sdk.api.assortment.payment.response.OrderRefundResponse
;
import
com.freemud.sdk.api.assortment.payment.response.UnifiedOrderResponse
;
import
com.freemud.sdk.api.assortment.payment.response.UnifiedOrderResponse
;
import
com.freemud.sdk.api.assortment.payment.service.
StandardPayment
Service
;
import
com.freemud.sdk.api.assortment.payment.service.
Receiver
Service
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.ObjectUtils
;
...
@@ -92,10 +93,6 @@ import java.util.stream.Collectors;
...
@@ -92,10 +93,6 @@ import java.util.stream.Collectors;
public
class
PayServiceImpl
{
public
class
PayServiceImpl
{
@Autowired
@Autowired
private
StandardPaymentService
standardPaymentService
;
@Autowired
private
PaymentNewService
paymentNewService
;
@Autowired
private
SvcAppClient
svcAppClient
;
private
SvcAppClient
svcAppClient
;
@Autowired
@Autowired
private
ComPayClient
comPayClient
;
private
ComPayClient
comPayClient
;
...
@@ -117,6 +114,10 @@ public class PayServiceImpl {
...
@@ -117,6 +114,10 @@ public class PayServiceImpl {
@Autowired
@Autowired
private
AssortmentOpenPlatformPartnerPaymentConfigManager
openPlatformPartnerPaymentConfigManager
;
private
AssortmentOpenPlatformPartnerPaymentConfigManager
openPlatformPartnerPaymentConfigManager
;
@Autowired
@Autowired
private
AssortmentOpenPlatformPartnerMerchantManager
openPlatformPartnerMerchantManager
;
@Autowired
private
OrderQueueService
orderQueueService
;
private
OrderQueueService
orderQueueService
;
@Autowired
@Autowired
private
OrderSdkService
orderSdkService
;
private
OrderSdkService
orderSdkService
;
...
@@ -172,8 +173,8 @@ public class PayServiceImpl {
...
@@ -172,8 +173,8 @@ public class PayServiceImpl {
// orderPayResponse = facePay(createPrepayRequestDto.getFaceCode(), createPrepayRequestDto.getProductOrderBean(), paymentRequest, LogThreadLocal.getTrackingNo());
// orderPayResponse = facePay(createPrepayRequestDto.getFaceCode(), createPrepayRequestDto.getProductOrderBean(), paymentRequest, LogThreadLocal.getTrackingNo());
}
else
if
(
totalAmount
>
0
&&
StringUtils
.
isBlank
(
cardCode
))
{
}
else
if
(
totalAmount
>
0
&&
StringUtils
.
isBlank
(
cardCode
))
{
//现金线上支付
//现金线上支付
String
partnerPayOvertime
=
this
.
getPartnerPayOvertime
(
createPrepayRequestDto
.
getPartnerId
());
//
String partnerPayOvertime = this.getPartnerPayOvertime(createPrepayRequestDto.getPartnerId());
orderPayResponse
=
getPreOrderPay
(
createPrepayRequestDto
.
getFatherOrderBean
(),
paymentRequest
,
LogThreadLocal
.
getTrackingNo
(),
createPrepayRequestDto
.
getCardAmount
(),
transId
,
partnerPayOvertime
,
createPrepayRequestDto
.
getOrderExtInfoDTO
());
orderPayResponse
=
getPreOrderPay
(
createPrepayRequestDto
.
getFatherOrderBean
(),
paymentRequest
,
createPrepayRequestDto
.
getCardAmount
(),
transId
,
createPrepayRequestDto
.
getOrderExtInfoDTO
());
}
else
if
(
totalAmount
>
0
&&
StringUtils
.
isNotBlank
(
cardCode
))
{
}
else
if
(
totalAmount
>
0
&&
StringUtils
.
isNotBlank
(
cardCode
))
{
//混合支付+svc卡(礼品卡)
//混合支付+svc卡(礼品卡)
orderPayResponse
=
switchSvcOrComb
(
totalAmount
,
cardCode
,
createPrepayRequestDto
.
getFatherOrderBean
(),
paymentRequest
,
transId
,
createPrepayRequestDto
.
getChannel
(),
createPrepayRequestDto
.
getStoreId
(),
LogThreadLocal
.
getTrackingNo
());
orderPayResponse
=
switchSvcOrComb
(
totalAmount
,
cardCode
,
createPrepayRequestDto
.
getFatherOrderBean
(),
paymentRequest
,
transId
,
createPrepayRequestDto
.
getChannel
(),
createPrepayRequestDto
.
getStoreId
(),
LogThreadLocal
.
getTrackingNo
());
...
@@ -235,7 +236,6 @@ public class PayServiceImpl {
...
@@ -235,7 +236,6 @@ public class PayServiceImpl {
}
}
/**
/**
* 创建预支付信息 (围餐用)
* 创建预支付信息 (围餐用)
* cardCode svc卡号
* cardCode svc卡号
...
@@ -250,19 +250,16 @@ public class PayServiceImpl {
...
@@ -250,19 +250,16 @@ public class PayServiceImpl {
paymentRequest
.
setWxAppId
(
wxAppId
);
paymentRequest
.
setWxAppId
(
wxAppId
);
AssortmentOpenPlatformWxapp
wxApp
=
openPlatformWxappManager
.
findByPartnerIdAndWxappId
(
partnerId
,
wxAppId
);
AssortmentOpenPlatformWxapp
wxApp
=
openPlatformWxappManager
.
findByPartnerIdAndWxappId
(
partnerId
,
wxAppId
);
paymentRequest
.
setPrincipalName
(
wxApp
.
getPrincipalName
());
paymentRequest
.
setPrincipalName
(
wxApp
.
getPrincipalName
());
// fisherman 2227 测试商户号, 下个版本需要删除
// if ("2080".equals(partnerId)) {
// //【ID1035981】【蜜雪冰城】订单C端,拼接order_body字段:蜜雪冰城+门店编号
// paymentRequest.setPrincipalName("蜜雪冰城" + orderBean.getShopId() + "店");
// }
paymentRequest
.
setReverseNotifyiDcUrl
(
reverseNotifyiDcUrl
);
paymentRequest
.
setReverseNotifyiDcUrl
(
reverseNotifyiDcUrl
);
//修改订单信息
//修改订单信息
OrderExtInfoDto
orderExtInfoDto
=
JSONObject
.
parseObject
(
orderBean
.
getExtInfo
(),
OrderExtInfoDto
.
class
)
==
null
?
new
OrderExtInfoDto
()
:
JSONObject
.
parseObject
(
orderBean
.
getExtInfo
(),
OrderExtInfoDto
.
class
);
OrderExtInfoDto
orderExtInfoDto
=
JSONObject
.
parseObject
(
orderBean
.
getExtInfo
(),
OrderExtInfoDto
.
class
)
==
null
?
new
OrderExtInfoDto
()
:
JSONObject
.
parseObject
(
orderBean
.
getExtInfo
(),
OrderExtInfoDto
.
class
);
if
(
orderBean
.
getAmount
()
>
0
&&
StringUtils
.
isEmpty
(
cardCode
))
{
if
(
orderBean
.
getAmount
()
>
0
&&
StringUtils
.
isEmpty
(
cardCode
))
{
try
{
try
{
String
transId
=
orderBean
.
getOid
()
+
redisService
.
increment
(
RedisUtil
.
getPaymentTransIdSequenceKey
(
orderBean
.
getOid
()),
1L
,
TimeUnit
.
DAYS
);
String
transId
=
orderBean
.
getOid
()
+
redisService
.
increment
(
RedisUtil
.
getPaymentTransIdSequenceKey
(
orderBean
.
getOid
()),
1L
,
TimeUnit
.
DAYS
);
UnifiedOrderRequest
request
=
orderAdapter
.
convent2UnifiedOrderRequest
(
orderBean
,
paymentRequest
,
orderBean
.
getAmount
(),
cardAmount
,
transId
);
// UnifiedOrderRequest request = orderAdapter.convent2UnifiedOrderRequest(orderBean, paymentRequest, orderBean.getAmount(), cardAmount, transId);
UnifiedOrderCom
com
=
new
UnifiedOrderCom
(
orderBean
,
paymentRequest
,
orderBean
.
getAmount
(),
cardAmount
,
transId
,
"30"
);
//支付聚合sdk 请求参数
UnifiedOrderRequest
request
=
orderAdapter
.
convent2UnifiedOrderRequest
(
com
);
if
(
SDKCommonBaseContextWare
.
getProfile
().
equals
(
SDKCommonBaseContextWare
.
profiles
.
DEFAULT
.
getProfile
())
if
(
SDKCommonBaseContextWare
.
getProfile
().
equals
(
SDKCommonBaseContextWare
.
profiles
.
DEFAULT
.
getProfile
())
||
SDKCommonBaseContextWare
.
getProfile
().
equals
(
SDKCommonBaseContextWare
.
profiles
.
DEV
.
getProfile
())
||
SDKCommonBaseContextWare
.
getProfile
().
equals
(
SDKCommonBaseContextWare
.
profiles
.
DEV
.
getProfile
())
||
SDKCommonBaseContextWare
.
getProfile
().
equals
(
SDKCommonBaseContextWare
.
profiles
.
TEST
.
getProfile
()))
{
||
SDKCommonBaseContextWare
.
getProfile
().
equals
(
SDKCommonBaseContextWare
.
profiles
.
TEST
.
getProfile
()))
{
...
@@ -270,15 +267,78 @@ public class PayServiceImpl {
...
@@ -270,15 +267,78 @@ public class PayServiceImpl {
}
}
AppLogUtil
.
infoLog
(
"支付transId :{},payRequest:{}"
,
request
.
getTransId
(),
JSON
.
toJSONString
(
request
));
AppLogUtil
.
infoLog
(
"支付transId :{},payRequest:{}"
,
request
.
getTransId
(),
JSON
.
toJSONString
(
request
));
redisService
.
savePaymentTransIdOrder
(
RedisUtil
.
getPaymentTransIdOrderKey
(
transId
),
orderBean
.
getOid
(),
1L
,
TimeUnit
.
DAYS
);
redisService
.
savePaymentTransIdOrder
(
RedisUtil
.
getPaymentTransIdOrderKey
(
transId
),
orderBean
.
getOid
(),
1L
,
TimeUnit
.
DAYS
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
UnifiedOrderResponse
>
responseBase
=
standardPaymentService
.
unifiedOrder
(
request
,
LogThreadLocal
.
getTrackingNo
());
// com.freemud.application.sdk.api.base.BaseResponse<UnifiedOrderResponse> responseBase = standardPaymentService.unifiedOrder(request, LogThreadLocal.getTrackingNo());
if
(!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
responseBase
.
getCode
()))
{
return
null
;
//Feign 预支付接口请求参数
UnifiedOrderRequestDto
requestDto
=
this
.
convert2UnifiedOrderRequestDto
(
com
);
// add by miaohui for 拼单群收款判断拼单人数大于1时参与微信平台补贴活动,创建预支付时上送goodsTag,后续抽成促销服务活动时删除此逻辑 start
if
(
null
!=
orderBean
.
getMarketingType
()
&&
OrderMarketType
.
COLLAGE
.
getIndex
()
==
orderBean
.
getMarketingType
())
{
// 拼单人数大于1人时参加拼单补贴
if
(
null
!=
orderBean
.
getProductList
()
&&
orderBean
.
getProductList
().
stream
().
map
(
ProductBeanV1:
:
getUserId
).
distinct
().
collect
(
Collectors
.
toList
()).
size
()
>
1
)
{
Map
<
String
,
String
>
goodsTagMap
=
this
.
goodsTagMap
();
String
goodsTag
=
goodsTagMap
.
get
(
orderBean
.
getCompanyId
());
goodsTag
=
StringUtils
.
isBlank
(
goodsTag
)
?
collageGoodsTag
:
goodsTag
;
request
.
setGoodsTag
(
goodsTag
);
requestDto
.
setGoodsTag
(
goodsTag
);
}
}
orderPayResponse
=
orderAdapter
.
convent2OrderPayResponse
(
responseBase
.
getData
());
}
orderPayResponse
.
setWxAppid
(
paymentRequest
.
getWxAppId
());
// add by miaohui for 拼单群收款判断拼单人数大于1时参与微信平台补贴活动,创建预支付时上送goodsTag,后续抽成促销服务活动时删除此逻辑 end
if
(
orderExtInfoDto
!=
null
&&
StringUtils
.
isNotBlank
(
orderExtInfoDto
.
getStationId
()))
{
request
.
setStationId
(
orderExtInfoDto
.
getStationId
());
requestDto
.
setStationId
(
orderExtInfoDto
.
getStationId
());
}
orderPayResponse
=
new
OrderPayResponse
();
String
clientCode
=
this
.
getPayCodeByChanel
(
paymentRequest
.
getWxAppId
(),
orderBean
.
getShopId
());
if
(
StringUtils
.
isBlank
(
clientCode
))
{
orderPayResponse
.
setMsg
(
"请先联系相关人员配置商户对应的支付渠道"
);
// return orderPayResponse;
}
requestDto
.
setClientCode
(
Long
.
parseLong
(
clientCode
));
// com.freemud.application.sdk.api.base.BaseResponse<UnifiedPayResponseDto> response = paymentNewClient.unifiedOrder(requestDto);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
UnifiedPayResponseDto
>
response
=
null
;
//处理超时情况,后续冲正mq正常冲正,同支付sdk逻辑
try
{
response
=
paymentNewClient
.
unifiedOrder
(
requestDto
);
}
catch
(
Exception
e
)
{
AppLogUtil
.
errorLog
(
"获取预支付信息异常"
,
JSONObject
.
toJSONString
(
requestDto
),
null
,
e
);
}
//预支付接口失败
if
(
null
==
response
||
!
Objects
.
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
,
response
.
getCode
())
||
!
Objects
.
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS
,
response
.
getData
().
getResultCode
()))
{
String
errorMessage
=
"unified fail"
;
if
(
null
!=
response
)
{
errorMessage
=
StringUtils
.
isNotEmpty
(
response
.
getMessage
())
?
response
.
getMessage
()
:
response
.
getData
().
getResultMsg
();
}
//打印业务异常
if
(
response
!=
null
&&
printUnifiedPayResponseError
)
{
AppLogUtil
.
errorLog
(
"获取预支付信息失败"
,
JSONObject
.
toJSONString
(
requestDto
),
JSONObject
.
toJSONString
(
response
),
null
);
}
//预支付失败需要把原因进行记录
orderPayResponse
.
setMsg
(
errorMessage
);
// return orderPayResponse;
}
putDelMq
(
request
.
getPartnerId
(),
request
.
getStoreId
(),
response
.
getData
().
getFmId
(),
orderBean
.
getOid
(),
null
);
this
.
convent2CreateOrderResponseVo
(
orderPayResponse
,
paymentRequest
.
getWxAppId
(),
response
.
getData
());
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
.
setPayChannelType
(
PayChannelType
.
WECHAT
);
if
(
orderPayResponse
.
getPayOrder
()
!=
null
&&
StringUtils
.
isNotBlank
(
orderPayResponse
.
getPayOrder
().
getAliPayOrder
()))
{
orderPayResponse
.
setPayChannelType
(
PayChannelType
.
ALIPAY
);
}
//抖音支付
if
(
PayChannelType
.
TIKTOKPAY
.
getIndex
().
toString
().
equalsIgnoreCase
(
orderBean
.
getPayChannelType
()))
{
orderPayResponse
.
setPayChannelType
(
PayChannelType
.
TIKTOKPAY
);
}
// if (!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode())) {
// return null;
// }
// orderPayResponse = orderAdapter.convent2OrderPayResponse(responseBase.getData());
// orderPayResponse.setWxAppid(paymentRequest.getWxAppId());
// orderPayResponse.setOpenId(paymentRequest.getOpenId());
// orderPayResponse.setPartnerId(orderBean.getCompanyId());
// orderPayResponse.setOrderId(orderBean.getOid());
orderExtInfoDto
.
setPrePayTransId
(
request
.
getTransId
());
orderExtInfoDto
.
setPrePayTransId
(
request
.
getTransId
());
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
@@ -410,13 +470,13 @@ public class PayServiceImpl {
...
@@ -410,13 +470,13 @@ public class PayServiceImpl {
* 电子风味卡支付
* 电子风味卡支付
* unionPay card pay
* unionPay card pay
*/
*/
p
rivate
OrderPayResponse
uSvcPay
(
OrderBeanV1
orderBean
,
PaymentRequest
paymentRequest
,
String
transId
,
String
trackingNo
,
CreateOrderUnionPayCardVo
unionPayCard
)
{
p
ublic
OrderPayResponse
uSvcPay
(
OrderBeanV1
orderBean
,
PaymentRequest
paymentRequest
,
String
transId
,
String
trackingNo
,
CreateOrderUnionPayCardVo
unionPayCard
)
{
OrderPayResponse
orderPayResponse
=
new
OrderPayResponse
();
OrderPayResponse
orderPayResponse
=
new
OrderPayResponse
();
if
(
Objects
.
isNull
(
unionPayCard
)
||
StringUtils
.
isBlank
(
unionPayCard
.
getCode
())
||
StringUtils
.
isBlank
(
unionPayCard
.
getPassword
()))
{
if
(
Objects
.
isNull
(
unionPayCard
)
||
StringUtils
.
isBlank
(
unionPayCard
.
getCode
())
||
StringUtils
.
isBlank
(
unionPayCard
.
getPassword
()))
{
orderPayResponse
.
setMsg
(
"电子风味卡信息缺失"
);
orderPayResponse
.
setMsg
(
"电子风味卡信息缺失"
);
return
orderPayResponse
;
return
orderPayResponse
;
}
}
CodePayRequest
request
=
new
CodePayRequest
();
FacePayRequestDto
request
=
new
FacePayRequestDto
();
String
partnerId
=
orderBean
.
getCompanyId
();
String
partnerId
=
orderBean
.
getCompanyId
();
request
.
setBody
(
orderBean
.
getShopName
());
request
.
setBody
(
orderBean
.
getShopName
());
request
.
setBusinessDate
(
DateTimeFormatter
.
ofPattern
(
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
).
format
(
LocalDateTime
.
now
()));
request
.
setBusinessDate
(
DateTimeFormatter
.
ofPattern
(
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
).
format
(
LocalDateTime
.
now
()));
...
@@ -433,15 +493,15 @@ public class PayServiceImpl {
...
@@ -433,15 +493,15 @@ public class PayServiceImpl {
request
.
setOperatorId
(
"2"
);
request
.
setOperatorId
(
"2"
);
request
.
setVer
(
"2"
);
request
.
setVer
(
"2"
);
request
.
setMerchantDiscount
(
orderBean
.
getOriginalAmount
().
longValue
()
-
orderBean
.
getAmount
());
request
.
setMerchantDiscount
(
orderBean
.
getOriginalAmount
().
longValue
()
-
orderBean
.
getAmount
());
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
CodePayResponse
>
responseBase
=
paymentNewService
.
codePay
(
request
,
trackingNo
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
UnifiedPayResponseDto
>
responseBase
=
paymentNewClient
.
codePay
(
request
);
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
()
==
null
)
{
// 需要把2种特殊情况抛给用户
// 需要把2种特殊情况抛给用户
if
(
Objects
.
nonNull
(
responseBase
)
&&
(
ResponseCodeConstant
.
PASSWORD_WRONG
.
equals
(
responseBase
.
getCode
())
||
ResponseCodeConstant
.
NOT_SUFFICIENT_FUND
.
equals
(
responseBase
.
getCode
())))
{
if
(
Objects
.
nonNull
(
responseBase
)
&&
(
ResponseCodeConstant
.
PASSWORD_WRONG
.
equals
(
responseBase
.
getCode
())
||
ResponseCodeConstant
.
NOT_SUFFICIENT_FUND
.
equals
(
responseBase
.
getCode
())))
{
orderPayResponse
.
setPayTransId
(
responseBase
.
getCode
());
orderPayResponse
.
setPayTransId
(
responseBase
.
getCode
());
}
}
orderPayResponse
.
setMsg
(
Objects
.
isNull
(
responseBase
)
?
"电子风味卡支付异常"
:
responseBase
.
getMessage
());
orderPayResponse
.
setMsg
(
Objects
.
isNull
(
responseBase
)
?
"电子风味卡支付异常"
:
responseBase
.
getMessage
());
}
else
{
}
else
{
CodePayResponse
.
CodePayDate
codePayResponse
=
responseBase
.
getData
()
.
getData
();
UnifiedPayResponseDto
codePayResponse
=
responseBase
.
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
());
...
@@ -457,7 +517,7 @@ public class PayServiceImpl {
...
@@ -457,7 +517,7 @@ public class PayServiceImpl {
/**
/**
* 获取商户支付超时时间
* 获取商户支付超时时间
*/
*/
p
rivate
String
getPartnerPayOvertime
(
String
partnerId
)
{
p
ublic
String
getPartnerPayOvertime
(
String
partnerId
)
{
return
Optional
.
ofNullable
(
openPlatformPartnerConfigManager
.
selectPartnerConfigByPartnerKey
(
partnerId
,
RedisKeyConstant
.
PARTNER_PAY_OVERTIME
))
return
Optional
.
ofNullable
(
openPlatformPartnerConfigManager
.
selectPartnerConfigByPartnerKey
(
partnerId
,
RedisKeyConstant
.
PARTNER_PAY_OVERTIME
))
.
orElseGet
(()
->
{
.
orElseGet
(()
->
{
AssortmentOpenPlatformPartnerConfig
config
=
new
AssortmentOpenPlatformPartnerConfig
();
AssortmentOpenPlatformPartnerConfig
config
=
new
AssortmentOpenPlatformPartnerConfig
();
...
@@ -471,7 +531,9 @@ public class PayServiceImpl {
...
@@ -471,7 +531,9 @@ public class PayServiceImpl {
/**
/**
* 现金支付
* 现金支付
*/
*/
public
OrderPayResponse
getPreOrderPay
(
OrderBeanV1
orderBean
,
PaymentRequest
paymentRequest
,
String
trackingNo
,
Integer
cardAmount
,
String
transId
,
String
partnerPayOvertime
,
OrderExtInfoDto
orderExtInfoDto
)
{
public
OrderPayResponse
getPreOrderPay
(
OrderBeanV1
orderBean
,
PaymentRequest
paymentRequest
,
Integer
cardAmount
,
String
transId
,
OrderExtInfoDto
orderExtInfoDto
)
{
String
partnerPayOvertime
=
this
.
getPartnerPayOvertime
(
orderBean
.
getCompanyId
());
OrderPayResponse
orderPayResponse
;
OrderPayResponse
orderPayResponse
;
UnifiedOrderCom
com
=
new
UnifiedOrderCom
(
orderBean
,
paymentRequest
,
orderBean
.
getAmount
(),
cardAmount
,
transId
,
partnerPayOvertime
);
UnifiedOrderCom
com
=
new
UnifiedOrderCom
(
orderBean
,
paymentRequest
,
orderBean
.
getAmount
(),
cardAmount
,
transId
,
partnerPayOvertime
);
...
@@ -496,7 +558,7 @@ public class PayServiceImpl {
...
@@ -496,7 +558,7 @@ public class PayServiceImpl {
requestDto
.
setStationId
(
orderExtInfoDto
.
getStationId
());
requestDto
.
setStationId
(
orderExtInfoDto
.
getStationId
());
}
}
//使用支付FeignClient
//使用支付FeignClient
if
(
usePayFeignClient
)
{
// if (usePayFeignClient)
{
orderPayResponse
=
new
OrderPayResponse
();
orderPayResponse
=
new
OrderPayResponse
();
String
clientCode
=
this
.
getPayCodeByChanel
(
paymentRequest
.
getWxAppId
(),
orderBean
.
getShopId
());
String
clientCode
=
this
.
getPayCodeByChanel
(
paymentRequest
.
getWxAppId
(),
orderBean
.
getShopId
());
if
(
StringUtils
.
isBlank
(
clientCode
))
{
if
(
StringUtils
.
isBlank
(
clientCode
))
{
...
@@ -510,17 +572,17 @@ public class PayServiceImpl {
...
@@ -510,17 +572,17 @@ public class PayServiceImpl {
try
{
try
{
response
=
paymentNewClient
.
unifiedOrder
(
requestDto
);
response
=
paymentNewClient
.
unifiedOrder
(
requestDto
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
AppLogUtil
.
errorLog
(
"获取预支付信息异常"
,
JSONObject
.
toJSONString
(
requestDto
),
null
,
e
);
AppLogUtil
.
errorLog
(
"获取预支付信息异常"
,
JSONObject
.
toJSONString
(
requestDto
),
null
,
e
);
}
}
//预支付接口失败
//预支付接口失败
if
(
null
==
response
||
!
Objects
.
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
,
response
.
getCode
())
if
(
null
==
response
||
!
Objects
.
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
,
response
.
getCode
())
||
!
Objects
.
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS
,
response
.
getData
().
getResultCode
())
)
{
||
!
Objects
.
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS
,
response
.
getData
().
getResultCode
()))
{
String
errorMessage
=
"unified fail"
;
String
errorMessage
=
"unified fail"
;
if
(
null
!=
response
)
{
if
(
null
!=
response
)
{
errorMessage
=
StringUtils
.
isNotEmpty
(
response
.
getMessage
())
?
response
.
getMessage
()
:
response
.
getData
().
getResultMsg
();
errorMessage
=
StringUtils
.
isNotEmpty
(
response
.
getMessage
())
?
response
.
getMessage
()
:
response
.
getData
().
getResultMsg
();
}
}
//打印业务异常
//打印业务异常
if
(
response
!=
null
&&
printUnifiedPayResponseError
)
{
if
(
response
!=
null
&&
printUnifiedPayResponseError
)
{
AppLogUtil
.
errorLog
(
"获取预支付信息失败"
,
JSONObject
.
toJSONString
(
requestDto
),
JSONObject
.
toJSONString
(
response
),
null
);
AppLogUtil
.
errorLog
(
"获取预支付信息失败"
,
JSONObject
.
toJSONString
(
requestDto
),
JSONObject
.
toJSONString
(
response
),
null
);
}
}
//预支付失败需要把原因进行记录
//预支付失败需要把原因进行记录
...
@@ -528,7 +590,7 @@ public class PayServiceImpl {
...
@@ -528,7 +590,7 @@ public class PayServiceImpl {
return
orderPayResponse
;
return
orderPayResponse
;
}
}
putDelMq
(
request
.
getPartnerId
(),
request
.
getStoreId
(),
response
.
getData
().
getFmId
(),
orderBean
.
getOid
(),
null
);
putDelMq
(
request
.
getPartnerId
(),
request
.
getStoreId
(),
response
.
getData
().
getFmId
(),
orderBean
.
getOid
(),
null
);
this
.
convent2CreateOrderResponseVo
(
orderPayResponse
,
paymentRequest
.
getWxAppId
(),
response
.
getData
());
this
.
convent2CreateOrderResponseVo
(
orderPayResponse
,
paymentRequest
.
getWxAppId
(),
response
.
getData
());
orderPayResponse
.
setOpenId
(
paymentRequest
.
getOpenId
());
orderPayResponse
.
setOpenId
(
paymentRequest
.
getOpenId
());
orderPayResponse
.
setPartnerId
(
orderBean
.
getCompanyId
());
orderPayResponse
.
setPartnerId
(
orderBean
.
getCompanyId
());
orderPayResponse
.
setOrderId
(
orderBean
.
getOid
());
orderPayResponse
.
setOrderId
(
orderBean
.
getOid
());
...
@@ -541,37 +603,37 @@ public class PayServiceImpl {
...
@@ -541,37 +603,37 @@ public class PayServiceImpl {
orderPayResponse
.
setPayChannelType
(
PayChannelType
.
TIKTOKPAY
);
orderPayResponse
.
setPayChannelType
(
PayChannelType
.
TIKTOKPAY
);
}
}
return
orderPayResponse
;
return
orderPayResponse
;
}
//
}
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
UnifiedOrderResponse
>
responseBase
=
standardPaymentService
.
unifiedOrder
(
request
,
trackingNo
);
//
com.freemud.application.sdk.api.base.BaseResponse<UnifiedOrderResponse> responseBase = standardPaymentService.unifiedOrder(request, trackingNo);
if
(!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
responseBase
.
getCode
()))
{
//
if (!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode())) {
// 1.9.34 预支付失败需要把原因进行记录
//
// 1.9.34 预支付失败需要把原因进行记录
orderPayResponse
=
new
OrderPayResponse
();
//
orderPayResponse = new OrderPayResponse();
orderPayResponse
.
setMsg
(
responseBase
.
getMessage
());
//
orderPayResponse.setMsg(responseBase.getMessage());
}
else
{
//
} else {
putDelMq
(
request
.
getPartnerId
(),
request
.
getStoreId
(),
responseBase
.
getData
().
getFmId
(),
orderBean
.
getOid
(),
null
);
//
putDelMq(request.getPartnerId(), request.getStoreId(), responseBase.getData().getFmId(), orderBean.getOid(), null);
orderPayResponse
=
orderAdapter
.
convent2OrderPayResponse
(
responseBase
.
getData
());
//
orderPayResponse = orderAdapter.convent2OrderPayResponse(responseBase.getData());
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());
orderPayResponse
.
setPayChannelType
(
PayChannelType
.
WECHAT
);
//
orderPayResponse.setPayChannelType(PayChannelType.WECHAT);
if
(
orderPayResponse
.
getPayOrder
()
!=
null
&&
StringUtils
.
isNotBlank
(
orderPayResponse
.
getPayOrder
().
getAliPayOrder
()))
{
//
if (orderPayResponse.getPayOrder() != null && StringUtils.isNotBlank(orderPayResponse.getPayOrder().getAliPayOrder())) {
orderPayResponse
.
setPayChannelType
(
PayChannelType
.
ALIPAY
);
//
orderPayResponse.setPayChannelType(PayChannelType.ALIPAY);
}
//
}
//抖音支付
//
//抖音支付
if
(
PayChannelType
.
TIKTOKPAY
.
getIndex
().
toString
().
equalsIgnoreCase
(
orderBean
.
getPayChannelType
()))
{
//
if (PayChannelType.TIKTOKPAY.getIndex().toString().equalsIgnoreCase(orderBean.getPayChannelType())) {
orderPayResponse
.
setPayChannelType
(
PayChannelType
.
TIKTOKPAY
);
//
orderPayResponse.setPayChannelType(PayChannelType.TIKTOKPAY);
}
//
}
//
}
//
}
return
orderPayResponse
;
//
return orderPayResponse;
}
}
/**
/**
* 混合支付
* 混合支付
*/
*/
p
rivate
OrderPayResponse
switchSvcOrComb
(
Long
totalAmount
p
ublic
OrderPayResponse
switchSvcOrComb
(
Long
totalAmount
,
String
cardCode
,
String
cardCode
,
OrderBeanV1
orderBean
,
OrderBeanV1
orderBean
,
PaymentRequest
paymentRequest
,
PaymentRequest
paymentRequest
...
@@ -745,14 +807,15 @@ public class PayServiceImpl {
...
@@ -745,14 +807,15 @@ public class PayServiceImpl {
* 唤起预支付
* 唤起预支付
*/
*/
public
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
UnifiedOrderResponse
>
unifiedOrder
(
UnifiedOrderRequest
request
)
{
public
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
UnifiedOrderResponse
>
unifiedOrder
(
UnifiedOrderRequest
request
)
{
return
standardPaymentService
.
unifiedOrder
(
request
,
LogThreadLocal
.
getTrackingNo
());
return
new
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
();
// return standardPaymentService.unifiedOrder(request, LogThreadLocal.getTrackingNo());
}
}
/**
/**
* 支付退款
* 支付退款
*/
*/
public
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
OrderRefundResponse
>
orderRefund
(
com
.
freemud
.
sdk
.
api
.
assortment
.
payment
.
request
.
OrderRefundRequest
orderPayRefundRequest
)
{
public
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
OrderRefundResponse
>
orderRefund
(
com
.
freemud
.
sdk
.
api
.
assortment
.
payment
.
request
.
OrderRefundRequest
orderPayRefundRequest
)
{
return
standardPaymentService
.
orderRefund
(
orderPayRefundRequest
,
LogThreadLocal
.
getTrackingNo
()
);
return
orderRefundNew
(
orderPayRefundRequest
);
}
}
/**
/**
...
@@ -776,7 +839,7 @@ public class PayServiceImpl {
...
@@ -776,7 +839,7 @@ public class PayServiceImpl {
public
boolean
closePrePay
(
OrderBeanV1
orderBean
)
{
public
boolean
closePrePay
(
OrderBeanV1
orderBean
)
{
//是否支付成功
//是否支付成功
boolean
paySuccess
=
false
;
boolean
paySuccess
=
false
;
if
(!
queryPayOrder
)
{
if
(!
queryPayOrder
)
{
return
paySuccess
;
return
paySuccess
;
}
}
OrderExtInfoDto
extInfo
=
JSONObject
.
parseObject
(
orderBean
.
getExtInfo
(),
OrderExtInfoDto
.
class
);
OrderExtInfoDto
extInfo
=
JSONObject
.
parseObject
(
orderBean
.
getExtInfo
(),
OrderExtInfoDto
.
class
);
...
@@ -809,12 +872,12 @@ public class PayServiceImpl {
...
@@ -809,12 +872,12 @@ public class PayServiceImpl {
if
(
extInfo
!=
null
&&
StringUtils
.
isNotEmpty
(
extInfo
.
getFmId
()))
{
if
(
extInfo
!=
null
&&
StringUtils
.
isNotEmpty
(
extInfo
.
getFmId
()))
{
//订单状态未支付且存在预支付订单:
//订单状态未支付且存在预支付订单:
// 1.查询预支付订单支付状态
// 1.查询预支付订单支付状态
PaymentQueryRequest
paymentQueryRequest
=
new
PaymentQueryRequest
();
PaymentQueryRequest
Dto
paymentQueryRequest
=
new
PaymentQueryRequestDto
();
paymentQueryRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
paymentQueryRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
paymentQueryRequest
.
setStoreId
(
orderBean
.
getShopId
());
paymentQueryRequest
.
setStoreId
(
orderBean
.
getShopId
());
paymentQueryRequest
.
setFmId
(
extInfo
.
getFmId
());
paymentQueryRequest
.
setFmId
(
extInfo
.
getFmId
());
paymentQueryRequest
.
setVer
(
"2"
);
paymentQueryRequest
.
setVer
(
"2"
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PaymentQueryResponse
>
queryResponseBaseResponse
=
paymentNewService
.
query
(
paymentQueryRequest
,
LogThreadLocal
.
getTrackingNo
()
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PaymentQueryResponse
Dto
>
queryResponseBaseResponse
=
paymentNewClient
.
payQuery
(
paymentQueryRequest
);
//判断预支付订单状态
//判断预支付订单状态
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
queryResponseBaseResponse
.
getCode
()))
{
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
queryResponseBaseResponse
.
getCode
()))
{
throw
new
ServiceException
(
ResponseResult
.
ORDER_PAY_GETPRE_MESSAGE_ERROR
);
throw
new
ServiceException
(
ResponseResult
.
ORDER_PAY_GETPRE_MESSAGE_ERROR
);
...
@@ -832,7 +895,7 @@ public class PayServiceImpl {
...
@@ -832,7 +895,7 @@ public class PayServiceImpl {
closeUnifiedOrderRequest
.
setVer
(
"2"
);
closeUnifiedOrderRequest
.
setVer
(
"2"
);
closeUnifiedOrderRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
closeUnifiedOrderRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
closeUnifiedOrderRequest
.
setStoreId
(
orderBean
.
getShopId
());
closeUnifiedOrderRequest
.
setStoreId
(
orderBean
.
getShopId
());
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PaymentCloseUnifiedOrderResponse
>
cancelNewUnifiedOrder
=
paymentNew
Service
.
cancelNewUnifiedOrder
(
closeUnifiedOrderRequest
,
LogThreadLocal
.
getTrackingNo
()
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PaymentCloseUnifiedOrderResponse
>
cancelNewUnifiedOrder
=
paymentNew
Client
.
cancelNewUnifiedOrder
(
closeUnifiedOrderRequest
);
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
cancelNewUnifiedOrder
.
getCode
()))
{
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
cancelNewUnifiedOrder
.
getCode
()))
{
throw
new
ServiceException
(
ResponseResult
.
ORDER_PRE_PAYMENT_CLOSE_FAILED
);
throw
new
ServiceException
(
ResponseResult
.
ORDER_PRE_PAYMENT_CLOSE_FAILED
);
}
}
...
@@ -850,12 +913,12 @@ public class PayServiceImpl {
...
@@ -850,12 +913,12 @@ public class PayServiceImpl {
if
(
extInfo
!=
null
&&
StringUtils
.
isNotEmpty
(
extInfo
.
getFmId
()))
{
if
(
extInfo
!=
null
&&
StringUtils
.
isNotEmpty
(
extInfo
.
getFmId
()))
{
//订单状态未支付且存在预支付订单:
//订单状态未支付且存在预支付订单:
// 1.查询预支付订单支付状态
// 1.查询预支付订单支付状态
PaymentQueryRequest
paymentQueryRequest
=
new
PaymentQueryRequest
();
PaymentQueryRequest
Dto
paymentQueryRequest
=
new
PaymentQueryRequestDto
();
paymentQueryRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
paymentQueryRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
paymentQueryRequest
.
setStoreId
(
orderBean
.
getShopId
());
paymentQueryRequest
.
setStoreId
(
orderBean
.
getShopId
());
paymentQueryRequest
.
setFmId
(
extInfo
.
getFmId
());
paymentQueryRequest
.
setFmId
(
extInfo
.
getFmId
());
paymentQueryRequest
.
setVer
(
"2"
);
paymentQueryRequest
.
setVer
(
"2"
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PaymentQueryResponse
>
queryResponseBaseResponse
=
paymentNewService
.
query
(
paymentQueryRequest
,
LogThreadLocal
.
getTrackingNo
()
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PaymentQueryResponse
Dto
>
queryResponseBaseResponse
=
paymentNewClient
.
payQuery
(
paymentQueryRequest
);
//判断预支付订单状态
//判断预支付订单状态
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
queryResponseBaseResponse
.
getCode
()))
{
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
queryResponseBaseResponse
.
getCode
()))
{
throw
new
ServiceException
(
ResponseResult
.
ORDER_PAY_GETPRE_MESSAGE_ERROR
);
throw
new
ServiceException
(
ResponseResult
.
ORDER_PAY_GETPRE_MESSAGE_ERROR
);
...
@@ -871,7 +934,7 @@ public class PayServiceImpl {
...
@@ -871,7 +934,7 @@ public class PayServiceImpl {
closeUnifiedOrderRequest
.
setVer
(
"2"
);
closeUnifiedOrderRequest
.
setVer
(
"2"
);
closeUnifiedOrderRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
closeUnifiedOrderRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
closeUnifiedOrderRequest
.
setStoreId
(
orderBean
.
getShopId
());
closeUnifiedOrderRequest
.
setStoreId
(
orderBean
.
getShopId
());
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PaymentCloseUnifiedOrderResponse
>
cancelNewUnifiedOrder
=
paymentNew
Service
.
cancelNewUnifiedOrder
(
closeUnifiedOrderRequest
,
LogThreadLocal
.
getTrackingNo
()
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PaymentCloseUnifiedOrderResponse
>
cancelNewUnifiedOrder
=
paymentNew
Client
.
cancelNewUnifiedOrder
(
closeUnifiedOrderRequest
);
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
cancelNewUnifiedOrder
.
getCode
()))
{
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
cancelNewUnifiedOrder
.
getCode
()))
{
throw
new
ServiceException
(
ResponseResult
.
ORDER_PRE_PAYMENT_CLOSE_FAILED
);
throw
new
ServiceException
(
ResponseResult
.
ORDER_PRE_PAYMENT_CLOSE_FAILED
);
}
}
...
@@ -1107,7 +1170,7 @@ public class PayServiceImpl {
...
@@ -1107,7 +1170,7 @@ public class PayServiceImpl {
/**
/**
* 获取门店支付信息
* 获取门店支付信息
*
*
<p>
* aggregationType 6-会员、7-微商城、8-一键购买 9:积分商城
* aggregationType 6-会员、7-微商城、8-一键购买 9:积分商城
*/
*/
public
AssortmentOpenPlatformIappWxappStore
getIappWxappStoreInfo
(
String
wxAppId
,
String
aggregationType
)
{
public
AssortmentOpenPlatformIappWxappStore
getIappWxappStoreInfo
(
String
wxAppId
,
String
aggregationType
)
{
...
@@ -1116,14 +1179,13 @@ public class PayServiceImpl {
...
@@ -1116,14 +1179,13 @@ public class PayServiceImpl {
}
}
public
UnifiedOrderRequestDto
convert2UnifiedOrderRequestDto
(
UnifiedOrderCom
com
)
{
public
UnifiedOrderRequestDto
convert2UnifiedOrderRequestDto
(
UnifiedOrderCom
com
)
{
OrderBeanV1
orderBean
=
com
.
getOrderBean
();
OrderBeanV1
orderBean
=
com
.
getOrderBean
();
PaymentRequest
paymentRequest
=
com
.
getPaymentRequest
();
PaymentRequest
paymentRequest
=
com
.
getPaymentRequest
();
Long
amount
=
com
.
getAmount
();
Long
amount
=
com
.
getAmount
();
Integer
cardAmount
=
com
.
getCardAmount
();
Integer
cardAmount
=
com
.
getCardAmount
();
String
transId
=
com
.
getTransId
();
String
transId
=
com
.
getTransId
();
String
partnerPayOvertime
=
com
.
getPartnerPayOvertime
();
String
partnerPayOvertime
=
com
.
getPartnerPayOvertime
();
UnifiedOrderRequestDto
orderPayDto
=
new
UnifiedOrderRequestDto
();
UnifiedOrderRequestDto
orderPayDto
=
new
UnifiedOrderRequestDto
();
...
@@ -1166,7 +1228,7 @@ public class PayServiceImpl {
...
@@ -1166,7 +1228,7 @@ public class PayServiceImpl {
}
}
public
void
convent2CreateOrderResponseVo
(
OrderPayResponse
createOrderResponseVo
,
String
appId
,
UnifiedPayResponseDto
response
){
public
void
convent2CreateOrderResponseVo
(
OrderPayResponse
createOrderResponseVo
,
String
appId
,
UnifiedPayResponseDto
response
)
{
createOrderResponseVo
.
setWxAppid
(
appId
);
createOrderResponseVo
.
setWxAppid
(
appId
);
createOrderResponseVo
.
setFmId
(
response
.
getFmId
());
createOrderResponseVo
.
setFmId
(
response
.
getFmId
());
createOrderResponseVo
.
setEndTransId
(
response
.
getEndTransId
());
createOrderResponseVo
.
setEndTransId
(
response
.
getEndTransId
());
...
@@ -1189,14 +1251,216 @@ public class PayServiceImpl {
...
@@ -1189,14 +1251,216 @@ public class PayServiceImpl {
}
}
//1元捐插件需要参数
//1元捐插件需要参数
public
PlugInParameter
getPaymentAuth
(
String
partnerId
,
String
appId
)
{
public
PlugInParameter
getPaymentAuth
(
String
partnerId
,
String
appId
)
{
PlugInParameter
plugInParameter
=
new
PlugInParameter
();
PlugInParameter
plugInParameter
=
new
PlugInParameter
();
List
<
AssortmentOpenPlatformPartnerPaymentConfig
>
openPlatformPartnerPaymentAuths
=
openPlatformPartnerPaymentConfigManager
.
queryPartnerPaymentConfigs
(
partnerId
,
appId
);
List
<
AssortmentOpenPlatformPartnerPaymentConfig
>
openPlatformPartnerPaymentAuths
=
openPlatformPartnerPaymentConfigManager
.
queryPartnerPaymentConfigs
(
partnerId
,
appId
);
if
(
CollectionUtils
.
isNotEmpty
(
openPlatformPartnerPaymentAuths
))
{
if
(
CollectionUtils
.
isNotEmpty
(
openPlatformPartnerPaymentAuths
))
{
plugInParameter
.
setMchCode
(
openPlatformPartnerPaymentAuths
.
get
(
0
).
getUnitMchId
());
plugInParameter
.
setMchCode
(
openPlatformPartnerPaymentAuths
.
get
(
0
).
getUnitMchId
());
plugInParameter
.
setSubMchCode
(
openPlatformPartnerPaymentAuths
.
get
(
0
).
getSubMchid
());
plugInParameter
.
setSubMchCode
(
openPlatformPartnerPaymentAuths
.
get
(
0
).
getSubMchid
());
}
}
return
plugInParameter
;
return
plugInParameter
;
}
}
public
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
OrderRefundResponse
>
orderRefundNew
(
OrderRefundRequest
refundRequest
)
{
PaymentQueryOrderRequestDto
paymentQueryOrderRequest
=
new
PaymentQueryOrderRequestDto
();
paymentQueryOrderRequest
.
setPartnerId
(
refundRequest
.
getPartnerId
());
paymentQueryOrderRequest
.
setStoreId
(
refundRequest
.
getStoreId
());
paymentQueryOrderRequest
.
setFrontTransId
(
refundRequest
.
getOrgTransId
());
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PaymentQueryOrderResponseDto
>
payQueryOrderResponse
=
paymentNewClient
.
payQueryOrder
(
paymentQueryOrderRequest
);
Long
vipAmount
=
0L
;
String
payCode
=
null
;
if
(
Objects
.
equals
(
payQueryOrderResponse
.
getCode
(),
"100"
)
&&
payQueryOrderResponse
.
getData
()
!=
null
)
{
if
((
payQueryOrderResponse
.
getData
()).
getVipAmount
()
!=
null
&&
(
payQueryOrderResponse
.
getData
()).
getVipAmount
()
!=
0
)
{
vipAmount
=
(
long
)
(
payQueryOrderResponse
.
getData
()).
getVipAmount
();
}
refundRequest
.
setTotalAmount
((
payQueryOrderResponse
.
getData
()).
getAmount
());
payCode
=
payQueryOrderResponse
.
getCode
();
}
if
(
refundRequest
.
getTotalAmount
()
==
null
||
refundRequest
.
getTotalAmount
()
==
0L
)
{
refundRequest
.
setTotalAmount
(
refundRequest
.
getRefundAmount
());
}
AssortmentOpenPlatformIappWxappStore
wxAppStore
=
this
.
assortmentOpenPlatformIappWxappStoreManager
.
selectWxappStoreByWxAppIdAndStoreId
(
refundRequest
.
getAppId
(),
refundRequest
.
getStoreId
(),
payCode
);
PayRefundRequestDto
request
=
new
PayRefundRequestDto
();
request
.
setStoreId
(
refundRequest
.
getStoreId
());
request
.
setStationId
(
refundRequest
.
getStationId
());
request
.
setOperatorId
(
refundRequest
.
getOperatorId
());
request
.
setTransId
(
refundRequest
.
getOrgTransId
());
request
.
setBusinessDate
(
refundRequest
.
getBusinessDate
());
request
.
setFmId
(
refundRequest
.
getOrgPayFmId
());
request
.
setTotalAmount
(
refundRequest
.
getTotalAmount
());
request
.
setRefundAmount
(
refundRequest
.
getRefundAmount
());
request
.
setRefundId
(
refundRequest
.
getRefundId
().
toString
());
request
.
setRefundDesc
(
refundRequest
.
getRefundDesc
());
request
.
setNotifyUrl
(
refundRequest
.
getNotifyUrl
());
request
.
setPartnerId
(
refundRequest
.
getPartnerId
());
request
.
setVer
(
Integer
.
valueOf
(
ConstantPaymentReqType
.
version
));
request
.
setExtendParams
(
refundRequest
.
getExtendParams
());
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
OrderRefundResponse
>
checkParam
=
this
.
checkParam
(
refundRequest
.
getPartnerId
(),
refundRequest
.
getStoreId
(),
refundRequest
.
getRefundAmount
(),
wxAppStore
);
if
(!
Objects
.
equals
(
checkParam
.
getCode
(),
"100"
))
{
return
checkParam
;
}
else
{
String
receiveJsonStr
=
this
.
setPayValueFromSDKByManager
(
refundRequest
.
getPartnerId
(),
refundRequest
.
getStoreId
(),
refundRequest
.
getRefundAmount
()
+
vipAmount
,
vipAmount
,
wxAppStore
.
getIndirectId
(),
false
);
if
(!
StringUtils
.
isEmpty
(
receiveJsonStr
))
{
request
.
setAccountDivided
(
receiveJsonStr
);
}
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PayRefundResponseDto
>
refundNewResponse
=
paymentNewClient
.
payRefund
(
request
);
if
(
Objects
.
equals
(
refundNewResponse
.
getCode
(),
"100"
))
{
PayRefundResponseDto
res
=
refundNewResponse
.
getData
();
if
(
null
!=
res
&&
null
!=
res
.
getData
())
{
PayRefundData
refunData
=
res
.
getData
();
OrderRefundResponse
refundResponse
=
new
OrderRefundResponse
();
refundResponse
.
setStatusCode
(
refunData
.
getResultCode
());
refundResponse
.
setMsg
(
refunData
.
getResultMsg
());
refundResponse
.
setRefundAmount
(
refunData
.
getRefundAmount
());
refundResponse
.
setTotalAmount
(
refunData
.
getTotalAmount
());
refundResponse
.
setRefundStatus
(
this
.
getRefundStatus
(
refunData
.
getResultCode
()));
refundResponse
.
setRefundTradeNo
(
refunData
.
getRefundTradeNo
());
refundResponse
.
setTradeNo
(
refunData
.
getRefundTradeNo
());
refundResponse
.
setThirdPartRefundTradeNo
(
refunData
.
getThirdPartRefundTradeNo
());
refundResponse
.
setThirdPartTradeNo
(
refunData
.
getThirdPartTradeNo
());
refundResponse
.
setTotalAmount
(
refunData
.
getTotalAmount
());
return
ResponseUtils
.
success
(
refundResponse
);
}
}
if
(!
Arrays
.
asList
(
"8200201"
,
"8200202"
,
"8200203"
,
"8200204"
,
"8200205"
).
contains
(
refundNewResponse
.
getCode
()))
{
// this.emailAlertService.sendEmailAlert("支付退款失败", "请求json:" + JSONObject.toJSONString(request) + "返回msg:" + refundNewResponse.getMessage());
}
return
ResponseUtils
.
error
(
refundNewResponse
.
getCode
(),
refundNewResponse
.
getMessage
());
}
}
public
Integer
getRefundStatus
(
Integer
resultCode
)
{
if
(
Objects
.
equals
(
resultCode
,
ResponseConstant
.
SUCCESS_RESPONSE_CODE_INT
))
{
return
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_1
.
getCode
();
}
else
{
return
Objects
.
equals
(
resultCode
,
ResponseConstant
.
REFUND_RESPONSE_CODE
)
?
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_4
.
getCode
()
:
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_2
.
getCode
();
}
}
private
String
setPayValueFromSDKByManager
(
String
partnerId
,
String
storeId
,
Long
totalAmount
,
Long
vipAmount
,
Long
indirectId
,
boolean
isPay
)
{
if
(
indirectId
==
null
)
{
return
null
;
}
else
{
AssortmentOpenPlatformPartnerMerchant
openPlatformPartnerMerchant
=
openPlatformPartnerMerchantManager
.
selectMerchantDetail
(
indirectId
);
List
<
ReceiverBiz
>
dtoReceivers
=
this
.
calcReceiverNew
(
openPlatformPartnerMerchant
,
partnerId
,
storeId
,
totalAmount
,
vipAmount
,
isPay
);
return
this
.
convertOrderPayRequestToReceivers
(
dtoReceivers
);
}
}
public
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
OrderRefundResponse
>
checkParam
(
String
partnerId
,
String
storeId
,
Long
amount
,
AssortmentOpenPlatformIappWxappStore
wxAppStore
)
{
if
(
StringUtils
.
isBlank
(
partnerId
))
{
return
ResponseUtils
.
error
(
"500"
,
"商户号不能为空"
);
}
else
if
(
StringUtils
.
isBlank
(
storeId
))
{
return
ResponseUtils
.
error
(
"500"
,
"门店号不能为空"
);
}
else
if
(
amount
==
null
)
{
return
ResponseUtils
.
error
(
"500"
,
"金额不能为空"
);
}
else
{
return
wxAppStore
==
null
?
ResponseUtils
.
error
(
"500"
,
"支付信息没有配置"
)
:
ResponseUtils
.
success
();
}
}
/**
* 新获取分账信息逻辑
*
* @param openPlatformPartnerMerchant 收单方
* @param partnerId
* @param storeId
* @param totalAmount
* @return
*/
public
List
<
ReceiverBiz
>
calcReceiverNew
(
AssortmentOpenPlatformPartnerMerchant
openPlatformPartnerMerchant
,
String
partnerId
,
String
storeId
,
Long
totalAmount
,
Long
vipAmount
,
boolean
isPay
)
{
String
platform
=
openPlatformPartnerMerchant
!=
null
?
openPlatformPartnerMerchant
.
getPlatform
()
:
""
;
if
(!
PlatformType
.
YI_BAO_PAYMENT
.
getCode
().
equals
(
platform
)
&&
!
PlatformType
.
YF_PAYMENT
.
getCode
().
equals
(
platform
))
{
return
null
;
}
AssortmentOpenPlatformPartnerMerchantAccountManager
openPlatformPartnerMerchantAccountManager
=
ApplicationBeanManager
.
getBean
(
AssortmentOpenPlatformPartnerMerchantAccountManager
.
class
);
Long
orderAmount
;
List
<
ReceiverBiz
>
result
=
Lists
.
newArrayList
();
List
<
AssortmentOpenPlatformPartnerMerchantAccount
>
openPlatformPartnerMerchantAccounts
;
if
(
vipAmount
==
null
||
vipAmount
==
0L
)
{
// 不走会员分账
openPlatformPartnerMerchantAccounts
=
openPlatformPartnerMerchantAccountManager
.
selectByRuleId
(
partnerId
,
storeId
,
PayRuleIdEnum
.
DEFAULT
.
getCode
());
orderAmount
=
totalAmount
;
}
else
{
// 走会员分账
openPlatformPartnerMerchantAccounts
=
vipSubAccount
(
partnerId
,
storeId
,
vipAmount
,
platform
,
openPlatformPartnerMerchantAccountManager
,
result
,
isPay
);
orderAmount
=
totalAmount
-
vipAmount
;
}
ReceiverService
receiverService
=
ApplicationBeanManager
.
getBean
(
platform
,
ReceiverService
.
class
);
if
(
receiverService
==
null
)
{
return
null
;
}
List
<
ReceiverBiz
>
list
=
receiverService
.
getReceivers
(
openPlatformPartnerMerchant
,
openPlatformPartnerMerchantAccounts
,
orderAmount
,
isPay
);
result
.
addAll
(
list
);
return
result
;
}
/**
* 易宝会员分账计算
*
* @param partnerId
* @param storeId
* @param vipAmount
* @param platform
* @param openPlatformPartnerMerchantAccountManager
* @param result
* @return
*/
private
List
<
AssortmentOpenPlatformPartnerMerchantAccount
>
vipSubAccount
(
String
partnerId
,
String
storeId
,
Long
vipAmount
,
String
platform
,
AssortmentOpenPlatformPartnerMerchantAccountManager
openPlatformPartnerMerchantAccountManager
,
List
<
ReceiverBiz
>
result
,
boolean
isPay
)
{
// 退款不需要计算会员分账
if
(!
PlatformType
.
YI_BAO_PAYMENT
.
getCode
().
equals
(
platform
))
{
return
Collections
.
emptyList
();
}
// 查询固定金额得分账记录
List
<
AssortmentOpenPlatformPartnerMerchantAccount
>
openPlatformPartnerMerchantAccounts
=
null
;
List
<
AssortmentOpenPlatformPartnerMerchantAccount
>
payRates
=
openPlatformPartnerMerchantAccountManager
.
selectPayRate
(
partnerId
,
storeId
,
vipAmount
+
""
,
PayRuleTypeEnum
.
FIXED_AMOUNT
.
getCode
());
if
(
CollectionUtils
.
isNotEmpty
(
payRates
))
{
AssortmentOpenPlatformPartnerMerchantAccount
account
=
payRates
.
get
(
0
);
if
(
isPay
)
{
ReceiverBiz
receiver
=
new
ReceiverBiz
();
receiver
.
setAccount
(
account
.
getAccountCard
());
//传整数,直接去除小数点后面的数字
receiver
.
setPrice
(
vipAmount
);
receiver
.
setName
(
account
.
getAccountName
());
result
.
add
(
receiver
);
}
List
<
AssortmentOpenPlatformPartnerMerchantAccount
>
subAccounts
=
openPlatformPartnerMerchantAccountManager
.
selectByRuleId
(
partnerId
,
storeId
,
account
.
getRuleId
());
// 剔除固定金额
openPlatformPartnerMerchantAccounts
=
subAccounts
.
stream
().
filter
(
a
->
Objects
.
equals
(
a
.
getRuleType
(),
PayRuleTypeEnum
.
FIXED_PROPORTION
.
getCode
())).
collect
(
Collectors
.
toList
());
}
return
openPlatformPartnerMerchantAccounts
;
}
public
String
convertOrderPayRequestToReceivers
(
List
<
ReceiverBiz
>
receiverBizs
)
{
if
(
CollectionUtils
.
isEmpty
(
receiverBizs
))
{
return
null
;
}
//分账
List
<
ReceiverBiz
>
receivers
=
receiverBizs
;
List
<
AccountDivideVo
>
divideVos
=
new
ArrayList
<>();
for
(
ReceiverBiz
receiver
:
receivers
)
{
AccountDivideVo
divideVo
=
new
AccountDivideVo
();
divideVo
.
setLedgerNo
(
receiver
.
getAccount
());
divideVo
.
setLedgerName
(
receiver
.
getName
());
Double
amount
=
receiver
.
getPrice
()
/
100
d
;
divideVo
.
setAmount
(
amount
+
""
);
divideVos
.
add
(
divideVo
);
}
return
JSONObject
.
toJSONString
(
divideVos
);
}
}
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/PaymentNewClient.java
View file @
e3efb70a
...
@@ -5,9 +5,10 @@ import cn.freemud.constant.ResponseCodeKeyConstant;
...
@@ -5,9 +5,10 @@ import cn.freemud.constant.ResponseCodeKeyConstant;
import
cn.freemud.entities.dto.order.FacePayRequestDto
;
import
cn.freemud.entities.dto.order.FacePayRequestDto
;
import
cn.freemud.entities.dto.order.UnifiedPayResponseDto
;
import
cn.freemud.entities.dto.order.UnifiedPayResponseDto
;
import
cn.freemud.entities.dto.order.InvoiceCreateResponse
;
import
cn.freemud.entities.dto.order.InvoiceCreateResponse
;
import
cn.freemud.entities.dto.pay.InvoiceCreateRequest
;
import
cn.freemud.entities.dto.pay.*
;
import
cn.freemud.entities.dto.pay.UnifiedOrderRequestDto
;
import
cn.freemud.entities.dto.order.RefundQueryResponseDto
;
import
cn.freemud.entities.dto.order.RefundQueryResponseDto
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.PaymentCloseUnifiedOrderRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.PaymentCloseUnifiedOrderResponse
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
...
@@ -64,4 +65,20 @@ public interface PaymentNewClient {
...
@@ -64,4 +65,20 @@ public interface PaymentNewClient {
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
UnifiedPayResponseDto
>
codePay
(
@RequestBody
FacePayRequestDto
orderPayDto
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
UnifiedPayResponseDto
>
codePay
(
@RequestBody
FacePayRequestDto
orderPayDto
);
@LogIgnoreFeign
(
logMessage
=
"payQuery"
)
@PostMapping
(
"paymentcenter/close"
)
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PaymentCloseUnifiedOrderResponse
>
cancelNewUnifiedOrder
(
@RequestBody
PaymentCloseUnifiedOrderRequest
request
);
@LogIgnoreFeign
(
logMessage
=
"payQuery"
)
@PostMapping
(
"paymentcenter/query"
)
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PaymentQueryResponseDto
>
payQuery
(
@RequestBody
PaymentQueryRequestDto
request
);
@LogIgnoreFeign
(
logMessage
=
"payQueryOrder"
)
@PostMapping
(
"paymentcenter/queryOrder"
)
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PaymentQueryOrderResponseDto
>
payQueryOrder
(
@RequestBody
PaymentQueryOrderRequestDto
request
);
//现金支付退款接口
@LogIgnoreFeign
(
logMessage
=
"payRefund"
)
@PostMapping
(
"paymentcenter/refund"
)
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
PayRefundResponseDto
>
payRefund
(
@RequestBody
PayRefundRequestDto
request
);
}
}
order-application-service/src/main/java/cn/freemud/service/universal/UniversalOrderService.java
View file @
e3efb70a
...
@@ -15,14 +15,18 @@ import cn.freemud.entities.dto.SvcComPayRequestDto;
...
@@ -15,14 +15,18 @@ import cn.freemud.entities.dto.SvcComPayRequestDto;
import
cn.freemud.entities.dto.SvcComPayResponseDto
;
import
cn.freemud.entities.dto.SvcComPayResponseDto
;
import
cn.freemud.entities.dto.order.CreateOrderOperateDto
;
import
cn.freemud.entities.dto.order.CreateOrderOperateDto
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
import
cn.freemud.entities.dto.pay.CombPayResponse
;
import
cn.freemud.entities.dto.pay.OrderPayResponse
;
import
cn.freemud.entities.dto.pay.OrderPayResponse
;
import
cn.freemud.entities.dto.pay.PaymentMqMessageDto
;
import
cn.freemud.entities.dto.pay.PaymentMqMessageDto
;
import
cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto
;
import
cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.CreateOrderBaseVo
;
import
cn.freemud.entities.vo.order.CreateOrderUnionPayCardVo
;
import
cn.freemud.entities.vo.CreateOrderResponseVo
;
import
cn.freemud.enums.*
;
import
cn.freemud.entities.vo.PaysuccessNoticeMessage
;
import
cn.freemud.entities.vo.SubtractStockVO
;
import
cn.freemud.enums.CreateOrderSceneEnum
;
import
cn.freemud.enums.OrderMarketType
;
import
cn.freemud.enums.PaySuccessSource
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.service.CheckOrderUniversal
;
import
cn.freemud.service.CheckOrderUniversal
;
...
@@ -33,7 +37,6 @@ import cn.freemud.service.thirdparty.ComPayClient;
...
@@ -33,7 +37,6 @@ import cn.freemud.service.thirdparty.ComPayClient;
import
cn.freemud.service.thirdparty.SvcComPayClient
;
import
cn.freemud.service.thirdparty.SvcComPayClient
;
import
cn.freemud.service.universal.factory.CreateOrderServiceFactory
;
import
cn.freemud.service.universal.factory.CreateOrderServiceFactory
;
import
cn.freemud.utils.AppLogUtil
;
import
cn.freemud.utils.AppLogUtil
;
import
cn.freemud.utils.RedisUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
cn.freemud.utils.ValidationCode
;
import
cn.freemud.utils.ValidationCode
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
...
@@ -65,14 +68,8 @@ import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
...
@@ -65,14 +68,8 @@ import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import
com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest
;
import
com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest
;
import
com.freemud.application.sdk.api.ordercenter.request.create.OrderTaskReq
;
import
com.freemud.application.sdk.api.ordercenter.request.create.OrderTaskReq
;
import
com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp
;
import
com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderPayItemResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.CodePayRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.SVCCardAmountRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.CodePayResponse
;
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.promotioncenter.dto.promotion.GoodsStockDTO
;
import
com.freemud.application.sdk.api.promotioncenter.dto.promotion.GoodsStockDTO
;
import
com.freemud.application.sdk.api.promotioncenter.request.promotion.ActivityUpdateStockRequest
;
import
com.freemud.application.sdk.api.promotioncenter.request.promotion.ActivityUpdateStockRequest
;
import
com.freemud.application.sdk.api.promotioncenter.service.PromotionSdkService
;
import
com.freemud.application.sdk.api.promotioncenter.service.PromotionSdkService
;
...
@@ -85,10 +82,8 @@ import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter;
...
@@ -85,10 +82,8 @@ import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter;
import
com.freemud.sdk.api.assortment.order.enums.AutoOrderConfigTime
;
import
com.freemud.sdk.api.assortment.order.enums.AutoOrderConfigTime
;
import
com.freemud.sdk.api.assortment.order.enums.StockChangeType
;
import
com.freemud.sdk.api.assortment.order.enums.StockChangeType
;
import
com.freemud.sdk.api.assortment.order.request.order.*
;
import
com.freemud.sdk.api.assortment.order.request.order.*
;
import
com.freemud.sdk.api.assortment.order.request.payment.CombPayRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse
;
//import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse;
import
com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService
;
import
com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService
;
import
com.freemud.sdk.api.assortment.payment.request.UnifiedOrderRequest
;
import
com.freemud.sdk.api.assortment.payment.request.UnifiedOrderRequest
;
import
com.freemud.sdk.api.assortment.payment.response.UnifiedOrderResponse
;
import
com.freemud.sdk.api.assortment.payment.response.UnifiedOrderResponse
;
...
@@ -100,16 +95,14 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -100,16 +95,14 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
static
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
RESPONSE_SUCCESS
;
import
static
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
RESPONSE_SUCCESS
;
import
static
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
;
import
static
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
;
//import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse;
/**
/**
* 订单服务
* 订单服务
*
*
...
@@ -134,8 +127,6 @@ public abstract class UniversalOrderService {
...
@@ -134,8 +127,6 @@ public abstract class UniversalOrderService {
@Autowired
@Autowired
private
AssortmentOpenPlatformPartnerConfigManager
openPlatformPartnerConfigManager
;
private
AssortmentOpenPlatformPartnerConfigManager
openPlatformPartnerConfigManager
;
@Autowired
@Autowired
private
PaymentNewService
paymentNewService
;
@Autowired
protected
PayServiceImpl
payService
;
protected
PayServiceImpl
payService
;
@Autowired
@Autowired
private
PaymentQueueService
paymentQueueService
;
private
PaymentQueueService
paymentQueueService
;
...
@@ -707,14 +698,15 @@ public abstract class UniversalOrderService {
...
@@ -707,14 +698,15 @@ public abstract class UniversalOrderService {
throw
new
ServiceException
(
ResponseResult
.
PAY_AMOUNT_ERROR
);
throw
new
ServiceException
(
ResponseResult
.
PAY_AMOUNT_ERROR
);
}
else
if
(
totalAmount
>
0
&&
Objects
.
nonNull
(
createPrepayRequestDto
.
getUnionPayCard
()))
{
}
else
if
(
totalAmount
>
0
&&
Objects
.
nonNull
(
createPrepayRequestDto
.
getUnionPayCard
()))
{
// 电子风味卡支付
// 电子风味卡支付
orderPayResponse
=
uSvcPay
(
createPrepayRequestDto
.
getFatherOrderBean
(),
paymentRequest
,
transId
,
LogThreadLocal
.
getTrackingNo
(),
createPrepayRequestDto
.
getUnionPayCard
());
orderPayResponse
=
payService
.
uSvcPay
(
createPrepayRequestDto
.
getFatherOrderBean
(),
paymentRequest
,
transId
,
LogThreadLocal
.
getTrackingNo
(),
createPrepayRequestDto
.
getUnionPayCard
());
}
else
if
(
totalAmount
>
0
&&
StringUtils
.
isBlank
(
cardCode
))
{
}
else
if
(
totalAmount
>
0
&&
StringUtils
.
isBlank
(
cardCode
))
{
String
partnerPayOvertime
=
this
.
getPartnerPayOvertime
(
createPrepayRequestDto
.
getPartnerId
());
// String partnerPayOvertime = this.getPartnerPayOvertime(createPrepayRequestDto.getPartnerId());
orderPayResponse
=
getPreOrderPay
(
createPrepayRequestDto
.
getFatherOrderBean
(),
paymentRequest
,
LogThreadLocal
.
getTrackingNo
(),
createPrepayRequestDto
.
getCardAmount
(),
transId
,
partnerPayOvertime
,
createPrepayRequestDto
.
getOrderExtInfoDTO
());
orderPayResponse
=
payService
.
getPreOrderPay
(
createPrepayRequestDto
.
getFatherOrderBean
(),
paymentRequest
,
createPrepayRequestDto
.
getCardAmount
(),
transId
,
createPrepayRequestDto
.
getOrderExtInfoDTO
());
// orderPayResponse = getPreOrderPay(createPrepayRequestDto.getFatherOrderBean(), paymentRequest, LogThreadLocal.getTrackingNo(), createPrepayRequestDto.getCardAmount(), transId, partnerPayOvertime, createPrepayRequestDto.getOrderExtInfoDTO());
}
}
//混合支付+svc卡
//混合支付+svc卡
else
if
(
totalAmount
>
0
&&
StringUtils
.
isNotBlank
(
cardCode
))
{
else
if
(
totalAmount
>
0
&&
StringUtils
.
isNotBlank
(
cardCode
))
{
orderPayResponse
=
switchSvcOrComb
(
totalAmount
,
cardCode
,
createPrepayRequestDto
.
getFatherOrderBean
(),
paymentRequest
,
transId
,
createPrepayRequestDto
.
getChannel
(),
createPrepayRequestDto
.
getStoreId
(),
LogThreadLocal
.
getTrackingNo
());
orderPayResponse
=
payService
.
switchSvcOrComb
(
totalAmount
,
cardCode
,
createPrepayRequestDto
.
getFatherOrderBean
(),
paymentRequest
,
transId
,
createPrepayRequestDto
.
getChannel
(),
createPrepayRequestDto
.
getStoreId
(),
LogThreadLocal
.
getTrackingNo
());
}
else
{
}
else
{
// 0元订单如果不需要支付,自定义支付单号
// 0元订单如果不需要支付,自定义支付单号
orderPayResponse
=
getOrderPayResponse
(
paymentRequest
,
createPrepayRequestDto
.
getFatherOrderBean
());
orderPayResponse
=
getOrderPayResponse
(
paymentRequest
,
createPrepayRequestDto
.
getFatherOrderBean
());
...
@@ -864,74 +856,74 @@ public abstract class UniversalOrderService {
...
@@ -864,74 +856,74 @@ public abstract class UniversalOrderService {
return
orderPayResponse
;
return
orderPayResponse
;
}
}
private
OrderPayResponse
switchSvcOrComb
(
Long
totalAmount
//
private OrderPayResponse switchSvcOrComb(Long totalAmount
,
String
cardCode
//
, String cardCode
,
OrderBeanV1
orderBean
//
, OrderBeanV1 orderBean
,
PaymentRequest
paymentRequest
//
, PaymentRequest paymentRequest
,
String
transId
//
, String transId
,
String
channel
//
, String channel
,
String
storeId
//
, String storeId
,
String
trackingNo
)
{
//
, String trackingNo) {
//
OrderPayResponse
orderPayResponse
=
new
OrderPayResponse
();
//
OrderPayResponse orderPayResponse = new OrderPayResponse();
boolean
check
=
this
.
checkSvcComPay
(
orderBean
.
getCompanyId
(),
orderBean
.
getShopId
());
//
boolean check = this.checkSvcComPay(orderBean.getCompanyId(), orderBean.getShopId());
//混合支付
//
//混合支付
if
(
check
&&
StringUtils
.
isNotBlank
(
channel
))
{
//
if (check && StringUtils.isNotBlank(channel)) {
String
partnerPayOvertime
=
this
.
getPartnerPayOvertime
(
orderBean
.
getCompanyId
());
//
String partnerPayOvertime = this.getPartnerPayOvertime(orderBean.getCompanyId());
orderPayResponse
=
comPayOrder
(
cardCode
,
orderBean
,
paymentRequest
,
partnerPayOvertime
,
totalAmount
.
intValue
(),
channel
,
storeId
,
LogThreadLocal
.
getTrackingNo
());
//
orderPayResponse = comPayOrder(cardCode, orderBean, paymentRequest, partnerPayOvertime, totalAmount.intValue(), channel, storeId, LogThreadLocal.getTrackingNo());
}
else
{
//svc 支付
//
} else {//svc 支付
orderPayResponse
=
svcPay
(
cardCode
,
orderBean
,
paymentRequest
,
transId
,
trackingNo
);
//
orderPayResponse = svcPay(cardCode, orderBean, paymentRequest, transId, trackingNo);
}
//
}
return
orderPayResponse
;
//
return orderPayResponse;
}
//
}
public
OrderPayResponse
svcPay
(
String
cardCode
,
OrderBeanV1
orderBean
,
PaymentRequest
paymentRequest
,
String
transId
,
String
trackingNo
)
{
//
public OrderPayResponse svcPay(String cardCode, OrderBeanV1 orderBean, PaymentRequest paymentRequest, String transId, String trackingNo) {
CodePayRequest
request
=
new
CodePayRequest
();
//
CodePayRequest request = new CodePayRequest();
OrderPayResponse
orderPayResponse
=
new
OrderPayResponse
();
//
OrderPayResponse orderPayResponse = new OrderPayResponse();
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())) {
orderPayResponse
.
setMsg
(
Objects
.
isNull
(
svcCardAmountResponseBaseResponse
)
?
"获取svc卡余额异常"
:
svcCardAmountResponseBaseResponse
.
getMessage
());
//
orderPayResponse.setMsg(Objects.isNull(svcCardAmountResponseBaseResponse) ? "获取svc卡余额异常" : svcCardAmountResponseBaseResponse.getMessage());
return
orderPayResponse
;
//
return orderPayResponse;
}
//
}
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()) {
orderPayResponse
.
setMsg
(
"svc卡余额不足"
);
//
orderPayResponse.setMsg("svc卡余额不足");
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) ? "svc卡支付异常" : responseBase.getMessage());
}
else
{
//
} else {
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());
orderPayResponse
.
setPayChannelType
(
PayChannelType
.
SVC
);
//
orderPayResponse.setPayChannelType(PayChannelType.SVC);
}
//
}
return
orderPayResponse
;
//
return orderPayResponse;
}
//
}
/**
/**
* 创建混合支付
* 创建混合支付
...
@@ -945,99 +937,99 @@ public abstract class UniversalOrderService {
...
@@ -945,99 +937,99 @@ public abstract class UniversalOrderService {
* @param trackingNo
* @param trackingNo
* @return
* @return
*/
*/
public
OrderPayResponse
comPayOrder
(
String
cardNo
//
public OrderPayResponse comPayOrder(String cardNo
,
OrderBeanV1
orderBean
//
, OrderBeanV1 orderBean
,
PaymentRequest
paymentRequest
//
, PaymentRequest paymentRequest
,
String
partnerPayOvertime
//
, String partnerPayOvertime
,
Integer
totalAmount
//
, Integer totalAmount
,
String
channel
//
, String channel
,
String
storeId
//
, String storeId
,
String
trackingNo
)
{
//
, String trackingNo) {
//
String
ebCode
=
this
.
getPayCodeByChanel
(
paymentRequest
.
getWxAppId
(),
channel
,
storeId
);
//
String ebCode = this.getPayCodeByChanel(paymentRequest.getWxAppId(), channel, storeId);
OrderPayResponse
orderPayResponse
=
new
OrderPayResponse
();
//
OrderPayResponse orderPayResponse = new OrderPayResponse();
;
//
;
if
(
StringUtils
.
isBlank
(
ebCode
))
{
//
if (StringUtils.isBlank(ebCode)) {
orderPayResponse
.
setMsg
(
"请先联系相关人员配置商户对应的支付渠道"
);
//
orderPayResponse.setMsg("请先联系相关人员配置商户对应的支付渠道");
return
orderPayResponse
;
//
return orderPayResponse;
}
//
}
//
CombPayRequest
combPayRequest
=
createOrderAdapter
.
convent2CombPayOrderRequest
(
cardNo
,
orderBean
,
paymentRequest
,
partnerPayOvertime
,
ebCode
,
channel
,
totalAmount
);
//
CombPayRequest combPayRequest = createOrderAdapter.convent2CombPayOrderRequest(cardNo, orderBean, paymentRequest, partnerPayOvertime, ebCode, channel, totalAmount);
//todo :xxxooooo xxxoooxox
//
//todo :xxxooooo xxxoooxox
CombPayResponse
combPayResponse
=
null
;
//
CombPayResponse combPayResponse = null;
int
i
=
1
;
//
int i = 1;
do
{
//
do {
try
{
//
try {
combPayResponse
=
comPayClient
.
combPay
(
combPayRequest
,
combPayRequest
.
getPartner_id
());
//
combPayResponse = comPayClient.combPay(combPayRequest, combPayRequest.getPartner_id());
if
(
combPayResponse
!=
null
)
{
//
if (combPayResponse != null) {
break
;
//
break;
}
//
}
}
catch
(
Exception
exception
)
{
//
} catch (Exception exception) {
}
//
}
i
++;
//
i++;
}
while
(
i
<
4
);
//
} while (i < 4);
//
if
(
combPayResponse
==
null
||
!
ResponseCodeConstant
.
PAYMENT_RESPONSE_SUCCESS
.
equals
(
combPayResponse
.
getCode
()))
{
//
if (combPayResponse == null || !ResponseCodeConstant.PAYMENT_RESPONSE_SUCCESS.equals(combPayResponse.getCode())) {
orderPayResponse
.
setMsg
(
combPayResponse
!=
null
?
"支付:"
+
combPayResponse
.
getMsg
()
:
"混合支付忙不过来啦,请稍后再试"
);
//
orderPayResponse.setMsg(combPayResponse != null ? "支付:" + combPayResponse.getMsg() : "混合支付忙不过来啦,请稍后再试");
return
orderPayResponse
;
//
return orderPayResponse;
}
//
}
Integer
svcAmount
=
0
;
//
Integer svcAmount = 0;
Integer
svcVAmount
=
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
//
CombPayResponse.PayPlatform cashPay = payPlatforms
.
stream
()
//
.stream()
.
filter
(
f
->
!
PayChannelType
.
SVC
.
getEbcode
().
equals
(
f
.
getEbCode
())).
findFirst
()
//
.filter(f -> !PayChannelType.SVC.getEbcode().equals(f.getEbCode())).findFirst()
.
orElse
(
null
);
//
.orElse(null);
//
//现金+svc 现金
//
//现金+svc 现金
if
(
payPlatforms
.
size
()
==
2
||
(
payPlatforms
.
size
()
==
1
&&
cashPay
!=
null
))
{
//
if (payPlatforms.size() == 2 || (payPlatforms.size() == 1 && cashPay != null)) {
orderPayResponse
=
createOrderAdapter
.
convent2OrderCombPayResponse
(
combPayResponse
.
getData
().
getPayPlatformResponseList
(),
orderBean
.
getCompanyId
(),
storeId
);
//
orderPayResponse = createOrderAdapter.convent2OrderCombPayResponse(combPayResponse.getData().getPayPlatformResponseList(), orderBean.getCompanyId(), storeId);
orderPayResponse
.
setOpenId
(
paymentRequest
.
getOpenId
());
//
orderPayResponse.setOpenId(paymentRequest.getOpenId());
orderPayResponse
.
setWxAppid
(
paymentRequest
.
getWxAppId
());
//
orderPayResponse.setWxAppid(paymentRequest.getWxAppId());
orderPayResponse
.
setPartnerId
(
orderBean
.
getCompanyId
());
//
orderPayResponse.setPartnerId(orderBean.getCompanyId());
orderPayResponse
.
setOrderId
(
orderBean
.
getOid
());
//
orderPayResponse.setOrderId(orderBean.getOid());
orderPayResponse
.
setPayChannelType
(
orderPayResponse
.
getPayChannelType
());
//
orderPayResponse.setPayChannelType(orderPayResponse.getPayChannelType());
//隐射关系
//
//隐射关系
redisCache
.
save
(
RedisUtil
.
getPaymentTransIdOrderKey
(
cashPay
.
getTransId
()),
orderBean
.
getOid
(),
1L
,
TimeUnit
.
DAYS
);
//
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
());
//
putDelMq(orderBean.getCompanyId(), storeId, orderPayResponse.getFmId(), orderBean.getOid(), PayChannelType.getByEbcode(cashPay.getEbCode()).getIndex().intValue());
return
orderPayResponse
;
//
return orderPayResponse;
}
//
}
//单svc
//
//单svc
else
{
//
else {
CombPayResponse
.
PayPlatform
svcPay
=
payPlatforms
//
CombPayResponse.PayPlatform svcPay = payPlatforms
.
stream
()
//
.stream()
.
filter
(
f
->
PayChannelType
.
SVC
.
getEbcode
().
equals
(
f
.
getEbCode
())).
findFirst
()
//
.filter(f -> PayChannelType.SVC.getEbcode().equals(f.getEbCode())).findFirst()
.
orElse
(
null
);
//
.orElse(null);
orderPayResponse
.
setFmId
(
svcPay
.
getTransId
());
//
orderPayResponse.setFmId(svcPay.getTransId());
orderPayResponse
.
setPayTransId
(
svcPay
.
getTransId
());
//
orderPayResponse.setPayTransId(svcPay.getTransId());
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());
orderPayResponse
.
setPayChannelType
(
PayChannelType
.
SVC
);
//
orderPayResponse.setPayChannelType(PayChannelType.SVC);
for
(
CombPayResponse
.
PayPlatform
pt
:
payPlatforms
)
{
//
for (CombPayResponse.PayPlatform pt : payPlatforms) {
OrderPayItemResp
payItem
=
new
OrderPayItemResp
();
//
OrderPayItemResp payItem = new OrderPayItemResp();
payItem
.
setFmTradeNo
(
pt
.
getFmTradeNo
());
//
payItem.setFmTradeNo(pt.getFmTradeNo());
payItem
.
setStoreId
(
storeId
);
//
payItem.setStoreId(storeId);
payItem
.
setPayChannelType
(
PayChannelType
.
getByEbcode
(
pt
.
getEbCode
()).
getIndex
().
intValue
());
//
payItem.setPayChannelType(PayChannelType.getByEbcode(pt.getEbCode()).getIndex().intValue());
payItem
.
setPayChannelName
(
PayChannelType
.
getByEbcode
(
pt
.
getEbCode
()).
getName
());
//
payItem.setPayChannelName(PayChannelType.getByEbcode(pt.getEbCode()).getName());
payItem
.
setTransId
(
pt
.
getTransId
());
//
payItem.setTransId(pt.getTransId());
payItem
.
setPartnerId
(
combPayRequest
.
getPartner_id
());
//
payItem.setPartnerId(combPayRequest.getPartner_id());
payItem
.
setPayAmount
(
new
BigDecimal
(
pt
.
getPayAmount
()));
//
payItem.setPayAmount(new BigDecimal(pt.getPayAmount()));
orderPayResponse
.
getPayItem
().
add
(
payItem
);
//
orderPayResponse.getPayItem().add(payItem);
}
//
}
}
//
}
//
return
orderPayResponse
;
//
return orderPayResponse;
//
//
}
//
}
/**
/**
* 通过payCode ->clientCode
* 通过payCode ->clientCode
...
@@ -1201,47 +1193,47 @@ public abstract class UniversalOrderService {
...
@@ -1201,47 +1193,47 @@ public abstract class UniversalOrderService {
* @param unionPayCard
* @param unionPayCard
* @return
* @return
*/
*/
private
OrderPayResponse
uSvcPay
(
OrderBeanV1
orderBean
,
PaymentRequest
paymentRequest
,
String
transId
,
String
trackingNo
,
CreateOrderUnionPayCardVo
unionPayCard
)
{
//
private OrderPayResponse uSvcPay(OrderBeanV1 orderBean, PaymentRequest paymentRequest, String transId, String trackingNo, CreateOrderUnionPayCardVo unionPayCard) {
OrderPayResponse
orderPayResponse
=
new
OrderPayResponse
();
//
OrderPayResponse orderPayResponse = new OrderPayResponse();
if
(
Objects
.
isNull
(
unionPayCard
)
||
StringUtils
.
isBlank
(
unionPayCard
.
getCode
())
||
StringUtils
.
isBlank
(
unionPayCard
.
getPassword
()))
{
//
if (Objects.isNull(unionPayCard) || StringUtils.isBlank(unionPayCard.getCode()) || StringUtils.isBlank(unionPayCard.getPassword())) {
orderPayResponse
.
setMsg
(
"电子风味卡信息缺失"
);
//
orderPayResponse.setMsg("电子风味卡信息缺失");
return
orderPayResponse
;
//
return orderPayResponse;
}
//
}
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
(
DateTimeFormatter
.
ofPattern
(
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
).
format
(
LocalDateTime
.
now
()));
//
request.setBusinessDate(DateTimeFormatter.ofPattern(DateUtil.FORMAT_YYYY_MM_DD_HHMMSS).format(LocalDateTime.now()));
// paymentRequest 的 payCode可能为null,不保险
//
// paymentRequest 的 payCode可能为null,不保险
request
.
setPayCode
(
PayChannel
.
USVCP
.
getCode
());
//
request.setPayCode(PayChannel.USVCP.getCode());
// 电子风味卡信息
//
// 电子风味卡信息
request
.
setCode
(
unionPayCard
.
getCode
());
//
request.setCode(unionPayCard.getCode());
request
.
setCardPassword
(
unionPayCard
.
getPassword
());
//
request.setCardPassword(unionPayCard.getPassword());
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
(
"2"
);
//
request.setStationId("2");
request
.
setOperatorId
(
"2"
);
//
request.setOperatorId("2");
request
.
setVer
(
"2"
);
//
request.setVer("2");
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) {
// 需要把2种特殊情况抛给用户
//
// 需要把2种特殊情况抛给用户
if
(
Objects
.
nonNull
(
responseBase
)
&&
(
ResponseCodeConstant
.
PASSWORD_WRONG
.
equals
(
responseBase
.
getCode
())
||
ResponseCodeConstant
.
NOT_SUFFICIENT_FUND
.
equals
(
responseBase
.
getCode
())))
{
//
if (Objects.nonNull(responseBase) && (ResponseCodeConstant.PASSWORD_WRONG.equals(responseBase.getCode()) || ResponseCodeConstant.NOT_SUFFICIENT_FUND.equals(responseBase.getCode()))) {
orderPayResponse
.
setPayTransId
(
responseBase
.
getCode
());
//
orderPayResponse.setPayTransId(responseBase.getCode());
}
//
}
orderPayResponse
.
setMsg
(
Objects
.
isNull
(
responseBase
)
?
"电子风味卡支付异常"
:
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());
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());
orderPayResponse
.
setPayChannelType
(
PayChannelType
.
USVCP
);
//
orderPayResponse.setPayChannelType(PayChannelType.USVCP);
}
//
}
return
orderPayResponse
;
//
return orderPayResponse;
}
//
}
/**
/**
* 获取商户支付超时时间
* 获取商户支付超时时间
...
...
order-application-service/src/main/java/cn/freemud/service/universal/impl/SaasMallOrderService.java
View file @
e3efb70a
...
@@ -252,7 +252,8 @@ public class SaasMallOrderService extends UniversalOrderService {
...
@@ -252,7 +252,8 @@ public class SaasMallOrderService extends UniversalOrderService {
if
(
totalAmount
<
0
)
{
if
(
totalAmount
<
0
)
{
throw
new
ServiceException
(
ResponseResult
.
PAY_AMOUNT_ERROR
);
throw
new
ServiceException
(
ResponseResult
.
PAY_AMOUNT_ERROR
);
}
else
if
(
totalAmount
>
0
)
{
}
else
if
(
totalAmount
>
0
)
{
orderPayResponse
=
this
.
getPreOrderPay
(
orderBean
,
paymentRequest
,
LogThreadLocal
.
getTrackingNo
(),
0
);
orderPayResponse
=
payService
.
getPreOrderPay
(
orderBean
,
paymentRequest
,
0
,
orderBean
.
getOid
(),
null
);
// orderPayResponse = this.getPreOrderPay(orderBean, paymentRequest, LogThreadLocal.getTrackingNo(), 0);
}
else
{
}
else
{
// 0元订单如果不需要支付,自定义支付单号
// 0元订单如果不需要支付,自定义支付单号
orderPayResponse
=
super
.
getOrderPayResponse
(
paymentRequest
,
orderBean
);
orderPayResponse
=
super
.
getOrderPayResponse
(
paymentRequest
,
orderBean
);
...
...
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