This commit is contained in:
2025-04-07 21:57:17 +08:00
parent d5445fdc3e
commit f4a5b789db
29 changed files with 1752 additions and 3 deletions

View File

@@ -0,0 +1,27 @@
package com.mir4updater.backend.service;
import com.mir4updater.backend.entity.ApkInfo;
import com.mir4updater.backend.repository.ApkInfoRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ApkInfoService {
@Autowired
private ApkInfoRepository apkInfoRepository;
public void addApk(ApkInfo user) {
apkInfoRepository.save(user);
}
public List<ApkInfo> getApkInfo(String pkg) {
return apkInfoRepository.findApkInfosByPackageName(pkg);
}
public List<ApkInfo> getAll() {
return apkInfoRepository.findAll();
}
}

View File

@@ -0,0 +1,49 @@
package com.mir4updater.backend.service;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.mir4updater.backend.dto.PakInfoJsonRequest;
import com.mir4updater.backend.entity.PakInfo;
import com.mir4updater.backend.repository.PakInfoRepository;
import jakarta.transaction.Transactional;
import jakarta.validation.ValidationException;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.Map;
@Service
public class PakInfoService {
private final PakInfoRepository pakInfoRepository;
private final RedisTemplate<String, Object> redisTemplate;
public PakInfoService(PakInfoRepository pakInfoRepository, RedisTemplate<String, Object> redisTemplate) {
this.pakInfoRepository = pakInfoRepository;
this.redisTemplate = redisTemplate;
}
@Transactional
public String processData(PakInfoJsonRequest request) {
// 创建实体
PakInfo entity = new PakInfo();
entity.setJson(convertToMap(request.json()));
// 保存到数据库
pakInfoRepository.save(entity);
// 保存到Redis有效期1小时
redisTemplate.opsForValue().set(
"data:" + Collections.singletonMap("uuid", entity.getId()),
request.json()
);
return entity.getId().toString();
}
private Map<String, Object> convertToMap(ObjectNode node) {
try {
return new ObjectMapper().convertValue(node, new TypeReference<>() {});
} catch (IllegalArgumentException e) {
throw new ValidationException("Invalid JSON structure");
}
}
}