forked from Cookies_Github_mirror/AquaDX
[chuni] Add auto version matching
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
package icu.samnyan.aqua.sega.general.dao;
|
||||
|
||||
import icu.samnyan.aqua.security.model.WebUser;
|
||||
import icu.samnyan.aqua.sega.general.model.Card;
|
||||
import icu.samnyan.aqua.sega.general.model.GameVersion;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Repository("GameVersionRepository")
|
||||
public interface GameVersionRepository extends JpaRepository<GameVersion, String> {
|
||||
Optional<GameVersion> findByUuid(String uuid);
|
||||
List<GameVersion> findByLastTimeBefore(LocalDateTime time);
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package icu.samnyan.aqua.sega.general.model;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Entity(name = "SegaGameVersion")
|
||||
@Table(name = "sega_game_version")
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class GameVersion {
|
||||
@Id
|
||||
private String uuid;
|
||||
private String romVersion;
|
||||
private String dataVersion;
|
||||
private LocalDateTime lastTime;
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package icu.samnyan.aqua.sega.general.service;
|
||||
|
||||
import icu.samnyan.aqua.sega.general.dao.GameVersionRepository;
|
||||
import icu.samnyan.aqua.sega.general.model.GameVersion;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Optional;
|
||||
|
||||
import static icu.samnyan.aqua.sega.util.AquaConst.DEFAULT_KEYCHIP_ID;
|
||||
|
||||
@Service
|
||||
public class ClientSettingService {
|
||||
|
||||
private final GameVersionRepository gameVersionRepository;
|
||||
|
||||
public ClientSettingService(GameVersionRepository gameVersionRepository) {
|
||||
this.gameVersionRepository = gameVersionRepository;
|
||||
}
|
||||
|
||||
public void writeSetting(GameVersion setting) {
|
||||
gameVersionRepository.save(setting);
|
||||
}
|
||||
|
||||
public Optional<GameVersion> getSetting(String serial) {
|
||||
if (serial.equals(DEFAULT_KEYCHIP_ID)) {
|
||||
return Optional.empty();
|
||||
}
|
||||
try {
|
||||
var vo = gameVersionRepository.findByUuid(serial);
|
||||
if (vo.isPresent()) {
|
||||
var v = vo.get();
|
||||
v.setLastTime(LocalDateTime.now());
|
||||
gameVersionRepository.save(v);
|
||||
return Optional.of(v);
|
||||
}
|
||||
return Optional.empty();
|
||||
} catch (Exception e) {
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user