From 50dfdaf4e3220e7c1f93a189879ea92bb8f46b4c Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期三, 25 六月 2025 17:58:48 +0800
Subject: [PATCH] Merge branch 'dev' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile into dev

---
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java |   50 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 46 insertions(+), 4 deletions(-)

diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java
index 57d3f7e..2216d2a 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java
@@ -1,9 +1,13 @@
 package com.ruoyi.chargingPile.service.impl;
 
+import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.feignClient.AppUserVipDetailClient;
 import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.account.api.model.TAppUserVipDetail;
+import com.ruoyi.account.api.vo.GetAppUserVipDetail;
 import com.ruoyi.chargingPile.api.model.Site;
 import com.ruoyi.chargingPile.api.model.TAccountingStrategy;
 import com.ruoyi.chargingPile.api.model.TAccountingStrategyDetail;
@@ -15,6 +19,7 @@
 import com.ruoyi.chargingPile.service.ISiteService;
 import com.ruoyi.chargingPile.service.TAccountingStrategyDetailService;
 import com.ruoyi.chargingPile.service.TChargingGunService;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.security.service.TokenService;
@@ -52,8 +57,32 @@
     private TChargingGunService chargingGunService;
     @Autowired
     private AppUserClient appUserClient;
+    @Resource
+    private AppUserVipDetailClient vipDetailClient;
     @Override
     public List<TAccountingStrategyDetailVO> queryAccountingStrategyDetailByStrategyId(Integer strategyId) {
+        List<TAccountingStrategyDetailVO> tAccountingStrategyDetailVOS = this.baseMapper.queryAccountingStrategyDetailByStrategyId(strategyId);
+        Long userId = tokenService.getLoginUserApplet().getUserId();
+        TAppUser appUser = appUserClient.getUserById(userId).getData();
+        for (TAccountingStrategyDetailVO tAccountingStrategyDetailVO : tAccountingStrategyDetailVOS) {
+            GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail();
+            getAppUserVipDetail.setAppUserId(userId);
+            getAppUserVipDetail.setVipId(appUser.getVipId());
+            R<TAppUserVipDetail> appUserVipDetail = vipDetailClient.getAppUserVipDetail(getAppUserVipDetail);
+            TAppUserVipDetail data1 = appUserVipDetail.getData();
+            if(Objects.nonNull(data1)){
+                String vipJson = data1.getVipJson();
+                TVip vip = JSON.parseObject(vipJson, TVip.class);
+                if(Objects.nonNull(vip) && vip.getType() == 2){
+                    tAccountingStrategyDetailVO.setDiscount(vip.getDiscount().divide(new BigDecimal(10)));
+                }
+            }
+        }
+        return tAccountingStrategyDetailVOS;
+    }
+
+    @Override
+    public List<TAccountingStrategyDetailVO> queryMangementAccountingStrategyDetailByStrategyId(Integer strategyId) {
         return this.baseMapper.queryAccountingStrategyDetailByStrategyId(strategyId);
     }
 
@@ -72,7 +101,19 @@
         TAppUser appUser = appUserClient.getUserById(userId).getData();
         if(Objects.nonNull(appUser)){
             // 查询会员信息
-            TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
+//            TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
+
+            GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail();
+            getAppUserVipDetail.setAppUserId(userId);
+            getAppUserVipDetail.setVipId(appUser.getVipId());
+            R<TAppUserVipDetail> appUserVipDetail = vipDetailClient.getAppUserVipDetail(getAppUserVipDetail);
+            TAppUserVipDetail data1 = appUserVipDetail.getData();
+            TVip vip = null;
+            if(Objects.nonNull(data1)){
+                String vipJson = data1.getVipJson();
+                vip = JSON.parseObject(vipJson, TVip.class);
+            }
+
             TAccountingStrategyDetailVO accountingStrategyDetailVO;
             TAccountingStrategyDetailVO accountingStrategyDetailNext;
             // 获取当前时间段的计费策略明细
@@ -86,6 +127,7 @@
             if(Objects.nonNull(vip)) {
                 if (vip.getType() == 2) {
                     accountingStrategyDetailVO.setTotalPrice(accountingStrategyDetailVO.getElectrovalence().add(accountingStrategyDetailVO.getServiceCharge().multiply(vip.getDiscount())));
+                    accountingStrategyDetailVO.setDiscount(vip.getDiscount().divide(new BigDecimal(10)));
                     accountingStrategyDetailNext.setTotalPrice(accountingStrategyDetailNext.getElectrovalence().add(accountingStrategyDetailNext.getServiceCharge().multiply(vip.getDiscount())));
                 } else {
                     if(Objects.isNull(accountingStrategy.getDiscount())){
@@ -134,13 +176,13 @@
         }
         // 查询最高折扣的会员
         TVip monthlyCardDiscount = vipClient.getVipInfoByType(3).getData();
-        strategyPriceVO.setServiceFeeDiscount(monthlyCardDiscount.getMonthlyCardDiscount());
+        strategyPriceVO.setServiceFeeDiscount(null == monthlyCardDiscount ? new BigDecimal(10) : monthlyCardDiscount.getMonthlyCardDiscount());
         // 查询最高优惠的会员
         TVip maximumDeduction = vipClient.getVipInfoByType(1).getData();
-        strategyPriceVO.setMaxDiscountAmount(maximumDeduction.getMaximumDeduction());
+        strategyPriceVO.setMaxDiscountAmount(null == maximumDeduction ? new BigDecimal(10) : maximumDeduction.getMaximumDeduction());
         // 查询最低起步价会员
         TVip monthlyCard = vipClient.getVipInfoByType(2).getData();
-        strategyPriceVO.setVipStartPrice(monthlyCard.getMonthlyCard());
+        strategyPriceVO.setVipStartPrice(null == monthlyCard ? new BigDecimal(10) : monthlyCard.getMonthlyCard());
         // 模板折扣
         strategyPriceVO.setDiscount(accountingStrategy.getDiscount());
         return strategyPriceVO;

--
Gitblit v1.7.1