Просмотр исходного кода

修复 性诱测报诱芯过期后获取设备列表接口报错的问题

zhaiyifei 11 месяцев назад
Родитель
Сommit
9e31bab2bf

+ 21 - 0
src/main/java/com/yunfeiyun/agmp/iot/common/service/MongoService.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.mongodb.client.ListIndexesIterable;
 import com.mongodb.client.MongoCollection;
 import com.mongodb.client.model.IndexModel;
+import com.mongodb.client.result.UpdateResult;
 import com.yunfeiyun.agmp.common.core.page.PageDomain;
 import com.yunfeiyun.agmp.common.utils.DateUtils;
 import com.yunfeiyun.agmp.common.utils.JSONUtils;
@@ -167,6 +168,26 @@ public class  MongoService<T>{
         mongoTemplate.updateFirst(query, update, annotation.value());
     }
 
+    public int updateMulti(Class<T> entity, Query query, Map<String, Object> updateField) {
+        if (query == null) {
+            throw new RuntimeException("query 不可为空");
+        }
+        TableName annotation = entity.getAnnotation(TableName.class);
+        if (annotation == null || StringUtils.isEmpty(annotation.value())) {
+            throw new RuntimeException(entity.getName() + "未被@TableName修饰或value为空");
+        }
+        Update update = new Update();
+        //设置遍历值
+        updateField.forEach((key, value) -> {
+            //忽略空值
+            if (value != null) {
+                update.set(key, value);
+            }
+        });
+        UpdateResult updateResult = mongoTemplate.updateMulti(query, update, annotation.value());
+        return (int) updateResult.getModifiedCount();
+    }
+
     /**
      * 根据参数查询全部数据
      *