package com.izouma.walkchina.web; import com.izouma.walkchina.dto.MapRegion; import com.izouma.walkchina.dto.Result; import com.izouma.walkchina.domain.UserInfo; import com.izouma.walkchina.repo.CityRepository; import com.izouma.walkchina.service.JourneyService; import com.izouma.walkchina.service.MapService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/map") public class MapController { @Autowired private MapService mapService; @Autowired private JourneyService journeyService; @Autowired private CityRepository cityRepository; @PostMapping("/citiesInRegion") public Result citiesInRegion(@RequestBody MapRegion mapRegion) { return Result.ok(mapService.citiesInRegion(mapRegion)); } @PostMapping("/usersInRegion") public Result usersInRegion(@RequestBody MapRegion mapRegion) { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); UserInfo userInfo = (UserInfo) authentication.getPrincipal(); return Result.ok(mapService.usersInRegion(userInfo.getId(), mapRegion)); } @GetMapping("/userMap") public Result userMap(Long userId) { if (userId == null) { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); UserInfo userInfo = (UserInfo) authentication.getPrincipal(); userId = userInfo.getId(); } return Result.ok(mapService.userMap(userId)); } @GetMapping("/calcAward") public Result calcAward(@RequestParam("originId") Long originId, @RequestParam("destinationId") Long destinationId) { return Result.ok(mapService.calcAward(originId, destinationId)); } }