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
0f4388ad
Commit
0f4388ad
authored
Nov 11, 2020
by
zhiheng.zhang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
调用支付接口修改
parent
2c58fee5
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
319 additions
and
70 deletions
+319
-70
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/domain/ResponseCodeConstant.java
+2
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/MultiOrderRefundRequest.java
+60
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/response/order/MultiOrderRefundResponse.java
+43
-0
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+15
-3
order-application-service/src/main/java/cn/freemud/entities/dto/QueryOrdersResponseDto.java
+1
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+20
-16
order-application-service/src/main/java/cn/freemud/service/thirdparty/MulitiPaymentClient.java
+33
-0
order-application-service/src/test/java/cn/freemud/service/impl/MallOrderServiceImplTest.java
+61
-47
order-management/pom.xml
+1
-1
order-management/src/main/java/cn/freemud/management/adapter/PaymentSdkAdapter.java
+16
-0
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
+23
-1
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
+11
-2
order-management/src/main/java/cn/freemud/management/thirdparty/MulitiPaymentClient.java
+33
-0
No files found.
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/domain/ResponseCodeConstant.java
View file @
0f4388ad
...
...
@@ -4,6 +4,8 @@ public class ResponseCodeConstant {
public
final
static
Integer
RESPONSE_SUCCESS
=
100
;
public
final
static
Integer
ORDER_PAY_RESPONSE_SUCCESS
=
200
;
public
final
static
String
RESPONSE_SUCCESS_STR
=
"100"
;
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/MultiOrderRefundRequest.java
0 → 100644
View file @
0f4388ad
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
request
.
order
;
import
lombok.Data
;
import
lombok.ToString
;
@Data
@ToString
public
class
MultiOrderRefundRequest
{
/**
* 非码订单号
*/
private
String
fmId
;
/**
* 操作人ID
*/
private
boolean
isVer3
;
/**
* 操作人ID
*/
private
String
notifyUrl
;
/**
* 操作人ID
*/
private
String
operatorId
;
/**
* 退款金额
*/
private
Long
refundAmount
;
/**
* 退款编号
*/
private
String
refundTradeNo
;
/**
*
*/
private
String
stationId
;
/**
* 外部交易流水号,由上游系统生成,需保证唯一(支付标识)
*/
private
String
outOrderNo
;
/**
* 商户编号(由非码提供)
*/
private
String
partnerId
;
/**
* 商家门店号(在线支付需要提前定义)
*/
private
String
storeId
;
/**
* 接口版本,默认30
*/
private
String
ver
;
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/response/order/MultiOrderRefundResponse.java
0 → 100644
View file @
0f4388ad
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
response
.
order
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
lombok.Data
;
import
java.util.List
;
/**
* 聚合退款返回
*/
@Data
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
MultiOrderRefundResponse
<
T
>
{
private
int
code
;
private
String
msg
;
private
T
data
;
@lombok
.
Data
public
class
Data
{
List
<
RefundPlatformResponse
>
refundPlatformResponseList
;
}
@lombok
.
Data
public
static
class
RefundPlatformResponse
{
private
String
endTransTradeNo
;
private
String
fmRefundNo
;
private
String
fmTradeNo
;
private
Integer
mcouponAmount
;
private
Integer
pcouponAmount
;
private
String
platformTradeNo
;
private
Integer
refundAmount
;
private
String
refundCurrency
;
private
String
refundDesc
;
private
String
refundEndTransTradeNo
;
private
String
refundTime
;
private
String
refundTradeNo
;
private
Integer
settleRefundAmount
;
private
Integer
totalAmount
;
}
}
\ No newline at end of file
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
0f4388ad
...
...
@@ -75,7 +75,6 @@ import org.apache.commons.lang.StringUtils;
import
org.apache.commons.lang.time.FastDateFormat
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Component
;
import
java.awt.geom.Point2D
;
...
...
@@ -83,9 +82,7 @@ import java.math.BigDecimal;
import
java.security.NoSuchAlgorithmException
;
import
java.security.spec.InvalidKeySpecException
;
import
java.text.DecimalFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
...
...
@@ -2120,6 +2117,21 @@ public class OrderAdapter {
return
orderPayRefundRequest
;
}
public
MultiOrderRefundRequest
getMultiOrderPayRefundRequest
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
,
Long
refundId
)
{
MultiOrderRefundRequest
multiQueryRequest
=
new
MultiOrderRefundRequest
();
multiQueryRequest
.
setStationId
(
"1"
);
multiQueryRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
multiQueryRequest
.
setStoreId
(
orderBean
.
getShopId
());
multiQueryRequest
.
setFmId
(
""
);
multiQueryRequest
.
setRefundAmount
(
orderBean
.
getAmount
());
multiQueryRequest
.
setRefundTradeNo
(
String
.
valueOf
(
refundId
));
multiQueryRequest
.
setStoreId
(
orderBean
.
getShopId
());
multiQueryRequest
.
setNotifyUrl
(
refundNotifyCallback
);
multiQueryRequest
.
setVer
(
"10"
);
multiQueryRequest
.
setVer3
(
false
);
return
multiQueryRequest
;
}
public
CancelOrderRequest
convent2CancelOrderRequest
(
String
orderId
,
String
partnerId
,
AfterSalesType
afterSalesType
,
String
reason
,
String
trackingNo
,
String
refundId
)
{
CancelOrderRequest
cancelOrderRequest
=
new
CancelOrderRequest
();
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/QueryOrdersResponseDto.java
View file @
0f4388ad
...
...
@@ -139,6 +139,7 @@ public class QueryOrdersResponseDto {
private
String
otherCode
;
private
String
partition
;
private
String
payChannel
;
private
String
payChannelType
;
private
String
payChannelName
;
/**
* 订单支付状态 1 未支付 2 已支付 3 已退款 4 已经部分退款 5 完成
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
0f4388ad
...
...
@@ -21,7 +21,6 @@ import cn.freemud.amqp.MQService;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.log.LogTreadLocal
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.base.util.JsonUtil
;
import
cn.freemud.constant.OrderRefundConstant
;
import
cn.freemud.constant.RedisKeyConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
...
...
@@ -70,8 +69,6 @@ import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustome
import
com.freemud.api.assortment.datamanager.meal.MealCacheManager
;
import
com.freemud.application.sdk.api.constant.ResponseConstant
;
import
com.freemud.application.sdk.api.constant.ResponseResultEnum
;
import
com.freemud.application.sdk.api.couponcenter.offline.request.CouponRequest
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.service.OfflineCouponSdkService
;
import
com.freemud.application.sdk.api.deliverycenter.response.DeliveryInfoDto
;
import
com.freemud.application.sdk.api.deliverycenter.response.DeliveryResponseDto
;
...
...
@@ -84,13 +81,11 @@ import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import
com.freemud.application.sdk.api.ordercenter.request.OrderConditionsReq
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderModifyRelatingCodeReq
;
import
com.freemud.application.sdk.api.ordercenter.request.carpark.ParkingOrderCreateReq
;
import
com.freemud.application.sdk.api.ordercenter.response.carpark.OrderResp
;
import
com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.QueryByCodeResponse
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.CodePayRequest
;
...
...
@@ -100,7 +95,6 @@ import com.freemud.application.sdk.api.paymentcenter.client.response.SVCCardAmou
import
com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService
;
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.vo.GetOrgTreeListRequest
;
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.service.StoreCenterService
;
...
...
@@ -144,9 +138,7 @@ import org.springframework.stereotype.Service;
import
tk.mybatis.mapper.util.StringUtil
;
import
java.math.BigDecimal
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.time.Instant
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
...
...
@@ -155,7 +147,6 @@ import java.util.function.Function;
import
java.util.stream.Collectors
;
import
static
cn
.
freemud
.
constant
.
OrderRefundConstant
.
ALLOW_REFUND
;
import
static
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
;
@Service
@Slf4j
...
...
@@ -264,6 +255,8 @@ public class OrderServiceImpl implements Orderservice {
private
DeliveryFeiginClient
deliveryFeiginClient
;
@Autowired
private
RedisTemplate
redisTemplate
;
@Autowired
private
MulitiPaymentClient
mulitiPaymentClient
;
@Override
public
BaseResponse
checkBeforeCreateOrder
(
CheckBeforeCreateOrderRequestVo
requestVo
)
{
...
...
@@ -1671,14 +1664,25 @@ public class OrderServiceImpl implements Orderservice {
String
partnerId
=
orderBean
.
getCompanyId
();
int
state
=
PayRefundStatus
.
SUCCESS
.
getCode
();
if
(
orderBean
.
getAmount
()
!=
0
)
{
//调用支付退款
com
.
freemud
.
sdk
.
api
.
assortment
.
payment
.
request
.
OrderRefundRequest
orderPayRefundRequest
=
orderAdapter
.
getOrderPayRefundRequest
(
orderBean
,
refundId
,
fatherOrderId
);
response
=
standardPaymentService
.
orderRefund
(
orderPayRefundRequest
,
LogTreadLocal
.
getTrackingNo
());
if
(
response
==
null
||
response
.
getData
()
==
null
||
!
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
response
.
getCode
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"orderRefund_failed"
);
if
(
orderBean
.
getPayChannelType
().
equalsIgnoreCase
(
"4"
)){
//调用支付退款
MultiOrderRefundRequest
multiOrderRefundRequest
=
orderAdapter
.
getMultiOrderPayRefundRequest
(
orderBean
,
refundId
);
MultiOrderRefundResponse
<
MultiOrderRefundResponse
.
Data
>
multiOrderRefundResponse
=
mulitiPaymentClient
.
paymentApplicationRefund
(
multiOrderRefundRequest
,
orderBean
.
getCompanyId
());
if
(
multiOrderRefundResponse
==
null
||
multiOrderRefundResponse
.
getData
()
==
null
||
!
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
ORDER_PAY_RESPONSE_SUCCESS
.
equals
(
multiOrderRefundResponse
.
getCode
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"orderRefund_failed"
);
}
//获取支付返回退款状态
state
=
PayRefundStatus
.
SUCCESS
.
getCode
();
}
else
{
//调用支付退款
com
.
freemud
.
sdk
.
api
.
assortment
.
payment
.
request
.
OrderRefundRequest
orderPayRefundRequest
=
orderAdapter
.
getOrderPayRefundRequest
(
orderBean
,
refundId
,
fatherOrderId
);
response
=
standardPaymentService
.
orderRefund
(
orderPayRefundRequest
,
LogTreadLocal
.
getTrackingNo
());
if
(
response
==
null
||
response
.
getData
()
==
null
||
!
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
response
.
getCode
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"orderRefund_failed"
);
}
//获取支付返回退款状态
state
=
response
.
getData
().
getRefundStatus
()
==
null
?
PayRefundStatus
.
SUCCESS
.
getCode
()
:
response
.
getData
().
getRefundStatus
();
}
//获取支付返回退款状态
state
=
response
.
getData
().
getRefundStatus
()
==
null
?
PayRefundStatus
.
SUCCESS
.
getCode
()
:
response
.
getData
().
getRefundStatus
();
}
CancelOrderRequest
cancelOrderRequest
=
orderAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
partnerId
,
afterSalesType
,
orderRefundVo
.
getReason
(),
LogTreadLocal
.
getTrackingNo
(),
refundId
.
toString
());
...
...
order-application-service/src/main/java/cn/freemud/service/thirdparty/MulitiPaymentClient.java
0 → 100644
View file @
0f4388ad
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: OrderClient
* @Package cn.freemud.service.thirdparty
* @Description:
* @author: liming.guo
* @date: 2018/8/10 16:06
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package
cn
.
freemud
.
service
.
thirdparty
;
import
com.freemud.sdk.api.assortment.order.request.order.MultiOrderRefundRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.MultiOrderRefundResponse
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestHeader
;
import
org.springframework.web.bind.annotation.RequestMapping
;
@FeignClient
(
name
=
"payment-center-application-api"
,
url
=
"${saas.paymentcenter.application.api.feign.url}"
)
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
public
interface
MulitiPaymentClient
{
/**
* 统一活动查询接口
*/
@PostMapping
(
"/payment/application/refund"
)
MultiOrderRefundResponse
paymentApplicationRefund
(
MultiOrderRefundRequest
multiOrderRefundRequest
,
@RequestHeader
(
"partnerId"
)
String
partnerId
);
}
order-application-service/src/test/java/cn/freemud/service/impl/MallOrderServiceImplTest.java
View file @
0f4388ad
package
cn
.
freemud
.
service
.
impl
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.OrderAffirmRequestVO
;
import
cn.freemud.entities.vo.PaysuccessNoticeMessage
;
import
cn.freemud.utils.ValidationCode
;
import
com.alibaba.fastjson.JSON
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderClientType
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
org.junit.After
;
import
org.junit.Before
;
import
cn.freemud.service.thirdparty.MulitiPaymentClient
;
import
com.freemud.sdk.api.assortment.order.request.order.MultiOrderRefundRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.MultiOrderRefundResponse
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -33,47 +25,69 @@ public class MallOrderServiceImplTest {
@Autowired
private
MCCafeOrderServiceImpl
mcCafeOrderService
;
@Autowired
private
MulitiPaymentClient
mulitiPaymentClient
;
@Before
public
void
before
()
throws
Exception
{
}
// @Before
// public void before() throws Exception {
// }
//
// @After
// public void after() throws Exception {
// }
@After
public
void
after
()
throws
Exception
{
}
// @Test
// public void f1() {
// mcCafeOrderService.createOrder(JSON.parseObject("{\"channelType\":\"saas\",\"couponCode\":\"\",\"menuType\":\"saasdelivery\",\"needInvoice\":0,\"needTableware\":0,\"orderRemark\":\"\",\"orderType\":2,\"partnerId\":\"1206\",\"payChannelType\":1,\"receiveId\":\"3599568180562003060\",\"sessionId\":\"c4377678dbcbd6cdf6e7df86ea112b6f82723023\",\"shopId\":\"1450026\",\"takeMealFlag\":\"0\"}", CreateOrderVo.class),
// new StoreResponse.BizVO(),
// JSON.parseObject("{\"activityDiscountsDtos\":[],\"deliveryAmount\":10,\"discountDeliveryAmount\":10,\"isDiscountDelivery\":false,\"originalTotalAmount\":4400,\"packageAmount\":0,\"products\":[{\"activityDiscountsDtos\":[],\"attributeNames\":\"{\\\"attributeNames\\\":\\\"\\\"}\",\"cartGoodsUid\":\"eb8c7260-8ecb-44d1-9234-8d8bed0b0875\",\"classificationId\":\"\",\"classificationName\":\"\",\"comboProducts\":[{\"attributeNames\":\"{\\\"attributeNames\\\":\\\"\\\"}\",\"customerCode\":\"501642\",\"extraList\":[],\"hasProductCoupon\":false,\"isFixedProduct\":false,\"materialList\":[],\"originalPrice\":1700,\"parentProductId\":\"184437853099519288\",\"picture\":\"https://picture.sandload.cn/1598678546485.png\",\"productType\":6,\"qty\":2,\"skuId\":\"184437494035639613\",\"skuName\":\"中杯热美式\",\"spuId\":\"184437494035639613\",\"spuName\":\"中杯热美式\",\"stockLimit\":false,\"tax\":0.01,\"taxId\":\"\",\"totalDiscountAmount\":0,\"unit\":\"\",\"weight\":0.0},{\"attributeNames\":\"{\\\"attributeNames\\\":\\\"\\\"}\",\"customerCode\":\"901290\",\"extraList\":[],\"hasProductCoupon\":false,\"isFixedProduct\":false,\"materialList\":[],\"originalPrice\":500,\"parentProductId\":\"184437853099519288\",\"picture\":\"https://picture.sandload.cn/1598677404074.png\",\"productType\":6,\"qty\":2,\"skuId\":\"184436294373469463\",\"skuName\":\"经典芝士蛋糕\",\"spuId\":\"184436294373469463\",\"spuName\":\"经典芝士蛋糕\",\"stockLimit\":false,\"tax\":0.01,\"taxId\":\"\",\"totalDiscountAmount\":0,\"unit\":\"\",\"weight\":0.0}],\"customerCode\":\"901280\",\"extraList\":[],\"hasProductCoupon\":false,\"materialList\":[],\"originalPrice\":4400,\"picture\":\"https://picture.sandload.cn/1598678861518.png\",\"productCode\":\"901280\",\"productType\":6,\"qty\":2,\"salePrice\":4400,\"skuId\":\"184437853099519288\",\"skuName\":\"早餐啡常搭\",\"spuId\":\"184437853099519288\",\"spuName\":\"早餐啡常搭\",\"stockLimit\":false,\"tax\":0.01,\"taxId\":\"\",\"totalDiscountAmount\":0,\"unit\":\"\",\"weight\":0.0}],\"shareDiscountActivityDtos\":[],\"totalAmount\":4400,\"totalDiscountAmount\":0}", ShoppingCartGoodsDto.class),
// new OrderExtendedReq(),
// OrderClientType.SAAS,"www");
// }
//
// @Test
// public void testPaySuccess() {
// //0元支付
// String fmId = "SPAY" + ValidationCode.getRandomUuid();
// PaysuccessNoticeMessage message = new PaysuccessNoticeMessage();
// message.setResult_code(100);
// message.setOut_trade_no(fmId);
// message.setTrans_id("16303606485084241800003");
// message.setTotal_fee(0);
// message.setOpenid("oORZK5MHMBm78PO302NdRyzIY5K0");
// message.setPlatform_coupon(0);
// message.setMerchant_coupon(0);
// mallOrderService.paySuccessCallback(message);
// }
@Test
public
void
f1
()
{
mcCafeOrderService
.
createOrder
(
JSON
.
parseObject
(
"{\"channelType\":\"saas\",\"couponCode\":\"\",\"menuType\":\"saasdelivery\",\"needInvoice\":0,\"needTableware\":0,\"orderRemark\":\"\",\"orderType\":2,\"partnerId\":\"1206\",\"payChannelType\":1,\"receiveId\":\"3599568180562003060\",\"sessionId\":\"c4377678dbcbd6cdf6e7df86ea112b6f82723023\",\"shopId\":\"1450026\",\"takeMealFlag\":\"0\"}"
,
CreateOrderVo
.
class
),
new
StoreResponse
.
BizVO
(),
JSON
.
parseObject
(
"{\"activityDiscountsDtos\":[],\"deliveryAmount\":10,\"discountDeliveryAmount\":10,\"isDiscountDelivery\":false,\"originalTotalAmount\":4400,\"packageAmount\":0,\"products\":[{\"activityDiscountsDtos\":[],\"attributeNames\":\"{\\\"attributeNames\\\":\\\"\\\"}\",\"cartGoodsUid\":\"eb8c7260-8ecb-44d1-9234-8d8bed0b0875\",\"classificationId\":\"\",\"classificationName\":\"\",\"comboProducts\":[{\"attributeNames\":\"{\\\"attributeNames\\\":\\\"\\\"}\",\"customerCode\":\"501642\",\"extraList\":[],\"hasProductCoupon\":false,\"isFixedProduct\":false,\"materialList\":[],\"originalPrice\":1700,\"parentProductId\":\"184437853099519288\",\"picture\":\"https://picture.sandload.cn/1598678546485.png\",\"productType\":6,\"qty\":2,\"skuId\":\"184437494035639613\",\"skuName\":\"中杯热美式\",\"spuId\":\"184437494035639613\",\"spuName\":\"中杯热美式\",\"stockLimit\":false,\"tax\":0.01,\"taxId\":\"\",\"totalDiscountAmount\":0,\"unit\":\"\",\"weight\":0.0},{\"attributeNames\":\"{\\\"attributeNames\\\":\\\"\\\"}\",\"customerCode\":\"901290\",\"extraList\":[],\"hasProductCoupon\":false,\"isFixedProduct\":false,\"materialList\":[],\"originalPrice\":500,\"parentProductId\":\"184437853099519288\",\"picture\":\"https://picture.sandload.cn/1598677404074.png\",\"productType\":6,\"qty\":2,\"skuId\":\"184436294373469463\",\"skuName\":\"经典芝士蛋糕\",\"spuId\":\"184436294373469463\",\"spuName\":\"经典芝士蛋糕\",\"stockLimit\":false,\"tax\":0.01,\"taxId\":\"\",\"totalDiscountAmount\":0,\"unit\":\"\",\"weight\":0.0}],\"customerCode\":\"901280\",\"extraList\":[],\"hasProductCoupon\":false,\"materialList\":[],\"originalPrice\":4400,\"picture\":\"https://picture.sandload.cn/1598678861518.png\",\"productCode\":\"901280\",\"productType\":6,\"qty\":2,\"salePrice\":4400,\"skuId\":\"184437853099519288\",\"skuName\":\"早餐啡常搭\",\"spuId\":\"184437853099519288\",\"spuName\":\"早餐啡常搭\",\"stockLimit\":false,\"tax\":0.01,\"taxId\":\"\",\"totalDiscountAmount\":0,\"unit\":\"\",\"weight\":0.0}],\"shareDiscountActivityDtos\":[],\"totalAmount\":4400,\"totalDiscountAmount\":0}"
,
ShoppingCartGoodsDto
.
class
),
new
OrderExtendedReq
(),
OrderClientType
.
SAAS
,
"www"
);
}
// @Test
// public void testAffirm() {
// OrderAffirmRequestVO requestVO = new OrderAffirmRequestVO();
// requestVO.setPartnerId("1864");
// requestVO.setShopId("8899");
// requestVO.setSessionId("123123");
// requestVO.setChannelType("saasmall");
// requestVO.setOid("16303606485084241800003");
// mallOrderService.orderAffirm(requestVO);
// }
@Test
public
void
testPaySuccess
()
{
//0元支付
String
fmId
=
"SPAY"
+
ValidationCode
.
getRandomUuid
();
PaysuccessNoticeMessage
message
=
new
PaysuccessNoticeMessage
();
message
.
setResult_code
(
100
);
message
.
setOut_trade_no
(
fmId
);
message
.
setTrans_id
(
"16303606485084241800003"
);
message
.
setTotal_fee
(
0
);
message
.
setOpenid
(
"oORZK5MHMBm78PO302NdRyzIY5K0"
);
message
.
setPlatform_coupon
(
0
);
message
.
setMerchant_coupon
(
0
);
mallOrderService
.
paySuccessCallback
(
message
);
public
void
test
()
{
MultiOrderRefundRequest
multiOrderRefundRequest
=
new
MultiOrderRefundRequest
();
multiOrderRefundRequest
.
setFmId
(
""
);
multiOrderRefundRequest
.
setVer3
(
false
);
multiOrderRefundRequest
.
setVer
(
"10"
);
multiOrderRefundRequest
.
setNotifyUrl
(
"http://open-store-order-application-service.open-store.svc:9212/order/refundNotifyCallback"
);
multiOrderRefundRequest
.
setOperatorId
(
"1"
);
multiOrderRefundRequest
.
setPartnerId
(
"1864"
);
multiOrderRefundRequest
.
setRefundAmount
(
1L
);
multiOrderRefundRequest
.
setRefundTradeNo
(
"1604886134387{{$timestamp}}"
);
multiOrderRefundRequest
.
setStationId
(
"1"
);
multiOrderRefundRequest
.
setStoreId
(
"999999998"
);
multiOrderRefundRequest
.
setOutOrderNo
(
"3900472893821604933666"
);
MultiOrderRefundResponse
<
MultiOrderRefundResponse
.
Data
>
multiOrderRefundResponseDto
=
mulitiPaymentClient
.
paymentApplicationRefund
(
multiOrderRefundRequest
,
"1864"
);
System
.
out
.
println
(
2345678
);
}
@Test
public
void
testAffirm
()
{
OrderAffirmRequestVO
requestVO
=
new
OrderAffirmRequestVO
();
requestVO
.
setPartnerId
(
"1864"
);
requestVO
.
setShopId
(
"8899"
);
requestVO
.
setSessionId
(
"123123"
);
requestVO
.
setChannelType
(
"saasmall"
);
requestVO
.
setOid
(
"16303606485084241800003"
);
mallOrderService
.
orderAffirm
(
requestVO
);
}
}
order-management/pom.xml
View file @
0f4388ad
...
...
@@ -65,7 +65,7 @@
<dependency>
<groupId>
cn.freemud
</groupId>
<artifactId>
assortment-ordercenter-sdk
</artifactId>
<version>
2.
0.16.
RELEASE
</version>
<version>
2.
1.0-
RELEASE
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
...
...
order-management/src/main/java/cn/freemud/management/adapter/PaymentSdkAdapter.java
View file @
0f4388ad
...
...
@@ -3,6 +3,7 @@ package cn.freemud.management.adapter;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.base.SDKCommonBaseContextWare
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
import
com.freemud.sdk.api.assortment.order.request.order.MultiOrderRefundRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
...
...
@@ -42,6 +43,21 @@ public class PaymentSdkAdapter {
return
refundRequestDTO
;
}
public
MultiOrderRefundRequest
getMultiOrderPayRefundRequest
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
MultiOrderRefundRequest
multiQueryRequest
=
new
MultiOrderRefundRequest
();
multiQueryRequest
.
setStationId
(
"1"
);
multiQueryRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
multiQueryRequest
.
setStoreId
(
orderBean
.
getShopId
());
multiQueryRequest
.
setFmId
(
""
);
multiQueryRequest
.
setRefundAmount
(
orderBean
.
getAmount
());
multiQueryRequest
.
setRefundTradeNo
(
getRefundSerialNo
().
toString
());
multiQueryRequest
.
setStoreId
(
orderBean
.
getShopId
());
multiQueryRequest
.
setNotifyUrl
(
refundNotifyCallback
);
multiQueryRequest
.
setVer
(
"10"
);
multiQueryRequest
.
setVer3
(
false
);
return
multiQueryRequest
;
}
private
Long
getRefundSerialNo
()
{
return
System
.
currentTimeMillis
()
+
(
int
)
(
Math
.
random
()
*
9000
)
+
1000
;
}
...
...
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
View file @
0f4388ad
...
...
@@ -5,11 +5,15 @@ import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import
cn.freemud.management.entities.dto.response.pay.PayRefundResponse
;
import
cn.freemud.management.enums.ResponseResult
;
import
cn.freemud.management.intercept.OrderServiceException
;
import
cn.freemud.management.thirdparty.MulitiPaymentClient
;
import
cn.freemud.management.util.ResponseUtil
;
import
com.freemud.application.sdk.api.base.BaseResponse
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.AfterSalesOrderResp
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.sdk.api.assortment.order.enums.PayRefundStatus
;
import
com.freemud.sdk.api.assortment.order.request.order.MultiOrderRefundRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.MultiOrderRefundResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
com.freemud.sdk.api.assortment.payment.request.OrderRefundRequest
;
import
com.freemud.sdk.api.assortment.payment.response.OrderRefundResponse
;
...
...
@@ -45,7 +49,8 @@ public class PaymentHandle {
private
PaymentSdkAdapter
paymentSdkAdapter
;
@Autowired
private
OrderSdkService
orderSdkService
;
@Autowired
private
MulitiPaymentClient
mulitiPaymentClient
;
/**
* 退款
...
...
@@ -125,4 +130,21 @@ public class PaymentHandle {
payRefundResponse
.
setRefundId
(
refundId
.
toString
());
return
payRefundResponse
;
}
private
PayRefundResponse
handlePayRefundResponse
(
PayRefundStatus
refundStatus
,
String
refundId
){
PayRefundResponse
payRefundResponse
=
new
PayRefundResponse
();
payRefundResponse
.
setPayRefundStatus
(
refundStatus
);
payRefundResponse
.
setRefundId
(
refundId
.
toString
());
return
payRefundResponse
;
}
public
PayRefundResponse
multiRefund
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
){
PayRefundStatus
refundStatus
=
PayRefundStatus
.
SUCCESS
;
MultiOrderRefundRequest
multiOrderRefundRequest
=
paymentSdkAdapter
.
getMultiOrderPayRefundRequest
(
orderBean
);
MultiOrderRefundResponse
<
MultiOrderRefundResponse
.
Data
>
multiOrderRefundResponse
=
mulitiPaymentClient
.
paymentApplicationRefund
(
multiOrderRefundRequest
,
orderBean
.
getCompanyId
());
if
(
multiOrderRefundResponse
==
null
||
multiOrderRefundResponse
.
getData
()
==
null
||
!
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
ORDER_PAY_RESPONSE_SUCCESS
.
equals
(
multiOrderRefundResponse
.
getCode
()))
{
throw
new
OrderServiceException
(
ResponseResult
.
REFUND_EXCEPTION
);
}
return
handlePayRefundResponse
(
refundStatus
,
multiOrderRefundRequest
.
getRefundTradeNo
());
}
}
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
View file @
0f4388ad
...
...
@@ -2,6 +2,7 @@ package cn.freemud.management.service.impl;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.management.adapter.McCafeCouponAdapter
;
import
cn.freemud.management.adapter.PaymentSdkAdapter
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.response.order.OrderManagerResponse
;
import
cn.freemud.management.entities.dto.response.pay.PayRefundResponse
;
...
...
@@ -12,10 +13,14 @@ import cn.freemud.management.service.OrderBaseService;
import
cn.freemud.management.service.OrderManagerService
;
import
cn.freemud.management.service.handle.*
;
import
cn.freemud.management.thirdparty.CouponOfflineMCCafeClient
;
import
cn.freemud.management.thirdparty.MulitiPaymentClient
;
import
cn.freemud.management.util.ResponseUtil
;
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.enums.ResponseResult
;
import
com.freemud.sdk.api.assortment.order.request.order.MultiOrderRefundRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.MultiOrderRefundResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -49,7 +54,6 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
@Autowired
private
DeliveryHandle
deliveryHandle
;
/**
* 接单
*
...
...
@@ -161,7 +165,12 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
//支付退款
PayRefundResponse
refundResponse
=
new
PayRefundResponse
();
try
{
refundResponse
=
paymentHandle
.
refund
(
request
,
orderBean
);
if
(
orderBean
.
getPayChannelType
()
==
"4"
){
refundResponse
=
paymentHandle
.
refund
(
request
,
orderBean
);
}
else
{
refundResponse
=
paymentHandle
.
multiRefund
(
orderBean
);
}
}
catch
(
OrderServiceException
orderEx
){
// 爱马哥兼容,不抛错
return
ResponseUtil
.
error
(
orderEx
.
getResult
());
}
...
...
order-management/src/main/java/cn/freemud/management/thirdparty/MulitiPaymentClient.java
0 → 100644
View file @
0f4388ad
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: OrderClient
* @Package cn.freemud.service.thirdparty
* @Description:
* @author: liming.guo
* @date: 2018/8/10 16:06
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package
cn
.
freemud
.
management
.
thirdparty
;
import
com.freemud.sdk.api.assortment.order.request.order.MultiOrderRefundRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.MultiOrderRefundResponse
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestHeader
;
import
org.springframework.web.bind.annotation.RequestMapping
;
@FeignClient
(
name
=
"payment-center-application-api"
,
url
=
"${saas.paymentcenter.application.api.feign.url}"
)
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
public
interface
MulitiPaymentClient
{
/**
* 统一活动查询接口
*/
@PostMapping
(
"/payment/application/refund"
)
MultiOrderRefundResponse
paymentApplicationRefund
(
MultiOrderRefundRequest
multiOrderRefundRequest
,
@RequestHeader
(
"partnerId"
)
String
partnerId
);
}
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