[API] Let web music list read from database

pull/1/head
samnyan 2020-02-03 00:49:40 +08:00
parent c3929db1f3
commit 0e9c88c41d
7 changed files with 2715 additions and 7 deletions

View File

@ -2,8 +2,10 @@ package icu.samnyan.aqua.api.controller.sega.game.diva;
import icu.samnyan.aqua.sega.diva.dao.gamedata.DivaCustomizeRepository;
import icu.samnyan.aqua.sega.diva.dao.gamedata.DivaModuleRepository;
import icu.samnyan.aqua.sega.diva.dao.gamedata.DivaPvRepository;
import icu.samnyan.aqua.sega.diva.model.gamedata.DivaCustomize;
import icu.samnyan.aqua.sega.diva.model.gamedata.DivaModule;
import icu.samnyan.aqua.sega.diva.model.gamedata.Pv;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
import org.springframework.http.MediaType;
@ -24,24 +26,26 @@ public class ApiDivaGameDataController {
private final DivaModuleRepository divaModuleRepository;
private final DivaCustomizeRepository divaCustomizeRepository;
private final DivaPvRepository divaPvRepository;
public ApiDivaGameDataController(DivaModuleRepository divaModuleRepository, DivaCustomizeRepository divaCustomizeRepository) {
public ApiDivaGameDataController(DivaModuleRepository divaModuleRepository, DivaCustomizeRepository divaCustomizeRepository, DivaPvRepository divaPvRepository) {
this.divaModuleRepository = divaModuleRepository;
this.divaCustomizeRepository = divaCustomizeRepository;
this.divaPvRepository = divaPvRepository;
}
@GetMapping(value = "musicList", produces = MediaType.APPLICATION_JSON_VALUE)
public Resource musicList() throws IOException {
return new FileSystemResource(Paths.get("data/diva_musiclist.json"));
@GetMapping(value = "musicList")
public List<Pv> musicList() {
return divaPvRepository.findAll();
}
@GetMapping(value = "moduleList")
public List<DivaModule> moduleList() throws IOException {
public List<DivaModule> moduleList() {
return divaModuleRepository.findAll();
}
@GetMapping(value = "customizeList")
public List<DivaCustomize> customizeList() throws IOException {
public List<DivaCustomize> customizeList() {
return divaCustomizeRepository.findAll();
}
}

View File

@ -29,14 +29,16 @@ public class ApiDivaManageController {
private final FestaRepository festaRepository;
private final ContestRepository contestRepository;
private final PropertyEntryRepository propertyEntryRepository;
private final DivaPvRepository divaPvRepository;
public ApiDivaManageController(PvEntryRepository pvEntryRepository, DivaModuleRepository moduleRepository, DivaCustomizeRepository customizeRepository, FestaRepository festaRepository, ContestRepository contestRepository, PropertyEntryRepository propertyEntryRepository) {
public ApiDivaManageController(PvEntryRepository pvEntryRepository, DivaModuleRepository moduleRepository, DivaCustomizeRepository customizeRepository, FestaRepository festaRepository, ContestRepository contestRepository, PropertyEntryRepository propertyEntryRepository, DivaPvRepository divaPvRepository) {
this.pvEntryRepository = pvEntryRepository;
this.moduleRepository = moduleRepository;
this.customizeRepository = customizeRepository;
this.festaRepository = festaRepository;
this.contestRepository = contestRepository;
this.propertyEntryRepository = propertyEntryRepository;
this.divaPvRepository = divaPvRepository;
}
@PostMapping("pvList")

View File

@ -0,0 +1,10 @@
package icu.samnyan.aqua.sega.diva.dao.gamedata;
import icu.samnyan.aqua.sega.diva.model.gamedata.Pv;
import org.springframework.data.jpa.repository.JpaRepository;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
public interface DivaPvRepository extends JpaRepository<Pv, Integer> {
}

View File

@ -0,0 +1,36 @@
package icu.samnyan.aqua.sega.diva.model.gamedata;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "DivaPvLevel")
@Table(name = "diva_pv_info_level")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Difficulty {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "pv_id")
private Pv pv;
private int edition;
private String level;
private int version;
private String diff;
}

View File

@ -0,0 +1,45 @@
package icu.samnyan.aqua.sega.diva.model.gamedata;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Map;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "DivaPvInfo")
@Table(name = "diva_pv_info")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Pv implements Serializable
{
private static final long serialVersionUID = 1L;
@Id
private Integer pvId;
private Integer bpm;
private String songName;
private String songNameEng;
private String songNameReading;
private String arranger;
private String lyrics;
private String music;
private Integer performerNumber;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "pv")
@MapKey(name = "diff")
private Map<String, Difficulty> difficulty;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff