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
40897b4b
Commit
40897b4b
authored
Apr 21, 2021
by
王世昌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
拼团订单退款后先通知促销,再取消订单
parent
1866e737
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
155 additions
and
10 deletions
+155
-10
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
+8
-1
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/response/order/QueryOrdersResponse.java
+10
-0
order-application-service/src/main/java/cn/freemud/adapter/SpellGroupOrderAdapter.java
+5
-0
order-application-service/src/main/java/cn/freemud/entities/dto/QueryOrdersResponseDto.java
+11
-0
order-application-service/src/main/java/cn/freemud/entities/dto/promotion/GroupWorkRefundRequest.java
+39
-0
order-application-service/src/main/java/cn/freemud/entities/dto/promotion/GroupWorkRefundResponse.java
+34
-0
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+4
-0
order-application-service/src/main/java/cn/freemud/manager/SpellGroupOrderDataManager.java
+17
-3
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+18
-2
order-application-service/src/main/java/cn/freemud/service/thirdparty/PromotionDiscountClient.java
+9
-4
No files found.
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
View file @
40897b4b
...
@@ -1102,9 +1102,12 @@ public class OrderSdkAdapter {
...
@@ -1102,9 +1102,12 @@ public class OrderSdkAdapter {
//【订单开放平台】订单详情查询接口增加配送类型字段
//【订单开放平台】订单详情查询接口增加配送类型字段
data
.
setExpressType
(
orderInfoReqs
.
getExpressType
());
data
.
setExpressType
(
orderInfoReqs
.
getExpressType
());
//围餐门店英文名称
if
(
orderInfoReqs
.
getOrderExtended
()
!=
null
)
{
if
(
orderInfoReqs
.
getOrderExtended
()
!=
null
)
{
// 围餐门店英文名称
data
.
setShopNameEn
(
orderInfoReqs
.
getOrderExtended
().
getStoreNameEn
());
data
.
setShopNameEn
(
orderInfoReqs
.
getOrderExtended
().
getStoreNameEn
());
// 围餐
data
.
setSpellGroupCode
(
orderInfoReqs
.
getOrderExtended
().
getSpellGroupCode
());
}
}
if
(
orderInfoReqs
.
getAfterSalesOrderList
()
!=
null
&&
orderInfoReqs
.
getAfterSalesOrderList
().
size
()
>=
1
)
{
if
(
orderInfoReqs
.
getAfterSalesOrderList
()
!=
null
&&
orderInfoReqs
.
getAfterSalesOrderList
().
size
()
>=
1
)
{
...
@@ -1238,6 +1241,10 @@ public class OrderSdkAdapter {
...
@@ -1238,6 +1241,10 @@ public class OrderSdkAdapter {
data
.
setOrderOperationHistoryList
(
getOrderOperationHistory
(
orderInfoReqs
.
getOrderOperationHistoryList
()));
data
.
setOrderOperationHistoryList
(
getOrderOperationHistory
(
orderInfoReqs
.
getOrderOperationHistoryList
()));
data
.
setApportionDetails
(
getApportionDetails
(
orderInfoReqs
));
data
.
setApportionDetails
(
getApportionDetails
(
orderInfoReqs
));
data
.
setOrderSettlementDetailList
(
orderInfoReqs
.
getOrderSettlementDetailList
());
data
.
setOrderSettlementDetailList
(
orderInfoReqs
.
getOrderSettlementDetailList
());
if
(
Objects
.
nonNull
(
orderInfoReqs
.
getOrderSettlementDetailList
())){
orderInfoReqs
.
getOrderSettlementDetailList
().
stream
()
.
filter
(
e
->
Objects
.
equals
(
OrderSettlementType
.
SPELL_GROUP
.
getIndex
(),
e
.
getSettlementType
())).
findFirst
().
ifPresent
(
e
->
data
.
setSpellGroupActivityCode
(
e
.
getExternalObjectId
()));
}
//费用信息
//费用信息
data
.
setOrderCostDetailList
(
orderInfoReqs
.
getOrderCostDetailList
());
data
.
setOrderCostDetailList
(
orderInfoReqs
.
getOrderCostDetailList
());
data
.
setExpressChannelName
(
orderInfoReqs
.
getExpressChannelName
());
data
.
setExpressChannelName
(
orderInfoReqs
.
getExpressChannelName
());
...
...
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/response/order/QueryOrdersResponse.java
View file @
40897b4b
...
@@ -414,6 +414,16 @@ public class QueryOrdersResponse {
...
@@ -414,6 +414,16 @@ public class QueryOrdersResponse {
private
String
appId
;
private
String
appId
;
/**
* 拼团团号
*/
private
String
spellGroupCode
;
/**
* 拼团活动编号
*/
private
String
spellGroupActivityCode
;
@NoArgsConstructor
@NoArgsConstructor
@Data
@Data
public
static
class
AddDeliveryInfo
{
public
static
class
AddDeliveryInfo
{
...
...
order-application-service/src/main/java/cn/freemud/adapter/SpellGroupOrderAdapter.java
View file @
40897b4b
...
@@ -8,6 +8,7 @@ import cn.freemud.entities.dto.product.ProductInfo;
...
@@ -8,6 +8,7 @@ import cn.freemud.entities.dto.product.ProductInfo;
import
cn.freemud.entities.dto.promotion.CalculationDiscountGoodsDto
;
import
cn.freemud.entities.dto.promotion.CalculationDiscountGoodsDto
;
import
cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto
;
import
cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto
;
import
cn.freemud.entities.dto.promotion.GroupWorkQueryRequest
;
import
cn.freemud.entities.dto.promotion.GroupWorkQueryRequest
;
import
cn.freemud.entities.dto.promotion.GroupWorkRefundRequest
;
import
com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
;
import
com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
;
import
com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse
;
import
com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderClientType
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderClientType
;
...
@@ -258,6 +259,10 @@ public class SpellGroupOrderAdapter {
...
@@ -258,6 +259,10 @@ public class SpellGroupOrderAdapter {
createSpellGroupOrderDto
.
getProducts
().
size
());
createSpellGroupOrderDto
.
getProducts
().
size
());
}
}
public
GroupWorkRefundRequest
convertToGroupWorkRefundRequest
(
String
activityCode
,
String
groupId
,
String
orderId
,
String
userId
)
{
return
new
GroupWorkRefundRequest
(
activityCode
,
groupId
,
orderId
,
userId
);
}
/*------------------下方转换返回信息------------------------*/
/*------------------下方转换返回信息------------------------*/
/**
/**
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/QueryOrdersResponseDto.java
View file @
40897b4b
...
@@ -286,6 +286,17 @@ public class QueryOrdersResponseDto {
...
@@ -286,6 +286,17 @@ public class QueryOrdersResponseDto {
*/
*/
private
BigDecimal
weight
;
private
BigDecimal
weight
;
/**
* 拼团团号
*/
private
String
spellGroupCode
;
/**
* 拼团活动编号
*/
private
String
spellGroupActivityCode
;
@NoArgsConstructor
@NoArgsConstructor
@Data
@Data
public
static
class
AddDeliveryInfo
{
public
static
class
AddDeliveryInfo
{
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/promotion/GroupWorkRefundRequest.java
0 → 100644
View file @
40897b4b
package
cn
.
freemud
.
entities
.
dto
.
promotion
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* 通知促销团员取消订单
*
* @author shichang.wang 2021/4/21
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
public
class
GroupWorkRefundRequest
{
/**
* 活动号
*/
private
String
activityCode
;
/**
* 团号
*/
private
String
groupId
;
/**
* 订单
*/
private
String
orderId
;
/**
* 用户id
*/
private
String
userId
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/promotion/GroupWorkRefundResponse.java
0 → 100644
View file @
40897b4b
package
cn
.
freemud
.
entities
.
dto
.
promotion
;
import
lombok.Data
;
/**
* 通知促销团员取消订单
*
* @author shichang.wang 2021/4/21
*/
@Data
public
class
GroupWorkRefundResponse
{
/**
* 提示
*/
private
String
msg
;
/**
* 内容
*/
private
Object
result
;
/**
* 成功-100
*/
private
Integer
statusCode
;
/**
* 版本号
*/
private
String
ver
;
}
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
View file @
40897b4b
...
@@ -173,6 +173,9 @@ public enum ResponseResult {
...
@@ -173,6 +173,9 @@ public enum ResponseResult {
STORE_SELF_ERROR
(
"45069"
,
"请选择截止营业时间大于45分钟下单"
),
STORE_SELF_ERROR
(
"45069"
,
"请选择截止营业时间大于45分钟下单"
),
COUPON_INVALID
(
"45070"
,
"券已锁定,请先支付或取消待支付订单"
),
COUPON_INVALID
(
"45070"
,
"券已锁定,请先支付或取消待支付订单"
),
/**
* 售后单
*/
ORDER_REFUND_EXPRESS_ERROR
(
"45200"
,
"售后单修改物流信息失败"
),
ORDER_REFUND_EXPRESS_ERROR
(
"45200"
,
"售后单修改物流信息失败"
),
...
@@ -250,6 +253,7 @@ public enum ResponseResult {
...
@@ -250,6 +253,7 @@ public enum ResponseResult {
SPELL_GROUP_QUERY_GROUP_WORK_ERROR
(
"80007"
,
"查询拼团信息异常"
),
SPELL_GROUP_QUERY_GROUP_WORK_ERROR
(
"80007"
,
"查询拼团信息异常"
),
SPELL_GROUP_QUERY_GROUP_STATUS_IS_NOT_NORMAL
(
"80008"
,
"团状态非正常"
),
SPELL_GROUP_QUERY_GROUP_STATUS_IS_NOT_NORMAL
(
"80008"
,
"团状态非正常"
),
SPELL_GROUP_QUERY_DELIVERYTEMPLATE_ERROR
(
"80009"
,
"查询配送费异常"
),
SPELL_GROUP_QUERY_DELIVERYTEMPLATE_ERROR
(
"80009"
,
"查询配送费异常"
),
SPELL_GROUP_REFUND_ERROR
(
"80015"
,
"取消拼团失败"
),
;
;
...
...
order-application-service/src/main/java/cn/freemud/manager/SpellGroupOrderDataManager.java
View file @
40897b4b
...
@@ -7,9 +7,7 @@ import cn.freemud.entities.dto.ProductInfosDto;
...
@@ -7,9 +7,7 @@ import cn.freemud.entities.dto.ProductInfosDto;
import
cn.freemud.entities.dto.delivery.QueryDeliveryTemplateRequest
;
import
cn.freemud.entities.dto.delivery.QueryDeliveryTemplateRequest
;
import
cn.freemud.entities.dto.delivery.QueryDeliveryTemplateResponse
;
import
cn.freemud.entities.dto.delivery.QueryDeliveryTemplateResponse
;
import
cn.freemud.entities.dto.product.ProductInfo
;
import
cn.freemud.entities.dto.product.ProductInfo
;
import
cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto
;
import
cn.freemud.entities.dto.promotion.*
;
import
cn.freemud.entities.dto.promotion.GroupWorkQueryRequest
;
import
cn.freemud.entities.dto.promotion.GroupWorkQueryResponse
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.service.thirdparty.DeliveryFeiginClient
;
import
cn.freemud.service.thirdparty.DeliveryFeiginClient
;
import
cn.freemud.service.thirdparty.PromotionDiscountClient
;
import
cn.freemud.service.thirdparty.PromotionDiscountClient
;
...
@@ -154,4 +152,20 @@ public class SpellGroupOrderDataManager {
...
@@ -154,4 +152,20 @@ public class SpellGroupOrderDataManager {
return
queryDeliveryTemplateResponse
;
return
queryDeliveryTemplateResponse
;
}
}
/**
* 订单主动退款调促销接口
*
* @param groupWorkRefundRequest
* @return
*/
public
GroupWorkRefundResponse
groupWorkRefund
(
GroupWorkRefundRequest
groupWorkRefundRequest
)
{
GroupWorkRefundResponse
groupWorkRefundResponse
=
promotionDiscountClient
.
groupWorkRefund
(
groupWorkRefundRequest
);
if
(!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
groupWorkRefundResponse
.
getStatusCode
())
||
groupWorkRefundResponse
.
getResult
()
==
null
)
{
return
null
;
}
return
groupWorkRefundResponse
;
}
}
}
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
40897b4b
...
@@ -43,6 +43,8 @@ import cn.freemud.entities.dto.pay.CombPayResponse;
...
@@ -43,6 +43,8 @@ import cn.freemud.entities.dto.pay.CombPayResponse;
import
cn.freemud.entities.dto.product.*
;
import
cn.freemud.entities.dto.product.*
;
import
cn.freemud.entities.dto.promotion.GroupWorkQueryRequest
;
import
cn.freemud.entities.dto.promotion.GroupWorkQueryRequest
;
import
cn.freemud.entities.dto.promotion.GroupWorkQueryResponse
;
import
cn.freemud.entities.dto.promotion.GroupWorkQueryResponse
;
import
cn.freemud.entities.dto.promotion.GroupWorkRefundRequest
;
import
cn.freemud.entities.dto.promotion.GroupWorkRefundResponse
;
import
cn.freemud.entities.dto.shoppingCart.NewShoppingCartClearDto
;
import
cn.freemud.entities.dto.shoppingCart.NewShoppingCartClearDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.shoppingCart.CollageOrderDto
;
import
cn.freemud.entities.dto.shoppingCart.CollageOrderDto
;
...
@@ -315,6 +317,9 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -315,6 +317,9 @@ public class OrderServiceImpl implements Orderservice {
@Autowired
@Autowired
private
SpellGroupOrderDataManager
spellGroupOrderDataManager
;
private
SpellGroupOrderDataManager
spellGroupOrderDataManager
;
@Autowired
private
SpellGroupOrderAdapter
spellGroupOrderAdapter
;
@Override
@Override
public
BaseResponse
checkBeforeCreateOrder
(
CheckBeforeCreateOrderRequestVo
requestVo
)
{
public
BaseResponse
checkBeforeCreateOrder
(
CheckBeforeCreateOrderRequestVo
requestVo
)
{
String
trackingNo
=
LogTreadLocal
.
getTrackingNo
();
String
trackingNo
=
LogTreadLocal
.
getTrackingNo
();
...
@@ -2309,14 +2314,24 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -2309,14 +2314,24 @@ public class OrderServiceImpl implements Orderservice {
state
=
response
.
getData
().
getRefundStatus
()
==
null
?
PayRefundStatus
.
SUCCESS
.
getCode
()
:
response
.
getData
().
getRefundStatus
();
state
=
response
.
getData
().
getRefundStatus
()
==
null
?
PayRefundStatus
.
SUCCESS
.
getCode
()
:
response
.
getData
().
getRefundStatus
();
}
}
}
}
// 拼团订单主动退款触发通知促销
if
(
Objects
.
equals
(
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
enums
.
OrderSourceType
.
SAASMALL
.
getCode
(),
orderBean
.
getSource
())
&&
Objects
.
equals
(
OrderMarketType
.
GROUPB
.
getIndex
(),
orderBean
.
getMarketingType
())
&&
StringUtils
.
isBlank
(
orderBean
.
getSpellGroupCode
()))
{
GroupWorkRefundRequest
groupWorkRefundRequest
=
spellGroupOrderAdapter
.
convertToGroupWorkRefundRequest
(
orderBean
.
getSpellGroupActivityCode
(),
orderBean
.
getSpellGroupCode
(),
orderBean
.
getOid
(),
orderBean
.
getUserId
());
GroupWorkRefundResponse
refundResponse
=
spellGroupOrderDataManager
.
groupWorkRefund
(
groupWorkRefundRequest
);
if
(
Objects
.
isNull
(
refundResponse
)
||
!
Objects
.
equals
(
ResponseConstant
.
SUCCESS_RESPONSE_CODE
,
refundResponse
.
getStatusCode
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
SPELL_GROUP_REFUND_ERROR
);
}
}
CancelOrderRequest
cancelOrderRequest
=
orderAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
CancelOrderRequest
cancelOrderRequest
=
orderAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
partnerId
,
afterSalesType
,
orderRefundVo
.
getReason
(),
LogTreadLocal
.
getTrackingNo
(),
refundId
.
toString
());
partnerId
,
afterSalesType
,
orderRefundVo
.
getReason
(),
LogTreadLocal
.
getTrackingNo
(),
refundId
.
toString
());
cancelOrderRequest
.
setOperator
(
orderBean
.
getUserName
());
cancelOrderRequest
.
setOperator
(
orderBean
.
getUserName
());
cancelOrderRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
cancelOrderRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
if
(
PayRefundStatus
.
RUNNING
.
getCode
().
intValue
()
==
state
)
{
if
(
Objects
.
equals
(
PayRefundStatus
.
RUNNING
.
getCode
(),
state
)
)
{
// 退款中
// 退款中
cancelOrderRequest
.
setCreateEvent
(
AfterSalesOrderCreateEventEnum
.
RETURN_COMPLETE
.
getCreateEvent
());
cancelOrderRequest
.
setCreateEvent
(
AfterSalesOrderCreateEventEnum
.
RETURN_COMPLETE
.
getCreateEvent
());
}
else
if
(
PayRefundStatus
.
SUCCESS
.
getCode
().
intValue
()
==
state
)
{
}
else
if
(
Objects
.
equals
(
PayRefundStatus
.
SUCCESS
.
getCode
(),
state
)
)
{
//退款成功
//退款成功
cancelOrderRequest
.
setCreateEvent
(
AfterSalesOrderCreateEventEnum
.
REFUND_COMPLETE
.
getCreateEvent
());
cancelOrderRequest
.
setCreateEvent
(
AfterSalesOrderCreateEventEnum
.
REFUND_COMPLETE
.
getCreateEvent
());
}
}
...
@@ -4337,6 +4352,7 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -4337,6 +4352,7 @@ public class OrderServiceImpl implements Orderservice {
cancelOrderRequest
.
setRefundDeliveryAmount
(
isRefundDeliveryFee
);
cancelOrderRequest
.
setRefundDeliveryAmount
(
isRefundDeliveryFee
);
BaseOrderResponse
baseOrderResponse
=
orderCenterSdkService
.
orderCancel
(
cancelOrderRequest
);
BaseOrderResponse
baseOrderResponse
=
orderCenterSdkService
.
orderCancel
(
cancelOrderRequest
);
// todo 需要进行部分的处理
if
(
baseOrderResponse
==
null
||
baseOrderResponse
.
getData
()
==
null
||
!
ObjectUtils
.
equals
(
ResponseConstant
.
SUCCESS_RESPONSE_CODE
,
baseOrderResponse
.
getErrcode
()))
{
if
(
baseOrderResponse
==
null
||
baseOrderResponse
.
getData
()
==
null
||
!
ObjectUtils
.
equals
(
ResponseConstant
.
SUCCESS_RESPONSE_CODE
,
baseOrderResponse
.
getErrcode
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"orderRefund_failed"
);
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"orderRefund_failed"
);
}
}
...
...
order-application-service/src/main/java/cn/freemud/service/thirdparty/PromotionDiscountClient.java
View file @
40897b4b
...
@@ -18,10 +18,7 @@ import cn.freemud.entities.dto.ActivityCalculationDiscountRequestDto;
...
@@ -18,10 +18,7 @@ import cn.freemud.entities.dto.ActivityCalculationDiscountRequestDto;
import
cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto
;
import
cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto
;
import
cn.freemud.entities.dto.ActivityQueryRequestDto
;
import
cn.freemud.entities.dto.ActivityQueryRequestDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryResponseDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryResponseDto
;
import
cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto
;
import
cn.freemud.entities.dto.promotion.*
;
import
cn.freemud.entities.dto.promotion.CalculationDiscountResponseDto
;
import
cn.freemud.entities.dto.promotion.GroupWorkQueryRequest
;
import
cn.freemud.entities.dto.promotion.GroupWorkQueryResponse
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
...
@@ -62,5 +59,13 @@ public interface PromotionDiscountClient {
...
@@ -62,5 +59,13 @@ public interface PromotionDiscountClient {
@PostMapping
(
"/groupWork/query"
)
@PostMapping
(
"/groupWork/query"
)
GroupWorkQueryResponse
groupWorkQuery
(
GroupWorkQueryRequest
groupWorkQueryRequest
);
GroupWorkQueryResponse
groupWorkQuery
(
GroupWorkQueryRequest
groupWorkQueryRequest
);
/**
* 订单主动退款调促销接口
* @param groupWorkRefundRequest
* @return
*/
@PostMapping
(
"/groupWork/refund"
)
GroupWorkRefundResponse
groupWorkRefund
(
GroupWorkRefundRequest
groupWorkRefundRequest
);
}
}
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