This commit is contained in:
@@ -70,8 +70,10 @@ public class TbVisitorManagementController extends BaseController {
|
|||||||
*/
|
*/
|
||||||
@PostMapping("/getcode")
|
@PostMapping("/getcode")
|
||||||
public R<String> getcode(QrCodeInfo qrCodeInfo) {
|
public R<String> getcode(QrCodeInfo qrCodeInfo) {
|
||||||
Long string = (Long) StpUtil.getLoginId();
|
String userid =StpUtil.getLoginId().toString();
|
||||||
qrCodeInfo.setUserid(string);
|
String[] split = userid.split(":");
|
||||||
|
Long s1 = Long.valueOf(split[1]);
|
||||||
|
qrCodeInfo.setUserid(s1);
|
||||||
String s = remoteConfigService.selectQrTimeOut();
|
String s = remoteConfigService.selectQrTimeOut();
|
||||||
int i = Integer.parseInt(s);
|
int i = Integer.parseInt(s);
|
||||||
UUID value = UUID.randomUUID();
|
UUID value = UUID.randomUUID();
|
||||||
|
@@ -6,11 +6,13 @@ import cn.hutool.core.util.ObjectUtil;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.dromara.common.core.domain.R;
|
import org.dromara.common.core.domain.R;
|
||||||
import org.dromara.common.core.validate.QueryGroup;
|
import org.dromara.common.core.validate.QueryGroup;
|
||||||
|
import org.dromara.common.redis.utils.RedisUtils;
|
||||||
import org.dromara.common.web.core.BaseController;
|
import org.dromara.common.web.core.BaseController;
|
||||||
import org.dromara.common.log.annotation.Log;
|
import org.dromara.common.log.annotation.Log;
|
||||||
import org.dromara.common.log.enums.BusinessType;
|
import org.dromara.common.log.enums.BusinessType;
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.resource.domain.QrCodeInfo;
|
||||||
import org.dromara.resource.domain.bo.SysOssBo;
|
import org.dromara.resource.domain.bo.SysOssBo;
|
||||||
import org.dromara.resource.domain.vo.SysOssUploadVo;
|
import org.dromara.resource.domain.vo.SysOssUploadVo;
|
||||||
import org.dromara.resource.domain.vo.SysOssVo;
|
import org.dromara.resource.domain.vo.SysOssVo;
|
||||||
@@ -80,6 +82,32 @@ public class SysOssController extends BaseController {
|
|||||||
return R.ok(uploadVo);
|
return R.ok(uploadVo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上传OSS对象存储
|
||||||
|
*
|
||||||
|
* @param file 文件
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("system:oss:upload")
|
||||||
|
@Log(title = "OSS对象存储", businessType = BusinessType.INSERT)
|
||||||
|
@PostMapping(value = "/qrupload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||||
|
public R<SysOssUploadVo> codeUpload(@RequestPart("file") MultipartFile file,String code) {
|
||||||
|
if (ObjectUtil.isNull(file)) {
|
||||||
|
return R.fail("上传文件不能为空");
|
||||||
|
}
|
||||||
|
QrCodeInfo info = RedisUtils.getCacheObject("Qrcode" + code);
|
||||||
|
if (info==null){
|
||||||
|
return R.fail("二维码已过期");
|
||||||
|
}
|
||||||
|
|
||||||
|
SysOssVo oss = iSysOssService.qrupload(file,info);
|
||||||
|
SysOssUploadVo uploadVo = new SysOssUploadVo();
|
||||||
|
uploadVo.setUrl(oss.getUrl());
|
||||||
|
uploadVo.setFileName(oss.getOriginalName());
|
||||||
|
uploadVo.setOssId(oss.getOssId().toString());
|
||||||
|
return R.ok(uploadVo);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 下载OSS对象存储
|
* 下载OSS对象存储
|
||||||
*
|
*
|
||||||
|
@@ -0,0 +1,10 @@
|
|||||||
|
package org.dromara.resource.domain;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class QrCodeInfo {
|
||||||
|
private String deviceCode; // 对应“设备码”
|
||||||
|
private String generateTime; // 对应“生成时间”
|
||||||
|
private String qrCodeId; // 对应“二维码ID”
|
||||||
|
private Long userid;
|
||||||
|
}
|
@@ -3,6 +3,7 @@ package org.dromara.resource.service;
|
|||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.resource.domain.QrCodeInfo;
|
||||||
import org.dromara.resource.domain.bo.SysOssBo;
|
import org.dromara.resource.domain.bo.SysOssBo;
|
||||||
import org.dromara.resource.domain.vo.SysOssVo;
|
import org.dromara.resource.domain.vo.SysOssVo;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
@@ -60,6 +61,14 @@ public interface ISysOssService {
|
|||||||
*/
|
*/
|
||||||
SysOssVo upload(MultipartFile file);
|
SysOssVo upload(MultipartFile file);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上传 MultipartFile 到对象存储服务,并保存文件信息到数据库
|
||||||
|
*
|
||||||
|
* @param file 要上传的 MultipartFile 对象
|
||||||
|
* @return 上传成功后的 SysOssVo 对象,包含文件信息
|
||||||
|
*/
|
||||||
|
SysOssVo qrupload(MultipartFile file, QrCodeInfo qrCodeInfo);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上传文件到对象存储服务,并保存文件信息到数据库
|
* 上传文件到对象存储服务,并保存文件信息到数据库
|
||||||
*
|
*
|
||||||
|
@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.dromara.common.core.constant.CacheNames;
|
import org.dromara.common.core.constant.CacheNames;
|
||||||
|
import org.dromara.common.core.domain.R;
|
||||||
import org.dromara.common.core.exception.ServiceException;
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
import org.dromara.common.core.utils.MapstructUtils;
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
import org.dromara.common.core.utils.SpringUtils;
|
import org.dromara.common.core.utils.SpringUtils;
|
||||||
@@ -20,6 +21,8 @@ import org.dromara.common.oss.core.OssClient;
|
|||||||
import org.dromara.common.oss.entity.UploadResult;
|
import org.dromara.common.oss.entity.UploadResult;
|
||||||
import org.dromara.common.oss.enums.AccessPolicyType;
|
import org.dromara.common.oss.enums.AccessPolicyType;
|
||||||
import org.dromara.common.oss.factory.OssFactory;
|
import org.dromara.common.oss.factory.OssFactory;
|
||||||
|
import org.dromara.common.redis.utils.RedisUtils;
|
||||||
|
import org.dromara.resource.domain.QrCodeInfo;
|
||||||
import org.dromara.resource.domain.SysOss;
|
import org.dromara.resource.domain.SysOss;
|
||||||
import org.dromara.resource.domain.bo.SysOssBo;
|
import org.dromara.resource.domain.bo.SysOssBo;
|
||||||
import org.dromara.resource.domain.vo.SysOssVo;
|
import org.dromara.resource.domain.vo.SysOssVo;
|
||||||
@@ -33,10 +36,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -199,6 +199,21 @@ public class SysOssServiceImpl implements ISysOssService {
|
|||||||
return buildResultEntity(originalfileName, suffix, storage.getConfigKey(), uploadResult);
|
return buildResultEntity(originalfileName, suffix, storage.getConfigKey(), uploadResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SysOssVo qrupload(MultipartFile file, QrCodeInfo info) {
|
||||||
|
String originalfileName = file.getOriginalFilename();
|
||||||
|
String suffix = StringUtils.substring(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length());
|
||||||
|
OssClient storage = OssFactory.instance();
|
||||||
|
UploadResult uploadResult;
|
||||||
|
try {
|
||||||
|
uploadResult = storage.uploadSuffix(file.getBytes(), suffix, file.getContentType());
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new ServiceException(e.getMessage());
|
||||||
|
}
|
||||||
|
// 保存文件信息
|
||||||
|
return buildResultEntityQr(originalfileName, suffix, storage.getConfigKey(), uploadResult,info);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上传文件到对象存储服务,并保存文件信息到数据库
|
* 上传文件到对象存储服务,并保存文件信息到数据库
|
||||||
*
|
*
|
||||||
@@ -227,6 +242,20 @@ public class SysOssServiceImpl implements ISysOssService {
|
|||||||
return this.matchingUrl(sysOssVo);
|
return this.matchingUrl(sysOssVo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private SysOssVo buildResultEntityQr(String originalfileName, String suffix, String configKey, UploadResult uploadResult,QrCodeInfo info) {
|
||||||
|
SysOss oss = new SysOss();
|
||||||
|
oss.setUrl(uploadResult.getUrl());
|
||||||
|
oss.setFileSuffix(suffix);
|
||||||
|
oss.setFileName(uploadResult.getFilename());
|
||||||
|
oss.setOriginalName(originalfileName);
|
||||||
|
oss.setService(configKey);
|
||||||
|
oss.setCreateBy(info.getUserid());
|
||||||
|
oss.setCreateTime(new Date());
|
||||||
|
baseMapper.insert(oss);
|
||||||
|
SysOssVo sysOssVo = MapstructUtils.convert(oss, SysOssVo.class);
|
||||||
|
return this.matchingUrl(sysOssVo);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增OSS对象存储
|
* 新增OSS对象存储
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user