SsoController.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. package com.qmth.distributed.print.api;
  2. import com.alibaba.fastjson.JSON;
  3. import com.qmth.boot.api.constant.ApiConstant;
  4. import com.qmth.distributed.print.business.service.SsoService;
  5. import com.qmth.teachcloud.common.bean.params.OpenParams;
  6. import com.qmth.teachcloud.common.contant.SystemConstant;
  7. import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
  8. import com.qmth.teachcloud.common.enums.RoleTypeEnum;
  9. import com.qmth.teachcloud.common.util.Result;
  10. import com.qmth.teachcloud.common.util.ResultUtil;
  11. import io.swagger.annotations.*;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.web.bind.annotation.RequestMapping;
  14. import org.springframework.web.bind.annotation.RequestMethod;
  15. import org.springframework.web.bind.annotation.RequestParam;
  16. import org.springframework.web.bind.annotation.RestController;
  17. import java.io.IOException;
  18. import java.util.Map;
  19. import java.util.Objects;
  20. /**
  21. * <p>
  22. * 单点登录 前端控制器
  23. * </p>
  24. *
  25. * @author xf
  26. */
  27. @Api(tags = "单点登录Controller")
  28. @RestController
  29. @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_EXAM + "/sso")
  30. public class SsoController {
  31. @Autowired
  32. SsoService ssoService;
  33. /**
  34. * 评卷员单点登录
  35. *
  36. * @return
  37. */
  38. @ApiOperation(value = "评卷员单点登录")
  39. @RequestMapping(value = "/marker_login", method = RequestMethod.POST)
  40. public Result markerLogin() {
  41. Map<String, Object> map = ssoService.markerLoginInfo();
  42. return ResultUtil.ok(map);
  43. }
  44. /**
  45. * 评卷员单点登录
  46. *
  47. * @return
  48. */
  49. @ApiOperation(value = "评卷员单点登录")
  50. @RequestMapping(value = "/marker_leader_login", method = RequestMethod.POST)
  51. public Result markerLeaderLogin() {
  52. Map<String, Object> map = ssoService.markerLeaderLoginInfo();
  53. return ResultUtil.ok(map);
  54. }
  55. @ApiOperation(value = "题库单点登录")
  56. @ApiResponses({@ApiResponse(code = 200, message = "题库单点登录", response = Result.class)})
  57. @RequestMapping(value = "/question_library_login", method = RequestMethod.POST)
  58. public Result questionLibraryLogin(@ApiParam(value = "登录名", required = true) @RequestParam String loginName,
  59. @ApiParam(value = "真实姓名", required = true) @RequestParam String realName,
  60. @ApiParam(value = "角色", required = true) @RequestParam RoleTypeEnum role,
  61. @ApiParam(value = "返回url") @RequestParam(required = false) String returnUrl,
  62. @ApiParam(value = "其它参数") @RequestParam(required = false) String params) throws IOException {
  63. if (Objects.isNull(loginName) || Objects.equals(loginName, "")) {
  64. throw ExceptionResultEnum.PARAMS_ERROR.exception("登录名不能为空");
  65. }
  66. if (Objects.isNull(role)) {
  67. throw ExceptionResultEnum.PARAMS_ERROR.exception("角色不能为空");
  68. }
  69. if (role != RoleTypeEnum.SUBJECT_TEACHER && role != RoleTypeEnum.ASSIGN_TEACHER) {
  70. throw ExceptionResultEnum.ERROR.exception("角色类型超出限制");
  71. }
  72. OpenParams openParams = new OpenParams();
  73. openParams.setName(realName);
  74. openParams.setRoleName(role.name());
  75. return ResultUtil.ok(ssoService.questionLibraryLogin(loginName,realName, role, returnUrl, JSON.toJSONString(openParams)));
  76. }
  77. @ApiOperation(value = "教研分析单点登录")
  78. @ApiResponses({@ApiResponse(code = 200, message = "教研分析单点登录", response = Result.class)})
  79. @RequestMapping(value = "/analysis_login", method = RequestMethod.POST)
  80. public Result analysisLogin(@ApiParam(value = "登录名", required = true) @RequestParam String loginName,
  81. @ApiParam(value = "角色", required = true) @RequestParam RoleTypeEnum role,
  82. @ApiParam(value = "学院名称", required = true) @RequestParam String orgName,
  83. @ApiParam(value = "真实名") @RequestParam(required = false) String realName,
  84. @ApiParam(value = "手机号码") @RequestParam(required = false) String mobileNumber,
  85. @ApiParam(value = "是否启用") @RequestParam(required = false) Boolean enable,
  86. @ApiParam(value = "返回url") @RequestParam(required = false) String returnUrl) throws IOException {
  87. if (Objects.isNull(loginName) || Objects.equals(loginName, "")) {
  88. throw ExceptionResultEnum.PARAMS_ERROR.exception("登录名不能为空");
  89. }
  90. if (Objects.isNull(role)) {
  91. throw ExceptionResultEnum.PARAMS_ERROR.exception("角色不能为空");
  92. }
  93. if (Objects.isNull(orgName) || Objects.equals(orgName, "")) {
  94. throw ExceptionResultEnum.PARAMS_ERROR.exception("学院名称不能为空");
  95. }
  96. if (role != RoleTypeEnum.OFFICE_TEACHER && role != RoleTypeEnum.PRESIDENT && role != RoleTypeEnum.TEACHER) {
  97. throw ExceptionResultEnum.ERROR.exception("角色类型超出限制");
  98. }
  99. return ResultUtil.ok(ssoService.analysisLogin(loginName, role, orgName, realName, mobileNumber, enable, returnUrl));
  100. }
  101. }