From 907f8421d36050ab7a24d4c151e04cbb4244305c Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期四, 30 七月 2026 16:16:25 +0800
Subject: [PATCH] 各类修复

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java |   28 +++++++++++++++++++++++++---
 1 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
index 79acc7f..1bcaa0d 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
@@ -142,9 +142,25 @@
     @ApiOperation(value = "通过充电枪id和预付金额获取电站详情", tags = {"小程序-扫一扫"})
     @PostMapping(value = "/scan/siteInfo")
     public AjaxResult<SiteInfoVO> siteInfo(Integer id, BigDecimal money) {
-        TChargingGun chargingGun = chargingGunClient.getChargingGunById(id).getData();
-        TChargingPile chargingPile = chargingPileClient.getChargingPileById(chargingGun.getChargingPileId()).getData();
-        SiteInfoVO data = chargingPileClient.getSiteInfoByNumber1(chargingPile.getCode().toString()).getData();
+        if (id == null || money == null) {
+            return AjaxResult.error("充电枪和预付金额不能为空");
+        }
+        R<TChargingGun> chargingGunResult = chargingGunClient.getChargingGunById(id);
+        TChargingGun chargingGun = chargingGunResult == null ? null : chargingGunResult.getData();
+        if (chargingGun == null) {
+            return AjaxResult.error("充电枪不存在或已停用");
+        }
+        R<TChargingPile> chargingPileResult = chargingPileClient.getChargingPileById(chargingGun.getChargingPileId());
+        TChargingPile chargingPile = chargingPileResult == null ? null : chargingPileResult.getData();
+        if (chargingPile == null || chargingPile.getCode() == null) {
+            return AjaxResult.error("充电桩不存在或已停用");
+        }
+        R<SiteInfoVO> siteInfoResult = chargingPileClient.getSiteInfoByNumber1(chargingPile.getCode().toString());
+        SiteInfoVO data = siteInfoResult == null ? null : siteInfoResult.getData();
+        if (data == null) {
+            String message = siteInfoResult == null ? null : siteInfoResult.getMsg();
+            return AjaxResult.error(StringUtils.hasLength(message) ? message : "获取电站计费信息失败");
+        }
         data.setChargingGunId(id);
         data.setSiteId(chargingGun.getSiteId());
         data.setChargeMode(chargingGun.getChargeMode());
@@ -171,6 +187,12 @@
 
         BigDecimal electrovalence = data.getElectrovalence();
         BigDecimal vipElectrovalence = data.getVipElectrovalence();
+        if (electrovalence == null || electrovalence.compareTo(BigDecimal.ZERO) <= 0) {
+            return AjaxResult.error("当前时段未配置有效费率");
+        }
+        if (vipElectrovalence == null) {
+            vipElectrovalence = electrovalence;
+        }
         // 计算预付金额能充多少度普通电
         BigDecimal divide1 = money.divide(electrovalence, 2, BigDecimal.ROUND_HALF_UP);
         // 计算冲会员充电需要多少钱

--
Gitblit v1.7.1