You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

159 lines
5.1 KiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

- 没有参加充值活动并且账户余额小于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建帮活动不可退款
![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202408151410729.png)
```sql
select * from t_account_recharge where user_id=53958 and refund_state=6 order by id desc
```
![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202408151401314.png)
```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)
```