Files
AquaDX/src/main/java/icu/samnyan/aqua/sega/diva/DivaServices.kt
2025-10-25 12:14:06 +09:00

63 lines
2.2 KiB
Kotlin

package icu.samnyan.aqua.sega.diva
import icu.samnyan.aqua.sega.diva.model.RegistrationRequest
import icu.samnyan.aqua.sega.diva.model.db.userdata.PlayerCustomize
import icu.samnyan.aqua.sega.diva.model.db.userdata.PlayerModule
import icu.samnyan.aqua.sega.diva.model.db.userdata.PlayerProfile
import org.apache.commons.lang3.StringUtils
import org.springframework.stereotype.Component
import org.springframework.stereotype.Service
import java.math.BigInteger
import java.util.*
@Component
class DivaServices(
val profile: PlayerProfileService,
val module: PlayerModuleService,
val customize: PlayerCustomizeService
)
@Service
class PlayerModuleService(val repo: PlayerModuleRepository) {
fun buy(profile: PlayerProfile, moduleId: Int) = repo.save(PlayerModule(profile, moduleId))
fun getModuleHaveString(profile: PlayerProfile): String {
val moduleList = repo.findByPdId(profile)
var module_have = BigInteger("0")
for (module in moduleList) {
module_have = module_have.or(BigInteger.valueOf(1).shiftLeft(module.moduleId))
}
println(module_have.toString(2))
return StringUtils.leftPad(module_have.toString(16), 250, "0").uppercase(Locale.getDefault())
}
}
@Service
class PlayerProfileService(val repo: PlayerProfileRepository) {
fun findByPdId(pdId: Long): Optional<PlayerProfile> = repo.findByPdId(pdId)
fun register(request: RegistrationRequest): PlayerProfile {
val profile = PlayerProfile()
profile.pdId = request.aime_id
profile.playerName = request.player_name
return repo.save(profile)
}
fun save(profile: PlayerProfile) = repo.save(profile)
}
@Service
class PlayerCustomizeService(val repo: PlayerCustomizeRepository) {
fun buy(profile: PlayerProfile, customizeId: Int) = repo.save(PlayerCustomize(profile, customizeId))
fun getModuleHaveString(profile: PlayerProfile): String {
val customizeList = repo.findByPdId(profile)
var customize_have = BigInteger("0")
for (customize in customizeList) {
customize_have = customize_have.or(BigInteger.valueOf(1).shiftLeft(customize.customizeId))
}
return StringUtils.leftPad(customize_have.toString(16), 250, "0")
}
}