LoginController.java 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package com.imed.costaccount.web;
  2. import com.imed.costaccount.common.util.Result;
  3. import com.imed.costaccount.model.User;
  4. import com.imed.costaccount.model.dto.LoginDTO;
  5. import com.imed.costaccount.model.vo.CommonVO;
  6. import com.imed.costaccount.model.vo.LoginVO;
  7. import com.imed.costaccount.service.HospitalService;
  8. import com.imed.costaccount.service.UserService;
  9. import io.swagger.annotations.Api;
  10. import io.swagger.annotations.ApiOperation;
  11. import org.apache.shiro.SecurityUtils;
  12. import org.springframework.web.bind.annotation.*;
  13. import javax.validation.Valid;
  14. import java.util.List;
  15. @Api(tags = "登录相关模块")
  16. @RestController
  17. @RequestMapping("/costAccount")
  18. public class LoginController {
  19. private final UserService userService;
  20. private final HospitalService hospitalService;
  21. public LoginController(UserService userService, HospitalService hospitalService) {
  22. this.userService = userService;
  23. this.hospitalService = hospitalService;
  24. }
  25. /**
  26. * 登录接口
  27. * @param loginDTO {@link LoginDTO} 登录相关参数
  28. * @return
  29. */
  30. @PostMapping("/login")
  31. @ApiOperation("登录操作")
  32. public Result login(@RequestBody @Valid LoginDTO loginDTO) {
  33. LoginVO loginVO = userService.login(loginDTO);
  34. return Result.ok(loginVO);
  35. }
  36. @ApiOperation("退出登录")
  37. @PostMapping("/logout")
  38. public Result logout() {
  39. User user = (User) SecurityUtils.getSubject().getPrincipal();
  40. userService.logout(user);
  41. return Result.ok();
  42. }
  43. /**
  44. * 通过医院标识获取院区列表
  45. * @param sign 医院标识
  46. * @return
  47. */
  48. @ApiOperation("获取院区")
  49. @GetMapping("/getHospArea")
  50. public Result getHospArea(@RequestParam String sign) {
  51. List<CommonVO> commonVOs = hospitalService.getHospArea(sign);
  52. return Result.ok(commonVOs);
  53. }
  54. }