Browse Source

bug修复

lihui001 3 years ago
parent
commit
3865392cc9

+ 2 - 2
zoniot-common/zoniot-core-redis/src/main/java/com/zcxk/core/utils/config/RedisConfig.java

@@ -8,8 +8,7 @@ import org.springframework.data.redis.serializer.StringRedisSerializer;
 
 /**
  * @Description: utils config
- * @Copyright: Copyright (c) 2020 ishare.com
- * @Author: liu.yong
+ * @Copyright: Copyright (c) 2020
  * @Date : 2020/3/5 17:26
  * @Version: V 1.0.0
  */
@@ -28,4 +27,5 @@ class RedisConfig {
       redisTemplate.setHashValueSerializer(valueSerializer);
       return redisTemplate;
    }
+
 }

+ 4 - 3
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/dao/mongo/BaseMongoDao.java

@@ -17,11 +17,11 @@ public interface BaseMongoDao {
      * 设置用户权限
      * @author Andy
      * @date 10:44 2021/8/12
-     * @param userCondition:
-     * @param criteria:
+     * @param userCondition:*
      * @return void
      **/
-     default void criteriaUserCondition(UserCondition userCondition, Criteria criteria){
+     default Criteria criteriaUserCondition(UserCondition userCondition){
+         Criteria criteria = new Criteria();
          if (userCondition.checkAuthority()) {
              List<Integer> orgIds = userCondition.getOrgIds();
              if (userCondition.getPermissionType() == 2 || userCondition.getPermissionType() == 5)  {
@@ -37,5 +37,6 @@ public interface BaseMongoDao {
                  criteria.and("deptOrgId").is(0);
              }
          }
+         return criteria;
      }
 }

+ 18 - 8
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/dao/mongo/MeterReadRecordDao.java

@@ -284,25 +284,35 @@ public class MeterReadRecordDao extends BaseDao<MeterReadRecord, String> impleme
         if (ZoniotStringUtils.isNotEmpty(dto.getConcentratorId())) {
             criteria.and("concentratorId").is(dto.getConcentratorId());
         }
-        if (ZoniotStringUtils.isNotEmpty(dto.getReadStatus())) {
-            criteria.and("readStatus").is(dto.getReadStatus());
-        }
+
+
+        // 设置用户权限过滤
+        Criteria criteriaUser = criteriaUserCondition(userCondition);
+        System.out.println(criteriaUser.toString());
+
         if (ZoniotStringUtils.isNotEmpty(dto.getDeviceMeterNo())) {
+            Criteria orCriteria = new Criteria();
             Criteria criteria1 = Criteria.where("meterNo").is(dto.getDeviceMeterNo());
             Criteria criteria2 = Criteria.where("deviceNo").is(dto.getDeviceMeterNo());
-            criteria.orOperator(criteria1,criteria2);
+            orCriteria.orOperator(criteria1,criteria2);
+            criteria.andOperator(orCriteria, criteriaUser);
+        } else{
+            criteria.andOperator(criteriaUser);
         }
-        // 设置用户权限过滤
-        criteriaUserCondition(userCondition, criteria);
+
         // 1. 指定查询主文档
         MatchOperation match = Aggregation.match(criteria);
         commonOperations.add(match);
         // 2.拆开
         UnwindOperation unwind = Aggregation.unwind("data");
         commonOperations.add(unwind);
+
+        Criteria childCriteria = Criteria.where("data.readDate").is(Integer.parseInt(localDate.toString().replaceAll("-","")));
+        if (ZoniotStringUtils.isNotEmpty(dto.getReadStatus())) {
+            childCriteria.and("data.readStatus").is(dto.getReadStatus());
+        }
         // 3.子文档查询
-        MatchOperation match2 = Aggregation.match(
-                Criteria.where("data.readDate").is(Integer.parseInt(localDate.toString().replaceAll("-",""))));
+        MatchOperation match2 = Aggregation.match(childCriteria);
         commonOperations.add(match2);
         return commonOperations;
     }