瀏覽代碼

接口抛异常处理

huangpeng 4 月之前
父節點
當前提交
a4b64842c2

+ 0 - 1
zhsw-common/src/main/java/com/rongwei/zhsw/system/service/SwBillManagementUnpaidService.java

@@ -23,5 +23,4 @@ public interface SwBillManagementUnpaidService extends IService<SwBillManagement
     R transferAccount(Map<String, Object> map) throws Exception;
 
 
-    void saveProcessedData(TransferAccountDo transferAccountDo);
 }

+ 2 - 2
zhsw-common/src/main/java/com/rongwei/zhsw/system/service/SwBillingRecordService.java

@@ -19,7 +19,7 @@ import java.util.List;
 public interface SwBillingRecordService extends IService<SwBillingRecordDo> {
 
 
-    R windowPayment(PaymentRequestDTO paymentRequestDTO) throws Exception;
+    R windowPayment(PaymentRequestDTO paymentRequestDTO);
+
 
-    void saveProcessedData(SwBillingRecordDo add, SwUserManagementDo user, List<SwBillManagementPaidDo> bills, List<String> ids);
 }

+ 1 - 2
zhsw-common/src/main/java/com/rongwei/zhsw/system/service/SwRefundRequestRecordService.java

@@ -2,7 +2,6 @@ package com.rongwei.zhsw.system.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.rongwe.zhsw.system.domain.SwRefundRequestRecordDO;
-import com.rongwe.zhsw.system.dto.RefundApplicationDTO;
 import com.rongwei.rwcommon.base.R;
 
 
@@ -15,5 +14,5 @@ import com.rongwei.rwcommon.base.R;
 public interface SwRefundRequestRecordService  extends IService<SwRefundRequestRecordDO> {
 
 
-    R refundApplication( String id) throws Exception;
+    R refundApplication( String id);
 }

+ 76 - 72
zhsw-common/src/main/java/com/rongwei/zhsw/system/service/impl/SwBillManagementUnpaidServiceImpl.java

@@ -71,71 +71,75 @@ public class SwBillManagementUnpaidServiceImpl extends ServiceImpl<SwBillManagem
      * 2、将 对应用户表中 对应的【最近抄表读数】进行更新
      * 3、将 对应的这笔账单的 相关计费信息更新
      *
-     * @param meterReadId
-     * @param billId
-     * @param thisMeterReading
      * @return
      */
     @Override
-    @Transactional(rollbackFor = Exception.class)
+    @Transactional
     public R meterReadingCorrection(MeterReadingCorrectionDTO dto) {
 
-        String meterReadId = dto.getMeterReadId();
-        String billId = dto.getBillId();
-        BigDecimal thisMeterReading = dto.getThisMeterReading();
-
-        //当前用户
-        SysUserVo currentUser = ZHSWCommonUtils.getCurrentUser();
+        try {
 
-        //1. 更新抄表数据
-        SwWaterUsageEntryDo swWaterUsageEntryDo = swWaterUsageEntryService.getBaseMapper().selectById(meterReadId);
-
-        BigDecimal oldreading = swWaterUsageEntryDo.getThisreading();
-        SwWaterUsageEntryDo waterUsageUpdateDo= new SwWaterUsageEntryDo();
-        waterUsageUpdateDo.setId(swWaterUsageEntryDo.getId());
-        waterUsageUpdateDo.setThisreading(thisMeterReading);
-        waterUsageUpdateDo.setModifyuserid(currentUser.getId());
-        waterUsageUpdateDo.setModifyusername(currentUser.getName());
-        waterUsageUpdateDo.setModifydate(new Date());
-        swWaterUsageEntryService.updateById(waterUsageUpdateDo);
-
-        //2. 根据抄表户号查询用户修改最近读表数
-        SwUserManagementDo swUserManagement = swUserManagementService.getBaseMapper()
-                .selectOne(new LambdaQueryWrapper<SwUserManagementDo>()
-                .eq(SwUserManagementDo::getUsernumber, swWaterUsageEntryDo.getUsernumber()));
-        SwUserManagementDo updateDo= new SwUserManagementDo();
-        updateDo.setLastmeterreading(thisMeterReading);
-        updateDo.setModifyuserid(currentUser.getId());
-        updateDo.setModifyusername(currentUser.getName());
-        updateDo.setModifydate(new Date());
-        updateDo.setId(swUserManagement.getId());
-        swUserManagementService.updateById(updateDo);
-
-        //更新账户表
-        SwBillManagementUnpaidDo unpaidDo = swBillManagementUnpaidService.getBaseMapper().selectById(billId);
-        //【当期用水量】=【更新后本次抄表数】-【上次抄表数】
-        BigDecimal currentUsing = thisMeterReading.subtract(unpaidDo.getLastmeterreading() == null ? BigDecimal.ZERO : unpaidDo.getLastmeterreading());
-        swBillManagementUnpaidService.update(new LambdaUpdateWrapper<SwBillManagementUnpaidDo>()
-                .eq(SwBillManagementUnpaidDo::getId,billId)
-                .set(SwBillManagementUnpaidDo::getThismeterreading,thisMeterReading)
-                .set(SwBillManagementUnpaidDo::getCurrentwateruse,currentUsing)
-                .set(SwBillManagementUnpaidDo::getOughttohavepaid,unpaidDo.getUnitprice().multiply(currentUsing))
-                .set(SwBillManagementUnpaidDo::getMeterreadingcorrectionstatus,HAVEREVISEDSTATUS)
-                .set(BaseDo::getModifyuserid,currentUser.getId())
-                .set(BaseDo::getModifyusername,currentUser.getName())
-                .set(BaseDo::getModifydate,new Date()));
-
-        //生成新的抄表修正记录
-        SwMeterReadingCorrectionDo swMeterReadingCorrectionDo = new SwMeterReadingCorrectionDo();
-        swMeterReadingCorrectionDo.setId(SecurityUtil.getUUID())
-                .setUsername(swWaterUsageEntryDo.getUsername())
-                .setUsernumber(swWaterUsageEntryDo.getUsernumber())
-                .setLastreading(oldreading)
-                .setThisreading(thisMeterReading)
-                .setBillid(billId)
-                .setMeterreading(swWaterUsageEntryDo.getId())
-                .setModifyuserid(currentUser.getId()).setModifyusername(currentUser.getName()).setModifydate(new Date());
-        swMeterReadingCorrectionService.getBaseMapper().insert(swMeterReadingCorrectionDo);
+            String meterReadId = dto.getMeterReadId();
+            String billId = dto.getBillId();
+            BigDecimal thisMeterReading = dto.getThisMeterReading();
+
+            //当前用户
+            SysUserVo currentUser = ZHSWCommonUtils.getCurrentUser();
+
+            //1. 更新抄表数据
+            SwWaterUsageEntryDo swWaterUsageEntryDo = swWaterUsageEntryService.getBaseMapper().selectById(meterReadId);
+
+            BigDecimal oldreading = swWaterUsageEntryDo.getThisreading();
+            SwWaterUsageEntryDo waterUsageUpdateDo= new SwWaterUsageEntryDo();
+            waterUsageUpdateDo.setId(swWaterUsageEntryDo.getId());
+            waterUsageUpdateDo.setThisreading(thisMeterReading);
+            waterUsageUpdateDo.setModifyuserid(currentUser.getId());
+            waterUsageUpdateDo.setModifyusername(currentUser.getName());
+            waterUsageUpdateDo.setModifydate(new Date());
+            swWaterUsageEntryService.updateById(waterUsageUpdateDo);
+
+            //2. 根据抄表户号查询用户修改最近读表数
+            SwUserManagementDo swUserManagement = swUserManagementService.getBaseMapper()
+                    .selectOne(new LambdaQueryWrapper<SwUserManagementDo>()
+                            .eq(SwUserManagementDo::getUsernumber, swWaterUsageEntryDo.getUsernumber()));
+            SwUserManagementDo updateDo= new SwUserManagementDo();
+            updateDo.setLastmeterreading(thisMeterReading);
+            updateDo.setModifyuserid(currentUser.getId());
+            updateDo.setModifyusername(currentUser.getName());
+            updateDo.setModifydate(new Date());
+            updateDo.setId(swUserManagement.getId());
+            swUserManagementService.updateById(updateDo);
+
+            //更新账户表
+            SwBillManagementUnpaidDo unpaidDo = swBillManagementUnpaidService.getBaseMapper().selectById(billId);
+            //【当期用水量】=【更新后本次抄表数】-【上次抄表数】
+            BigDecimal currentUsing = thisMeterReading.subtract(unpaidDo.getLastmeterreading() == null ? BigDecimal.ZERO : unpaidDo.getLastmeterreading());
+            swBillManagementUnpaidService.update(new LambdaUpdateWrapper<SwBillManagementUnpaidDo>()
+                    .eq(SwBillManagementUnpaidDo::getId,billId)
+                    .set(SwBillManagementUnpaidDo::getThismeterreading,thisMeterReading)
+                    .set(SwBillManagementUnpaidDo::getCurrentwateruse,currentUsing)
+                    .set(SwBillManagementUnpaidDo::getOughttohavepaid,unpaidDo.getUnitprice().multiply(currentUsing))
+                    .set(SwBillManagementUnpaidDo::getMeterreadingcorrectionstatus,HAVEREVISEDSTATUS)
+                    .set(BaseDo::getModifyuserid,currentUser.getId())
+                    .set(BaseDo::getModifyusername,currentUser.getName())
+                    .set(BaseDo::getModifydate,new Date()));
+
+            //生成新的抄表修正记录
+            SwMeterReadingCorrectionDo swMeterReadingCorrectionDo = new SwMeterReadingCorrectionDo();
+            swMeterReadingCorrectionDo.setId(SecurityUtil.getUUID())
+                    .setUsername(swWaterUsageEntryDo.getUsername())
+                    .setUsernumber(swWaterUsageEntryDo.getUsernumber())
+                    .setLastreading(oldreading)
+                    .setThisreading(thisMeterReading)
+                    .setBillid(billId)
+                    .setMeterreading(swWaterUsageEntryDo.getId())
+                    .setModifyuserid(currentUser.getId()).setModifyusername(currentUser.getName()).setModifydate(new Date());
+            swMeterReadingCorrectionService.getBaseMapper().insert(swMeterReadingCorrectionDo);
+
+        } catch (Exception e) {
+            log.error("抄表修正失败 {}",e.getMessage());
+            return R.error("抄表修正失败");
+        }
 
         return R.ok();
     }
@@ -146,26 +150,27 @@ public class SwBillManagementUnpaidServiceImpl extends ServiceImpl<SwBillManagem
      * @return
      */
     @Override
+    @Transactional
     public R transferAccount(Map<String, Object> map) throws Exception {
         try {
 
-        //获取账单数据 已根据户号 分组 创建时间正序
-        Map<String, List<SwBillManagementUnpaidDo>> billGroups = getGroupedBills(map);
+            //获取账单数据 已根据户号 分组 创建时间正序
+            Map<String, List<SwBillManagementUnpaidDo>> billGroups = getGroupedBills(map);
 
-        // 获取用户信息映射(按户号分组)
-        Map<String, List<SwUserManagementDo>> userGroups = getUserGroups(billGroups.keySet());
+            // 获取用户信息映射(按户号分组)
+            Map<String, List<SwUserManagementDo>> userGroups = getUserGroups(billGroups.keySet());
 
-        TransferAccountDo transferAccountDo = new TransferAccountDo();
+            TransferAccountDo transferAccountDo = new TransferAccountDo();
 
-        // 处理每个户号的账单数据
-        billGroups.keySet().forEach(key -> processUserBills(billGroups.get(key), userGroups.get(key).get(0), transferAccountDo));
+            // 处理每个户号的账单数据
+            billGroups.keySet().forEach(key -> processUserBills(billGroups.get(key), userGroups.get(key).get(0), transferAccountDo));
 
-        // 保存处理结果
+            // 保存处理结果
+            saveProcessedData(transferAccountDo);
 
-            swBillManagementUnpaidService.saveProcessedData(transferAccountDo);
         }catch (Exception e){
             log.error("转正式账单数据保存失败 {}",e.getMessage());
-            throw new Exception(e.getMessage());
+            return R.error("转正式账单数据保存失败");
         }
 
         return R.ok();
@@ -224,7 +229,7 @@ public class SwBillManagementUnpaidServiceImpl extends ServiceImpl<SwBillManagem
 
 
 
-    /**
+     /**
      * //计算用户余额是否充足 直接生成缴费记录
      *
      * @param swBillManagementUnpaidDos
@@ -344,8 +349,7 @@ public class SwBillManagementUnpaidServiceImpl extends ServiceImpl<SwBillManagem
      * 保存数据
      * @param transferAccountDo
      */
-    @Transactional(rollbackFor = Exception.class)
-    @Override
+
     public void saveProcessedData(TransferAccountDo transferAccountDo) {
 
         //转正式账单生成

+ 24 - 29
zhsw-common/src/main/java/com/rongwei/zhsw/system/service/impl/SwBillingRecordServiceImpl.java

@@ -45,9 +45,6 @@ import static com.rongwei.zhsw.system.utils.SaveConstans.billReccord.PAIDSTATUS;
 public class SwBillingRecordServiceImpl extends ServiceImpl<SwBillingRecordDao, SwBillingRecordDo> implements SwBillingRecordService {
 
 
-    @Autowired
-    private SwBillingRecordService swBillingRecordService;
-
     @Autowired
     private SwBillManagementPaidService swBillManagementPaidService;
 
@@ -72,24 +69,31 @@ public class SwBillingRecordServiceImpl extends ServiceImpl<SwBillingRecordDao,
      * @throws Exception
      */
     @Override
-    @Transactional(rollbackFor = Exception.class)
-    public R windowPayment(PaymentRequestDTO paymentRequestDTO) throws Exception {
+    @Transactional
+    public R windowPayment(PaymentRequestDTO paymentRequestDTO)  {
 
-        log.info("窗口缴费开始");
-        if (paymentRequestDTO.getIds() != null && !paymentRequestDTO.getIds().isEmpty()) {
+        try {
+            log.info("窗口缴费开始");
+            if (paymentRequestDTO.getIds() != null && !paymentRequestDTO.getIds().isEmpty()) {
 
-            // 查询待缴费账单
-            List<SwBillManagementUnpaidDo> unpaidBills = queryUnpaidBills(paymentRequestDTO.getIds());
+                // 查询待缴费账单
+                List<SwBillManagementUnpaidDo> unpaidBills = queryUnpaidBills(paymentRequestDTO.getIds());
 
-            //生成缴费记录
-            addNewBillRecord(paymentRequestDTO, unpaidBills);
-        } else {
+                //生成缴费记录
+                addNewBillRecord(paymentRequestDTO, unpaidBills);
 
-            //生成缴费记录
-            addNewBillRecord(paymentRequestDTO, null);
-        }
+            } else {
+
+                //生成缴费记录
+                addNewBillRecord(paymentRequestDTO, null);
+            }
 
-        log.info("窗口缴费结束");
+            log.info("窗口缴费结束");
+
+        }catch (Exception e){
+            log.error("窗口缴费失败 {}",e.getMessage());
+            return R.error("窗口缴费失败");
+        }
 
         return R.ok();
     }
@@ -152,12 +156,9 @@ public class SwBillingRecordServiceImpl extends ServiceImpl<SwBillingRecordDao,
     /**
      * 生成新的缴费账单
      *
-     * @param paidin
-     * @param datasource
-     * @param paymentRequestDTO
-     * @param unpaidBills
      */
-    private void addNewBillRecord(PaymentRequestDTO paymentRequestDTO, List<SwBillManagementUnpaidDo> list) throws Exception {
+    private void addNewBillRecord(PaymentRequestDTO paymentRequestDTO, List<SwBillManagementUnpaidDo> list)
+    {
 
         SysUserVo currentUser = ZHSWCommonUtils.getCurrentUser();
 
@@ -187,12 +188,7 @@ public class SwBillingRecordServiceImpl extends ServiceImpl<SwBillingRecordDao,
         }
 
         // 保存处理结果
-        try {
-            swBillingRecordService.saveProcessedData(add, user, bills, paymentRequestDTO.getIds());
-        } catch (Exception e) {
-            log.error("生成缴费记录 失败 {}", e.getMessage());
-            throw new Exception(e.getMessage());
-        }
+        saveProcessedData(add, user, bills, paymentRequestDTO.getIds());
 
 
     }
@@ -205,8 +201,7 @@ public class SwBillingRecordServiceImpl extends ServiceImpl<SwBillingRecordDao,
      * @param bills
      * @param ids
      */
-    @Override
-    @Transactional(rollbackFor = Exception.class)
+
     public void saveProcessedData(SwBillingRecordDo add, SwUserManagementDo user, List<SwBillManagementPaidDo> bills, List<String> ids) {
         //账单缴费记录生成
         this.baseMapper.insert(add);

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

@@ -53,57 +53,57 @@ public class SwRefundRequestRecordServiceImpl extends ServiceImpl<SwRefundReques
     private final Logger log = LoggerFactory.getLogger(this.getClass().getName());
 
     @Override
-    @Transactional(rollbackFor = Exception.class)
-    public R refundApplication(String id) throws Exception {
+    @Transactional
+    public R refundApplication(String id) {
 
-          log.info("开始退款申请");
+        log.info("开始退款申请");
 
-            //当前用户
-            SysUserVo currentUser = ZHSWCommonUtils.getCurrentUser();
+        //当前用户
+        SysUserVo currentUser = ZHSWCommonUtils.getCurrentUser();
 
-            //获取退款记录
-            SwRefundRequestRecordDO refundRequestRecordDO = swRefundRequestRecordService.getById(id);
+        //获取退款记录
+        SwRefundRequestRecordDO refundRequestRecordDO = swRefundRequestRecordService.getById(id);
 
-            //用户表获取
-            SwUserManagementDo user = swUserManagementService.getBaseMapper().
-                    selectOne(new LambdaQueryWrapper<SwUserManagementDo>().eq(SwUserManagementDo::getUsernumber, refundRequestRecordDO.getUsernumber()));
+        //用户表获取
+        SwUserManagementDo user = swUserManagementService.getBaseMapper().
+                selectOne(new LambdaQueryWrapper<SwUserManagementDo>().eq(SwUserManagementDo::getUsernumber, refundRequestRecordDO.getUsernumber()));
 
-            //校验 退款金额
-            validateRefundAmount(refundRequestRecordDO,user);
+        //校验 退款金额
+        validateRefundAmount(refundRequestRecordDO,user);
+        try {
 
-            try {
-                // 1.缴费记录表更新:
-                updateBillRecord(refundRequestRecordDO,currentUser);
+            // 1.缴费记录表更新:
+            updateBillRecord(refundRequestRecordDO,currentUser);
 
-                //2. 更新退款记录
-                processRefund(refundRequestRecordDO, currentUser,REFUNDSUCCESSFUL);
+            //2. 更新退款记录
+            processRefund(refundRequestRecordDO, currentUser,REFUNDSUCCESSFUL);
 
-                // 已缴账单记录表更新
-                migratePaidBillsToUnpaid(refundRequestRecordDO);
+            // 已缴账单记录表更新
+            migratePaidBillsToUnpaid(refundRequestRecordDO);
 
-                // 更新用户余额
-                updateUserBalance(refundRequestRecordDO,user);
+            // 更新用户余额
+            updateUserBalance(refundRequestRecordDO,user);
 
-            }catch (Exception e){
-                //退款失败
-                processRefund(refundRequestRecordDO, currentUser,REFUNDFAILED);
-                log.error("退款申请失败 {}",e.getMessage());
-                throw new Exception(e.getMessage());
-            }
+        }catch (Exception e){
+            //退款失败
+            processRefund(refundRequestRecordDO, currentUser,REFUNDFAILED);
+            log.error("退款申请失败 {}",e.getMessage());
+            return R.error("退款申请失败!");
+        }
 
         return R.ok();
     }
 
     private void processRefund(SwRefundRequestRecordDO refundRequestRecordDO, SysUserVo currentUser,  String refundstatus) {
-            // 退款记录表更新 实退金额 退款操作人,操作时间
-            swRefundRequestRecordService.update(new LambdaUpdateWrapper<SwRefundRequestRecordDO>()
-                    .eq(SwRefundRequestRecordDO::getId, refundRequestRecordDO.getId())
-                    .set(SwRefundRequestRecordDO::getActualretirement, refundRequestRecordDO.getRefundamount())
-                    .set(SwRefundRequestRecordDO::getRefundstatus, refundstatus)
-                    .set(SwRefundRequestRecordDO::getRefundoperatorid, currentUser.getId())
-                    .set(SwRefundRequestRecordDO::getRefundoperatorname, currentUser.getName())
-                    .set(SwRefundRequestRecordDO::getRefundtime,new Date())
-            );
+        // 退款记录表更新 实退金额 退款操作人,操作时间
+        swRefundRequestRecordService.update(new LambdaUpdateWrapper<SwRefundRequestRecordDO>()
+                .eq(SwRefundRequestRecordDO::getId, refundRequestRecordDO.getId())
+                .set(SwRefundRequestRecordDO::getActualretirement, refundRequestRecordDO.getRefundamount())
+                .set(SwRefundRequestRecordDO::getRefundstatus, refundstatus)
+                .set(SwRefundRequestRecordDO::getRefundoperatorid, currentUser.getId())
+                .set(SwRefundRequestRecordDO::getRefundoperatorname, currentUser.getName())
+                .set(SwRefundRequestRecordDO::getRefundtime,new Date())
+        );
     }
 
     /**

+ 5 - 9
zhsw-server/src/main/java/com/rongwei/zhsw/system/controller/SwBillManagementUnpaidController.java

@@ -28,11 +28,9 @@ public class SwBillManagementUnpaidController {
     @PostMapping("/meterReadingCorrection")
     @ResponseBody
     public R meterReadingCorrection(@RequestBody MeterReadingCorrectionDTO dto){
-        try {
-            return  swBillManagementUnpaidService.meterReadingCorrection(dto);
-        }catch (Exception e){
-            return R.error(e.getMessage());
-        }
+
+        return  swBillManagementUnpaidService.meterReadingCorrection(dto);
+
     }
 
 
@@ -43,11 +41,9 @@ public class SwBillManagementUnpaidController {
     @PostMapping("/transferAccount")
     @ResponseBody
     public R transferAccount(@RequestBody Map<String,Object> map){
-        try {
+
             return  swBillManagementUnpaidService.transferAccount(map);
-        }catch (Exception e){
-            return R.error(e.getMessage());
-        }
+
     }
 
 }

+ 2 - 4
zhsw-server/src/main/java/com/rongwei/zhsw/system/controller/SwBillingRecordController.java

@@ -27,11 +27,9 @@ public class SwBillingRecordController {
     @PostMapping("/windowPayment")
     @ResponseBody
     public R windowPayment(@RequestBody PaymentRequestDTO paymentRequestDTO){
-        try {
+
            return  swBillingRecordService.windowPayment(paymentRequestDTO);
-        }catch (Exception e){
-            return R.error(e.getMessage());
-        }
+
     }
 }