|
|
@@ -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);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|