IotTopicDaoImpl.java 2.4 KB

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