PublicController.java 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package com.backendsys.modules;
  2. import cn.hutool.core.io.FileUtil;
  3. import com.backendsys.modules.common.config.security.annotations.Anonymous;
  4. import com.backendsys.modules.common.config.security.utils.HttpRequestUtil;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.core.env.Environment;
  7. import org.springframework.web.bind.annotation.GetMapping;
  8. import org.springframework.web.bind.annotation.RestController;
  9. @RestController
  10. public class PublicController {
  11. @Autowired
  12. private Environment env;
  13. @Autowired
  14. private HttpRequestUtil httpRequestUtil;
  15. @Anonymous
  16. @GetMapping("/api/ip")
  17. public String getIP() {
  18. return httpRequestUtil.getIpAddr();
  19. }
  20. @Anonymous
  21. @GetMapping("/api/version")
  22. public String getVersion() {
  23. String activeProfile = env.getActiveProfiles()[0];
  24. if ("local".equals(activeProfile)) {
  25. // jar 包所在目录 + 文件名
  26. String path = FileUtil.getParent(
  27. this.getClass().getProtectionDomain().getCodeSource().getLocation().getFile(), 2) + "./version.txt";
  28. return FileUtil.readUtf8String(path).trim();
  29. } else {
  30. // 自动部署的目录
  31. String versionFile = "/app/build/version.txt"; // 上一级目录
  32. return FileUtil.exist(versionFile)
  33. ? FileUtil.readUtf8String(versionFile).trim()
  34. : "0.0.0";
  35. }
  36. }
  37. }