From 9067a5c2911e29abb353469884737c38ddf7ba73 Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期二, 21 七月 2026 10:17:53 +0800
Subject: [PATCH] fix: 限制合作商发票站点范围
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java | 34 ++++++++++++++++++++++++++++++++++
1 files changed, 34 insertions(+), 0 deletions(-)
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
index a29e3ac..8a4c5e1 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
@@ -11,6 +11,7 @@
import com.ruoyi.account.api.model.TAppUserCar;
import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient;
import com.ruoyi.chargingPile.api.feignClient.SiteClient;
+import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
import com.ruoyi.chargingPile.api.model.Partner;
import com.ruoyi.chargingPile.api.model.Site;
import com.ruoyi.common.core.utils.StringUtils;
@@ -30,6 +31,8 @@
import com.ruoyi.other.api.feignClient.CouponClient;
import com.ruoyi.other.api.feignClient.GoodsClient;
import com.ruoyi.other.api.feignClient.InvoiceTypeClient;
+import com.ruoyi.system.api.feignClient.SysUserClient;
+import com.ruoyi.system.api.domain.SysUser;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.BeanUtils;
@@ -87,6 +90,9 @@
private CouponClient couponClient;
@Resource
private AppUserClient appUserClient;
+
+ @Resource
+ private SysUserClient sysUserClient;
@Resource
private TChargingOrderAccountingStrategyService chargingOrderAccountingStrategyService;
@@ -375,6 +381,7 @@
@Override
public PageInfo<TOrderInvoiceVO> pageList(TOrderInvoiceQuery query) {
+ applyPartnerSiteScope(query);
List<TAppUser> tAppUsers = new ArrayList<>();
// 查询申请用户
if (org.springframework.util.StringUtils.hasLength(query.getUserPhone())){
@@ -446,6 +453,7 @@
@Override
public Map<String, Integer> statusCount(TOrderInvoiceQuery query) {
+ applyPartnerSiteScope(query);
Map<String, Integer> map = new HashMap<>();
List<TAppUser> tAppUsers = new ArrayList<>();
@@ -466,6 +474,7 @@
@Override
public List<TOrderInvoiceVO> export(TOrderInvoiceQuery query) {
+ applyPartnerSiteScope(query);
List<TAppUser> tAppUsers = new ArrayList<>();
// 查询申请用户
if (org.springframework.util.StringUtils.hasLength(query.getUserPhone())){
@@ -495,6 +504,31 @@
return list;
}
+ private void applyPartnerSiteScope(TOrderInvoiceQuery query) {
+ if (query == null) {
+ return;
+ }
+ Long userId = tokenService.getLoginUser().getUserid();
+ SysUser sysUser = sysUserClient.getSysUser(userId).getData();
+ if (sysUser == null || !Integer.valueOf(2).equals(sysUser.getRoleType())) {
+ return;
+ }
+ List<GetSiteListDTO> sites = siteClient.getSiteListByUserId(userId).getData();
+ List<Integer> siteIds = sites == null ? new ArrayList<>() : sites.stream()
+ .map(GetSiteListDTO::getId)
+ .filter(Objects::nonNull)
+ .collect(Collectors.toList());
+ if (query.getSiteId() != null) {
+ siteIds = siteIds.contains(query.getSiteId())
+ ? Collections.singletonList(query.getSiteId())
+ : Collections.singletonList(-1);
+ }
+ if (siteIds.isEmpty()) {
+ siteIds = Collections.singletonList(-1);
+ }
+ query.setSiteIds(siteIds);
+ }
+
private void fillInvoiceDetailAmount(TOrderInvoiceVO invoice, List<TOrderInvoiceDetail> details) {
List<TOrderInvoiceDetail> currentDetails = details.stream()
.filter(t -> t.getOrderInvoiceId().equals(invoice.getId()))
--
Gitblit v1.7.1