package com.rongwei.bscommon.system.utils; import com.rongwei.bscommon.system.service.QHSERedisService; import com.rongwei.rwadmincommon.system.domain.SysUserDo; import com.rongwei.rwadmincommon.system.vo.SysUserVo; import com.rongwei.rwcommon.base.BaseDo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.PostConstruct; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.Date; /** * JXKHUtils class * * @author XH * @date 2024/12/02 */ @Component public class QHSEUtils { private static QHSERedisService QHSERedisService; @Autowired private QHSERedisService autoQHSERedisService; /** * 获取当前的登陆人信息 * * @return */ public static SysUserVo getCurrentUser() { // 获取当前登录人信息 SysUserVo currUser = null; ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); if (attributes != null) { HttpServletRequest request = attributes.getRequest(); if (request != null) { String token = request.getHeader("token"); if (com.rongwei.rwcommon.utils.StringUtils.isNotEmpty(token)) { currUser = QHSERedisService.getLoginUser(token); } } } return currUser; } public static void initModelGeneralParameters(T t, SysUserDo userVo) { if (userVo == null) { userVo = getCurrentUser(); } t.setCreatedate(new Date()); t.setModifydate(new Date()); if (userVo != null) { t.setCreateuserid(userVo.getId()); t.setCreateusername(userVo.getName()); t.setModifyuserid(userVo.getId()); t.setModifyusername(userVo.getName()); } t.setDeleted("0"); } public static BigDecimal CALCULATE_Y3(BigDecimal x1, BigDecimal y1, BigDecimal x2, BigDecimal y2, BigDecimal x3) { // 检查x1是否等于x2,以避免除以零的错误 if (x1.compareTo(x2) == 0) { throw new IllegalArgumentException("x1 和 x2 不能相等,因为这将导致除以零的错误。"); } // 使用两点式方程计算y3值 return y1.add(y2.subtract(y1).multiply(x3.subtract(x1)).divide(x2.subtract(x1),4, RoundingMode.HALF_UP)).setScale(3, RoundingMode.HALF_UP); } @PostConstruct public void init() { QHSERedisService = autoQHSERedisService; } public static String getIp(HttpServletRequest request) { String ipAddress = request.getHeader("X-Forwarded-For"); if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) { ipAddress = request.getHeader("Proxy-Client-IP"); } if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) { ipAddress = request.getHeader("WL-Proxy-Client-IP"); } if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) { ipAddress = request.getRemoteAddr(); } // 处理多级代理的情况(取第一个有效IP) if (ipAddress != null && ipAddress.contains(",")) { ipAddress = ipAddress.split(",")[0].trim(); } return ipAddress; } }