记得上下班打卡 | 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
4e1d0f49
Commit
4e1d0f49
authored
Jun 21, 2021
by
jiangxiulong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
超时退款改动
parent
943b7664
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
61 additions
and
25 deletions
+61
-25
KylinRefundsStatusServiceImpl.java
...ice/kylin/service/impl/KylinRefundsStatusServiceImpl.java
+14
-10
OrderRefundsCallbackServiceImpl.java
...e/kylin/service/impl/OrderRefundsCallbackServiceImpl.java
+47
-15
No files found.
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/KylinRefundsStatusServiceImpl.java
View file @
4e1d0f49
...
@@ -7,6 +7,7 @@ import com.liquidnet.commons.lang.util.DateUtil;
...
@@ -7,6 +7,7 @@ import com.liquidnet.commons.lang.util.DateUtil;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.kylin.constant.KylinTableStatusConst
;
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.RefundCallbackParam
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo
;
...
@@ -213,16 +214,18 @@ public class KylinRefundsStatusServiceImpl {
...
@@ -213,16 +214,18 @@ public class KylinRefundsStatusServiceImpl {
}
}
public
Boolean
orderTicketRefunding
(
public
Boolean
orderTicketRefunding
(
KylinOrderTickets
orderInfo
,
String
orderTicketsId
,
List
<
String
>
ticketEntityIds
KylinOrderTickets
orderInfo
,
String
orderTicketsId
,
double
RefundPriceExpress
,
List
<
String
>
ticketEntityIds
,
List
<
Double
>
entitiesPrice
)
{
)
{
// 基础数据
// 基础数据
String
authId
=
"
overtime
"
;
String
authId
=
""
;
String
authName
=
"system"
;
String
authName
=
"system
_overtime_order_refund
"
;
String
reason
=
"支付超时自动退款"
;
String
reason
=
"
订单
支付超时自动退款"
;
// 本次退款票总金额
// 本次退款票总金额
double
RefundPriceExpress
=
orderInfo
.
getPriceExpress
().
doubleValue
();
double
entitiesPriceSum
=
entitiesPrice
.
stream
().
mapToDouble
(
Double:
:
doubleValue
).
sum
();
double
entitiesPriceSum
=
orderInfo
.
getPriceActual
().
doubleValue
()
-
RefundPriceExpress
;
// TODO: 2021/5/27 事物 and 部分退款
// 更新数据
// 更新数据
// 订单状态表 和 缓存
// 订单状态表 和 缓存
KylinOrderTicketStatus
orderStatusTable
=
new
KylinOrderTicketStatus
();
KylinOrderTicketStatus
orderStatusTable
=
new
KylinOrderTicketStatus
();
...
@@ -263,7 +266,7 @@ public class KylinRefundsStatusServiceImpl {
...
@@ -263,7 +266,7 @@ public class KylinRefundsStatusServiceImpl {
// 退款明细
// 退款明细
KylinOrderRefunds
kylinOrderRefunds
=
new
KylinOrderRefunds
();
KylinOrderRefunds
kylinOrderRefunds
=
new
KylinOrderRefunds
();
String
orderRefundsId
=
IDGenerator
.
nextSnowId
()
.
toString
()
;
String
orderRefundsId
=
IDGenerator
.
nextSnowId
();
kylinOrderRefunds
.
setOrderRefundsId
(
orderRefundsId
);
kylinOrderRefunds
.
setOrderRefundsId
(
orderRefundsId
);
kylinOrderRefunds
.
setOrderTicketsId
(
orderTicketsId
);
kylinOrderRefunds
.
setOrderTicketsId
(
orderTicketsId
);
...
@@ -278,7 +281,8 @@ public class KylinRefundsStatusServiceImpl {
...
@@ -278,7 +281,8 @@ public class KylinRefundsStatusServiceImpl {
kylinOrderRefunds
.
setPrice
(
BigDecimal
.
valueOf
(
entitiesPriceSum
));
kylinOrderRefunds
.
setPrice
(
BigDecimal
.
valueOf
(
entitiesPriceSum
));
kylinOrderRefunds
.
setPriceExpress
(
BigDecimal
.
valueOf
(
RefundPriceExpress
));
kylinOrderRefunds
.
setPriceExpress
(
BigDecimal
.
valueOf
(
RefundPriceExpress
));
kylinOrderRefunds
.
setStatus
(
KylinTableStatusConst
.
ORDER_REFUND_STATUS_APPLY
);
kylinOrderRefunds
.
setStatus
(
KylinTableStatusConst
.
ORDER_REFUND_STATUS_APPLY
);
kylinOrderRefunds
.
setType
(
KylinTableStatusConst
.
ORDER_REFUND_TYPE_AUTO
);
kylinOrderRefunds
.
setType
(
KylinTableStatusConst
.
ORDER_REFUND_TYPE_APPLY
);
kylinOrderRefunds
.
setApplicantId
(
authId
);
kylinOrderRefunds
.
setApplicantId
(
authId
);
kylinOrderRefunds
.
setApplicantName
(
authName
);
kylinOrderRefunds
.
setApplicantName
(
authName
);
kylinOrderRefunds
.
setApplicantAt
(
LocalDateTime
.
now
());
kylinOrderRefunds
.
setApplicantAt
(
LocalDateTime
.
now
());
...
@@ -296,10 +300,10 @@ public class KylinRefundsStatusServiceImpl {
...
@@ -296,10 +300,10 @@ public class KylinRefundsStatusServiceImpl {
// 退款入场人表
// 退款入场人表
KylinOrderRefundEntities
kylinOrderRefundEntities
=
new
KylinOrderRefundEntities
();
KylinOrderRefundEntities
kylinOrderRefundEntities
=
new
KylinOrderRefundEntities
();
for
(
int
i
=
0
;
i
<=
ticketEntityIds
.
size
()
-
1
;
i
++)
{
for
(
int
i
=
0
;
i
<=
ticketEntityIds
.
size
()
-
1
;
i
++)
{
String
orderRefundsEntitiesId
=
IDGenerator
.
nextSnowId
()
.
toString
()
;
String
orderRefundsEntitiesId
=
IDGenerator
.
nextSnowId
();
kylinOrderRefundEntities
.
setOrderRefundsEntitiesId
(
orderRefundsEntitiesId
);
kylinOrderRefundEntities
.
setOrderRefundsEntitiesId
(
orderRefundsEntitiesId
);
kylinOrderRefundEntities
.
setOrderRefundsId
(
orderRefundsId
);
kylinOrderRefundEntities
.
setOrderRefundsId
(
orderRefundsId
);
kylinOrderRefundEntities
.
setRefundPrice
(
BigDecimal
.
valueOf
(
entitiesPrice
Sum
/
ticketEntityIds
.
size
(
)));
kylinOrderRefundEntities
.
setRefundPrice
(
BigDecimal
.
valueOf
(
entitiesPrice
.
get
(
i
)));
kylinOrderRefundEntities
.
setOrderTicketEntitiesId
(
ticketEntityIds
.
get
(
i
));
kylinOrderRefundEntities
.
setOrderTicketEntitiesId
(
ticketEntityIds
.
get
(
i
));
kylinOrderRefundEntities
.
setCreatedAt
(
LocalDateTime
.
now
());
kylinOrderRefundEntities
.
setCreatedAt
(
LocalDateTime
.
now
());
int
rowsR
=
kylinOrderRefundsEntitiesMapper
.
insert
(
kylinOrderRefundEntities
);
int
rowsR
=
kylinOrderRefundsEntitiesMapper
.
insert
(
kylinOrderRefundEntities
);
...
...
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/OrderRefundsCallbackServiceImpl.java
View file @
4e1d0f49
...
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
...
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.kylin.constant.KylinTableStatusConst
;
import
com.liquidnet.service.kylin.constant.KylinTableStatusConst
;
import
com.liquidnet.service.kylin.dao.KylinOrderTicketEntitiesDao
;
import
com.liquidnet.service.kylin.dto.param.RefundApplyParam
;
import
com.liquidnet.service.kylin.dto.param.RefundApplyParam
;
import
com.liquidnet.service.kylin.dto.param.RefundCallbackParam
;
import
com.liquidnet.service.kylin.dto.param.RefundCallbackParam
;
import
com.liquidnet.service.kylin.entity.KylinOrderRefunds
;
import
com.liquidnet.service.kylin.entity.KylinOrderRefunds
;
...
@@ -18,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -18,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
...
@@ -101,26 +103,56 @@ public class OrderRefundsCallbackServiceImpl extends ServiceImpl<KylinOrderRefun
...
@@ -101,26 +103,56 @@ public class OrderRefundsCallbackServiceImpl extends ServiceImpl<KylinOrderRefun
KylinOrderTickets
orderInfo
=
kylinOrderTicketsMapper
.
selectOne
(
KylinOrderTickets
orderInfo
=
kylinOrderTicketsMapper
.
selectOne
(
new
QueryWrapper
<
KylinOrderTickets
>().
eq
(
"order_tickets_id"
,
orderTicketsId
)
new
QueryWrapper
<
KylinOrderTickets
>().
eq
(
"order_tickets_id"
,
orderTicketsId
)
);
);
// 传的快递费不能大于实际的快递费=(支付的快递费-已退的快递费)
// 查询订单入场人
Double
refundPriceExpressSum
=
kylinOrderRefundsMapper
.
RefundPriceExpressSum
(
// 已退快递费
List
<
KylinOrderTicketEntities
>
EntitiesList
=
kylinOrderTicketEntitiesMapper
.
selectList
(
new
QueryWrapper
<
KylinOrderTicketEntities
>()
.
eq
(
"order_id"
,
orderTicketsId
)
.
eq
(
"is_payment"
,
KylinTableStatusConst
.
ENTITIES_IS_PAYMENT1
)
);
List
<
String
>
ticketEntityIds
=
EntitiesList
.
stream
().
map
(
KylinOrderTicketEntities
->
KylinOrderTicketEntities
.
getOrderTicketEntitiesId
()).
collect
(
Collectors
.
toList
());
// 该订单正在退款或已有退款
int
refundingCount
=
kylinOrderRefundsMapper
.
selectRefundingCount
(
orderTicketsId
,
orderTicketsId
,
KylinTableStatusConst
.
ORDER_REFUND_STATUS_CANCEL
,
KylinTableStatusConst
.
ORDER_REFUND_STATUS_CANCEL
ticketEntityIds
);
);
if
(
refundingCount
>
0
)
{
if
(
null
==
refundPriceExpressSum
)
{
return
false
;
refundPriceExpressSum
=
0.0
;
}
Double
RefundPriceExpress
=
orderInfo
.
getPriceExpress
().
doubleValue
()
-
refundPriceExpressSum
;
// 查询订单入场人
List
<
KylinOrderTicketEntitiesDao
>
entitiesListTemp
=
kylinOrderTicketEntitiesMapper
.
getRefundEntitiesList
(
orderTicketsId
);
List
<
KylinOrderTicketEntitiesDao
>
entitiesList
=
new
ArrayList
<>();
if
(
entitiesListTemp
.
size
()
>
0
)
{
double
priceActual
=
orderInfo
.
getPriceActual
().
doubleValue
();
double
priceExpress
=
orderInfo
.
getPriceExpress
().
doubleValue
();
int
allEntitiesCount
=
kylinOrderTicketEntitiesMapper
.
selectCount
(
// 总入场人数量 排出未付款的 用来计算单入场人的价格
new
QueryWrapper
<
KylinOrderTicketEntities
>()
.
eq
(
"order_id"
,
orderInfo
.
getOrderTicketsId
())
.
ne
(
"is_payment"
,
KylinTableStatusConst
.
ENTITIES_IS_PAYMENT0
)
);
double
onePrice
=
(
priceActual
-
priceExpress
)
/
allEntitiesCount
;
//单价
for
(
KylinOrderTicketEntitiesDao
entities
:
entitiesListTemp
)
{
Double
refundedPrice
=
kylinOrderTicketEntitiesMapper
.
getRefundEntitiesPrice
(
//已退 包含退款中
orderInfo
.
getOrderTicketsId
(),
KylinTableStatusConst
.
ORDER_REFUND_STATUS_CANCEL
,
entities
.
getOrderTicketEntitiesId
()
);
double
canRefundedPrice
;
if
(
null
!=
refundedPrice
)
{
canRefundedPrice
=
onePrice
-
refundedPrice
;
}
else
{
canRefundedPrice
=
onePrice
;
}
entities
.
setCanRefundedPrice
(
BigDecimal
.
valueOf
(
canRefundedPrice
));
if
(
canRefundedPrice
>
0
)
{
// 退款中但是可退款金额为0不展示
entitiesList
.
add
(
entities
);
}
}
}
}
List
<
String
>
ticketEntityIds
=
entitiesList
.
stream
().
map
(
KylinOrderTicketEntities
->
KylinOrderTicketEntities
.
getOrderTicketEntitiesId
()).
collect
(
Collectors
.
toList
());
List
<
Double
>
entitiesPrice
=
entitiesList
.
stream
().
map
(
KylinOrderTicketEntities
->
KylinOrderTicketEntities
.
getCanRefundedPrice
().
doubleValue
()).
collect
(
Collectors
.
toList
());
boolean
res
=
kylinRefundsStatusServiceImpl
.
orderTicketRefunding
(
boolean
res
=
kylinRefundsStatusServiceImpl
.
orderTicketRefunding
(
orderInfo
,
orderTicketsId
,
ticketEntityIds
orderInfo
,
orderTicketsId
,
RefundPriceExpress
,
ticketEntityIds
,
entitiesPrice
);
);
if
(
res
)
{
if
(
res
)
{
return
true
;
return
true
;
...
...
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