move api
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user