Bläddra i källkod

窗口缴费-无账单处理

huangpeng 4 månader sedan
förälder
incheckning
4a28b6532a

+ 20 - 9
zhsw-common/src/main/java/com/rongwei/zhsw/system/service/impl/SwBillingRecordServiceImpl.java

@@ -20,6 +20,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import java.math.BigDecimal;
 import java.security.SecureRandom;
@@ -69,19 +70,29 @@ public class SwBillingRecordServiceImpl extends ServiceImpl<SwBillingRecordDao,
     @Override
     @Transactional(rollbackFor = Exception.class)
     public R windowPayment(PaymentRequestDTO paymentRequestDTO) throws Exception {
-        log.info("窗口缴费开始");
 
-        if (paymentRequestDTO.getIds()==null){
+        try {
 
-            log.info("无账单缴费");
-            windowPaymentNoBill(paymentRequestDTO);
-        }else {
+            log.info("窗口缴费开始");
+
+            if (paymentRequestDTO.getIds()==null){
+
+                log.info("无账单缴费");
+                windowPaymentNoBill(paymentRequestDTO);
+            }else {
+
+                log.info("有账单缴费");
+                windowPaymentHasBill(paymentRequestDTO);
+            }
+
+            log.info("窗口缴费结束");
 
-            log.info("有账单缴费");
-            windowPaymentHasBill(paymentRequestDTO);
+        }catch (Exception e ){
+            log.error("缴费失败 {}",e.getMessage());
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return R.error(e.getMessage());
         }
 
-        log.info("窗口缴费结束");
         return R.ok();
     }
 
@@ -255,7 +266,7 @@ public class SwBillingRecordServiceImpl extends ServiceImpl<SwBillingRecordDao,
         BigDecimal totalLateFees =BigDecimal.ZERO;
 
 
-        if (!list.isEmpty()){
+        if (list!=null){
             // 使用Stream API进行汇总计算
              totalWaivers = list.stream()
                     .map(SwBillManagementUnpaidDo::getFeewaiver)

+ 33 - 17
zhsw-common/src/main/java/com/rongwei/zhsw/system/service/impl/SwRefundRequestRecordServiceImpl.java

@@ -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();
     }

+ 3 - 1
zhsw-entity/src/main/java/com/rongwe/zhsw/system/domain/SwUserManagementDo.java

@@ -1,5 +1,6 @@
 package com.rongwe.zhsw.system.domain;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.rongwei.rwcommon.base.BaseDo;
@@ -69,8 +70,9 @@ public class SwUserManagementDo extends BaseDo {
     /**
      * 册号
      */
-    private String volumeno;
 
+    @TableField("VOLUMENO")
+    private String volumeno;
     /**
      * 账户余额
      */