GateWayInfoDaoImpl.java 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package com.zswl.dataservice.dao.mqtt.impl;
  2. import com.zswl.dataservice.dao.mqtt.extend.GateWayInfoDaoExtend;
  3. import com.zswl.dataservice.domain.mqtt.GateWayInfo;
  4. import com.zswl.dataservice.helper.DBHelper;
  5. import com.zswl.dataservice.model.mqtt.GateWayInfoSearchParam;
  6. import org.apache.commons.lang3.ObjectUtils;
  7. import org.apache.commons.lang3.StringUtils;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.data.domain.Page;
  10. import org.springframework.data.domain.Pageable;
  11. import org.springframework.data.domain.Sort;
  12. import org.springframework.data.mongodb.core.MongoTemplate;
  13. import org.springframework.data.mongodb.core.query.Criteria;
  14. import org.springframework.data.mongodb.core.query.Query;
  15. import org.springframework.util.CollectionUtils;
  16. import java.util.ArrayList;
  17. import java.util.List;
  18. import java.util.regex.Pattern;
  19. /**
  20. * @Author TRX
  21. * @CreateDate: 2023/4/12
  22. * @Version: 1.0
  23. */
  24. public class GateWayInfoDaoImpl implements GateWayInfoDaoExtend {
  25. @Autowired
  26. private MongoTemplate mongoTemplate;
  27. @Autowired
  28. private DBHelper dbHelper;
  29. @Override
  30. public Page<GateWayInfo> page(Pageable pageable, GateWayInfoSearchParam param) {
  31. Criteria criteria = new Criteria();
  32. if (StringUtils.isNotEmpty(param.getGateWayId())) {
  33. criteria.and("gateWayId").is(param.getGateWayId());
  34. }
  35. if (StringUtils.isNotEmpty(param.getEpId())) {
  36. criteria.and("epId").is(param.getEpId());
  37. }
  38. // 模糊搜索
  39. List<Criteria> criterias = new ArrayList<>();
  40. if (StringUtils.isNotEmpty(param.getGateWayName())) {
  41. Pattern pattern = Pattern.compile("^.*" + param.getGateWayName() + ".*$");
  42. criterias.add(Criteria.where("gateWayName").is(pattern));
  43. }
  44. if (!CollectionUtils.isEmpty(criterias)) {
  45. criteria.andOperator(criterias.toArray(new Criteria[]{}));
  46. }
  47. criteria.and("isDelete").is(Boolean.FALSE);
  48. Sort sort = param.getSort();
  49. if (ObjectUtils.isEmpty(sort)) {
  50. sort = Sort.by(Sort.Order.desc("createTime"));
  51. }
  52. Query query = Query.query(criteria);
  53. query.with(sort);
  54. return dbHelper.pages(query, pageable, GateWayInfo.class);
  55. }
  56. }