2024.4.19
第三十三天
所花时间:2小时
代码量:200+
博客量:1
了解到的知识点:controller代码
package com.example.metroinfo.controller; import com.example.metroinfo.model.MetroLine; import com.example.metroinfo.model.MetroStation; import com.example.metroinfo.model.MetroSystem; import com.example.metroinfo.service.MetroInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.List; @CrossOrigin @RestController @RequestMapping("/metro") public class MetroSystemController { @Autowired MetroInfoService metroInfoService; @PostMapping ResponseEntity<?> addMetroSystem(@RequestBody MetroSystem metroSystem) { return ResponseEntity.ok(metroInfoService.addMetroSystem(metroSystem)); } @GetMapping("/{sid}") ResponseEntity<?> getMetroSystem(@PathVariable String sid) { return ResponseEntity.ok(metroInfoService.getMetroSystem(sid)); } //功能实现接口 @GetMapping("/find/system")//找城市 ResponseEntity<?> findMetroSystemByName() { return ResponseEntity.ok(metroInfoService.findAllMetroSystem()); } @GetMapping("/{sid}/find/station")//找站点 ResponseEntity<?> findMetroStation(@PathVariable String sid, @RequestParam String stName) { return ResponseEntity.ok(metroInfoService.findStationByStationNameContaining(sid,stName)); } @GetMapping("/{sid}/search/line")//找线路 ResponseEntity<?> searchByLine(@PathVariable String sid,@RequestParam String lNum) { return ResponseEntity.ok(metroInfoService.searchByLine(sid,lNum)); } @GetMapping("/{sid}/search/route")//找最优路线 ResponseEntity<?> searchShortestPath(@PathVariable String sid, @RequestParam String from,@RequestParam String to) { return ResponseEntity.ok(metroInfoService.searchShortestPath(sid,from,to)); } @GetMapping("/{systemName}/line/{lineNumber}/stations")//根据城市和线路名称找线路上所有站点 public ResponseEntity<List<MetroStation>> getStationsBySystemAndLine( @PathVariable String systemName, @PathVariable String lineNumber) { List<MetroStation> stations = metroInfoService.getAllStationsBySystemCodeAndLineNumber(systemName, lineNumber); return ResponseEntity.ok(stations); } @GetMapping("/system/{systemName}/lines") public ResponseEntity<List<MetroLine>> getLinesBySystemName(@PathVariable String systemName) { List<MetroLine> lines = metroInfoService.getLinesBySystemName(systemName); if (lines.isEmpty()) { return ResponseEntity.notFound().build(); // 如果未找到任何线路,返回 404 Not Found } return ResponseEntity.ok(lines); } // 根据 systemName 查询对应的 systemCode @GetMapping("/findSystemCode") public ResponseEntity<String> findSystemCodeBySystemName(@RequestParam String systemName) { try { // 调用服务层方法,根据 systemName 查询对应的 MetroSystem 对象 MetroSystem metroSystem = metroInfoService.findMetroSystemBySystemName(systemName); if (metroSystem != null) { // 如果找到对应的 MetroSystem,返回其 systemCode String systemCode = metroSystem.getSystemCode(); return ResponseEntity.ok(systemCode); } else { // 如果找不到对应的 MetroSystem,返回 404 Not Found return ResponseEntity.notFound().build(); } } catch (Exception e) { // 处理异常情况,比如数据库访问异常等 e.printStackTrace(); return ResponseEntity.status(500).body("Internal Server Error"); } } @GetMapping("/findStationCode") public ResponseEntity<String> findStationCodeByStationName(@RequestParam String stationName) { try { // 调用服务层方法,根据 stationName 查询对应的 MetroStation 对象 MetroStation metroStation = metroInfoService.findStationByStationName(stationName); if (metroStation != null) { // 如果找到对应的 MetroStation,返回其 stationCode String stationCode = metroStation.getStationCode(); return ResponseEntity.ok(stationCode); } else { // 如果找不到对应的 MetroStation,返回 404 Not Found return ResponseEntity.notFound().build(); } } catch (Exception e) { // 处理异常情况,比如数据库访问异常等 e.printStackTrace(); return ResponseEntity.status(500).body("Internal Server Error"); } } }