TSAuthController.java 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. package com.qmth.distributed.print.api;
  2. import com.qmth.boot.api.constant.ApiConstant;
  3. import com.qmth.boot.core.solar.crypto.AppLicenseUtil;
  4. import com.qmth.boot.core.solar.model.AppControl;
  5. import com.qmth.boot.core.solar.model.AppInfo;
  6. import com.qmth.boot.core.solar.service.SolarService;
  7. import com.qmth.boot.tools.device.DeviceInfo;
  8. import com.qmth.distributed.print.business.bean.dto.TSAuthDto;
  9. import com.qmth.distributed.print.business.entity.TSAuth;
  10. import com.qmth.distributed.print.business.service.TSAuthService;
  11. import com.qmth.teachcloud.common.contant.SystemConstant;
  12. import com.qmth.teachcloud.common.entity.SysUser;
  13. import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
  14. import com.qmth.teachcloud.common.util.JacksonUtil;
  15. import com.qmth.teachcloud.common.util.Result;
  16. import com.qmth.teachcloud.common.util.ResultUtil;
  17. import com.qmth.teachcloud.common.util.ServletUtil;
  18. import io.swagger.annotations.Api;
  19. import io.swagger.annotations.ApiOperation;
  20. import io.swagger.annotations.ApiResponse;
  21. import io.swagger.annotations.ApiResponses;
  22. import org.apache.commons.io.IOUtils;
  23. import org.slf4j.Logger;
  24. import org.slf4j.LoggerFactory;
  25. import org.springframework.validation.BindingResult;
  26. import org.springframework.validation.annotation.Validated;
  27. import org.springframework.web.bind.annotation.RequestBody;
  28. import org.springframework.web.bind.annotation.RequestMapping;
  29. import org.springframework.web.bind.annotation.RequestMethod;
  30. import org.springframework.web.bind.annotation.RestController;
  31. import javax.annotation.Resource;
  32. import javax.servlet.http.HttpServletResponse;
  33. import javax.validation.Valid;
  34. import java.io.ByteArrayInputStream;
  35. import java.io.UnsupportedEncodingException;
  36. import java.net.URLEncoder;
  37. /**
  38. * <p>
  39. * 激活授权配置表 前端控制器
  40. * </p>
  41. *
  42. * @author wangliang
  43. * @since 2022-04-26
  44. */
  45. @Api(tags = "授权配置Controller")
  46. @RestController
  47. @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.auth}")
  48. //@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
  49. @Validated
  50. public class TSAuthController {
  51. private final static Logger log = LoggerFactory.getLogger(TSAuthController.class);
  52. @Resource
  53. TSAuthService tsAuthService;
  54. @Resource
  55. SolarService solarService;
  56. @ApiOperation(value = "授权配置信息")
  57. @ApiResponses({@ApiResponse(code = 200, message = "授权配置信息", response = TSAuthDto.class)})
  58. @RequestMapping(value = "/info", method = RequestMethod.POST)
  59. public Result info() {
  60. Long schoolId = SystemConstant.getHeadOrUserSchoolId();
  61. return ResultUtil.ok(true);
  62. }
  63. @ApiOperation(value = "保存或更新授权配置信息")
  64. @ApiResponses({@ApiResponse(code = 200, message = "授权配置信息", response = TSAuth.class)})
  65. @RequestMapping(value = "/save", method = RequestMethod.POST)
  66. public void save(@Valid @RequestBody TSAuth tsAuth, BindingResult bindingResult) {
  67. // if (bindingResult.hasErrors()) {
  68. // return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
  69. // }
  70. Long schoolId = SystemConstant.getHeadOrUserSchoolId();
  71. SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
  72. DeviceInfo deviceInfo = new DeviceInfo();
  73. log.info("DeviceInfo.current():{}", JacksonUtil.parseJson(DeviceInfo.current()));
  74. log.info("deviceInfo.getComputer():{}", JacksonUtil.parseJson(deviceInfo.getComputer()));
  75. log.info("deviceInfo.getDiskStore():{}", JacksonUtil.parseJson(deviceInfo.getDiskStore()));
  76. log.info("deviceInfo.getNetworkInterface():{}", JacksonUtil.parseJson(deviceInfo.getNetworkInterface()));
  77. log.info("deviceInfo.getProcessor():{}", JacksonUtil.parseJson(deviceInfo.getProcessor()));
  78. log.info("deviceInfo.uuid():{}", deviceInfo.uuid());
  79. AppControl appControl = solarService.getAppControl();
  80. log.info("appControl:{}", JacksonUtil.parseJson(appControl));
  81. // List<OrgInfo> orgInfoList = solarService.getOrgList();
  82. // log.info("orgInfoList:{}", JacksonUtil.parseJson(orgInfoList));
  83. AppInfo appInfo = solarService.getAppInfo();
  84. log.info("appInfo:{}", JacksonUtil.parseJson(appInfo));
  85. // solarService.update();
  86. try {
  87. // ByteArray byteArray = AppLicenseUtil.buildDeviceInfo();
  88. // log.info("byteArray:{}", byteArray.value());
  89. // solarService.update(byteArray.value());
  90. HttpServletResponse response = ServletUtil.getResponse();
  91. response.setHeader("Content-Disposition", "attachment; filename=" + urlEncode("device.info"));
  92. IOUtils.copy(new ByteArrayInputStream(AppLicenseUtil.buildDeviceInfo().value()), response.getOutputStream());
  93. } catch (Exception e) {
  94. e.printStackTrace();
  95. }
  96. // return ResultUtil.ok(true);
  97. }
  98. /**
  99. * URL 编码, Encode默认为UTF-8.
  100. */
  101. public static String urlEncode(String part) {
  102. try {
  103. return URLEncoder.encode(part, SystemConstant.CHARSET_NAME);
  104. } catch (UnsupportedEncodingException e) {
  105. throw ExceptionResultEnum.ERROR.exception(e.getMessage());
  106. }
  107. }
  108. }