|
@@ -57,7 +57,9 @@ public class SwRefundRequestRecordServiceImpl extends ServiceImpl<SwRefundReques
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public R refundApplication(String id) throws Exception {
|
|
|
|
|
|
- try {
|
|
|
+ log.info("开始退款申请");
|
|
|
+
|
|
|
+
|
|
|
//当前用户
|
|
|
SysUserVo currentUser = ZHSWCommonUtils.getCurrentUser();
|
|
|
|
|
@@ -83,15 +85,6 @@ public class SwRefundRequestRecordServiceImpl extends ServiceImpl<SwRefundReques
|
|
|
// 更新用户余额
|
|
|
updateUserBalance(refundRequestRecordDO,user);
|
|
|
|
|
|
- }catch (Exception e){
|
|
|
-
|
|
|
- log.error("退款失败 {}",e.getMessage());
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return R.error(e.getMessage());
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
return R.ok();
|
|
|
}
|
|
|
|
|
@@ -125,7 +118,7 @@ public class SwRefundRequestRecordServiceImpl extends ServiceImpl<SwRefundReques
|
|
|
* @return
|
|
|
*/
|
|
|
private BigDecimal calculateBalanceChange(SwRefundRequestRecordDO refundRequest) {
|
|
|
- if (REFUNDMETHODALL.equals(refundRequest.getRefundmethod())) {
|
|
|
+ if (REFUNDMETHODALL.equals(refundRequest.getRefundtype())) {
|
|
|
return refundRequest.getBalancededuction();
|
|
|
}
|
|
|
return refundRequest.getRefundamount().negate();
|
|
@@ -137,7 +130,7 @@ public class SwRefundRequestRecordServiceImpl extends ServiceImpl<SwRefundReques
|
|
|
* @param user
|
|
|
*/
|
|
|
private void validateRefundAmount(SwRefundRequestRecordDO refundRequestRecordDO, SwUserManagementDo user) {
|
|
|
- if (REFUNDMETHODBALANCE.equals(refundRequestRecordDO.getRefundmethod())) {
|
|
|
+ if (REFUNDMETHODBALANCE.equals(refundRequestRecordDO.getRefundtype())) {
|
|
|
if (refundRequestRecordDO.getRefundamount().compareTo(user.getAccountbalance()) > 0) {
|
|
|
throw new IllegalArgumentException("本次退款月不足,无法退款");
|
|
|
}
|
|
@@ -150,7 +143,7 @@ public class SwRefundRequestRecordServiceImpl extends ServiceImpl<SwRefundReques
|
|
|
* @param
|
|
|
*/
|
|
|
private void migratePaidBillsToUnpaid(SwRefundRequestRecordDO swRefundRequestRecordDO) {
|
|
|
- if (swRefundRequestRecordDO.getRefundmethod().equals(REFUNDMETHODALL)){
|
|
|
+ if (swRefundRequestRecordDO.getRefundtype().equals(REFUNDMETHODALL)){
|
|
|
|
|
|
List<SwBillManagementPaidDo> paidBills = swBillManagementPaidService.list(new LambdaQueryWrapper<SwBillManagementPaidDo>()
|
|
|
.eq(SwBillManagementPaidDo::getPaymentrecordid,swRefundRequestRecordDO.getPaymentrecordid())
|
|
@@ -159,11 +152,12 @@ public class SwRefundRequestRecordServiceImpl extends ServiceImpl<SwRefundReques
|
|
|
if (!paidBills.isEmpty()){
|
|
|
List<SwBillManagementUnpaidDo> unpaidDoList =new ArrayList<>();
|
|
|
List<String> paidIds =new ArrayList<>();
|
|
|
+ SwBillManagementUnpaidDo unpaidBill;
|
|
|
for (SwBillManagementPaidDo paidDo : paidBills){
|
|
|
// 已缴账单记录
|
|
|
paidIds.add(paidDo.getId());
|
|
|
//预收账单记录
|
|
|
- SwBillManagementUnpaidDo unpaidBill = new SwBillManagementUnpaidDo();
|
|
|
+ unpaidBill = new SwBillManagementUnpaidDo();
|
|
|
BeanUtils.copyProperties(paidDo,unpaidBill);
|
|
|
unpaidBill.setId(SecurityUtil.getUUID());
|
|
|
unpaidBill.setStatus(PENDINGSTATUS);
|
|
@@ -195,12 +189,13 @@ public class SwRefundRequestRecordServiceImpl extends ServiceImpl<SwRefundReques
|
|
|
swBillingRecordUpdateDo.setRefundoperatorname(currentUser.getName());
|
|
|
swBillingRecordUpdateDo.setRefundamount(refundRequestRecordDO.getRefundamount());
|
|
|
|
|
|
+
|
|
|
//全额退款 系统需要同时缴费记录的缴费 状态 更新为 “全部退款” 状态,【本次实缴-整数】更新为 0,【缴费后余额】更新为 0
|
|
|
- if (refundRequestRecordDO.getRefundmethod().equals(REFUNDMETHODALL)){
|
|
|
+ if (refundRequestRecordDO.getRefundtype().equals(REFUNDMETHODALL)){
|
|
|
swBillingRecordUpdateDo.setPayfeesstatus(FULLREFUNDSTATUS);
|
|
|
swBillingRecordUpdateDo.setPaidin(BigDecimal.ZERO);
|
|
|
swBillingRecordUpdateDo.setAfterpaymentbalance(BigDecimal.ZERO);
|
|
|
- } else if (refundRequestRecordDO.getRefundmethod().equals(REFUNDMETHODBALANCE)) {
|
|
|
+ } else if (refundRequestRecordDO.getRefundtype().equals(REFUNDMETHODBALANCE)) {
|
|
|
//差额退款 ,同时缴费记录的缴费 状态 更新为 “部分退款” 状态,【缴费金额-整数】更新为【原缴费金额-整数】-【退款金额】【缴费后余额】更新为【原实缴后余额】-【退款金额】 ,
|
|
|
swBillingRecordUpdateDo.setPayfeesstatus(PARTIALREFUNDSTATUS);
|
|
|
SwBillingRecordDo recordDO = swBillingRecordService.getById(refundRequestRecordDO.getPaymentrecordid());
|