记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
Project
Project
Details
Activity
Releases
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
董敬伟
liquidnet-bus-v1
Commits
80caff4b
Commit
80caff4b
authored
Apr 24, 2025
by
zhoujianping
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev_user_refund' into container
parents
cb39105a
fe3b4bc5
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
128 additions
and
24 deletions
+128
-24
KylinRefundsStatusServiceImpl.java
...zai/kylin/service/impl/KylinRefundsStatusServiceImpl.java
+0
-17
KylinOrderTicketsRefundServiceImpl.java
...ylin/service/impl/KylinOrderTicketsRefundServiceImpl.java
+18
-2
OrderRefundCallbackController.java
...form/controller/refund/OrderRefundCallbackController.java
+9
-4
KylinRefundsStatusServiceImpl.java
...latform/service/refund/KylinRefundsStatusServiceImpl.java
+16
-1
OrderRefundsCallbackServiceImpl.java
...tform/service/refund/OrderRefundsCallbackServiceImpl.java
+59
-0
DataUtils.java
.../java/com/liquidnet/service/platform/utils/DataUtils.java
+26
-0
No files found.
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/kylin/service/impl/KylinRefundsStatusServiceImpl.java
View file @
80caff4b
...
...
@@ -484,23 +484,6 @@ public class KylinRefundsStatusServiceImpl {
continue
;
}
else
{
//未退款入场人数量为0才退优先卷
List
<
KylinOrderTicketEntities
>
kylinOrderTicketEntities
=
kylinOrderTicketEntitiesMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
KylinOrderTicketEntities
.
class
).
eq
(
KylinOrderTicketEntities:
:
getOrderId
,
refund
.
getOrderTicketsId
()).
eq
(
KylinOrderTicketEntities:
:
getIsPayment
,
1
));
log
.
info
(
"admin退款请求未退款入场人数量number={}"
,
kylinOrderTicketEntities
.
size
());
if
(
kylinOrderTicketEntities
.
size
()==
0
){
//获取订单详情
KylinOrderTicketVo
orderTicketVo
=
dataUtils
.
getOrderTicketVo
(
refund
.
getOrderTicketsId
());
//退优先卷
ArrayList
<
KylinOrderCoupons
>
orderCoupons
=
dataUtils
.
getOrderCoupon
(
refund
.
getOrderTicketsId
());
if
(
orderCoupons
.
size
()
>
0
)
{
for
(
KylinOrderCoupons
item
:
orderCoupons
)
{
if
(
item
.
getCouponType
()
==
101
)
{
dataUtils
.
backCoupon
(
item
.
getCouponCode
(),
orderTicketVo
.
getUserId
());
}
}
}
}
// 同步大麦 票务平台
KylinOrderTicketVo
orderData
=
dataUtils
.
getOrderTicketVo
(
refund
.
getOrderTicketsId
());
KylinPerformanceVo
vo
=
dataUtils
.
getPerformanceVo
(
orderData
.
getPerformanceId
());
...
...
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/KylinOrderTicketsRefundServiceImpl.java
View file @
80caff4b
...
...
@@ -34,6 +34,8 @@ import org.springframework.data.mongodb.core.query.Query;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.LinkedMultiValueMap
;
import
org.springframework.util.MultiValueMap
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
...
...
@@ -69,7 +71,8 @@ public class KylinOrderTicketsRefundServiceImpl {
private
Integer
expressType
;
@Value
(
"${liquidnet.express.shunfeng.depositumInfo}"
)
private
String
depositumInfo
;
@Value
(
"${liquidnet.client.admin.platformUrl}"
)
private
String
platformUrl
;
@Autowired
private
ShunfengSignUtils
shunfengSignUtils
;
...
...
@@ -269,7 +272,20 @@ public class KylinOrderTicketsRefundServiceImpl {
if
(
orderTicketVo
.
getGetTicketType
().
equals
(
"express"
)
&&
sendExpressType
>
0
)
{
// 快递票
expressPlace
(
sendExpressType
,
expressNumber
,
expressContacts
,
expressPhone
,
sendExpressAddress
,
appointmentTime
,
orderTicketVo
,
performanceVo
,
orderRefundId
);
}
//电子票自动退款
if
(
orderTicketVo
.
getGetTicketType
().
equals
(
"electronic"
)){
try
{
MultiValueMap
<
String
,
String
>
params
=
new
LinkedMultiValueMap
();
params
.
add
(
"orderRefundBatchesId"
,
orderRefundId
);
MultiValueMap
<
String
,
String
>
headers
=
new
LinkedMultiValueMap
();
headers
.
add
(
"Accept"
,
"application/json;charset=UTF-8"
);
log
.
info
(
"触发自动退款参数"
+
JsonUtils
.
toJson
(
params
));
String
post
=
HttpUtil
.
post
(
platformUrl
+
"/platform/refund/automaticRefund"
,
params
,
headers
);
log
.
info
(
"触发自动退款返参数"
+
post
);
}
catch
(
Exception
e
){
log
.
error
(
"触发自动退款接口失败orderRefundId={} Exception"
,
orderRefundId
,
e
);
}
}
HashMap
<
String
,
String
>
map
=
CollectionUtil
.
mapStringString
();
map
.
put
(
"orderRefundsId"
,
orderRefundId
);
return
ResponseDto
.
success
(
map
);
...
...
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/controller/refund/OrderRefundCallbackController.java
View file @
80caff4b
package
com
.
liquidnet
.
service
.
platform
.
controller
.
refund
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.kylin.dto.param.RefundApplyParam
;
import
com.liquidnet.service.kylin.dto.param.RefundCallbackParam
;
import
com.liquidnet.service.kylin.dto.param.RefundSearchParam
;
import
com.liquidnet.service.platform.service.refund.OrderRefundsCallbackServiceImpl
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
/**
* <p>
...
...
@@ -34,6 +33,12 @@ public class OrderRefundCallbackController {
return
result
;
}
@PostMapping
(
"automaticRefund"
)
@ApiOperation
(
"用户自动退款"
)
public
void
automaticRefund
(
@RequestBody
RefundApplyParam
param
)
{
orderRefundsCallbackServiceImpl
.
automaticRefund
(
param
);
}
@GetMapping
(
"alipayActiveCallback"
)
@ApiOperation
(
"支付宝主动查询退款结果"
)
public
ResponseDto
<
String
>
alipayActiveCallback
()
{
...
...
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/service/refund/KylinRefundsStatusServiceImpl.java
View file @
80caff4b
...
...
@@ -309,8 +309,23 @@ public class KylinRefundsStatusServiceImpl {
}
// 退积分
goblinRedisUtils
.
integral
(
orderInfo
.
getUserId
(),
refundCallbackParam
.
getRefundPrice
(),
"演出订单退款:"
.
concat
(
orderInfo
.
getPerformanceTitle
()).
concat
(
":"
).
concat
(
orderInfo
.
getOrderCode
().
substring
(
orderInfo
.
getOrderCode
().
length
()
-
10
)),
2
);
}
//未退款入场人数量为0才退优先卷
List
<
KylinOrderTicketEntities
>
kylinOrderTicketEntities
=
kylinOrderTicketEntitiesMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
KylinOrderTicketEntities
.
class
).
eq
(
KylinOrderTicketEntities:
:
getOrderId
,
refundInfo
.
getOrderTicketsId
()).
eq
(
KylinOrderTicketEntities:
:
getIsPayment
,
1
));
log
.
info
(
"订单退款请求未退款入场人数量number={}"
,
kylinOrderTicketEntities
.
size
());
if
(
kylinOrderTicketEntities
.
size
()==
0
){
//退优先卷
ArrayList
<
KylinOrderCoupons
>
orderCoupons
=
dataUtils
.
getOrderCoupon
(
refundInfo
.
getOrderTicketsId
());
if
(!
CollectionUtil
.
isEmpty
(
orderCoupons
))
{
for
(
KylinOrderCoupons
item
:
orderCoupons
)
{
if
(
item
.
getCouponType
()
==
101
)
{
dataUtils
.
backCoupon
(
item
.
getCouponCode
(),
orderInfo
.
getUserId
());
}
}
}
}
}
return
true
;
}
...
...
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/service/refund/OrderRefundsCallbackServiceImpl.java
View file @
80caff4b
package
com
.
liquidnet
.
service
.
platform
.
service
.
refund
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.liquidnet.commons.lang.util.HttpUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.kylin.constant.KylinTableStatusConst
;
import
com.liquidnet.service.kylin.dto.param.RefundApplyParam
;
import
com.liquidnet.service.kylin.dto.param.RefundCallbackParam
;
import
com.liquidnet.service.kylin.dto.param.RefundSearchParam
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo
;
import
com.liquidnet.service.kylin.dto.vo.returns.KylinOrderRefundsVo
;
import
com.liquidnet.service.kylin.entity.KylinOrderRefunds
;
import
com.liquidnet.service.kylin.entity.KylinOrderTickets
;
...
...
@@ -56,6 +62,7 @@ public class OrderRefundsCallbackServiceImpl extends ServiceImpl<KylinOrderRefun
@Value
(
"${liquidnet.service.platform.urls.ticketRefundNotify}"
)
private
String
refundNotify
;
@Autowired
private
KylinRefundsStatusServiceImpl
kylinRefundsStatusServiceImpl
;
...
...
@@ -134,6 +141,58 @@ public class OrderRefundsCallbackServiceImpl extends ServiceImpl<KylinOrderRefun
return
"success"
;
}
public
void
automaticRefund
(
RefundApplyParam
param
)
{
KylinOrderRefunds
refund
=
kylinOrderRefundsMapper
.
selectOne
(
Wrappers
.
lambdaQuery
(
KylinOrderRefunds
.
class
)
.
eq
(
KylinOrderRefunds:
:
getOrderRefundsId
,
param
.
getOrderRefundBatchesId
())
);
KylinOrderTickets
oderInfo
=
kylinOrderTicketsMapper
.
selectOne
(
new
QueryWrapper
<
KylinOrderTickets
>()
.
eq
(
"order_tickets_id"
,
refund
.
getOrderTicketsId
())
);
BigDecimal
refundPrice
=
refund
.
getPrice
().
add
(
refund
.
getPriceExpress
());
MultiValueMap
<
String
,
String
>
params
=
new
LinkedMultiValueMap
();
params
.
add
(
"code"
,
oderInfo
.
getPayCode
());
params
.
add
(
"notifyUrl"
,
refundNotify
);
params
.
add
(
"orderCode"
,
oderInfo
.
getOrderCode
());
params
.
add
(
"orderRefundCode"
,
refund
.
getOrderRefundCode
());
params
.
add
(
"paymentId"
,
oderInfo
.
getPaymentId
());
params
.
add
(
"paymentType"
,
oderInfo
.
getPaymentType
());
params
.
add
(
"price"
,
String
.
valueOf
(
refundPrice
));
params
.
add
(
"priceTotal"
,
String
.
valueOf
(
oderInfo
.
getPriceActual
()));
params
.
add
(
"reason"
,
"按需退款"
);
MultiValueMap
<
String
,
String
>
headers
=
new
LinkedMultiValueMap
();
headers
.
add
(
"Accept"
,
"application/json;charset=UTF-8"
);
log
.
info
(
"自动退款退款参数"
+
JsonUtils
.
toJson
(
params
));
try
{
String
postResult
=
HttpUtil
.
post
(
refundApply
,
params
,
headers
);
log
.
info
(
"自动退款返参res"
+
postResult
);
HashMap
hashMapResult
=
JsonUtils
.
fromJson
(
postResult
,
HashMap
.
class
);
Boolean
success
=
(
Boolean
)
hashMapResult
.
get
(
"success"
);
if
(!
success
)
{
String
message
=
(
String
)
hashMapResult
.
get
(
"message"
);
log
.
info
(
"自动退款pay返回失败"
+
message
);
KylinOrderRefunds
kylinOrderRefundsFail
=
new
KylinOrderRefunds
();
kylinOrderRefundsFail
.
setStatus
(
KylinTableStatusConst
.
ORDER_REFUND_STATUS_ERROR
);
kylinOrderRefundsFail
.
setRefundError
(
message
);
kylinOrderRefundsFail
.
setUpdatedAt
(
LocalDateTime
.
now
());
kylinOrderRefundsMapper
.
update
(
kylinOrderRefundsFail
,
new
UpdateWrapper
<
KylinOrderRefunds
>().
eq
(
"order_refunds_id"
,
refund
.
getOrderRefundsId
())
);
// 修改缓存
KylinOrderRefundsVo
kylinOrderRefundsVoFail
=
new
KylinOrderRefundsVo
();
BeanUtils
.
copyProperties
(
kylinOrderRefundsFail
,
kylinOrderRefundsVoFail
);
BasicDBObject
objectFail
=
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
kylinOrderRefundsVoFail
));
UpdateResult
updateFailResult
=
mongoTemplate
.
getCollection
(
KylinOrderRefundsVo
.
class
.
getSimpleName
()).
updateOne
(
Query
.
query
(
Criteria
.
where
(
"orderRefundsId"
).
is
(
refund
.
getOrderRefundsId
())).
getQueryObject
(),
objectFail
);
}
}
catch
(
Exception
e
){
log
.
info
(
"自动退款请求pay失败e"
+
e
.
getMessage
());
}
}
@Override
public
String
getOrderRefundCode
(
String
orderRefundCode
,
int
type
)
{
return
null
;
...
...
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/utils/DataUtils.java
View file @
80caff4b
package
com
.
liquidnet
.
service
.
platform
.
utils
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.liquidnet.common.cache.redis.util.RedisDataSourceUtil
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.HttpUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.base.constant.RedisKeyExpireConst
;
import
com.liquidnet.service.candy.param.BackCouponParam
;
import
com.liquidnet.service.kylin.constant.KylinRedisConst
;
import
com.liquidnet.service.kylin.dto.vo.KylinApiCameraDevicesVo
;
import
com.liquidnet.service.kylin.dto.vo.KylinTimePerformanceVo
;
...
...
@@ -21,18 +25,22 @@ import com.liquidnet.service.slime.constant.SlimeRedisConst;
import
com.liquidnet.service.slime.dto.vo.SlimeFieldsVo
;
import
com.liquidnet.service.sweet.constant.SweetConstant
;
import
com.liquidnet.service.sweet.vo.SweetAppletUsersVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.MultiValueMap
;
import
java.util.ArrayList
;
import
java.util.LinkedList
;
import
java.util.List
;
@Component
@Slf4j
public
class
DataUtils
{
@Autowired
...
...
@@ -44,6 +52,9 @@ public class DataUtils {
@Autowired
private
MongoVoUtils
mongoVoUtils
;
@Value
(
"${liquidnet.service.candy.url}"
)
private
String
candyUrl
;
/**
* 根据 购票须知 id 获取 购票须知文案
*
...
...
@@ -494,4 +505,19 @@ public class DataUtils {
return
(
KylinCamera
)
obj
;
}
}
public
void
backCoupon
(
String
uCouponId
,
String
uid
)
{
try
{
BackCouponParam
param
=
BackCouponParam
.
getNew
();
param
.
setuCouponIds
(
uCouponId
);
param
.
setUid
(
uid
);
MultiValueMap
<
String
,
String
>
header
=
CollectionUtil
.
linkedMultiValueMapStringString
();
ArrayList
<
BackCouponParam
>
params
=
new
ArrayList
();
params
.
add
(
param
);
String
jsonString
=
JSON
.
toJSONString
(
params
);
String
returnData
=
HttpUtil
.
postRaw
(
candyUrl
+
"/candy-coupon/useBack"
,
jsonString
,
header
);
}
catch
(
Exception
e
)
{
log
.
error
(
"回退券ERROR:{}"
,
e
);
}
}
}
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