QHSEUtils.java 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package com.rongwei.bscommon.system.utils;
  2. import com.rongwei.bscommon.system.service.QHSERedisService;
  3. import com.rongwei.rwadmincommon.system.domain.SysUserDo;
  4. import com.rongwei.rwadmincommon.system.vo.SysUserVo;
  5. import com.rongwei.rwcommon.base.BaseDo;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.stereotype.Component;
  8. import org.springframework.web.context.request.RequestContextHolder;
  9. import org.springframework.web.context.request.ServletRequestAttributes;
  10. import javax.annotation.PostConstruct;
  11. import javax.servlet.http.HttpServletRequest;
  12. import java.math.BigDecimal;
  13. import java.math.RoundingMode;
  14. import java.util.Date;
  15. /**
  16. * JXKHUtils class
  17. *
  18. * @author XH
  19. * @date 2024/12/02
  20. */
  21. @Component
  22. public class QHSEUtils {
  23. private static QHSERedisService QHSERedisService;
  24. @Autowired
  25. private QHSERedisService autoQHSERedisService;
  26. /**
  27. * 获取当前的登陆人信息
  28. *
  29. * @return
  30. */
  31. public static SysUserVo getCurrentUser() {
  32. // 获取当前登录人信息
  33. SysUserVo currUser = null;
  34. ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
  35. if (attributes != null) {
  36. HttpServletRequest request = attributes.getRequest();
  37. if (request != null) {
  38. String token = request.getHeader("token");
  39. if (com.rongwei.rwcommon.utils.StringUtils.isNotEmpty(token)) {
  40. currUser = QHSERedisService.getLoginUser(token);
  41. }
  42. }
  43. }
  44. return currUser;
  45. }
  46. public static <T extends BaseDo> void initModelGeneralParameters(T t, SysUserDo userVo) {
  47. if (userVo == null) {
  48. userVo = getCurrentUser();
  49. }
  50. t.setCreatedate(new Date());
  51. t.setModifydate(new Date());
  52. if (userVo != null) {
  53. t.setCreateuserid(userVo.getId());
  54. t.setCreateusername(userVo.getName());
  55. t.setModifyuserid(userVo.getId());
  56. t.setModifyusername(userVo.getName());
  57. }
  58. t.setDeleted("0");
  59. }
  60. public static BigDecimal CALCULATE_Y3(BigDecimal x1, BigDecimal y1, BigDecimal x2, BigDecimal y2, BigDecimal x3) {
  61. // 检查x1是否等于x2,以避免除以零的错误
  62. if (x1.compareTo(x2) == 0) {
  63. throw new IllegalArgumentException("x1 和 x2 不能相等,因为这将导致除以零的错误。");
  64. }
  65. // 使用两点式方程计算y3值
  66. return y1.add(y2.subtract(y1).multiply(x3.subtract(x1)).divide(x2.subtract(x1),4, RoundingMode.HALF_UP)).setScale(3, RoundingMode.HALF_UP);
  67. }
  68. @PostConstruct
  69. public void init() {
  70. QHSERedisService = autoQHSERedisService;
  71. }
  72. public static String getIp(HttpServletRequest request) {
  73. String ipAddress = request.getHeader("X-Forwarded-For");
  74. if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
  75. ipAddress = request.getHeader("Proxy-Client-IP");
  76. }
  77. if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
  78. ipAddress = request.getHeader("WL-Proxy-Client-IP");
  79. }
  80. if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
  81. ipAddress = request.getRemoteAddr();
  82. }
  83. // 处理多级代理的情况(取第一个有效IP)
  84. if (ipAddress != null && ipAddress.contains(",")) {
  85. ipAddress = ipAddress.split(",")[0].trim();
  86. }
  87. return ipAddress;
  88. }
  89. }