|
@@ -9,6 +9,8 @@ import com.rongwei.rwcommon.base.R;
|
|
|
import com.rongwei.rwcommon.utils.SecurityUtil;
|
|
|
import com.rongwei.zhsw.system.dao.SwRefundRequestRecordDao;
|
|
|
import com.rongwei.zhsw.system.service.*;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -18,6 +20,8 @@ import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import com.rongwei.zhsw.system.utils.ZHSWCommonUtils;
|
|
|
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
+
|
|
|
import static com.rongwei.zhsw.system.utils.SaveConstans.billInfo.PENDINGSTATUS;
|
|
|
import static com.rongwei.zhsw.system.utils.SaveConstans.billReccord.FULLREFUNDSTATUS;
|
|
|
import static com.rongwei.zhsw.system.utils.SaveConstans.billReccord.PARTIALREFUNDSTATUS;
|
|
@@ -47,34 +51,46 @@ public class SwRefundRequestRecordServiceImpl extends ServiceImpl<SwRefundReques
|
|
|
@Autowired
|
|
|
private SwBillManagementUnpaidService swBillManagementUnpaidService;
|
|
|
|
|
|
+ private final Logger log = LoggerFactory.getLogger(this.getClass().getName());
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public R refundApplication(String id) throws Exception {
|
|
|
|
|
|
- //当前用户
|
|
|
- SysUserVo currentUser = ZHSWCommonUtils.getCurrentUser();
|
|
|
+ try {
|
|
|
+ //当前用户
|
|
|
+ SysUserVo currentUser = ZHSWCommonUtils.getCurrentUser();
|
|
|
+
|
|
|
+ //获取退款记录
|
|
|
+ SwRefundRequestRecordDO refundRequestRecordDO = swRefundRequestRecordService.getById(id);
|
|
|
+
|
|
|
+ //用户表获取
|
|
|
+ SwUserManagementDo user = swUserManagementService.getBaseMapper().
|
|
|
+ selectOne(new LambdaQueryWrapper<SwUserManagementDo>().eq(SwUserManagementDo::getUsernumber, refundRequestRecordDO.getUsernumber()));
|
|
|
|
|
|
- //获取退款记录
|
|
|
- SwRefundRequestRecordDO refundRequestRecordDO = swRefundRequestRecordService.getById(id);
|
|
|
+ //校验 退款金额
|
|
|
+ validateRefundAmount(refundRequestRecordDO,user);
|
|
|
|
|
|
- //用户表获取
|
|
|
- SwUserManagementDo user = swUserManagementService.getBaseMapper().
|
|
|
- selectOne(new LambdaQueryWrapper<SwUserManagementDo>().eq(SwUserManagementDo::getUsernumber, refundRequestRecordDO.getUsernumber()));
|
|
|
+ // 1.缴费记录表更新:
|
|
|
+ updateBillRecord(refundRequestRecordDO,currentUser);
|
|
|
|
|
|
- //校验 退款金额
|
|
|
- validateRefundAmount(refundRequestRecordDO,user);
|
|
|
+ //2. 更新退款记录
|
|
|
+ processRefund(refundRequestRecordDO, currentUser);
|
|
|
|
|
|
- // 1.缴费记录表更新:
|
|
|
- updateBillRecord(refundRequestRecordDO,currentUser);
|
|
|
+ // 已缴账单记录表更新
|
|
|
+ migratePaidBillsToUnpaid(refundRequestRecordDO);
|
|
|
|
|
|
- //2. 更新退款记录
|
|
|
- processRefund(refundRequestRecordDO, currentUser);
|
|
|
+ // 更新用户余额
|
|
|
+ updateUserBalance(refundRequestRecordDO,user);
|
|
|
+
|
|
|
+ }catch (Exception e){
|
|
|
+
|
|
|
+ log.error("退款失败 {}",e.getMessage());
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return R.error(e.getMessage());
|
|
|
+ }
|
|
|
|
|
|
- // 已缴账单记录表更新
|
|
|
- migratePaidBillsToUnpaid(refundRequestRecordDO);
|
|
|
|
|
|
- // 更新用户余额
|
|
|
- updateUserBalance(refundRequestRecordDO,user);
|
|
|
|
|
|
return R.ok();
|
|
|
}
|