package com.ruoyi.jianguan.mongodb.service.impl; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.integration.api.model.PlatformStartCharging; import com.ruoyi.integration.api.model.PlatformStopChargingReply; import com.ruoyi.integration.api.vo.GetPlatformStopChargingReply; import com.ruoyi.jianguan.constant.IotConstant; import com.ruoyi.jianguan.mongodb.service.PlatformStopChargingReplyService; import org.springframework.beans.factory.annotation.Autowired; 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.stereotype.Service; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Objects; @Service public class PlatformStopChargingReplyServiceImpl implements PlatformStopChargingReplyService { @Autowired private MongoTemplate mongoTemplate; @Override public int create(PlatformStopChargingReply platformStopChargingReply) { mongoTemplate.save(platformStopChargingReply); return IotConstant.SUCCESS; } @Override public PlatformStopChargingReply findById(String id) { return mongoTemplate.findById(id, PlatformStopChargingReply.class); } @Override public List findAll() { return mongoTemplate.findAll(PlatformStopChargingReply.class); } /** * 根据枪编号获取 * @return */ @Override public PlatformStopChargingReply getPlatformStopChargingReply(GetPlatformStopChargingReply query) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); List platformStopChargingReplies = mongoTemplate.find(new Query().addCriteria(Criteria.where("charging_pile_code").is(query.getCharging_pile_code()) .and("charging_gun_code").is(query.getCharging_gun_code()).and("create_time").lte(sdf.format(new Date())).gte(query.getEnd_time())), PlatformStopChargingReply.class); return platformStopChargingReplies.size() > 0 ? platformStopChargingReplies.get(0) : null; } @Override public List getRangeTimeData(Date startTime, Date endTime) { Query query = new Query(); // 根据时间范围查询 if (Objects.nonNull(startTime) && Objects.nonNull(endTime)) { query.addCriteria(Criteria.where("create_time").gte(startTime).lte(endTime)); } List list = mongoTemplate.find( query.with(Sort.by(Sort.Order.desc("create_time"))) , PlatformStopChargingReply.class); return list; } }