|
|
|
@ -1,172 +0,0 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- 没有参加充值活动,并且,账户余额小于50元(后台可以设置),系统自动退款原路返回。
|
|
|
|
|
- 个人用户----用户充值 ---- 充电消费----余额到用户钱包,可以下次消费,如果没有参加充值送券活动,则该笔充值可以申请退款。后骒审核信息无误,可以原路退回。
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
D:\dsWork\YltProject\Ylt\ms-finance\src\main\java\com\charge\finance\controller\RecManageController.java
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
/**
|
|
|
|
|
* @param
|
|
|
|
|
* @return PageInfo<AccountRechargeListVO>
|
|
|
|
|
*/
|
|
|
|
|
@ApiOperation(value = "退款分页列表",response = AccountRechargeListVO.class)
|
|
|
|
|
@GetMapping(value = "/refundInfo")
|
|
|
|
|
public ResultVO<PageInfo<AccountRechargeListVO>> refundInfo(RechargeQueryDTO queryDTO) {
|
|
|
|
|
PageInfo<AccountRechargeListVO> refundPage = rechargeService.refundPage(queryDTO);
|
|
|
|
|
return ResultVO.success(refundPage);
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```xml
|
|
|
|
|
<select id="refundPage" resultType="com.charge.finance.vo.AccountRechargeListVO">
|
|
|
|
|
SELECT
|
|
|
|
|
ifnull( te.id, '' ) rechargeId,
|
|
|
|
|
ifnull( date_format( refund_time, '%Y-%m-%d %H:%i:%s' ), '' ) refundTime,
|
|
|
|
|
ifnull( date_format( pay_time, '%Y-%m-%d %H:%i:%s' ), '' ) payTime,
|
|
|
|
|
ifnull( refund_money, '' ) refundMoney,
|
|
|
|
|
ifnull( refund_state, '' ) refundState,
|
|
|
|
|
ifnull( pay_money, '' ) payMoney,
|
|
|
|
|
ifnull( tu.id, '' ) userId,
|
|
|
|
|
ifnull( tu.phone, '' ) phone,
|
|
|
|
|
ifnull( refund_memo, '' ) refundMemo,
|
|
|
|
|
ifnull( outtradeno, '' ) outTradeNo,
|
|
|
|
|
ifnull( refund_outtradno, '' ) refundOuttradno,
|
|
|
|
|
ifnull( refund_operer, '' ) refundOperer,
|
|
|
|
|
ifnull( pay_type, '' ) payType,
|
|
|
|
|
ifnull( tu.user_type, '' ) userType,
|
|
|
|
|
ifnull( te.refund_reason, '' ) refundReason,
|
|
|
|
|
ifnull( tu.user_name, '' ) userName,
|
|
|
|
|
ifnull( te.refund_apply_time, '' ) refundApplyTime,
|
|
|
|
|
ifnull( te.refund_image, '' ) refundImage,
|
|
|
|
|
tu.user_owner_id as userOwnerId
|
|
|
|
|
FROM
|
|
|
|
|
t_account_recharge te
|
|
|
|
|
LEFT JOIN t_user tu ON te.user_id = tu.id
|
|
|
|
|
LEFT JOIN t_user_card c ON tu.id = c.user_id
|
|
|
|
|
WHERE
|
|
|
|
|
refund_state IN ( 1, 2, 3, 4 )
|
|
|
|
|
GROUP BY te.id
|
|
|
|
|
ORDER BY te.id DESC
|
|
|
|
|
</select>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$Q$:如何知道一条充值订单是不是可以退款?
|
|
|
|
|
|
|
|
|
|
用户在申请退款时,如果这笔充值参加了活动,用户就不能选择这笔充值退款。
|
|
|
|
|
|
|
|
|
|
$refund\_state$ $6$款状态(0未退款 1已退款 2 退款失败 3退款申请审核 4未退款驳回 5建帮活动不可退款)
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
```sql
|
|
|
|
|
select * from t_account_recharge where user_id=53958 and refund_state=6 order by id desc
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```sql
|
|
|
|
|
App支付记录表 t_account_recharge
|
|
|
|
|
refund_state
|
|
|
|
|
refund_state IN ( 1, 2, 3, 4 )
|
|
|
|
|
退款状态(0未退款 1已退款 2 退款失败 3退款申请审核 4未退款驳回 5建帮活动不可退款)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```sql
|
|
|
|
|
4200002307202408129671269468
|
|
|
|
|
|
|
|
|
|
# 查看这个充值订单是不是可以退款
|
|
|
|
|
select * from t_account_recharge where outtradeno='4200002307202408129671269468'
|
|
|
|
|
refund_state =6 是参加了活动不能退款的
|
|
|
|
|
refund_state =0 是未退款的
|
|
|
|
|
应该检查此充值订单的refund_state 是否为0。
|
|
|
|
|
|
|
|
|
|
# 同时需要满足金额小于一个指定的数值,比如50元
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 其它充值订单
|
|
|
|
|
4200002345202408109427639311
|
|
|
|
|
4200002227202406207784559922
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tkMoneyFaZhi
|
|
|
|
|
|
|
|
|
|
| tkMoneyFaZhi | 退款金额阀值 | 50 |
|
|
|
|
|
| ------------ | ------------ | ---- |
|
|
|
|
|
| | | |
|
|
|
|
|
|
|
|
|
|
```sql
|
|
|
|
|
SELECT
|
|
|
|
|
ifnull( te.id, '' ) rechargeId,
|
|
|
|
|
ifnull( date_format( refund_time, '%Y-%m-%d %H:%i:%s' ), '' ) refundTime,
|
|
|
|
|
ifnull( date_format( pay_time, '%Y-%m-%d %H:%i:%s' ), '' ) payTime,
|
|
|
|
|
ifnull( refund_money, '' ) refundMoney,
|
|
|
|
|
ifnull( refund_state, '' ) refundState,
|
|
|
|
|
ifnull( pay_money, '' ) payMoney,
|
|
|
|
|
ifnull( tu.id, '' ) userId,
|
|
|
|
|
ifnull( tu.phone, '' ) phone,
|
|
|
|
|
ifnull( refund_memo, '' ) refundMemo,
|
|
|
|
|
ifnull( outtradeno, '' ) outTradeNo,
|
|
|
|
|
ifnull( refund_outtradno, '' ) refundOuttradno,
|
|
|
|
|
ifnull( refund_operer, '' ) refundOperer,
|
|
|
|
|
ifnull( pay_type, '' ) payType,
|
|
|
|
|
ifnull( tu.user_type, '' ) userType,
|
|
|
|
|
ifnull( te.refund_reason, '' ) refundReason,
|
|
|
|
|
ifnull( tu.user_name, '' ) userName,
|
|
|
|
|
ifnull( te.refund_apply_time, '' ) refundApplyTime,
|
|
|
|
|
ifnull( te.refund_image, '' ) refundImage,
|
|
|
|
|
tu.user_owner_id as userOwnerId
|
|
|
|
|
FROM
|
|
|
|
|
t_account_recharge te
|
|
|
|
|
LEFT JOIN t_user tu ON te.user_id = tu.id
|
|
|
|
|
LEFT JOIN t_user_card c ON tu.id = c.user_id
|
|
|
|
|
WHERE
|
|
|
|
|
outtradeno='4200002307202408129671269468'
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D:\dsWork\YltProject\Ylt\ms-finance\src\main\java\com\charge\finance\service\impl\RefundBalanceServiceImpl.java
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
/**
|
|
|
|
|
* 后台退款-消费平账接口
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(propagation= Propagation.REQUIRED,isolation= Isolation.DEFAULT)
|
|
|
|
|
public ResultVO operateAccount(AdminFinanceDTO adminFinanceDTO)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
-- App支付记录表
|
|
|
|
|
-- 退款状态(0未退款 1已退款 2 退款失败 3退款申请审核 4未退款驳回 5建帮活动不可退款 6活动充值)
|
|
|
|
|
select * from t_account_recharge where user_id=95001 and refund_state=0 order by id desc ;
|
|
|
|
|
|
|
|
|
|
select * from t_account_recharge where memo='充值活动充值';
|
|
|
|
|
select * from t_account_recharge where refund_state=6 and memo='充值活动充值';
|
|
|
|
|
select * from t_account_recharge where refund_state=6 and memo<>'充值活动充值';
|
|
|
|
|
|
|
|
|
|
-- 结论:
|
|
|
|
|
-- 1、看refund_state=6 ,memo不靠谱
|
|
|
|
|
-- 2、从上面的情况来看,refund_state=0的才可以进行处理
|
|
|
|
|
```
|
|
|
|
|
|