TRX 1 год назад
Родитель
Сommit
5bbbafc7ef

+ 19 - 0
src/main/java/com/zswl/dataservice/dao/docker/DockerMetaDao.java

@@ -0,0 +1,19 @@
+package com.zswl.dataservice.dao.docker;
+
+import com.zswl.dataservice.dao.MongoDao;
+import com.zswl.dataservice.dao.docker.extend.DockerMetaDaoExtend;
+import com.zswl.dataservice.dao.mqtt.extend.DeviceInfoDaoExtend;
+import com.zswl.dataservice.domain.docker.DockerMeta;
+import com.zswl.dataservice.domain.mqtt.DeviceInfo;
+
+import java.util.List;
+
+/**
+ * @author TRX
+ * @date 2024/3/21
+ */
+public interface DockerMetaDao extends MongoDao<DockerMeta>, DockerMetaDaoExtend {
+
+    DockerMeta findTopById(String id);
+
+}

+ 17 - 0
src/main/java/com/zswl/dataservice/dao/docker/extend/DockerMetaDaoExtend.java

@@ -0,0 +1,17 @@
+package com.zswl.dataservice.dao.docker.extend;
+
+import com.zswl.dataservice.domain.docker.DockerMeta;
+import com.zswl.dataservice.domain.mqtt.DeviceInfo;
+import com.zswl.dataservice.model.docker.DockerMetaSearch;
+import com.zswl.dataservice.model.mqtt.DeviceInfoSearchParam;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+
+/**
+ * @Author TRX
+ * @CreateDate: 2023/7/7
+ * @Version: 1.0
+ */
+public interface DockerMetaDaoExtend {
+    Page<DockerMeta> page(Pageable pageable, DockerMetaSearch param);
+}

+ 103 - 0
src/main/java/com/zswl/dataservice/dao/docker/impl/DockerMetaDaoImpl.java

@@ -0,0 +1,103 @@
+package com.zswl.dataservice.dao.docker.impl;
+
+import com.zswl.dataservice.dao.base.BaseImpl;
+import com.zswl.dataservice.dao.docker.extend.DockerMetaDaoExtend;
+import com.zswl.dataservice.dao.mqtt.extend.DeviceInfoDaoExtend;
+import com.zswl.dataservice.domain.docker.DockerMeta;
+import com.zswl.dataservice.domain.mqtt.DeviceInfo;
+import com.zswl.dataservice.helper.DBHelper;
+import com.zswl.dataservice.model.docker.DockerMetaSearch;
+import com.zswl.dataservice.model.mqtt.DeviceInfoSearchParam;
+import com.zswl.dataservice.utils.CommonUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Pattern;
+
+/**
+ * @Author TRX
+ * @CreateDate: 2023/4/12
+ * @Version: 1.0
+ */
+public class DockerMetaDaoImpl extends BaseImpl implements DockerMetaDaoExtend {
+
+    @Autowired
+    private MongoTemplate mongoTemplate;
+
+    @Autowired
+    private DBHelper dbHelper;
+
+    @Override
+    public Page<DockerMeta> page(Pageable pageable, DockerMetaSearch param) {
+        Criteria criteria = new Criteria();
+
+        if (CommonUtil.bigDecimalIsEmpty(param.getVersion())) {
+            criteria.and("version").is(param.getVersion());
+        }
+
+        // 模糊搜索
+        List<Criteria> criterias = new ArrayList<>();
+        if (StringUtils.isNotEmpty(param.getName())) {
+            Pattern pattern = Pattern.compile("^.*" + param.getName() + ".*$");
+            criterias.add(Criteria.where("name").is(pattern));
+        }
+
+        if (StringUtils.isNotEmpty(param.getRegistry())) {
+            Pattern pattern = Pattern.compile("^.*" + param.getRegistry() + ".*$");
+            criterias.add(Criteria.where("registry").is(pattern));
+        }
+
+        if (StringUtils.isNotEmpty(param.getRepository())) {
+            Pattern pattern = Pattern.compile("^.*" + param.getRepository() + ".*$");
+            criterias.add(Criteria.where("repository").is(pattern));
+        }
+
+        if (StringUtils.isNotEmpty(param.getTag())) {
+            Pattern pattern = Pattern.compile("^.*" + param.getTag() + ".*$");
+            criterias.add(Criteria.where("tag").is(pattern));
+        }
+
+        if (StringUtils.isNotEmpty(param.getNetworkTypes())) {
+            Pattern pattern = Pattern.compile("^.*" + param.getNetworkTypes() + ".*$");
+            criterias.add(Criteria.where("networkTypes").is(pattern));
+        }
+
+        if (StringUtils.isNotEmpty(param.getMessageProtocals())) {
+            Pattern pattern = Pattern.compile("^.*" + param.getMessageProtocals() + ".*$");
+            criterias.add(Criteria.where("messageProtocals").is(pattern));
+        }
+
+        if (StringUtils.isNotEmpty(param.getExtend())) {
+            Pattern pattern = Pattern.compile("^.*" + param.getExtend() + ".*$");
+            criterias.add(Criteria.where("extend").is(pattern));
+        }
+
+        if (!CollectionUtils.isEmpty(criterias)) {
+            criteria.andOperator(criterias.toArray(new Criteria[]{}));
+        }
+
+//        if (StringUtils.isNotEmpty(param.getTitle())) {
+//            Pattern pattern = Pattern.compile("^.*" + param.getTitle() + ".*$");
+//            criteria.orOperator(
+//                    Criteria.where("name").regex(pattern),
+//                    Criteria.where("content").regex(pattern)
+//            );
+//        }
+
+        criteria.and("isDelete").is(Boolean.FALSE);
+        Sort sort = buildSort(param);
+        Query query = Query.query(criteria);
+        query.with(sort);
+        return dbHelper.pages(query, pageable, DockerMeta.class);
+    }
+
+}

+ 47 - 0
src/main/java/com/zswl/dataservice/domain/docker/DockerMeta.java

@@ -0,0 +1,47 @@
+package com.zswl.dataservice.domain.docker;
+
+import com.zswl.dataservice.domain.base.SuperEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import java.math.BigDecimal;
+
+/**
+ * docker 更新元数据
+ *
+ * @author TRX
+ * @date 2024/7/24
+ */
+@Data
+@Document
+@NoArgsConstructor
+@AllArgsConstructor
+public class DockerMeta extends SuperEntity {
+
+    @Schema(description = "")
+    private String name;
+
+    @Schema(description = "")
+    private String registry;
+
+    @Schema(description = "")
+    private String repository;
+
+    @Schema(description = "")
+    private String tag;
+
+    @Schema(description = "")
+    private BigDecimal version;
+
+    @Schema(description = "")
+    private String networkTypes;
+
+    @Schema(description = "")
+    private String messageProtocals;
+
+    @Schema(description = "")
+    private String extend;
+}

+ 27 - 0
src/main/java/com/zswl/dataservice/model/docker/DockerMetaMaxParam.java

@@ -0,0 +1,27 @@
+package com.zswl.dataservice.model.docker;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author TRX
+ * @date 2024/7/25
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class DockerMetaMaxParam {
+    @Schema(description = "")
+    private String name;
+
+    @Schema(description = "")
+    private String registry;
+
+    @Schema(description = "")
+    private String repository;
+
+    @Schema(description = "")
+    private String tag;
+}

+ 42 - 0
src/main/java/com/zswl/dataservice/model/docker/DockerMetaModel.java

@@ -0,0 +1,42 @@
+package com.zswl.dataservice.model.docker;
+
+import com.zswl.dataservice.model.baseParam.SuperModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+/**
+ * @author TRX
+ * @date 2024/7/25
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class DockerMetaModel extends SuperModel {
+    @Schema(description = "")
+    private String name;
+
+    @Schema(description = "")
+    private String registry;
+
+    @Schema(description = "")
+    private String repository;
+
+    @Schema(description = "")
+    private String tag;
+
+    @Schema(description = "")
+    private BigDecimal version;
+
+    @Schema(description = "")
+    private String networkTypes;
+
+    @Schema(description = "")
+    private String messageProtocals;
+
+    @Schema(description = "")
+    private String extend;
+}

+ 42 - 0
src/main/java/com/zswl/dataservice/model/docker/DockerMetaParam.java

@@ -0,0 +1,42 @@
+package com.zswl.dataservice.model.docker;
+
+import com.zswl.dataservice.model.baseParam.SuperParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+/**
+ * @author TRX
+ * @date 2024/7/25
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class DockerMetaParam extends SuperParam {
+    @Schema(description = "")
+    private String name;
+
+    @Schema(description = "")
+    private String registry;
+
+    @Schema(description = "")
+    private String repository;
+
+    @Schema(description = "")
+    private String tag;
+
+    @Schema(description = "")
+    private BigDecimal version;
+
+    @Schema(description = "")
+    private String networkTypes;
+
+    @Schema(description = "")
+    private String messageProtocals;
+
+    @Schema(description = "")
+    private String extend;
+}

+ 42 - 0
src/main/java/com/zswl/dataservice/model/docker/DockerMetaSearch.java

@@ -0,0 +1,42 @@
+package com.zswl.dataservice.model.docker;
+
+import com.zswl.dataservice.model.baseParam.SuperSearchParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+/**
+ * @author TRX
+ * @date 2024/7/25
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class DockerMetaSearch extends SuperSearchParam {
+    @Schema(description = "")
+    private String name;
+
+    @Schema(description = "")
+    private String registry;
+
+    @Schema(description = "")
+    private String repository;
+
+    @Schema(description = "")
+    private String tag;
+
+    @Schema(description = "")
+    private BigDecimal version;
+
+    @Schema(description = "")
+    private String networkTypes;
+
+    @Schema(description = "")
+    private String messageProtocals;
+
+    @Schema(description = "")
+    private String extend;
+}

+ 48 - 0
src/main/java/com/zswl/dataservice/service/docker/DockerMetaService.java

@@ -0,0 +1,48 @@
+package com.zswl.dataservice.service.docker;
+
+import com.zswl.dataservice.dao.docker.DockerMetaDao;
+import com.zswl.dataservice.domain.docker.DockerMeta;
+import com.zswl.dataservice.domain.mqtt.DeviceInfo;
+import com.zswl.dataservice.model.docker.DockerMetaModel;
+import com.zswl.dataservice.model.docker.DockerMetaSearch;
+import com.zswl.dataservice.model.mqtt.DeviceInfoModel;
+import com.zswl.dataservice.model.mqtt.DeviceInfoSearchParam;
+import com.zswl.dataservice.service.base.SuperService;
+import com.zswl.dataservice.utils.bean.BeanUtils;
+import com.zswl.dataservice.utils.page.PageEntityUtil;
+import com.zswl.dataservice.utils.result.ResultContent;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author TRX
+ * @date 2024/7/25
+ */
+@Slf4j
+@Service
+public class DockerMetaService extends SuperService {
+
+    @Autowired
+    private DockerMetaDao dockerMetaDao;
+
+    
+
+    public ResultContent<Page<DockerMetaModel>> page(Pageable pageable, DockerMetaSearch param) {
+        Page<DockerMeta> page = dockerMetaDao.page(pageable, param);
+        return ResultContent.buildSuccess(PageEntityUtil.toPageModel(page, this::toModel));
+    }
+
+    public DockerMetaModel toModel(DockerMeta entity) {
+        DockerMetaModel model = null;
+        if (ObjectUtils.isNotEmpty(entity)) {
+            model = new DockerMetaModel();
+            BeanUtils.copyProperties(entity, model);
+        }
+        return model;
+    }
+
+}