Forráskód Böngészése

补充宠物数据权限;修复站点隔离时的空指针异常

Huanyi 2 hete
szülő
commit
7a2fd667fd

+ 2 - 4
pom.xml

@@ -94,9 +94,8 @@
 <!--            </properties>-->
 <!--        </profile>-->
         <profile>
-            <id>Steelwei</id>
+            <id>test</id>
             <properties>
-                <!-- 环境标识,需要与配置文件的名称相对应 -->
                 <profiles.active>test</profiles.active>
                 <nacos.server>127.0.0.1:8848</nacos.server>
                 <nacos.discovery.group>DEFAULT_GROUP</nacos.discovery.group>
@@ -105,7 +104,7 @@
                 <nacos.password>nacos</nacos.password>
                 <logstash.address>127.0.0.1:4560</logstash.address>
                 <discovery.ip>127.0.0.1</discovery.ip>
-                <mysql.password>1234</mysql.password>
+                <nacos.ip>127.0.0.1</nacos.ip>
             </properties>
         </profile>
         <profile>
@@ -119,7 +118,6 @@
                 <nacos.password>nacos</nacos.password>
                 <logstash.address>127.0.0.1:4560</logstash.address>
                 <discovery.ip>127.0.0.1</discovery.ip>
-                <mysql.password>Yr7777777</mysql.password>
                 <nacos.ip>127.0.0.1</nacos.ip>
             </properties>
         </profile>

+ 6 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/UserAreaStationServiceImpl.java

@@ -2,6 +2,7 @@ package org.dromara.system.service.impl;
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.dromara.system.domain.SysAreaStation;
 import org.dromara.system.domain.SysUserAreaStation;
 import org.dromara.system.domain.bo.SysAreaStationBo;
@@ -19,6 +20,7 @@ import java.util.Map;
 
 @Service
 @RequiredArgsConstructor
+@Slf4j
 public class UserAreaStationServiceImpl implements IUserAreaStationService {
 
     private final SysUserAreaStationMapper baseMapper;
@@ -56,13 +58,16 @@ public class UserAreaStationServiceImpl implements IUserAreaStationService {
     }
 
     private void buildSites(SysAreaStationVo currentStation, List<Long> siteIds, Map<Long, List<SysAreaStationVo>> parentMap) {
-        if (currentStation == null) {
+        if (currentStation == null || currentStation.getType() == null) {
             return;
         }
         if (currentStation.getType().equals(AreaStationTypeEnum.STATION.getValue())) {
             siteIds.add(currentStation.getId());
         } else {
             List<SysAreaStationVo> stations = parentMap.get(currentStation.getId());
+            if (stations == null || stations.isEmpty()) {
+                return;
+            }
             for (SysAreaStationVo station : stations) {
                 buildSites(station, siteIds, parentMap);
             }

+ 13 - 4
ruoyi-modules/yingpaipay-archieves/src/main/java/org/dromara/archieves/service/impl/UsrPetServiceImpl.java

@@ -23,6 +23,7 @@ import org.dromara.common.platform.PlatformUtils;
 import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.common.tenant.helper.TenantHelper;
 import org.dromara.order.api.RemoteSubOrderService;
+import org.dromara.system.api.RemoteAreaStationService;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.dromara.archieves.domain.bo.UsrPetBo;
@@ -31,10 +32,7 @@ import org.dromara.archieves.domain.vo.SysTagVo;
 import org.dromara.archieves.service.IArcChangeLogService;
 import org.dromara.archieves.service.IUsrPetService;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Collection;
-import java.util.Collections;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -58,6 +56,8 @@ public class UsrPetServiceImpl implements IUsrPetService {
 
     @DubboReference
     private final RemoteSubOrderService remoteSubOrderService;
+    @DubboReference
+    private final RemoteAreaStationService remoteAreaStationService;
 
     @Override
     public UsrPetVo queryById(Long id) {
@@ -95,6 +95,15 @@ public class UsrPetServiceImpl implements IUsrPetService {
 
     private LambdaQueryWrapper<UsrPet> buildQueryWrapper(UsrPetBo bo) {
         LambdaQueryWrapper<UsrPet> lqw = Wrappers.lambdaQuery();
+
+        if (Platform.isAdmin()) {
+            List<Long> customerIds = new ArrayList<>();
+            customerMapper.selectList(Wrappers.lambdaQuery(UsrCustomer.class).select(UsrCustomer::getId)
+                    .in(UsrCustomer::getStationId, WrapperUtils.convertIds(remoteAreaStationService.listByUserId(LoginHelper.getUserId()))))
+                .forEach(e -> customerIds.add(e.getId()));
+            lqw.in(UsrPet::getUserId, WrapperUtils.convertIds(customerIds));
+        }
+
         if (StringUtils.isNotBlank(bo.getKeyword())) {
             // 先查匹配主人名/手机号的userId列表
             List<Long> matchUserIds = customerMapper.selectList(