记得上下班打卡 | 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
d96ecf79
Commit
d96ecf79
authored
Sep 07, 2021
by
张国柄
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
会员退款申请API逻辑完善;
parent
210cde2e
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
175 additions
and
11 deletions
+175
-11
AdamMemberOrderRefundParam.java
...et/service/adam/dto/admin/AdamMemberOrderRefundParam.java
+1
-1
AdamMemberOrderAdminController.java
...troller/zhengzai/adam/AdamMemberOrderAdminController.java
+6
-3
IAdamMemberOrderAdminService.java
...n/zhengzai/adam/service/IAdamMemberOrderAdminService.java
+2
-1
AdamMemberOrderAdminServiceImpl.java
...ai/adam/service/impl/AdamMemberOrderAdminServiceImpl.java
+58
-3
AdamMemberOrder.java
...va/com/liquidnet/service/adam/entity/AdamMemberOrder.java
+1
-1
AdamMemberRefund.java
...a/com/liquidnet/service/adam/entity/AdamMemberRefund.java
+85
-0
AdamMemberRefundMapper.java
...liquidnet/service/adam/mapper/AdamMemberRefundMapper.java
+16
-0
AdamMemberRefundMapper.xml
.../liquidnet/service/adam/mapper/AdamMemberRefundMapper.xml
+5
-0
db_ln_adam_initialdata.sql
...quidnet-service-adam-impl/docu/db_ln_adam_initialdata.sql
+1
-2
No files found.
liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/dto/admin/AdamMemberOrderRefundParam.java
View file @
d96ecf79
...
...
@@ -23,7 +23,7 @@ public class AdamMemberOrderRefundParam implements Serializable {
private
BigDecimal
refundAmt
;
@NotNull
(
message
=
"请选择是否能继续购买会员"
)
@ApiModelProperty
(
required
=
true
,
value
=
"是否能继续购买会员[1-是|2-否]"
)
private
Integer
buyMark
;
private
Integer
renewable
;
@NotBlank
(
message
=
"请输入退款原因"
)
@ApiModelProperty
(
required
=
true
,
value
=
"退款原因"
)
private
String
reason
;
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/java/com/liquidnet/client/admin/web/controller/zhengzai/adam/AdamMemberOrderAdminController.java
View file @
d96ecf79
...
...
@@ -74,12 +74,15 @@ public class AdamMemberOrderAdminController extends BaseController {
AdamMemberOrder
memberOrder
=
adamMemberOrderAdminService
.
getOne
(
queryWrapper
);
if
(
null
==
memberOrder
)
{
return
this
.
error
(
"订单不存在"
);
return
AjaxResult
.
warn
(
"订单不存在"
);
}
if
(
memberOrder
.
getState
()
!=
1
)
{
return
AjaxResult
.
warn
(
String
.
format
(
"该订单[%s]不支持退款,请核实订单状态"
,
parameter
.
getOrderNo
()));
}
if
(
memberOrder
.
getPricePaid
().
compareTo
(
parameter
.
getRefundAmt
())
<
0
)
{
return
this
.
error
(
"退款金额超出订单实际支付金额"
);
return
AjaxResult
.
warn
(
"退款金额超出订单实际支付金额"
);
}
return
this
.
toAjax
(
adamMemberOrderAdminService
.
refundProcessing
(
parameter
,
memberOrder
)
);
return
adamMemberOrderAdminService
.
refundProcessing
(
parameter
,
memberOrder
);
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/adam/service/IAdamMemberOrderAdminService.java
View file @
d96ecf79
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
adam
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.liquidnet.client.admin.common.core.domain.AjaxResult
;
import
com.liquidnet.service.adam.dto.MemberOrderDto
;
import
com.liquidnet.service.adam.dto.admin.AdamMemberOrderRefundParam
;
import
com.liquidnet.service.adam.dto.admin.MemberOrderListReq
;
...
...
@@ -24,5 +25,5 @@ public interface IAdamMemberOrderAdminService extends IService<AdamMemberOrder>
MemberOrderDetailAdminVo
getMemberOrderDetail
(
String
orderNo
);
boolean
refundProcessing
(
AdamMemberOrderRefundParam
param
,
AdamMemberOrder
memberOrder
);
AjaxResult
refundProcessing
(
AdamMemberOrderRefundParam
param
,
AdamMemberOrder
memberOrder
);
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/adam/service/impl/AdamMemberOrderAdminServiceImpl.java
View file @
d96ecf79
...
...
@@ -3,9 +3,16 @@ package com.liquidnet.client.admin.zhengzai.adam.service.impl;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.fasterxml.jackson.databind.JsonNode
;
import
com.liquidnet.client.admin.common.core.domain.AjaxResult
;
import
com.liquidnet.client.admin.common.utils.ShiroUtils
;
import
com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberOrderAdminService
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.util.BeanUtil
;
import
com.liquidnet.commons.lang.util.HttpUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.adam.constant.AdamRedisConst
;
import
com.liquidnet.service.adam.dto.MemberOrderDto
;
import
com.liquidnet.service.adam.dto.admin.AdamMemberOrderRefundParam
;
import
com.liquidnet.service.adam.dto.admin.MemberOrderListReq
;
...
...
@@ -16,6 +23,7 @@ import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import
com.liquidnet.service.adam.dto.vo.admin.MemberOrderDetailAdminVo
;
import
com.liquidnet.service.adam.entity.*
;
import
com.liquidnet.service.adam.mapper.*
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
...
...
@@ -24,9 +32,12 @@ import org.springframework.util.LinkedMultiValueMap;
import
java.beans.IntrospectionException
;
import
java.lang.reflect.InvocationTargetException
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.IntStream
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
...
...
@@ -37,6 +48,7 @@ import java.util.Map;
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/6/6 16:25
*/
@Slf4j
@Service
public
class
AdamMemberOrderAdminServiceImpl
extends
ServiceImpl
<
AdamMemberOrderMapper
,
AdamMemberOrder
>
implements
IAdamMemberOrderAdminService
{
@Autowired
...
...
@@ -49,6 +61,11 @@ public class AdamMemberOrderAdminServiceImpl extends ServiceImpl<AdamMemberOrder
private
AdamUserMapper
adamUserMapper
;
@Autowired
private
AdamMemberOrderExtMapper
adamMemberOrderExtMapper
;
@Autowired
private
AdamMemberRefundMapper
adamMemberRefundMapper
;
@Autowired
private
RedisUtil
redisUtil
;
@Value
(
"${liquidnet.url-refund.apply}"
)
private
String
applyUrl
;
...
...
@@ -111,7 +128,7 @@ public class AdamMemberOrderAdminServiceImpl extends ServiceImpl<AdamMemberOrder
@Override
@Transactional
public
boolean
refundProcessing
(
AdamMemberOrderRefundParam
param
,
AdamMemberOrder
memberOrder
)
{
public
AjaxResult
refundProcessing
(
AdamMemberOrderRefundParam
param
,
AdamMemberOrder
memberOrder
)
{
LinkedMultiValueMap
<
String
,
String
>
linkedMultiValueMap
=
new
LinkedMultiValueMap
<>();
linkedMultiValueMap
.
add
(
"code"
,
memberOrder
.
getPayNo
());
...
...
@@ -124,10 +141,48 @@ public class AdamMemberOrderAdminServiceImpl extends ServiceImpl<AdamMemberOrder
linkedMultiValueMap
.
add
(
"priceTotal"
,
String
.
valueOf
(
memberOrder
.
getPricePaid
()));
linkedMultiValueMap
.
add
(
"reason"
,
param
.
getReason
());
// String postResult = HttpUtil.post(applyUrl, linkedMultiValueMap);
log
.
info
(
"会员退款:支付中心请求参数:{}"
,
linkedMultiValueMap
);
String
postResult
=
HttpUtil
.
post
(
applyUrl
,
linkedMultiValueMap
);
log
.
info
(
"会员退款:支付中心返回数据:{}"
,
postResult
);
JsonNode
postResultJNode
=
JsonUtils
.
fromJson
(
postResult
,
JsonNode
.
class
);
if
(!
postResultJNode
.
get
(
"success"
).
asBoolean
())
{
return
AjaxResult
.
warn
(
"会员退款请求支付中心失败"
);
}
// 退款请求成功,修改订单状态,同步REDIS
LocalDateTime
now
=
LocalDateTime
.
now
();
AdamMemberRefund
memberRefund
=
new
AdamMemberRefund
();
memberRefund
.
setRefundNo
(
IDGenerator
.
nextTimeId2
().
concat
(
"VR"
));
memberRefund
.
setOrderNo
(
memberOrder
.
getOrderNo
());
memberRefund
.
setRefundPrice
(
param
.
getRefundAmt
());
memberRefund
.
setRefundReason
(
param
.
getReason
());
memberRefund
.
setRenewable
(
param
.
getRenewable
());
memberRefund
.
setRefundState
(
0
);
memberRefund
.
setRefundNo
(
postResultJNode
.
get
(
"refundCode"
).
asText
());
memberRefund
.
setOperator
(
ShiroUtils
.
getLoginName
());
memberRefund
.
setCreatedAt
(
now
);
adamMemberRefundMapper
.
insert
(
memberRefund
);
AdamMemberOrder
updateInfoMemberOrder
=
new
AdamMemberOrder
();
updateInfoMemberOrder
.
setMid
(
memberOrder
.
getMid
());
updateInfoMemberOrder
.
setState
(
4
);
updateInfoMemberOrder
.
setUpdatedAt
(
now
);
adamMemberOrderMapper
.
updateById
(
updateInfoMemberOrder
);
String
moKey
=
AdamRedisConst
.
INFO_MEMBER_ORDER
+
memberOrder
.
getUid
();
ArrayList
<
AdamMemberOrderVo
>
vos
=
(
ArrayList
<
AdamMemberOrderVo
>)
redisUtil
.
get
(
moKey
);
int
idx
=
IntStream
.
range
(
0
,
vos
.
size
())
.
filter
(
i
->
vos
.
get
(
i
).
getOrderNo
().
equals
(
memberOrder
.
getOrderNo
()))
.
findFirst
().
orElse
(-
1
);
AdamMemberOrderVo
vo
=
vos
.
get
(
idx
);
vo
.
setState
(
4
);
vo
.
setUpdatedAt
(
now
);
vos
.
set
(
idx
,
vo
);
redisUtil
.
set
(
moKey
,
vos
);
return
true
;
return
AjaxResult
.
success
()
;
}
}
liquidnet-bus-do/liquidnet-service-adam-do/src/main/java/com/liquidnet/service/adam/entity/AdamMemberOrder.java
View file @
d96ecf79
...
...
@@ -55,7 +55,7 @@ public class AdamMemberOrder implements Serializable {
*/
private
Integer
days
;
/**
* 订单状态:0
未支付 1已支付 2已超时 5
已退款
* 订单状态:0
-未支付,1-已支付,2-已关闭,3-超时付,4-退款中,5-
已退款
*/
private
Integer
state
;
/**
...
...
liquidnet-bus-do/liquidnet-service-adam-do/src/main/java/com/liquidnet/service/adam/entity/AdamMemberRefund.java
0 → 100644
View file @
d96ecf79
package
com
.
liquidnet
.
service
.
adam
.
entity
;
import
java.math.BigDecimal
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
java.time.LocalDateTime
;
import
java.io.Serializable
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* <p>
* 会员退款
* </p>
*
* @author liquidnet
* @since 2021-09-07
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
AdamMemberRefund
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
value
=
"mid"
,
type
=
IdType
.
AUTO
)
private
Long
mid
;
/**
* 退款请求编号
*/
private
String
refundNo
;
/**
* 对应支付中心order_code
*/
private
String
orderNo
;
/**
* 退款金额
*/
private
BigDecimal
refundPrice
;
/**
* 退款描述
*/
private
String
refundReason
;
/**
* 继续购买[1-可以|2-不可]
*/
private
Integer
renewable
;
/**
* 退款状态[0-发起退款|1-已退款|2-关闭|3-退款失败|9-退款中]
*/
private
Integer
refundState
;
/**
* 支付中心退款编号
*/
private
String
repayNo
;
/**
* 支付中心退款描述
*/
private
String
repayReason
;
/**
* 操作人
*/
private
String
operator
;
private
LocalDateTime
createdAt
;
private
LocalDateTime
updatedAt
;
/**
* 完成时间
*/
private
LocalDateTime
completeAt
;
private
String
comment
;
}
liquidnet-bus-do/liquidnet-service-adam-do/src/main/java/com/liquidnet/service/adam/mapper/AdamMemberRefundMapper.java
0 → 100644
View file @
d96ecf79
package
com
.
liquidnet
.
service
.
adam
.
mapper
;
import
com.liquidnet.service.adam.entity.AdamMemberRefund
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* <p>
* 会员退款 Mapper 接口
* </p>
*
* @author liquidnet
* @since 2021-09-07
*/
public
interface
AdamMemberRefundMapper
extends
BaseMapper
<
AdamMemberRefund
>
{
}
liquidnet-bus-do/liquidnet-service-adam-do/src/main/resources/com/liquidnet/service/adam/mapper/AdamMemberRefundMapper.xml
0 → 100644
View file @
d96ecf79
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.liquidnet.service.adam.mapper.AdamMemberRefundMapper"
>
</mapper>
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/docu/db_ln_adam_initialdata.sql
View file @
d96ecf79
...
...
@@ -367,7 +367,6 @@ alter table adam_member_order add payment_id varchar(64) null comment '支付中
alter
table
adam_member_order
add
area
varchar
(
100
)
null
comment
'地区'
after
birthday
;
#
会员退款
drop
table
if
exists
adam_member_refund
;
create
table
adam_member_refund
...
...
@@ -379,7 +378,7 @@ create table adam_member_refund
refund_price
decimal
(
8
,
2
)
comment
'退款金额'
,
refund_reason
varchar
(
200
)
comment
'退款描述'
,
renewable
tinyint
comment
'继续购买[1-可以|2-不可]'
,
refund_state
tinyint
comment
'退款状态[0-发起退款|1-已退款|2-
取消退款
|3-退款失败|9-退款中]'
,
refund_state
tinyint
comment
'退款状态[0-发起退款|1-已退款|2-
关闭
|3-退款失败|9-退款中]'
,
#
payment_type
varchar
(
30
)
comment
'支付渠道(即UPPER(CONCAT(device_from,pay_type)))'
,
repay_no
varchar
(
64
)
comment
'支付中心退款编号'
,
...
...
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