package com.ruoyi.process.utils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.deepoove.poi.data.FilePictureRenderData; import com.deepoove.poi.data.PictureRenderData; import com.deepoove.poi.data.Pictures; import com.ruoyi.common.core.domain.entity.User; import com.ruoyi.framework.exception.ErrorException; import com.ruoyi.system.mapper.UserMapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class UserUtils { private static UserMapper userMapper; private static String imgUrl; @Autowired public void setUserMapper(UserMapper userMapper) { UserUtils.userMapper = userMapper; } @Autowired public void setImgUrl(@Value("${file.path}") String imgUrl) { UserUtils.imgUrl = imgUrl; } /** * 通过人员id获取用户签名地址 * @param userId 人员id * @return 用户签名地址 */ public static String getUserSignatureUrl(Integer userId) { String userSignatureUrl = null; if (userId != null) { userSignatureUrl = userMapper.selectOne(Wrappers.lambdaQuery() .eq(User::getId, userId)) .getSignatureUrl(); if (StringUtils.isBlank(userSignatureUrl)) { throw new ErrorException("找不到该人员签名"); } } return imgUrl + "\\" + userSignatureUrl; } /** * 通过人员id获取渲染Word用户签名对象 * @param userId 人员id * @return 用户签名对象 or null */ public static PictureRenderData getFinalUserSignatureUrl(Integer userId,int width,int height) { width = width <= 0 ? 100 : width; height = height <= 0 ? 50 : height; String userSignatureUrl = null; if (userId != null) { userSignatureUrl = userMapper.selectOne(Wrappers.lambdaQuery() .eq(User::getId, userId)) .getSignatureUrl(); if (StringUtils.isBlank(userSignatureUrl)) { throw new ErrorException("找不到该人员签名"); } } return StringUtils.isNotBlank(userSignatureUrl) ? new FilePictureRenderData(width,height,imgUrl + "/" + userSignatureUrl) : null; } /** * 通过名字获取用户签名地址 * @param userName 人员名字 * @return 用户签名地址 */ public static String getUserSignatureUrl(String userName) { String userSignatureUrl = null; if (userName != null) { userSignatureUrl = userMapper.selectOne(Wrappers.lambdaQuery() .eq(User::getName, userName)) .getSignatureUrl(); if (StringUtils.isBlank(userSignatureUrl)) { throw new ErrorException("找不到该人员签名"); } } return imgUrl + "/" + userSignatureUrl; } /** * 通过名字获取渲染Word用户签名对象 * @param userName 人员名字 * @return 用户签名对象 or null */ public static PictureRenderData getFinalUserSignatureUrl(String userName) { String userSignatureUrl = null; if (userName != null) { userSignatureUrl = userMapper.selectOne(Wrappers.lambdaQuery() .eq(User::getName, userName)) .getSignatureUrl(); if (StringUtils.isBlank(userSignatureUrl)) { throw new ErrorException("找不到该人员签名"); } } return StringUtils.isNotBlank(userSignatureUrl) ? Pictures.ofLocal(imgUrl + "/" + userSignatureUrl).create() : null; } }