package com.example.catchTheLetters.service.impl; import com.example.catchTheLetters.entity.Version; import com.example.catchTheLetters.entity.VersionDownload; import com.example.catchTheLetters.service.VersionService; import com.example.catchTheLetters.utils.R; import jakarta.annotation.Resource; 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.util.List; @Service public class VersionServiceImpl implements VersionService { @Resource private MongoTemplate mongoTemplate; @Override public Long getVersion(String tableName) { var res = mongoTemplate.findOne(new Query(Criteria.where("table").is(tableName)), Version.class); return res == null ? null : res.getVersion(); } @Override public void setVersion(String tableName, Long version) { var res = mongoTemplate.findOne(new Query(Criteria.where("table").is(tableName)), Version.class); if (res == null) { mongoTemplate.save(new Version(tableName, version)); } else { res.setVersion(version); mongoTemplate.save(res); } } @Override public R addVersionDownload(Long time, String version, String url) { VersionDownload versionDownload = new VersionDownload(); versionDownload.setUrl(url); versionDownload.setTime(time); versionDownload.setVersion(version); VersionDownload insert = mongoTemplate.insert(versionDownload); if (insert.getId() == null){ return R.fail("添加数据库失败"); } //TODO return R.ok(insert.getId()); } @Override public R> getNewDownloads() { Query query = new Query() .with(Sort.by(Sort.Direction.DESC,"time")) .limit(5); List list = mongoTemplate.find(query, VersionDownload.class); return R.ok(list); } }