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
6bda8ab9
Commit
6bda8ab9
authored
Dec 16, 2022
by
查志伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
退款接口代码优化
parent
8eba73db
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
356 additions
and
94 deletions
+356
-94
order-application-service/src/main/java/cn/freemud/adapter/CancelOrderRequestAdapter.java
+49
-0
order-application-service/src/main/java/cn/freemud/adapter/MessageNoticeAdapter.java
+1
-2
order-application-service/src/main/java/cn/freemud/adapter/OrderPrintDtoAdapter.java
+143
-0
order-application-service/src/main/java/cn/freemud/controller/ExposureOrderController.java
+1
-0
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
+10
-2
order-application-service/src/main/java/cn/freemud/controller/OrderDeveloperController.java
+7
-5
order-application-service/src/main/java/cn/freemud/enums/PayStatus.java
+1
-0
order-application-service/src/main/java/cn/freemud/service/Orderservice.java
+1
-42
order-application-service/src/main/java/cn/freemud/service/RefundService.java
+0
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderCommonService.java
+1
-1
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+0
-0
order-application-service/src/main/java/cn/freemud/service/thirdparty/OrderClient.java
+0
-24
order-management/src/main/java/cn/freemud/management/adapter/PaymentSdkAdapter.java
+16
-18
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
+0
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/response/orderInfo/OrderItemResp.java
+114
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/service/OrderSdkService.java
+12
-0
No files found.
order-application-service/src/main/java/cn/freemud/adapter/CancelOrderRequestAdapter.java
0 → 100644
View file @
6bda8ab9
package
cn
.
freemud
.
adapter
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs
;
import
com.freemud.sdk.api.assortment.order.enums.AfterSalesRefunStateEnum
;
import
com.freemud.sdk.api.assortment.order.enums.OperationClientEnum
;
import
com.freemud.sdk.api.assortment.order.request.order.CancelOrderRequest
;
import
org.apache.commons.lang.StringUtils
;
/**
* @author Clover.z
* @version 1.0.0
* @since 1.0.0
*/
public
class
CancelOrderRequestAdapter
{
public
static
CancelOrderRequest
convert
(
OrderInfoReqs
order
,
String
refundId
,
AfterSalesType
afterSalesType
,
String
reason
,
Boolean
refundDeliveryFee
,
Byte
refundMode
)
{
CancelOrderRequest
req
=
new
CancelOrderRequest
();
req
.
setOrderId
(
order
.
getOrderCode
());
req
.
setPartnerId
(
order
.
getPartnerId
());
req
.
setAfterSalesType
(
afterSalesType
);
req
.
setOrderClient
(
order
.
getOrderClient
());
if
(
StringUtils
.
isNotBlank
(
reason
)
&&
reason
.
length
()
>
50
)
{
reason
=
reason
.
substring
(
0
,
50
);
}
req
.
setReason
(
reason
);
req
.
setTrackingNo
(
LogThreadLocal
.
getTrackingNo
());
req
.
setRefundSerialNo
(
refundId
);
//操作来源客户端 1:POS插件 2:小助手 3:开放平台 4:自动任务 5:用户端 6:系统 7:万象 8:太一
req
.
setOperationClient
(
OperationClientEnum
.
STATE_5
.
getIndex
());
req
.
setOperator
(
order
.
getUserName
());
if
(
AfterSalesType
.
SYSTEM_CANCEL
.
getIndex
().
equals
(
afterSalesType
.
getIndex
()))
{
req
.
setOperator
(
"admin"
);
req
.
setOperationClient
(
OperationClientEnum
.
STATE_6
.
getIndex
());
}
//若为4,默认做【创建】+【同意并退款完成】,售后单状态为【完成】
req
.
setCreateEvent
(
4
);
// 这里给默认值,外面调用者 自己的根据业务判断退款 状态
req
.
setRefundState
(
AfterSalesRefunStateEnum
.
STATE_1
.
getIndex
());
req
.
setReqRemark
(
reason
);
req
.
setRefundDeliveryAmount
(
refundDeliveryFee
);
// 商城订单 增加拓展信息
CancelOrderRequest
.
AfterSalesOrderExtInfoReq
ext
=
new
CancelOrderRequest
.
AfterSalesOrderExtInfoReq
();
ext
.
setRefundMode
(
refundMode
);
req
.
setExtInfoReq
(
ext
);
return
req
;
}
}
order-application-service/src/main/java/cn/freemud/adapter/MessageNoticeAdapter.java
View file @
6bda8ab9
...
...
@@ -13,7 +13,6 @@
package
cn
.
freemud
.
adapter
;
import
cn.freemud.entities.dto.PushMessageTokenDto
;
import
cn.freemud.entities.dto.QueryOrdersResponseDto
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
...
...
@@ -37,7 +36,7 @@ public class MessageNoticeAdapter {
return
pushMessageTokenDto
;
}
public
PushMessageNoticeDto
convent2PushMessageNoticeDto
(
Integer
targetType
,
String
partnerId
,
public
static
PushMessageNoticeDto
convent2PushMessageNoticeDto
(
Integer
targetType
,
String
partnerId
,
String
storeId
,
String
userId
,
String
oid
,
String
takeCode
,
String
queueIndex
)
{
PushMessageNoticeDto
pushMessageNoticeDto
=
new
PushMessageNoticeDto
();
pushMessageNoticeDto
.
setPartnerId
(
partnerId
);
...
...
order-application-service/src/main/java/cn/freemud/adapter/OrderPrintDtoAdapter.java
0 → 100644
View file @
6bda8ab9
package
cn
.
freemud
.
adapter
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.entities.dto.OrderPrintDto
;
import
cn.freemud.enums.CostTypeEnum
;
import
com.alibaba.fastjson.JSON
;
import
com.freemud.application.sdk.api.ordercenter.enums.ProductTypeEnum
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderCostResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderItemResp
;
import
com.freemud.sdk.api.assortment.order.enums.StoreDeliveryMethod
;
import
com.google.common.collect.Lists
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* @author Clover.z
* @version 1.0.0
* @since 1.0.0
*/
public
class
OrderPrintDtoAdapter
{
public
static
OrderPrintDto
convert
(
OrderInfoReqs
order
,
String
reason
)
{
OrderPrintDto
orderPrintDto
=
new
OrderPrintDto
();
orderPrintDto
.
setPartnerId
(
order
.
getPartnerId
());
orderPrintDto
.
setStoreId
(
order
.
getStoreId
());
//确定日订单序号
orderPrintDto
.
setType
(
order
.
getOrderType
());
orderPrintDto
.
setOid
(
order
.
getOrderCode
());
orderPrintDto
.
setUserName
(
order
.
getUserName
());
orderPrintDto
.
setDaySeq
(
order
.
getDaySeq
()
==
null
?
""
:
order
.
getDaySeq
().
toString
());
orderPrintDto
.
setPhone
(
order
.
getUserMobile
());
if
(
CollectionUtils
.
isNotEmpty
(
order
.
getDeliveryContactInfoList
()))
{
order
.
getDeliveryContactInfoList
().
stream
().
filter
(
c
->
Objects
.
equals
(
c
.
getRelateObjectType
(),
1
))
.
findFirst
().
ifPresent
(
c
->
orderPrintDto
.
setAddress
(
c
.
getAddressDetail
()));
order
.
getDeliveryContactInfoList
().
stream
().
filter
(
c
->
Objects
.
equals
(
c
.
getRelateObjectType
(),
3
))
.
findFirst
().
ifPresent
(
c
->
{
if
(
Objects
.
equals
(
c
.
getAddressDetail
(),
StoreDeliveryMethod
.
THIRD
.
getCode
()))
{
orderPrintDto
.
setDeliveryTypeDesc
(
"第三方配送"
);
if
(
StringUtils
.
isNotBlank
(
order
.
getExpressChannelName
()))
{
orderPrintDto
.
setDeliveryTypeDesc
(
order
.
getExpressChannelName
());
}
}
else
{
orderPrintDto
.
setDeliveryTypeDesc
(
"自配送"
);
}
});
}
orderPrintDto
.
setGmtExpect
(
order
.
getExpectTime
()
==
null
?
"立即送出"
:
(
DateUtil
.
convert2String
(
new
Date
(
Long
.
parseLong
(
order
.
getExpectTime
())),
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
)));
orderPrintDto
.
setRemark
(
order
.
getNote
());
Integer
count
=
order
.
getOrderItemList
().
stream
().
map
(
OrderItemResp:
:
getProductQuantity
).
reduce
(
Integer:
:
sum
).
get
();
orderPrintDto
.
setProductTotalAmount
(
count
);
Long
packageFee
=
0L
;
long
sendFee
=
0L
;
if
(
CollectionUtils
.
isNotEmpty
(
order
.
getOrderCostDetailList
()))
{
for
(
OrderCostResp
cost
:
order
.
getOrderCostDetailList
())
{
if
(
CostTypeEnum
.
PACK_AMOUNT
.
getCode
().
equals
(
cost
.
getCostType
()))
{
packageFee
=
cost
.
getActualCostAmount
().
longValue
();
}
else
if
(
CostTypeEnum
.
DELIVERY_AMOUNT
.
getCode
().
equals
(
cost
.
getCostType
()))
{
sendFee
=
cost
.
getActualCostAmount
().
longValue
();
}
}
}
orderPrintDto
.
setPackageFee
(
packageFee
);
orderPrintDto
.
setProductAmount
(
order
.
getSettlementAmount
().
longValue
()
-
sendFee
);
orderPrintDto
.
setSendFee
(
sendFee
);
orderPrintDto
.
setDiscountFee
(
order
.
getOriginalAmount
().
longValue
()
-
order
.
getSettlementAmount
().
longValue
());
orderPrintDto
.
setUserFee
(
order
.
getActualPayAmount
().
longValue
());
orderPrintDto
.
setGmtCreate
(
DateUtil
.
convert2String
(
new
Date
(
Long
.
parseLong
(
order
.
getCreateTime
())),
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
));
orderPrintDto
.
setShopName
(
order
.
getStoreName
());
orderPrintDto
.
setOtherCode
(
order
.
getPickUpGoodsNo
());
List
<
OrderPrintDto
.
ProductsBean
>
productsBeans
=
getProducts
(
order
.
getOrderItemList
());
orderPrintDto
.
setProducts
(
productsBeans
);
orderPrintDto
.
setBarCounter
(
order
.
getBarCounter
());
orderPrintDto
.
setRemark
(
reason
);
return
orderPrintDto
;
}
public
static
List
<
OrderPrintDto
.
ProductsBean
>
getProducts
(
List
<
OrderItemResp
>
itemList
)
{
if
(
CollectionUtils
.
isEmpty
(
itemList
))
{
return
Collections
.
emptyList
();
}
List
<
OrderPrintDto
.
ProductsBean
>
products
=
Lists
.
newArrayList
();
// 将订单里同一商品下的所有子商品放到一个集合中 key:父商品id, value为子商品集合
Map
<
String
,
List
<
OrderItemResp
>>
sItemMap
=
itemList
.
stream
()
.
filter
(
item
->
!
item
.
getParentProductId
().
equals
(
"0"
))
.
collect
(
Collectors
.
groupingBy
(
OrderItemResp:
:
getParentProductId
));
for
(
OrderItemResp
item
:
itemList
)
{
//非主商品跳过
if
(!
item
.
getParentProductId
().
equals
(
"0"
))
continue
;
OrderPrintDto
.
ProductsBean
productVO
=
getProductBean
(
item
);
//匹配子商品
List
<
OrderItemResp
>
sList
=
sItemMap
.
get
(
item
.
getProductId
()
+
"_"
+
item
.
getProductSeq
());
List
<
OrderPrintDto
.
ProductsBean
>
comboProductVOs
=
new
ArrayList
<>();
List
<
OrderPrintDto
.
ProductsBean
>
materialProductVOs
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
sList
))
{
sList
.
forEach
(
sItem
->
{
OrderPrintDto
.
ProductsBean
son
=
getProductBean
(
sItem
);
if
(
ProductTypeEnum
.
MATERIAL_PRODUCT
.
getCode
().
equals
(
sItem
.
getProductType
()))
{
materialProductVOs
.
add
(
son
);
}
else
{
comboProductVOs
.
add
(
son
);
}
});
}
productVO
.
setSonProducts
(
comboProductVOs
);
productVO
.
setMaterialProducts
(
materialProductVOs
);
products
.
add
(
productVO
);
}
return
products
;
}
private
static
OrderPrintDto
.
ProductsBean
getProductBean
(
OrderItemResp
item
)
{
OrderPrintDto
.
ProductsBean
productBean1
=
new
OrderPrintDto
.
ProductsBean
();
productBean1
.
setParentProductId
(
item
.
getParentProductId
());
productBean1
.
setSequence
(
item
.
getProductSeq
());
productBean1
.
setProductId
(
item
.
getProductSpec
());
productBean1
.
setProductName
(
item
.
getProductSpecName
());
productBean1
.
setNumber
(
item
.
getProductQuantity
());
String
extraName
=
""
;
if
(
StringUtils
.
isNotBlank
(
item
.
getExtInfo
()))
{
OrderItemResp
.
ExtInfo
itemExt
=
JSON
.
parseObject
(
item
.
getExtInfo
(),
OrderItemResp
.
ExtInfo
.
class
);
if
(
CollectionUtils
.
isNotEmpty
(
itemExt
.
getSpecialAttrs
()))
{
extraName
=
StringUtils
.
join
(
itemExt
.
getSpecialAttrs
().
stream
()
.
map
(
OrderItemResp
.
ExtAttr
::
getExtraName
)
.
collect
(
Collectors
.
toList
()),
"/"
);
}
}
productBean1
.
setPrice
(
item
.
getProductPrice
().
longValue
());
productBean1
.
setProductOtherInfo
(
extraName
);
productBean1
.
setParentType
(
item
.
getProductType
());
productBean1
.
setSonProducts
(
new
ArrayList
<>());
productBean1
.
setUnit
(
item
.
getProductUnit
());
productBean1
.
setProductSpuQuantity
(
item
.
getProductSpuQuantity
());
return
productBean1
;
}
}
order-application-service/src/main/java/cn/freemud/controller/ExposureOrderController.java
View file @
6bda8ab9
...
...
@@ -50,6 +50,7 @@ public class ExposureOrderController {
*/
@ApiAnnotation
(
logMessage
=
"创建订单,死信队列"
)
@PostMapping
(
"/deadLetterQueue"
)
@Deprecated
public
BaseResponse
deadLetterQueue
(
@Validated
@LogParams
@RequestBody
PutDeadLetterVo
putDeadLetterVo
)
{
payService
.
putDelMq
(
putDeadLetterVo
.
getPartnerId
(),
putDeadLetterVo
.
getStoreId
(),
putDeadLetterVo
.
getFmId
(),
putDeadLetterVo
.
getOrderId
(),
putDeadLetterVo
.
getPayChanelType
());
return
ResponseUtil
.
success
();
...
...
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
View file @
6bda8ab9
...
...
@@ -26,6 +26,7 @@ import cn.freemud.handler.OrderReportJobHandler;
import
cn.freemud.service.EncircleOrderService
;
import
cn.freemud.service.Orderservice
;
import
cn.freemud.service.PointsMallOrderService
;
import
cn.freemud.service.RefundService
;
import
cn.freemud.service.impl.MallOrderServiceImpl
;
import
cn.freemud.service.impl.OrderAdapterServiceImpl
;
import
cn.freemud.utils.AppLogUtil
;
...
...
@@ -34,6 +35,7 @@ import cn.freemud.xxljob.OrderCountJobHandler;
import
com.freemud.application.sdk.api.log.ApiAnnotation
;
import
com.freemud.application.sdk.api.log.LogParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.BindingResult
;
...
...
@@ -64,6 +66,8 @@ public class OrderController {
private
CouponOrderAutoRefundHandler
couponOrderAutoRefundHandler
;
@Autowired
private
PointsMallOrderService
pointsMallOrderService
;
@Autowired
private
RefundService
refundService
;
/**
* 废弃,不在使用
...
...
@@ -240,8 +244,12 @@ public class OrderController {
*/
@ApiAnnotation
(
logMessage
=
"refund"
)
@PostMapping
(
"/refund"
)
public
BaseResponse
refund
(
@Validated
@LogParams
@RequestBody
OrderRefundVo
orderRefundVo
)
{
return
orderservice
.
orderRefund
(
orderRefundVo
);
public
BaseResponse
<
Void
>
refund
(
@Validated
@LogParams
@RequestBody
OrderRefundVo
reqVo
)
{
// 微商城因为没有退款原因选项 所以将用户退款说明用户作为退款原因
String
reason
=
StringUtils
.
isBlank
(
reqVo
.
getReason
())
?
reqVo
.
getRemarks
()
:
reqVo
.
getReason
();
refundService
.
refundOrder
(
reqVo
.
getPartnerId
(),
reqVo
.
getOid
(),
reason
,
reqVo
.
getRefundMode
());
return
ResponseUtil
.
success
();
}
...
...
order-application-service/src/main/java/cn/freemud/controller/OrderDeveloperController.java
View file @
6bda8ab9
...
...
@@ -2,8 +2,8 @@ package cn.freemud.controller;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.vo.OrderDevelopRefundVo
;
import
cn.freemud.
entities.vo.OrderRefundVo
;
import
cn.freemud.
service.Orderservice
;
import
cn.freemud.
service.RefundService
;
import
cn.freemud.
utils.ResponseUtil
;
import
com.freemud.application.sdk.api.log.ApiAnnotation
;
import
com.freemud.application.sdk.api.log.LogParams
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -13,6 +13,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.Map
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
...
...
@@ -24,7 +26,7 @@ import org.springframework.web.bind.annotation.RestController;
public
class
OrderDeveloperController
{
@Autowired
private
Orderservice
orders
ervice
;
private
RefundService
refundS
ervice
;
/**
* 订单内部人员操作 给订单退款, 使用该接口需要报备
...
...
@@ -33,8 +35,8 @@ public class OrderDeveloperController {
*/
@ApiAnnotation
(
logMessage
=
"/order/develop/refund"
)
@PostMapping
(
"/refund"
)
public
BaseResponse
developRefund
(
@Validated
@LogParams
@RequestBody
OrderDevelopRefundVo
orderRefundVo
)
{
return
orderservice
.
developRefund
(
orderRefundVo
);
public
BaseResponse
<
Map
<
String
,
String
>>
developRefund
(
@Validated
@LogParams
@RequestBody
OrderDevelopRefundVo
orderRefundVo
)
{
return
ResponseUtil
.
success
(
refundService
.
batchDevelopRefund
(
orderRefundVo
)
);
}
}
order-application-service/src/main/java/cn/freemud/enums/PayStatus.java
View file @
6bda8ab9
...
...
@@ -18,6 +18,7 @@ public enum PayStatus {
HAVE_PAID
(
2
,
"已支付"
,
"Paid"
),
HAVE_REFUND
(
3
,
"已退款"
,
"Refunded"
),
HAVE_PART_REFUND
(
4
,
"已经部分退款"
,
"Partial refund"
),
@Deprecated
COMPLETE
(
5
,
"完成"
,
"Complete"
);
...
...
order-application-service/src/main/java/cn/freemud/service/Orderservice.java
View file @
6bda8ab9
...
...
@@ -75,47 +75,11 @@ public interface Orderservice extends OrderFactoryService{
BaseResponse
cancelPayOrder
(
DeleteOrderVo
deleteOrderVo
);
/**
* 支付取消删除订单
*/
// BaseResponse deleteOrderById(DeleteOrderVo deleteOrderVo);
/**
* 订单申请退款
*/
BaseResponse
orderRefund
(
OrderRefundVo
orderRefundVo
);
/**
* 获取订单排队号
*/
BaseResponse
queryOrderQueueIndex
(
QueryOrderQueueIndexVo
queryOrderQueueIndexVo
);
/**
* 用户评价
*/
//BaseResponse userOrderEvaluation(AddUserOrderEvaluationRequestVo requestVo);
/**
* 用户评价(新接口)
*/
//BaseResponse userOrderEvaluationNew(AddUserOrderEvaluationNewRequestVo requestVo);
/**
* 根据订单查询对应的订单详情
*/
//BaseResponse getEvaluationByOrderId(GetEvaluationDetailByOrderIdRequestVo requestVo);
/**
* 判断订单是否已经评价
*/
//BaseResponse getEvaluationStatus(GetEvaluationDetailByOrderIdRequestVo requestVo);
/**
* 判断订单是否已经评价(新接口)
*/
//BaseResponse getEvaluationStatusNew(GetEvaluationStatusNewRequestVo requestVo);
/**
* 获取退款理由
*/
@Deprecated
...
...
@@ -220,10 +184,5 @@ public interface Orderservice extends OrderFactoryService{
*/
BaseResponse
couponOrderRefundRetry
(
OrderRefundRetryVo
orderRefundRetryVo
);
/**
* 开发人员 操作退款订单 该接口 生产使用请通知SE
* @param orderRefundVo
* @return
*/
BaseResponse
developRefund
(
OrderDevelopRefundVo
orderRefundVo
);
}
order-application-service/src/main/java/cn/freemud/service/RefundService.java
0 → 100644
View file @
6bda8ab9
This diff is collapsed.
Click to expand it.
order-application-service/src/main/java/cn/freemud/service/impl/OrderCommonService.java
View file @
6bda8ab9
...
...
@@ -201,7 +201,7 @@ public class OrderCommonService {
* 发送pos端消息
*/
public
void
sendPosMessage
(
String
partnerId
,
String
storeId
,
String
orderId
)
{
PushMessageNoticeDto
pushMessageNoticeDto
=
m
essageNoticeAdapter
.
convent2PushMessageNoticeDto
(
1
,
partnerId
,
storeId
,
PushMessageNoticeDto
pushMessageNoticeDto
=
M
essageNoticeAdapter
.
convent2PushMessageNoticeDto
(
1
,
partnerId
,
storeId
,
null
,
orderId
,
null
,
null
);
messageNoticeClient
.
createMessage
(
pushMessageNoticeDto
,
LogThreadLocal
.
getTrackingNo
());
}
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
6bda8ab9
This diff is collapsed.
Click to expand it.
order-application-service/src/main/java/cn/freemud/service/thirdparty/OrderClient.java
deleted
100644 → 0
View file @
8eba73db
package
cn
.
freemud
.
service
.
thirdparty
;
import
com.freemud.application.sdk.api.ordercenter.annotation.LogIgnoreFeign
;
import
cn.freemud.entities.dto.QueryInvoiceRepDto
;
import
cn.freemud.entities.vo.QueryInvoiceReq
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
@FeignClient
(
name
=
"ORDER-SERVICE"
)
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
public
interface
OrderClient
{
/**
* 2021年9月15日-开票历史列表接口+详情接口+发票所含订单接口-黄兆良
* 开票历史列表接口
*/
@PostMapping
(
value
=
"/order/v2/invoice/list/forUser"
)
@LogIgnoreFeign
(
logMessage
=
"queryInvoiceList"
)
QueryInvoiceRepDto
queryInvoiceList
(
@RequestBody
QueryInvoiceReq
queryInvoiceReq
);
}
order-management/src/main/java/cn/freemud/management/adapter/PaymentSdkAdapter.java
View file @
6bda8ab9
...
...
@@ -2,7 +2,6 @@ package cn.freemud.management.adapter;
import
cn.freemud.management.entities.dto.request.pay.AgentPayRefundReq
;
import
cn.freemud.management.entities.dto.request.pay.PayRefundRequestDto
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
...
...
@@ -32,16 +31,17 @@ public class PaymentSdkAdapter {
@Value
(
"${saas.refund.notify.callback}"
)
private
String
refundNotifyCallback
;
public
PayRefundRequestDto
getOrderRefundRequest
(
OrderBeanV1
orderBean
,
BigDecimal
refundAmount
)
{
public
PayRefundRequestDto
getOrderRefundRequest
(
String
partnerId
,
String
storeCode
,
String
orderCode
,
BigDecimal
refundAmount
,
String
payNo
,
String
extInfoStr
)
{
PayRefundRequestDto
refundRequestDTO
=
new
PayRefundRequestDto
();
refundRequestDTO
.
setPartnerId
(
orderBean
.
getCompanyId
()
);
refundRequestDTO
.
setStoreId
(
orderBean
.
getShopId
()
);
refundRequestDTO
.
setOrgTransId
(
order
Bean
.
getOid
()
);
refundRequestDTO
.
setPartnerId
(
partnerId
);
refundRequestDTO
.
setStoreId
(
storeCode
);
refundRequestDTO
.
setOrgTransId
(
order
Code
);
refundRequestDTO
.
setRefundAmount
(
refundAmount
.
longValue
());
refundRequestDTO
.
setNotifyUrl
(
refundNotifyCallback
);
OrderExtInfoDto
orderExtInfoDto
=
JSONObject
.
parseObject
(
orderBean
.
getExtInfo
()
,
OrderExtInfoDto
.
class
);
OrderExtInfoDto
orderExtInfoDto
=
JSONObject
.
parseObject
(
extInfoStr
,
OrderExtInfoDto
.
class
);
refundRequestDTO
.
setAppId
(
orderExtInfoDto
.
getAppid
());
refundRequestDTO
.
setOrgPayFmId
(
orderBean
.
getPayVoucher
()
);
refundRequestDTO
.
setOrgPayFmId
(
payNo
);
refundRequestDTO
.
setOpenid
(
orderExtInfoDto
.
getOpenid
());
refundRequestDTO
.
setRefundId
(
getRefundSerialNo
().
toString
());
return
refundRequestDTO
;
...
...
@@ -62,30 +62,28 @@ public class PaymentSdkAdapter {
}
@SneakyThrows
public
MultiOrderRefundRequest
getMultiOrderPayRefundRequest
(
OrderBeanV1
orderBean
,
BigDecimal
refundAmount
)
{
public
MultiOrderRefundRequest
getMultiOrderPayRefundRequest
(
String
partnerId
,
String
storeCode
,
String
orderCode
,
BigDecimal
refundAmount
)
{
MultiOrderRefundRequest
multiQueryRequest
=
new
MultiOrderRefundRequest
();
multiQueryRequest
.
setStationId
(
"1"
);
multiQueryRequest
.
setPartnerId
(
orderBean
.
getCompanyId
()
);
multiQueryRequest
.
setStoreId
(
orderBean
.
getShopId
()
);
multiQueryRequest
.
setPartnerId
(
partnerId
);
multiQueryRequest
.
setStoreId
(
storeCode
);
multiQueryRequest
.
setFmId
(
""
);
multiQueryRequest
.
setRefundAmount
(
Long
.
valueOf
(
String
.
valueOf
(
refundAmount
)));
multiQueryRequest
.
setRefundTradeNo
(
String
.
valueOf
(
getRefundSerialNo
()));
multiQueryRequest
.
setStoreId
(
orderBean
.
getShopId
());
multiQueryRequest
.
setNotifyUrl
(
refundNotifyCallback
);
multiQueryRequest
.
setVer
(
"V1"
);
multiQueryRequest
.
setVer3
(
false
);
multiQueryRequest
.
setOutOrderNo
(
order
Bean
.
getOid
()
);
multiQueryRequest
.
setOutOrderNo
(
order
Code
);
return
multiQueryRequest
;
}
@SneakyThrows
public
AgentPayRefundReq
getAgentPayefundReq
(
OrderBeanV1
orderBean
,
BigDecimal
refundAmount
)
{
OrderExtInfoDto
ext
=
JSON
.
parseObject
(
orderBean
.
getExtInfo
(),
OrderExtInfoDto
.
class
);
public
AgentPayRefundReq
getAgentPayRefundReq
(
String
partnerId
,
String
storeCode
,
String
orderCode
,
BigDecimal
refundAmount
,
String
fmTradeNo
)
{
AgentPayRefundReq
req
=
new
AgentPayRefundReq
();
req
.
setPartnerId
(
orderBean
.
getCompanyId
()
);
req
.
setStoreId
(
orderBean
.
getShopId
()
);
req
.
setFmTradeNo
(
ext
.
getPayTransId
()
);
req
.
setOutOrderNo
(
order
Bean
.
getOid
()
);
req
.
setPartnerId
(
partnerId
);
req
.
setStoreId
(
storeCode
);
req
.
setFmTradeNo
(
fmTradeNo
);
req
.
setOutOrderNo
(
order
Code
);
req
.
setRefundTradeNo
(
this
.
getRefundSerialNo
().
toString
());
req
.
setRefundAmount
(
refundAmount
.
longValue
());
req
.
setNotifyUrl
(
refundNotifyCallback
);
...
...
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
View file @
6bda8ab9
This diff is collapsed.
Click to expand it.
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/response/orderInfo/OrderItemResp.java
View file @
6bda8ab9
...
...
@@ -15,6 +15,7 @@ package com.freemud.application.sdk.api.ordercenter.response.orderInfo;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.List
;
@Data
public
class
OrderItemResp
{
...
...
@@ -135,4 +136,117 @@ public class OrderItemResp {
*/
private
Integer
productSpuQuantity
;
@Data
public
static
class
ExtInfo
{
/**
* 是否是赠品
*/
private
Boolean
isSendGoods
;
/**
* 购物车行id
*/
private
String
cartGoodsUid
;
/**
* 积分商品活动使用总积分
*/
private
Long
score
;
/**
* 是否是固定搭配
*/
private
Boolean
isFixedProduct
;
/**
* spu商品货号
*/
private
String
spuProductCode
;
/**
* 属性三方id, 多个用,拼接(推送pos需要)
*/
private
String
thirdProductPropertyId
;
/**
* 三方规格值id, 多个用,拼接(推送pos需要)
*/
private
String
thirdProductSpecId
;
/**
* 凌顶pos 商品编码id
*/
private
String
linkedId
;
/**
* 买一赠一时, 赠品商品的该属性表示原商品购物车id
* 其他赠送活动, 这里设置为活动号
*/
private
String
originalId
;
/**
* 商品组信息
*/
private
List
<
ExtGroup
>
productGroupList
;
/**
* 商品属性信息
*/
private
List
<
ExtAttr
>
specialAttrs
;
/**
* 虚拟商品绑定的券信息
*/
private
List
<
CouponInfo
>
productBindingCoupons
;
/**
* 参与会员价活动时,用户所生效的会员卡或者会员等级名称
*/
private
String
currentMembershipLevel
;
/**
* 是否限制库存
* 用于创建订单时,是否扣减库存
*/
private
boolean
stockLimit
;
/**
* 套餐库存模式
*/
private
Integer
stockMode
;
}
@Data
public
static
class
ExtAttr
{
/**
* 属性id
*/
private
String
extraId
;
/**
* 属性名称
*/
private
String
extraName
;
}
@Data
public
static
class
ExtGroup
{
/**
* 商品组id
*/
private
String
groupId
;
/**
* 商品组名称
*/
private
String
groupName
;
/**
* 第三方商品组编码
*/
private
String
thirdGroupId
;
}
@Data
public
static
class
CouponInfo
{
/**
* 券模板(券活动号)
*/
private
String
activityCode
;
/**
* 券模板名称(活动名称)
*/
private
String
activityName
;
/**
* 券商品数量
*/
private
Integer
num
;
}
}
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/service/OrderSdkService.java
View file @
6bda8ab9
...
...
@@ -3,6 +3,7 @@ package com.freemud.application.sdk.api.ordercenter.service;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.freemud.application.sdk.api.base.BaseRequest
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.config.OrderCenterProperties
;
import
com.freemud.application.sdk.api.ordercenter.constant.InterfaceAddressConstant
;
import
com.freemud.application.sdk.api.ordercenter.constant.ResponseConstant
;
...
...
@@ -115,6 +116,17 @@ public class OrderSdkService {
return
responseDTO
;
}
/**
* 查询单个订单详情
*
* @param partnerId 商户号
* @param orderCode 订单号
* @return
*/
public
QueryByCodeResponse
getOrderInfo
(
String
partnerId
,
String
orderCode
)
{
return
getOrderInfo
(
null
,
orderCode
,
null
,
null
,
LogThreadLocal
.
getTrackingNo
(),
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