StatCalculatorController.kt
package io.github.lishangbu.avalon.dataset.controller
import io.github.lishangbu.avalon.dataset.model.StatCalculatorCreaturePresetView
import io.github.lishangbu.avalon.dataset.model.StatCalculatorRequest
import io.github.lishangbu.avalon.dataset.model.StatCalculatorResultView
import io.github.lishangbu.avalon.dataset.service.StatCalculatorService
import jakarta.validation.Valid
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.bind.annotation.RestController
/** 能力值计算器控制器 */
@RestController
@RequestMapping("/stat-calculator")
class StatCalculatorController(
private val statCalculatorService: StatCalculatorService,
) {
/** 查询指定生物的六围基础值预设 */
@GetMapping("/preset")
fun getCreaturePreset(
@RequestParam(required = false) creatureId: String?,
): StatCalculatorCreaturePresetView =
statCalculatorService.getCreaturePreset(
creatureId = creatureId,
)
/** 按输入批量计算能力值 */
@PostMapping("/calculate")
fun calculate(
@Valid
@RequestBody request: StatCalculatorRequest,
): StatCalculatorResultView = statCalculatorService.calculate(request)
}