| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package com.zswl.dataservice.dao.iot.impl;
- import com.zswl.dataservice.dao.base.BaseImpl;
- import com.zswl.dataservice.dao.iot.extend.IotTopicDaoExtend;
- import com.zswl.dataservice.dao.mqtt.extend.DeviceInfoDaoExtend;
- import com.zswl.dataservice.domain.iot.IotTemplate;
- import com.zswl.dataservice.domain.iot.IotTopic;
- import com.zswl.dataservice.domain.mqtt.DeviceInfo;
- import com.zswl.dataservice.helper.DBHelper;
- import com.zswl.dataservice.model.iot.IotTopicSearch;
- import com.zswl.dataservice.model.mqtt.DeviceInfoSearchParam;
- 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 IotTopicDaoImpl extends BaseImpl implements IotTopicDaoExtend {
- @Autowired
- private MongoTemplate mongoTemplate;
- @Autowired
- private DBHelper dbHelper;
- @Override
- public Page<IotTopic> page(Pageable pageable, IotTopicSearch param) {
- Criteria criteria = new Criteria();
- if (StringUtils.isNotEmpty(param.getEpId())) {
- criteria.and("epId").is(param.getEpId());
- }
- if (StringUtils.isNotEmpty(param.getIotTemplateId())) {
- criteria.and("iotTemplate").is(IotTemplate.build(param.getIotTemplateId()));
- }
- // 模糊搜索
- List<Criteria> criterias = new ArrayList<>();
- if (StringUtils.isNotEmpty(param.getTopic())) {
- Pattern pattern = Pattern.compile("^.*" + param.getTopic() + ".*$");
- criterias.add(Criteria.where("topic").is(pattern));
- }
- if (!CollectionUtils.isEmpty(criterias)) {
- criteria.andOperator(criterias.toArray(new Criteria[]{}));
- }
- criteria.and("isDelete").is(Boolean.FALSE);
- Sort sort = buildSort(param);
- Query query = Query.query(criteria);
- query.with(sort);
- return dbHelper.pages(query, pageable, IotTopic.class);
- }
- }
|