- 没有参加充值活动,并且,账户余额小于50元(后台可以设置),系统自动退款原路返回。 - 个人用户----用户充值 ---- 充电消费----余额到用户钱包,可以下次消费,如果没有参加充值送券活动,则该笔充值可以申请退款。后骒审核信息无误,可以原路退回。 ``` D:\dsWork\YltProject\Ylt\ms-finance\src\main\java\com\charge\finance\controller\RecManageController.java ``` ```java /** * @param * @return PageInfo */ @ApiOperation(value = "退款分页列表",response = AccountRechargeListVO.class) @GetMapping(value = "/refundInfo") public ResultVO> refundInfo(RechargeQueryDTO queryDTO) { PageInfo refundPage = rechargeService.refundPage(queryDTO); return ResultVO.success(refundPage); } ``` ```xml ``` $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) ```