From 0a68434e176be3590838b04196663567f6a9308e Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 20 三月 2025 11:03:39 +0800
Subject: [PATCH] 修改报表bug

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java |   60 +++++++++++++++++++++++++++++++++---------------------------
 1 files changed, 33 insertions(+), 27 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
index e597599..be622a9 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -12,6 +12,7 @@
 import com.ruoyi.account.api.feignClient.AppUserCarClient;
 import com.ruoyi.account.api.feignClient.AppUserClient;
 import com.ruoyi.account.api.model.TAppUserCar;
+import com.ruoyi.chargingPile.api.domain.SiteMenu;
 import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
 import com.ruoyi.chargingPile.api.feignClient.*;
 import com.ruoyi.chargingPile.api.model.Site;
@@ -53,11 +54,15 @@
 import com.ruoyi.order.service.*;
 import com.ruoyi.order.util.PreviousSixMonths;
 import com.ruoyi.order.vo.EndOfChargePageInfo;
+import com.ruoyi.other.api.feignClient.RoleSiteClient;
+import com.ruoyi.other.api.feignClient.UserSiteClient;
 import com.ruoyi.payment.api.feignClient.AliPaymentClient;
 import com.ruoyi.payment.api.feignClient.WxPaymentClient;
 import com.ruoyi.payment.api.vo.AliQueryOrder;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.feignClient.SysUserClient;
+import com.ruoyi.system.api.feignClient.SysUserRoleClient;
+import com.ruoyi.system.api.model.SysUserRoleVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -146,6 +151,14 @@
     private PartnerClient partnerClient;
     @Resource
     private SysUserClient sysUserClient;
+    
+    @Resource
+    private UserSiteClient userSiteClient;
+    
+    @Resource
+    private RoleSiteClient roleSiteClient;
+    @Resource
+    private SysUserRoleClient sysUserRoleClient;
     
     
     
@@ -1119,38 +1132,29 @@
     @PostMapping(value = "/watch/chargingOrder")
     @ApiOperation(value = "监控订单", tags = {"管理后台-订单管理"})
     public R watchChargingOrder(@RequestBody MongoChargingOrderQuery mongoChargingOrderQuery) {
-        Long userid = tokenService.getLoginUser().getUserid();
+        Set<Integer> ids = null;
+        //校验合作商权限
         SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData();
         Integer roleType = sysUser.getRoleType();
-        List<Integer> siteIds = new ArrayList<>();
-        if (mongoChargingOrderQuery.getSiteId()==null){
-            List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userid).getData();
-            for (GetSiteListDTO datum : data) {
-                siteIds.add(datum.getId());
-            }
-        }else {
-            siteIds.add(mongoChargingOrderQuery.getSiteId());
-        }
-        if (siteIds.isEmpty()){
-            siteIds.add(-1);
+        Integer objectId = sysUser.getObjectId();
+        R<Integer> admin = sysUserClient.isAdmin(tokenService.getLoginUser().getUserid());
+        //合作商
+        if(roleType == 2){
+            ids = partnerClient.authSite(objectId, SiteMenu.SITE_LIST.getValue()).getData();
         }else{
-            if (roleType == 2){
-                List<Integer> integers = new ArrayList<>();
-                for (Integer siteId : siteIds) {
-                    // 校验有没有这个站点的权限
-                    List<Boolean> t1= partnerClient.watchChargingOrder(sysUser.getObjectId(),siteId).getData();
-                    Boolean b = t1.get(1);
-                    if (b){
-                        integers.add(siteId);
-                    }
+            //非管理员需要根据角色和用户配置查询允许的站点数据
+            //改用roleId=1来判断
+            if(admin.getData()!=1){
+                List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
+                List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData();
+                if(data2.size() > 0){
+                    List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData();
+                    data.addAll(data1);
                 }
-                siteIds = integers;
+                ids = new HashSet<>(data);
             }
         }
-        if (siteIds.isEmpty()){
-            siteIds.add(-1);
-        }
-        mongoChargingOrderQuery.setSiteIds(siteIds);
+        mongoChargingOrderQuery.setSiteIds(ids.stream().collect(Collectors.toList()));
         mongoChargingOrderQuery.setPageSize(10);
         R<UploadRealTimeMonitoringPageData> all = uploadRealTimeMonitoringDataClient.getAll(mongoChargingOrderQuery);
         UploadRealTimeMonitoringPageData data1 = all.getData();
@@ -1439,15 +1443,17 @@
 
         tCharingOrderMapVO.setMaps(maps);
         BigDecimal allMoney = new BigDecimal(0);
+        BigDecimal commissionAmount = BigDecimal.ZERO;
         for (Map<String, Object> map : maps) {
             BigDecimal periodElectricPrice = (BigDecimal) map.get("period_electric_price");
             allMoney = allMoney.add(periodElectricPrice);
             BigDecimal total_amount = (BigDecimal) map.get("total_amount");
             allMoney = allMoney.add(total_amount);
+            commissionAmount = commissionAmount.add((BigDecimal) map.get("commissionAmount"));
         }
         allMoney =  allMoney.multiply(new BigDecimal("0.006"));
-
         tCharingOrderMapVO.setAllMoney(allMoney);
+        tCharingOrderMapVO.setCommissionAmount(commissionAmount);
         return R.ok(tCharingOrderMapVO);
 
     }

--
Gitblit v1.7.1