TSAuthController.java 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. package com.qmth.distributed.print.api;
  2. import com.qmth.boot.api.annotation.Aac;
  3. import com.qmth.boot.api.annotation.BOOL;
  4. import com.qmth.boot.api.constant.ApiConstant;
  5. import com.qmth.boot.core.solar.crypto.AppLicenseUtil;
  6. import com.qmth.boot.tools.signature.SignatureEntity;
  7. import com.qmth.boot.tools.signature.SignatureType;
  8. import com.qmth.distributed.print.business.service.AuthInfoService;
  9. import com.qmth.teachcloud.common.bean.params.BasicSemesterParams;
  10. import com.qmth.teachcloud.common.contant.SystemConstant;
  11. import com.qmth.teachcloud.common.entity.BasicSchool;
  12. import com.qmth.teachcloud.common.service.CommonCacheService;
  13. import com.qmth.teachcloud.common.util.*;
  14. import io.swagger.annotations.*;
  15. import org.apache.commons.io.IOUtils;
  16. import org.slf4j.Logger;
  17. import org.slf4j.LoggerFactory;
  18. import org.springframework.validation.annotation.Validated;
  19. import org.springframework.web.bind.annotation.*;
  20. import org.springframework.web.multipart.MultipartFile;
  21. import javax.annotation.Resource;
  22. import javax.servlet.http.HttpServletResponse;
  23. import java.io.ByteArrayInputStream;
  24. import java.io.IOException;
  25. import java.net.URLDecoder;
  26. import java.util.Objects;
  27. /**
  28. * <p>
  29. * 激活授权配置表 前端控制器
  30. * </p>
  31. *
  32. * @author wangliang
  33. * @since 2022-04-26
  34. */
  35. @Api(tags = "授权配置Controller")
  36. @RestController
  37. @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.auth}")
  38. @Validated
  39. public class TSAuthController {
  40. private final static Logger log = LoggerFactory.getLogger(TSAuthController.class);
  41. @Resource
  42. AuthInfoService authInfoService;
  43. @Resource
  44. CommonCacheService commonCacheService;
  45. @ApiOperation(value = "导出硬件信息")
  46. @ApiResponses({@ApiResponse(code = 200, message = "导出硬件信息", response = Object.class)})
  47. @RequestMapping(value = "/export/device/info", method = RequestMethod.POST)
  48. public void info() {
  49. try {
  50. HttpServletResponse response = ServletUtil.getResponse();
  51. response.setHeader("Content-Disposition", "attachment; filename=" + SystemConstant.urlEncode("device.info"));
  52. IOUtils.copy(new ByteArrayInputStream(AppLicenseUtil.buildDeviceInfo().value()), response.getOutputStream());
  53. } catch (Exception e) {
  54. log.error(SystemConstant.LOG_ERROR, e);
  55. }
  56. }
  57. @ApiOperation(value = "离线激活")
  58. @ApiResponses({@ApiResponse(code = 200, message = "授权配置信息", response = Boolean.class)})
  59. @RequestMapping(value = "/offline/activation", method = RequestMethod.POST)
  60. public Result offlineActivation(@ApiParam(value = "上传文件", required = true) @RequestParam(required = true) MultipartFile file) throws Exception {
  61. try {
  62. authInfoService.updateLicense(file.getBytes());
  63. } catch (IOException e) {
  64. e.printStackTrace();
  65. }
  66. return ResultUtil.ok(true);
  67. }
  68. @ApiOperation(value = "查询激活信息")
  69. @ApiResponses({@ApiResponse(code = 200, message = "授权配置信息", response = Long.class)})
  70. @RequestMapping(value = "/select", method = RequestMethod.POST)
  71. public Result select() {
  72. return ResultUtil.ok(authInfoService.selectAuthInfo());
  73. }
  74. @ApiOperation(value = "测试推送信息给教研分析")
  75. @ApiResponses({@ApiResponse(code = 200, message = "测试推送信息给教研分析", response = Objects.class)})
  76. @RequestMapping(value = "/test/push", method = RequestMethod.POST)
  77. public void testPush() throws IOException {
  78. /**
  79. * 测试推送学期
  80. */
  81. String url = "/api/report/open/semester_edit";
  82. Long schoolId = SystemConstant.getHeadOrUserSchoolId();
  83. BasicSchool basicSchool = commonCacheService.schoolCache(schoolId);
  84. BasicSemesterParams basicSemesterParams = new BasicSemesterParams("测试学期1", System.currentTimeMillis(), System.currentTimeMillis() + 1L);
  85. Long timestamp = System.currentTimeMillis();
  86. String accessToken = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, url, timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
  87. String result = HttpUtil.postJson("http://127.0.0.1:7004" + url, JacksonUtil.parseJson(basicSemesterParams), accessToken, timestamp);
  88. if (Objects.nonNull(result)) {
  89. log.info("result:{}", JacksonUtil.parseJson(result));
  90. }
  91. // SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
  92. // Long schoolId = SystemConstant.getHeadOrUserSchoolId();
  93. // BasicSchool basicSchool = commonCacheService.schoolCache(schoolId);
  94. // JSONObject jsonObject = new JSONObject();
  95. // jsonObject.put("orgId", basicSchool.getId());
  96. // jsonObject.put("orgCode", basicSchool.getCode());
  97. // jsonObject.put("accessKey", basicSchool.getAccessKey());
  98. // jsonObject.put("accessSecret", basicSchool.getAccessSecret());
  99. // jsonObject.put("createId", sysUser.getId());
  100. // jsonObject.put("createUserName", sysUser.getRealName());
  101. // jsonObject.put("callbackUrl", "/api/admin/auth/test/callback");
  102. // Long timestamp = System.currentTimeMillis();
  103. // String accessToken = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, "/api/report/open/basic/examination/data", timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
  104. // String result = HttpUtil.post("http://127.0.0.1:7004/api/report/open/basic/examination/data", jsonObject.toJSONString(), accessToken, timestamp);
  105. // if (Objects.nonNull(result)) {
  106. // log.info("result:{}", JacksonUtil.parseJson(result));
  107. // }
  108. }
  109. @ApiOperation(value = "测试教研分析回调接口")
  110. @ApiResponses({@ApiResponse(code = 200, message = "测试教研分析回调接口", response = Objects.class)})
  111. @RequestMapping(value = "/test/callback", method = RequestMethod.POST)
  112. @Aac(auth = BOOL.FALSE)
  113. public Result testCallback(@ApiParam(value = "接收教研分析回调数据", required = true) @RequestBody String result) throws IOException {
  114. log.info("testCallback,result:{}", result);
  115. String decodeJson = URLDecoder.decode(result, SystemConstant.CHARSET_NAME);
  116. log.info("testCallback decodeJson:{}", decodeJson);
  117. return ResultUtil.ok(System.currentTimeMillis());
  118. }
  119. }