记得上下班打卡 | 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
4a8d8229
Commit
4a8d8229
authored
Jun 16, 2021
by
jiangxiulong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refund 主动
parent
1db8f473
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
160 additions
and
7 deletions
+160
-7
KylinOrderRefundAdminController.java
...oller/zhengzai/kylin/KylinOrderRefundAdminController.java
+3
-4
applyView.html
.../resources/templates/zhengzai/kylin/refund/applyView.html
+1
-1
KylinOrderRefundsServiceImpl.java
...gzai/kylin/service/impl/KylinOrderRefundsServiceImpl.java
+63
-2
KylinRefundsStatusServiceImpl.java
...zai/kylin/service/impl/KylinRefundsStatusServiceImpl.java
+93
-0
No files found.
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/java/com/liquidnet/client/admin/web/controller/zhengzai/kylin/KylinOrderRefundAdminController.java
View file @
4a8d8229
...
...
@@ -12,7 +12,6 @@ import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import
com.liquidnet.service.kylin.dao.OrderRefundDao
;
import
com.liquidnet.service.kylin.dto.param.RefundApplyParam
;
import
com.liquidnet.service.kylin.dto.param.RefundSearchParam
;
import
com.liquidnet.service.kylin.dto.vo.admin.OrderDetailsAdminVo
;
import
com.liquidnet.service.kylin.dto.vo.returns.KylinOrderRefundsVo
;
import
com.liquidnet.service.kylin.dto.vo.returns.RefundOrderDetailsVo
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
...
...
@@ -191,11 +190,11 @@ public class KylinOrderRefundAdminController extends BaseController {
@ResponseBody
public
AjaxResult
refundCompleted
(
RefundApplyParam
refundApplyParam
)
{
try
{
Boolean
res
=
kylinOrderRefundsServiceImpl
.
refundCompleted
(
refundApplyParam
);
if
(
res
)
{
ResponseDto
res
=
kylinOrderRefundsServiceImpl
.
refundCompleted
(
refundApplyParam
);
if
(
res
.
isSuccess
()
)
{
return
success
();
}
else
{
return
error
(
"关闭订单失败"
);
return
error
(
res
.
getMessage
()
);
}
}
catch
(
Exception
e
)
{
return
error
(
e
.
getMessage
());
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/kylin/refund/applyView.html
View file @
4a8d8229
...
...
@@ -181,7 +181,7 @@
var
entitiesPrice
=
$
.
table
.
selectColumns
(
"price"
);
data
.
push
({
"name"
:
"entitiesPrice"
,
"value"
:
entitiesPrice
});
console
.
log
(
data
)
//
$.operate.save(prefix + "/apply", data);
$
.
operate
.
save
(
prefix
+
"/apply"
,
data
);
}
}
</script>
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/kylin/service/impl/KylinOrderRefundsServiceImpl.java
View file @
4a8d8229
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
kylin
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.client.admin.common.utils.DateUtils
;
import
com.liquidnet.client.admin.common.utils.ShiroUtils
;
import
com.liquidnet.client.admin.zhengzai.kylin.utils.DataUtils
;
import
com.liquidnet.commons.lang.util.BeanUtil
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.kylin.constant.KylinTableStatusConst
;
...
...
@@ -11,6 +15,7 @@ import com.liquidnet.service.kylin.dao.KylinOrderRefundsEntitiesDao;
import
com.liquidnet.service.kylin.dao.KylinOrderTicketEntitiesDao
;
import
com.liquidnet.service.kylin.dao.OrderRefundDao
;
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.admin.OrderDetailsAdminVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo
;
...
...
@@ -27,7 +32,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
/**
...
...
@@ -68,6 +76,7 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
public
ResponseDto
refundApply
(
RefundApplyParam
refundApplyParam
)
{
String
orderTicketsId
=
refundApplyParam
.
getOrderTicketsId
();
List
<
String
>
ticketEntityIds
=
refundApplyParam
.
getTicketEntityIds
();
List
<
BigDecimal
>
entitiesPrice
=
refundApplyParam
.
getEntitiesPrice
();
Double
RefundPriceExpress
=
refundApplyParam
.
getRefundPriceExpress
();
if
(
null
==
RefundPriceExpress
)
{
RefundPriceExpress
=
0.0
;
...
...
@@ -132,6 +141,15 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
}
}
/*public Boolean refundPrice(List<String> ticketEntityIds, List<BigDecimal> entitiesPrice, String orderTicketsId) {
// 该订单的所有退款单
List<KylinOrderRefunds> refundList = kylinOrderRefundsMapper.selectList(
new QueryWrapper<KylinOrderRefunds>()
.eq("order_tickets_id", orderTicketsId)
.ne("status", KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL)
);
}*/
public
ResponseDto
refundCheckStatus
(
RefundApplyParam
refundApplyParam
)
{
String
type
=
refundApplyParam
.
getType
();
List
<
String
>
orderRefundsIdList
=
refundApplyParam
.
getIds
();
...
...
@@ -203,8 +221,51 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
}
}
public
Boolean
refundCompleted
(
RefundApplyParam
refundApplyParam
)
{
return
false
;
public
ResponseDto
refundCompleted
(
RefundApplyParam
refundApplyParam
)
{
List
<
String
>
orderRefundsIdList
=
refundApplyParam
.
getIds
();
KylinOrderRefunds
refundInfo
=
kylinOrderRefundsMapper
.
selectOne
(
new
QueryWrapper
<
KylinOrderRefunds
>()
.
in
(
"order_refunds_id"
,
orderRefundsIdList
)
);
if
(
null
==
refundInfo
)
{
return
ResponseDto
.
failure
(
"退款订单查询失败"
);
}
if
(
refundInfo
.
getStatus
()
==
KylinTableStatusConst
.
ORDER_REFUND_STATUS_CANCEL
)
{
return
ResponseDto
.
failure
(
"退款订单已取消"
);
}
if
(
refundInfo
.
getStatus
()
==
KylinTableStatusConst
.
ORDER_REFUND_STATUS_REFUNDED
)
{
return
ResponseDto
.
failure
(
"退款订单已完成"
);
}
RefundCallbackParam
refundCallbackParam
=
new
RefundCallbackParam
();
refundCallbackParam
.
setRefund_code
(
refundInfo
.
getRefundCode
());
refundCallbackParam
.
setRefund_price
(
refundInfo
.
getPrice
().
doubleValue
());
refundCallbackParam
.
setRefund_type
(
"UNKNOWN"
);
refundCallbackParam
.
setRefund_id
(
refundInfo
.
getRefundId
());
refundCallbackParam
.
setRefund_at
(
DateUtils
.
dateTimeNow
());
refundCallbackParam
.
setRefund_error
(
refundInfo
.
getRefundError
());
boolean
res
=
kylinRefundsStatusServiceImpl
.
orderTicketRefunded
(
refundCallbackParam
,
refundInfo
);
if
(
res
)
{
String
authId
=
ShiroUtils
.
getUserId
().
toString
();
String
authName
=
ShiroUtils
.
getLoginName
();
KylinOrderRefunds
kylinOrderRefunds
=
new
KylinOrderRefunds
();
if
(
refundInfo
.
getAuditorId
().
isEmpty
())
{
kylinOrderRefunds
.
setAuditorAt
(
LocalDateTime
.
now
());
kylinOrderRefunds
.
setAuditorId
(
authId
);
kylinOrderRefunds
.
setAuditorName
(
authName
);
}
kylinOrderRefunds
.
setExecutorAt
(
LocalDateTime
.
now
());
kylinOrderRefunds
.
setExecutorId
(
authId
);
kylinOrderRefunds
.
setExecutorName
(
authName
);
kylinOrderRefundsMapper
.
update
(
kylinOrderRefunds
,
new
UpdateWrapper
<
KylinOrderRefunds
>().
in
(
"order_refunds_id"
,
refundInfo
.
getOrderRefundsId
())
);
return
ResponseDto
.
success
();
}
else
{
return
ResponseDto
.
failure
(
"fail"
);
}
}
public
KylinOrderRefundsVo
detail
(
String
orderRefundId
)
{
...
...
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 @
4a8d8229
...
...
@@ -12,6 +12,7 @@ import com.liquidnet.commons.lang.util.IDGenerator;
import
com.liquidnet.commons.lang.util.JsonUtils
;
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.vo.mongo.KylinOrderTicketEntitiesVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo
;
import
com.liquidnet.service.kylin.entity.KylinOrderRefunds
;
...
...
@@ -328,4 +329,96 @@ public class KylinRefundsStatusServiceImpl {
return
true
;
}
public
boolean
orderTicketRefunded
(
RefundCallbackParam
refundCallbackParam
,
KylinOrderRefunds
refundInfo
)
{
String
orderTicketEntitiesIds
=
refundInfo
.
getOrderTicketEntitiesIds
();
String
[]
orderTicketEntitiesIdsArr
=
orderTicketEntitiesIds
.
split
(
","
);
Integer
EntitiesIdsCount
=
orderTicketEntitiesIdsArr
.
length
;
String
orderTicketsId
=
refundInfo
.
getOrderTicketsId
();
// 更新数据
// 订单状态表
KylinOrderTickets
orderInfo
=
kylinOrderTicketsMapper
.
selectOne
(
new
QueryWrapper
<
KylinOrderTickets
>().
eq
(
"order_tickets_id"
,
orderTicketsId
)
);
KylinOrderTicketStatus
orderStatusTable
=
new
KylinOrderTicketStatus
();
int
newStatus
=
0
;
if
(
EntitiesIdsCount
+
orderInfo
.
getRefundNumber
()
==
orderInfo
.
getNumber
())
{
newStatus
=
KylinTableStatusConst
.
ORDER_STATUS4
;
}
else
{
newStatus
=
KylinTableStatusConst
.
ORDER_STATUS6
;
}
orderStatusTable
.
setStatus
(
newStatus
);
kylinOrderTicketStatusMapper
.
update
(
orderStatusTable
,
new
UpdateWrapper
<
KylinOrderTicketStatus
>()
.
eq
(
"order_id"
,
orderTicketsId
)
);
// 订单表
double
price
=
orderInfo
.
getPriceRefund
().
doubleValue
()
+
refundInfo
.
getPrice
().
doubleValue
();
Integer
num
=
orderInfo
.
getRefundNumber
()
+
EntitiesIdsCount
;
KylinOrderTickets
update
=
new
KylinOrderTickets
();
update
.
setRefundNumber
(
num
);
update
.
setPriceRefund
(
BigDecimal
.
valueOf
(
price
));
kylinOrderTicketsMapper
.
update
(
update
,
new
UpdateWrapper
<
KylinOrderTickets
>()
.
eq
(
"order_tickets_id"
,
orderTicketsId
)
);
KylinOrderTicketVo
kylinOrderTicketVoOrder
=
new
KylinOrderTicketVo
();
kylinOrderTicketVoOrder
.
setStatus
(
newStatus
);
kylinOrderTicketVoOrder
.
setRefundNumber
(
num
);
// kylinOrderTicketVoOrder.setPriceRefund(BigDecimal.valueOf(price));
BasicDBObject
orderEntitiesObject
=
new
BasicDBObject
(
"$set"
,
JSON
.
parse
(
JsonUtils
.
toJson
(
kylinOrderTicketVoOrder
)));
Document
docOrder
=
mongoTemplate
.
getCollection
(
KylinOrderTicketVo
.
class
.
getSimpleName
()).
findOneAndUpdate
(
Query
.
query
(
Criteria
.
where
(
"orderTicketsId"
).
is
(
orderTicketsId
)).
getQueryObject
(),
orderEntitiesObject
,
new
FindOneAndUpdateOptions
().
returnDocument
(
ReturnDocument
.
AFTER
)
);
dataUtils
.
delOrderTicketRedis
(
orderTicketsId
);
// 入场人
for
(
String
entitiesId
:
orderTicketEntitiesIdsArr
)
{
KylinOrderTicketEntities
entitiesTable
=
new
KylinOrderTicketEntities
();
// TODO: 2021/5/27 事物 and 部分退款
entitiesTable
.
setIsPayment
(
KylinTableStatusConst
.
ENTITIES_IS_PAYMENT3
);
kylinOrderTicketEntitiesMapper
.
update
(
entitiesTable
,
new
UpdateWrapper
<
KylinOrderTicketEntities
>()
.
eq
(
"order_ticket_entities_id"
,
entitiesId
)
.
eq
(
"is_payment"
,
KylinTableStatusConst
.
ENTITIES_IS_PAYMENT2
)
);
KylinOrderTicketEntitiesVo
kylinOrderTicketEntitiesVo
=
new
KylinOrderTicketEntitiesVo
();
kylinOrderTicketEntitiesVo
.
setIsPayment
(
KylinTableStatusConst
.
ENTITIES_IS_PAYMENT3
);
BasicDBObject
entitiesObject
=
new
BasicDBObject
(
"$set"
,
JSON
.
parse
(
JsonUtils
.
toJson
(
kylinOrderTicketEntitiesVo
)));
Document
entitiesDoc
=
mongoTemplate
.
getCollection
(
KylinOrderTicketEntitiesVo
.
class
.
getSimpleName
()).
findOneAndUpdate
(
Query
.
query
(
Criteria
.
where
(
"orderTicketEntitiesId"
).
is
(
entitiesId
)).
getQueryObject
(),
entitiesObject
,
new
FindOneAndUpdateOptions
().
returnDocument
(
ReturnDocument
.
AFTER
)
);
dataUtils
.
delOrderTicketEntitiesRedis
(
entitiesId
);
}
// 退款单完成
KylinOrderRefunds
kylinOrderRefunds
=
new
KylinOrderRefunds
();
kylinOrderRefunds
.
setStatus
(
KylinTableStatusConst
.
ORDER_REFUND_STATUS_REFUNDED
);
kylinOrderRefunds
.
setRefundCode
(
refundCallbackParam
.
getRefund_code
());
kylinOrderRefunds
.
setRefundType
(
refundCallbackParam
.
getRefund_type
());
kylinOrderRefunds
.
setRefundId
(
refundCallbackParam
.
getRefund_id
());
kylinOrderRefunds
.
setRefundAt
(
refundCallbackParam
.
getRefund_at
());
kylinOrderRefunds
.
setRefundError
(
refundCallbackParam
.
getRefund_error
());
kylinOrderRefundsMapper
.
update
(
kylinOrderRefunds
,
new
UpdateWrapper
<
KylinOrderRefunds
>().
in
(
"order_refunds_id"
,
refundInfo
.
getOrderRefundsId
())
);
if
(
refundInfo
.
getType
()
==
KylinTableStatusConst
.
ORDER_REFUND_TYPE_APPLY
)
{
// 退还库存
for
(
String
entitiesId
:
orderTicketEntitiesIdsArr
)
{
dataUtils
.
changeSurplusGeneral
(
entitiesId
,
1
);
}
}
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