feat(用户管理): 导入手写章
This commit is contained in:
+5
@@ -336,6 +336,11 @@ public class SysUserController {
|
||||
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
|
||||
}
|
||||
|
||||
@PostMapping("/importHandStamp")
|
||||
public Result<T> importHandStamp(MultipartFile file) throws IOException {
|
||||
return Result.OK(sysUserService.importHandStamp(file));
|
||||
}
|
||||
|
||||
@GetMapping("/queryById")
|
||||
public Result<SysUser> queryById(@RequestParam(name = "id", required = true) String id) {
|
||||
SysUser sysUser = sysUserService.queryById(id);
|
||||
|
||||
@@ -12,7 +12,9 @@ import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.model.SysUserSysDepartModel;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -353,4 +355,11 @@ public interface ISysUserService extends IService<SysUser> {
|
||||
* @return
|
||||
*/
|
||||
SysUser findUserByCalcNameWorkNo(String inspectUser);
|
||||
|
||||
/**
|
||||
* 导入手写章
|
||||
*
|
||||
* @param file
|
||||
*/
|
||||
String importHandStamp(MultipartFile file) throws IOException;
|
||||
}
|
||||
|
||||
+69
-4
@@ -6,20 +6,21 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.aliyun.oss.ServiceException;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.constant.CacheConstant;
|
||||
import com.jero.common.constant.CommonConstant;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.common.system.vo.SysUserCacheInfo;
|
||||
import com.jero.common.util.PasswordUtil;
|
||||
import com.jero.common.util.UUIDGenerator;
|
||||
import com.jero.common.util.UUIDUtils;
|
||||
import com.jero.common.util.oConvertUtils;
|
||||
import com.jero.common.util.*;
|
||||
import com.jero.modules.base.service.BaseCommonService;
|
||||
import com.jero.modules.oss.entity.OSSFile;
|
||||
import com.jero.modules.oss.service.IOSSFileService;
|
||||
import com.jero.modules.system.entity.*;
|
||||
import com.jero.modules.system.mapper.*;
|
||||
import com.jero.modules.system.model.SysUserSysDepartModel;
|
||||
@@ -33,10 +34,16 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.cache.annotation.CacheEvict;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipInputStream;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -66,6 +73,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||
private SysRoleMapper sysRoleMapper;
|
||||
@Resource
|
||||
private BaseCommonService baseCommonService;
|
||||
@Autowired
|
||||
private IOSSFileService ossFileService;
|
||||
@Autowired
|
||||
private ISysUserService sysUserService;
|
||||
|
||||
@Override
|
||||
public IPage<SysUser> queryPage(Page<SysUser> page, List<String> subDepIds, String roleId, QueryWrapper<SysUser> queryWrapper){
|
||||
@@ -707,6 +718,60 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||
return userMapper.findUserByCalcNameWorkNo(inspectUser);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String importHandStamp(MultipartFile file) throws IOException {
|
||||
if (Objects.isNull(file)){
|
||||
throw new JeroBootException("请上传文件!");
|
||||
}
|
||||
int i = 0;
|
||||
try (ZipInputStream zis = new ZipInputStream(file.getInputStream())) {
|
||||
ZipEntry zipEntry;
|
||||
while ((zipEntry = zis.getNextEntry()) != null) {
|
||||
String name = zipEntry.getName();
|
||||
if (!zipEntry.isDirectory() && isImageFile(name)) {
|
||||
// 查询对应账号
|
||||
String userName = name.substring(0, name.indexOf("."));
|
||||
SysUser sysUser = sysUserService.getUserByName(userName);
|
||||
if (Objects.isNull(sysUser)){
|
||||
continue;
|
||||
}
|
||||
// 获取文件流
|
||||
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
||||
byte[] buffer = new byte[1024];
|
||||
int bytesRead;
|
||||
while ((bytesRead = zis.read(buffer)) != -1) {
|
||||
outputStream.write(buffer, 0, bytesRead);
|
||||
}
|
||||
byte[] fileBytes = outputStream.toByteArray();
|
||||
// 上传文件到MinIO
|
||||
String url = MinioUtil.upload(new ByteArrayInputStream(fileBytes), name);
|
||||
// 保存到oss
|
||||
OSSFile ossFile = new OSSFile();
|
||||
ossFile.setId(String.valueOf(SnowflakeUtils.snowflake()));
|
||||
ossFile.setFileName(name);
|
||||
ossFile.setUrl(url);
|
||||
ossFileService.save(ossFile);
|
||||
// 上传手写章
|
||||
sysUserService.update(new LambdaUpdateWrapper<SysUser>()
|
||||
.eq(SysUser::getId, sysUser.getId())
|
||||
.set(SysUser::getAvatar, ossFile.getId()));
|
||||
i++;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
throw new JeroBootException("导入失败!");
|
||||
}
|
||||
return "操作成功,导入手写章" + i + "个";
|
||||
}
|
||||
|
||||
private boolean isImageFile(String fileName) {
|
||||
return fileName.toLowerCase().endsWith(".jpg")
|
||||
|| fileName.toLowerCase().endsWith(".jpeg")
|
||||
|| fileName.toLowerCase().endsWith(".png")
|
||||
|| fileName.toLowerCase().endsWith(".gif")
|
||||
|| fileName.toLowerCase().endsWith(".bmp");
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
|
||||
Reference in New Issue
Block a user