From 669640d14587e82941de70ac702334e02765b08b Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 12 十二月 2024 16:39:21 +0800
Subject: [PATCH] 合作商权限

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java |  123 +++++++++++++++++++++++++++++++---------
 1 files changed, 95 insertions(+), 28 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
index 28352ad..2e57619 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
@@ -7,11 +7,14 @@
 import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
 import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient;
 import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient;
+import com.ruoyi.chargingPile.api.feignClient.PartnerClient;
 import com.ruoyi.chargingPile.api.feignClient.SiteClient;
 import com.ruoyi.chargingPile.api.model.Site;
 import com.ruoyi.chargingPile.api.model.TChargingGun;
 import com.ruoyi.chargingPile.api.model.TChargingPile;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient;
 import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
@@ -28,6 +31,9 @@
 import com.ruoyi.order.mapper.TChargingOrderMapper;
 import com.ruoyi.order.service.TChargingBillService;
 import com.ruoyi.order.service.TChargingOrderRefundService;
+import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.api.feignClient.SysUserClient;
+import com.ruoyi.system.api.model.SysUserRoleVo;
 import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
 import org.omg.CORBA.PRIVATE_MEMBER;
 import org.springframework.stereotype.Service;
@@ -40,9 +46,7 @@
 import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.temporal.TemporalAdjusters;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -55,7 +59,8 @@
  */
 @Service
 public class TChargingBillServiceImpl extends ServiceImpl<TChargingBillMapper, TChargingBill> implements TChargingBillService {
-
+    @Resource
+    private SysUserClient sysUserClient;
     @Resource
     private TChargingOrderMapper chargingOrderList;
     @Resource
@@ -72,6 +77,12 @@
     private AppUserCarClient appUserCarClient;
     @Resource
     private TChargingOrderRefundService chargingOrderRefundService;
+    @Resource
+    private TokenService tokenService;
+    @Resource
+    private PartnerClient partnerClient;
+
+
     @Override
     public ChargingBillVO chargingBillList1(ChargingListQuery dto) {
         if (dto.getState()!=null){
@@ -90,25 +101,35 @@
             startTime1 = split[0];
             startTime2 = split[1];
         }
-        Long userId = SecurityUtils.getUserId();
-        //如果没传siteId,获取当前登陆人所有的siteIds
+        Long userId = tokenService.getLoginUser().getUserid();
         List<Integer> siteIds = new ArrayList<>();
-        if (dto.getSiteId()==null){
-            if (userId != null){
-                List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
-                for (GetSiteListDTO datum : data) {
-                    siteIds.add(datum.getId());
+
+        if (dto.getType() == 1){
+            siteIds.add(0);
+            dto.setSiteIds(siteIds);
+        }else{
+            //如果没传siteId,获取当前登陆人所有的siteIds
+            if (dto.getSiteId()==null){
+                if (userId != null){
+                    List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
+                    for (GetSiteListDTO datum : data) {
+                        siteIds.add(datum.getId());
+                    }
                 }
+            }else {
+                siteIds.add(dto.getSiteId());
             }
-        }else {
-            siteIds.add(dto.getSiteId());
+            if (siteIds.isEmpty()){
+                siteIds.add(-1);
+            }
+            dto.setSiteIds(siteIds);
         }
-        dto.setSiteIds(siteIds);
+
         PageInfo<ChargingBillListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
         PageInfo<ChargingBillListVO> pageInfo1 = new PageInfo<>(1,9999999);
         List<ChargingBillListVO> list = this.baseMapper.chargingBillList1(pageInfo,dto,startTime1,startTime2);
         List<ChargingBillListVO> list1 = this.baseMapper.chargingBillList1(pageInfo1,dto,startTime1,startTime2);
-        chargingBillVO.setOrderCount(list1.size());
+
         BigDecimal paymentAmountTotal = new BigDecimal("0");
         BigDecimal orderAmountTotal = new BigDecimal("0");
         BigDecimal refundAmountTotal = new BigDecimal("0");
@@ -119,7 +140,14 @@
         BigDecimal chargingCapacityTotal = new BigDecimal("0");
         BigDecimal discountTotal = new BigDecimal("0");
         int orderCount = 0;
+        // 查询当前登陆人按钮权限
+        SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData();
+        Integer roleType = sysUser.getRoleType();
         for (ChargingBillListVO chargingBillListVO : list) {
+            if (roleType==2){
+                Boolean data = partnerClient.getAccountMenu(sysUser.getObjectId(), chargingBillListVO.getSiteId()).getData();
+                chargingBillListVO.setAuthDownLoad(data);
+            }
             String temp = "";
             String temp1 = "";
             switch (chargingBillListVO.getType()){
@@ -359,11 +387,12 @@
             chargingBillListVO.setChargingSecond(chargingSecond);
         }
         BigDecimal bigDecimal = new BigDecimal("0");
-
+        int i = 0;
         for (ChargingBillListVO chargingBillListVO : list1) {
-            if (chargingBillListVO.getType()==2){
+            if (!siteIds.contains(chargingBillListVO.getSiteId())){
                 continue;
             }
+            i++;
             LocalDateTime billTime = chargingBillListVO.getBillTime();
             // 将其转化为yyyy-MM格式字符串
             chargingBillVO.setCreateTime(billTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
@@ -447,6 +476,7 @@
                 }
             }
         }
+        chargingBillVO.setOrderCount(i);
         chargingBillVO.setChargingCapacity(chargingCapacityTotal);
         chargingBillVO.setPaymentAmount(paymentAmountTotal);
         chargingBillVO.setOrderAmount(paymentAmountTotal.subtract(refundAmountTotal).subtract(commissionAmountTotal).subtract(sharingAmountTotal));
@@ -466,6 +496,7 @@
         chargingBillVO.setList(pageInfo);
         return chargingBillVO;
     }
+
     @Override
     public ChargingBillVO chargingBillList(ChargingListQuery dto) {
         if (dto.getState()!=null){
@@ -485,19 +516,26 @@
         }
         PageInfo<ChargingBillListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
         PageInfo<ChargingBillListVO> pageInfo1 = new PageInfo<>(1,9999999);
-        Long userId = SecurityUtils.getUserId();
+        Long userId = tokenService.getLoginUser().getUserid();
         //如果没传siteId,获取当前登陆人所有的siteIds
         List<Integer> siteIds = new ArrayList<>();
-        if (dto.getSiteId()==null){
-            if (userId != null){
-                List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
-                for (GetSiteListDTO datum : data) {
-                    siteIds.add(datum.getId());
+
+            //如果没传siteId,获取当前登陆人所有的siteIds
+            if (dto.getSiteId()==null){
+                if (userId != null){
+                    List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
+                    for (GetSiteListDTO datum : data) {
+                        siteIds.add(datum.getId());
+                    }
                 }
+            }else {
+                siteIds.add(dto.getSiteId());
             }
-        }else {
-            siteIds.add(dto.getSiteId());
-        }
+            if (siteIds.isEmpty()){
+                siteIds.add(-1);
+            }
+            dto.setSiteIds(siteIds);
+
         List<ChargingBillListVO> list = this.baseMapper.chargingBillList(pageInfo,dto,startTime1,startTime2);
         List<ChargingBillListVO> list1 = this.baseMapper.chargingBillList(pageInfo1,dto,startTime1,startTime2);
         BigDecimal paymentAmountTotal = new BigDecimal("0");
@@ -510,7 +548,29 @@
         BigDecimal discountTotal = new BigDecimal("0");
         BigDecimal refundAmountTotal = new BigDecimal("0");
         int orderCount = 0;
+        // 查询当前登陆人按钮权限
+        SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData();
+        Integer roleType = sysUser.getRoleType();
+
+        List<ChargingBillListVO> chargingBillListVOS = new ArrayList<>();
         for (ChargingBillListVO chargingBillListVO : list) {
+            if (roleType==2 && chargingBillListVO.getSiteId()!=0){
+                chargingBillListVOS.add(chargingBillListVO);
+            }
+        }
+        for (ChargingBillListVO chargingBillListVO : chargingBillListVOS) {
+            if (chargingBillListVO.getSiteId()!=0&&!siteIds.contains(chargingBillListVO.getSiteId())){
+                continue;
+            }
+            if (roleType == 2){
+                // 校验有没有这个站点的权限
+                Boolean t1= partnerClient.getChargingBillMenu(sysUser.getObjectId(),chargingBillListVO.getSiteId()).getData();
+                chargingBillListVO.setAuthDownLoad(t1);
+
+                if (chargingBillListVO.getSiteId()==0){
+                    continue;
+                }
+            }
             String temp = "";
             String temp1 = "";
             switch (chargingBillListVO.getType()){
@@ -734,8 +794,13 @@
             chargingBillListVO.setChargingSecond(chargingSecond);
         }
         for (ChargingBillListVO chargingBillListVO : list1) {
-            if (chargingBillListVO.getType() ==2){
+            if (chargingBillListVO.getSiteId()!=0&&!siteIds.contains(chargingBillListVO.getSiteId())){
                 continue;
+            }
+            if (roleType == 2){
+                if (chargingBillListVO.getSiteId()==0){
+                    continue;
+                }
             }
             LocalDateTime billTime = chargingBillListVO.getBillTime();
             // 将其转化为yyyy-MM格式字符串
@@ -834,12 +899,14 @@
         chargingBillVO.setCommissionAmount(commissionAmountTotal.setScale(2, BigDecimal.ROUND_DOWN));
         chargingBillVO.setSharingAmount(sharingAmountTotal.setScale(2, BigDecimal.ROUND_DOWN));
         chargingBillVO.setDiscount(discountTotal.setScale(2, BigDecimal.ROUND_DOWN));
-        pageInfo.setRecords(list);
+        pageInfo.setRecords(chargingBillListVOS);
         chargingBillVO.setList(pageInfo);
         return chargingBillVO;
     }
 
     public static void main(String[] args) {
+        int i = 8 % 20;
+        System.err.println(i);
         LocalDateTime now = LocalDateTime.now();
         // 将时间转化为字符串 只保留年月日 格式为yyyy-MM-dd
         String format = now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd"));

--
Gitblit v1.7.1