From 7fff9a9e14e06568933afa9af5168ffa9cdb3de9 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期二, 23 九月 2025 17:58:29 +0800
Subject: [PATCH] yys 修改巡检bug
---
src/main/java/com/ruoyi/basic/service/impl/StorageAttachmentServiceImpl.java | 4
src/main/java/com/ruoyi/basic/mapper/StorageAttachmentMapper.java | 2
src/main/java/com/ruoyi/basic/service/StorageBlobService.java | 3
src/main/java/com/ruoyi/basic/service/impl/StorageBlobServiceImpl.java | 91 +++++++++++
src/main/java/com/ruoyi/common/utils/MinioUtils.java | 44 +++++
src/main/resources/application-demo.yml | 2
src/main/java/com/ruoyi/framework/config/SwaggerConfig.java | 4
src/main/java/com/ruoyi/basic/pojo/StorageAttachment.java | 4
src/main/java/com/ruoyi/inspectiontask/pojo/QrCodeScanRecord.java | 15 -
src/main/java/com/ruoyi/basic/pojo/StorageBlob.java | 41 +++-
src/main/resources/application-bdsm.yml | 219 +++++++++++++++++++++++++++
src/main/java/com/ruoyi/project/common/CommonController.java | 20 ++
12 files changed, 421 insertions(+), 28 deletions(-)
diff --git a/src/main/java/com/ruoyi/basic/mapper/StorageAttachmentMapper.java b/src/main/java/com/ruoyi/basic/mapper/StorageAttachmentMapper.java
index 12a34d8..529e05d 100644
--- a/src/main/java/com/ruoyi/basic/mapper/StorageAttachmentMapper.java
+++ b/src/main/java/com/ruoyi/basic/mapper/StorageAttachmentMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.basic.pojo.StorageAttachment;
-import org.apache.ibatis.annotations.Mapper;
/**
* <p>
@@ -12,7 +11,6 @@
* @author ruoyi
* @since 2025-05-29
*/
-@Mapper
public interface StorageAttachmentMapper extends BaseMapper<StorageAttachment> {
}
diff --git a/src/main/java/com/ruoyi/basic/pojo/StorageAttachment.java b/src/main/java/com/ruoyi/basic/pojo/StorageAttachment.java
index 0e30cad..1dd7bc7 100644
--- a/src/main/java/com/ruoyi/basic/pojo/StorageAttachment.java
+++ b/src/main/java/com/ruoyi/basic/pojo/StorageAttachment.java
@@ -36,6 +36,9 @@
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
+ @TableField(fill = FieldFill.INSERT)
+ private Long tenantId;
+
/**
* 閫昏緫鍒犻櫎
*/
@@ -62,6 +65,7 @@
@TableField(value = "storage_blob_id")
private Long storageBlobId;
+ @TableField(exist = false)
private StorageBlobDTO storageBlobDTO;
public StorageAttachment(String fileType, Long recordType, Long recordId) {
diff --git a/src/main/java/com/ruoyi/basic/pojo/StorageBlob.java b/src/main/java/com/ruoyi/basic/pojo/StorageBlob.java
index 188d9c5..6bf6fc6 100644
--- a/src/main/java/com/ruoyi/basic/pojo/StorageBlob.java
+++ b/src/main/java/com/ruoyi/basic/pojo/StorageBlob.java
@@ -1,13 +1,13 @@
package com.ruoyi.basic.pojo;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
+import java.time.LocalDateTime;
import java.util.Date;
/**
@@ -28,16 +28,11 @@
@TableId(value = "id", type = IdType.AUTO)
private Long id;
- /** 鍒涘缓鏃堕棿 */
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-// @TableField(fill = FieldFill.INSERT)
- private Date createTime;
-
/**
* 璧勬簮id
*/
- @TableField(value = "key")
- private String key;
+ @TableField(value = "resource_key")
+ private String resourceKey;
/**
* 璧勬簮绫诲瀷锛屼緥濡侸PG鍥剧墖鐨勮祫婧愮被鍨嬩负image/jpg
*/
@@ -70,4 +65,28 @@
*/
@TableField(value = "type")
private Long type;
+
+ /**
+ * 绉熸埛ID
+ */
+ @TableField(fill = FieldFill.INSERT)
+ private Long tenantId;
+
+ @ApiModelProperty(value = "鍒涘缓璇ヨ褰曠殑鐢ㄦ埛")
+ @TableField(fill = com.baomidou.mybatisplus.annotation.FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty(value = "璁板綍鍒涘缓鏃堕棿")
+ @TableField(fill = com.baomidou.mybatisplus.annotation.FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ @ApiModelProperty(value = "鏈�鍚庝慨鏀硅璁板綍鐨勭敤鎴�")
+ @TableField(fill = com.baomidou.mybatisplus.annotation.FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty(value = "璁板綍鏈�鍚庢洿鏂版椂闂�")
+ @TableField(fill = com.baomidou.mybatisplus.annotation.FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/basic/service/StorageBlobService.java b/src/main/java/com/ruoyi/basic/service/StorageBlobService.java
index 00d8c3b..962437d 100644
--- a/src/main/java/com/ruoyi/basic/service/StorageBlobService.java
+++ b/src/main/java/com/ruoyi/basic/service/StorageBlobService.java
@@ -26,6 +26,9 @@
*/
List<StorageBlobDTO> updateStorageBlobs(List<MultipartFile> files, String bucketName);
+ List<StorageBlobDTO> updateStorageBlobs(List<MultipartFile> files, String bucketName,Long type);
+
+
/**
* 鎵归噺鍒犻櫎鏂囦欢
* @param attachment
diff --git a/src/main/java/com/ruoyi/basic/service/impl/StorageAttachmentServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/StorageAttachmentServiceImpl.java
index d0e4b70..0d126c7 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/StorageAttachmentServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/StorageAttachmentServiceImpl.java
@@ -80,11 +80,11 @@
@Override
public void saveStorageAttachment(List<StorageAttachment> attachments, Long recordId, StorageAttachmentRecordType recordType, String fileType) {
// 鍒犻櫎鏃у浘
- deleteStorageAttachment(new StorageAttachment(fileType.toString(), (long) recordType.ordinal(), recordId));
+ deleteStorageAttachment(new StorageAttachment(fileType, (long) recordType.ordinal(), recordId));
for (StorageAttachment attachment : attachments) {
// 鑾峰彇鍏宠仈璁板綍
StorageBlob storageBlob = attachment.getStorageBlobDTO();
- attachment.setName(fileType.toString());
+ attachment.setName(fileType);
attachment.setRecordType((long) recordType.ordinal());
attachment.setRecordId(recordId);
attachment.setStorageBlobId(storageBlob.getId());
diff --git a/src/main/java/com/ruoyi/basic/service/impl/StorageBlobServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/StorageBlobServiceImpl.java
index 6be4401..d85a522 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/StorageBlobServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/StorageBlobServiceImpl.java
@@ -9,6 +9,7 @@
import com.ruoyi.basic.pojo.StorageAttachment;
import com.ruoyi.basic.pojo.StorageBlob;
import com.ruoyi.basic.service.StorageBlobService;
+import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.exception.file.InvalidExtensionException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.MinioUtils;
@@ -16,11 +17,15 @@
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.framework.web.domain.MinioResult;
import lombok.RequiredArgsConstructor;
+import org.apache.commons.io.FilenameUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
+import java.time.LocalDateTime;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@@ -61,9 +66,8 @@
dto.setBucketFilename(res.getBucketFileName());
dto.setOriginalFilename(res.getOriginalName());
dto.setByteSize(file.getSize());
- dto.setKey(IdUtils.simpleUUID());
+ dto.setResourceKey(IdUtils.simpleUUID());
dto.setBucketName(bucketName);
- dto.setCreateTime(DateUtils.getNowDate());
dto.setUrl(minioUtils.getPreviewUrl(res.getBucketFileName(), bucketName, false));
// 鎻掑叆鏁版嵁搴�
storageBlobMapper.insert(dto);
@@ -79,12 +83,95 @@
}
@Override
+ public List<StorageBlobDTO> updateStorageBlobs(List<MultipartFile> files, String bucketName, Long type) {
+
+ // 鑻ユ病浼犲叆bucketName锛屽垯浣跨敤榛樿bucketName
+ if (StringUtils.isEmpty(bucketName)) {
+ bucketName = minioUtils.getDefaultBucket();
+ }
+ List<StorageBlobDTO> storageBlobDTOs = new ArrayList<>();
+ for (MultipartFile file : files) {
+ try {
+ validateFileExtension(file);
+
+ MinioResult res = minioUtils.upload(bucketName, file, false);
+
+ StorageBlobDTO dto = buildStorageBlobDTO(file, res, bucketName, type);
+
+ storageBlobMapper.insert(dto);
+ storageBlobDTOs.add(dto);
+
+ } catch (InvalidExtensionException e) {
+ throw new RuntimeException("涓嶆敮鎸佺殑鏂囦欢绫诲瀷锛�" + file.getOriginalFilename(), e);
+ } catch (Exception e) {
+ throw new RuntimeException("涓婁紶鏂囦欢澶辫触锛�" + file.getOriginalFilename(), e);
+ }
+ }
+ return storageBlobDTOs;
+ }
+
+ private StorageBlobDTO buildStorageBlobDTO(MultipartFile file, MinioResult res, String bucketName, Long type) {
+ StorageBlobDTO dto = new StorageBlobDTO();
+ dto.setContentType(file.getContentType());
+ dto.setBucketFilename(res.getBucketFileName());
+ dto.setOriginalFilename(res.getOriginalName());
+ dto.setByteSize(file.getSize());
+ dto.setResourceKey(IdUtils.simpleUUID());
+ dto.setBucketName(bucketName);
+ dto.setUrl(minioUtils.getPreviewUrl(res.getBucketFileName(), bucketName, false));
+ dto.setDownloadUrl(minioUtils.getDownloadUrl(res.getBucketFileName(), bucketName));
+
+ if (type != null) {
+ dto.setType(type);
+ }
+
+ return dto;
+ }
+
+ private void validateFileExtension(MultipartFile file) throws InvalidExtensionException {
+ String filename = file.getOriginalFilename();
+ String extension = FilenameUtils.getExtension(filename).toLowerCase();
+ List<String> allowedExtensions = Arrays.asList(
+ // 鍥剧墖
+ "jpg", "jpeg", "png", "gif", "bmp", "webp", "tiff", "ico", "svg",
+
+ // 鏂囨。
+ "pdf", "doc", "docx", "xls", "xlsx", "ppt", "pptx", "txt", "rtf", "md", "csv", "odt",
+
+ // 瑙嗛
+ "mp4", "mov", "avi", "wmv", "flv", "mkv", "webm", "mpeg", "3gp", "MOV",
+
+ // 闊抽
+ "mp3", "wav", "ogg", "aac", "flac", "m4a", "wma", "amr",
+
+ // 鍘嬬缉鍖�
+ "zip", "rar", "7z", "tar", "gz", "bz2", "xz",
+
+ // 缂栫▼浠g爜鏂囦欢
+ "java", "py", "js", "ts", "html", "css", "cpp", "c", "cs", "json", "xml", "sql", "yaml", "yml", "sh", "bat",
+
+ // 瀹夎绋嬪簭 & 浜岃繘鍒�
+ "exe", "apk", "dmg", "msi", "bin", "iso",
+
+ // 璁捐绫�
+ "psd", "ai", "xd", "sketch", "fig"
+ );
+
+ if (!allowedExtensions.contains(extension)) {
+ throw new BaseException("鏂囦欢绫诲瀷涓嶈鍏佽锛�" + extension);
+ }
+ }
+
+ @Override
public int deleteStorageBlobs(StorageAttachment attachment) {
List<StorageAttachment> attachments = storageAttachmentMapper.selectList(new LambdaQueryWrapper<StorageAttachment>()
.eq(StorageAttachment::getRecordId, attachment.getRecordId())
.eq(StorageAttachment::getRecordType, attachment.getRecordType())
.eq(StorageAttachment::getName, attachment.getName()));
List<Long> ids = attachments.stream().map(StorageAttachment::getStorageBlobId).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty(ids)){
+ return 0;
+ }
List<StorageBlob> storageBlobs = storageBlobMapper.selectList(new LambdaQueryWrapper<StorageBlob>()
.in(StorageBlob::getId, ids));
if (!storageBlobs.isEmpty()) {
diff --git a/src/main/java/com/ruoyi/common/utils/MinioUtils.java b/src/main/java/com/ruoyi/common/utils/MinioUtils.java
index 28eec5b..d192f93 100644
--- a/src/main/java/com/ruoyi/common/utils/MinioUtils.java
+++ b/src/main/java/com/ruoyi/common/utils/MinioUtils.java
@@ -386,4 +386,48 @@
throw new UtilException("鐢熸垚涓嬭浇URL澶辫触: " + e.getMessage(), e);
}
}
+
+ public String getDownloadUrl(String bucketFileName, String bucketName) {
+ if (StringUtils.isNotBlank(bucketFileName)) {
+ try {
+ // 妫�鏌ユ枃浠舵槸鍚﹀瓨鍦�
+ minioClient.statObject(StatObjectArgs.builder()
+ .bucket(bucketName)
+ .object(bucketFileName)
+ .build());
+
+ // 璁剧疆鍝嶅簲澶�
+ Map<String, String> reqParams = new HashMap<>();
+ // 鎻愬彇鍘熷鏂囦欢鍚嶏紙濡傛灉瀛樺偍鏃朵繚鐣欎簡鍘熷鍚嶇О锛�
+ String originalFileName = extractOriginalFileName(bucketFileName);
+ reqParams.put("response-content-disposition",
+ "attachment; filename=\"" + URLEncoder.encode(originalFileName, String.valueOf(StandardCharsets.UTF_8)) + "\"");
+
+ // 鏋勫缓棰勭鍚峌RL鍙傛暟
+ GetPresignedObjectUrlArgs args = GetPresignedObjectUrlArgs.builder()
+ .method(Method.GET)
+ .bucket(bucketName)
+ .object(bucketFileName)
+ .expiry(previewExpiry, TimeUnit.HOURS)
+ .extraQueryParams(reqParams)
+ .build();
+
+ return minioClient.getPresignedObjectUrl(args);
+ } catch (Exception e) {
+ throw new UtilException("MinioUtils锛氱敓鎴愪笅杞介摼鎺ュ紓甯�", e);
+ }
+ }
+ return null;
+ }
+
+ private String extractOriginalFileName(String bucketFileName) {
+ // 绀轰緥锛氬鏋滃瓨鍌ㄦ牸寮忎负 "鍘熷鏂囦欢鍚峗UUID"
+ int underscoreIndex = bucketFileName.lastIndexOf("_");
+ if (underscoreIndex > 0) {
+ return bucketFileName.substring(0, underscoreIndex);
+ }
+ // 濡傛灉娌℃湁鐗规畩鏍煎紡锛岀洿鎺ヨ繑鍥炲畬鏁存枃浠跺悕
+ return bucketFileName;
+ }
+
}
diff --git a/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java b/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java
index d84b370..ccf8d65 100644
--- a/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java
+++ b/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java
@@ -63,8 +63,8 @@
.build()
/* 璁剧疆瀹夊叏妯″紡锛宻wagger鍙互璁剧疆璁块棶token */
.securitySchemes(securitySchemes())
- .securityContexts(securityContexts())
- .pathMapping(pathMapping);
+ .securityContexts(securityContexts());
+// .pathMapping(pathMapping);
}
/**
diff --git a/src/main/java/com/ruoyi/inspectiontask/pojo/QrCodeScanRecord.java b/src/main/java/com/ruoyi/inspectiontask/pojo/QrCodeScanRecord.java
index fa00d05..a84a658 100644
--- a/src/main/java/com/ruoyi/inspectiontask/pojo/QrCodeScanRecord.java
+++ b/src/main/java/com/ruoyi/inspectiontask/pojo/QrCodeScanRecord.java
@@ -1,9 +1,6 @@
package com.ruoyi.inspectiontask.pojo;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -40,9 +37,11 @@
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime scanTime;
- @ApiModelProperty(value = "绉熸埛ID锛岀敤浜庡绉熸埛闅旂")
- @TableField(fill = com.baomidou.mybatisplus.annotation.FieldFill.INSERT)
- private Integer tenantId;
+ /**
+ * 绉熸埛ID
+ */
+ @TableField(fill = FieldFill.INSERT)
+ private Long tenantId;
@ApiModelProperty(value = "杞垹闄ゆ爣蹇楋紝0=鏈垹闄わ紝1=宸插垹闄�")
private Integer deleted;
@@ -59,7 +58,7 @@
@ApiModelProperty(value = "鏈�鍚庝慨鏀硅璁板綍鐨勭敤鎴�")
@TableField(fill = com.baomidou.mybatisplus.annotation.FieldFill.INSERT_UPDATE)
- private Integer updateBy;
+ private Integer updateUser;
@ApiModelProperty(value = "璁板綍鏈�鍚庢洿鏂版椂闂�")
@TableField(fill = com.baomidou.mybatisplus.annotation.FieldFill.INSERT_UPDATE)
diff --git a/src/main/java/com/ruoyi/project/common/CommonController.java b/src/main/java/com/ruoyi/project/common/CommonController.java
index c575425..21fa5ec 100644
--- a/src/main/java/com/ruoyi/project/common/CommonController.java
+++ b/src/main/java/com/ruoyi/project/common/CommonController.java
@@ -5,6 +5,11 @@
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.basic.service.StorageBlobService;
+import com.ruoyi.framework.web.domain.R;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -27,6 +32,7 @@
*
* @author ruoyi
*/
+@Api(tags = "閫氱敤鎺ュ彛")
@RestController
@RequestMapping("/common")
public class CommonController
@@ -69,6 +75,20 @@
}
}
+ @Autowired
+ private StorageBlobService storageBlobService;
+
+
+ /**
+ * minio閫氱敤涓婁紶璇锋眰锛堝涓級
+ */
+ @PostMapping("/minioUploads")
+ @ApiOperation(value = "minio閫氱敤涓婁紶璇锋眰")
+ public AjaxResult minioUploadFiles(List<MultipartFile> files, String bucketName, Long type) throws Exception
+ {
+ return AjaxResult.success(storageBlobService.updateStorageBlobs(files, bucketName,type));
+ }
+
/**
* 閫氱敤涓婁紶璇锋眰锛堝崟涓級
*/
diff --git a/src/main/resources/application-bdsm.yml b/src/main/resources/application-bdsm.yml
new file mode 100644
index 0000000..afb5f58
--- /dev/null
+++ b/src/main/resources/application-bdsm.yml
@@ -0,0 +1,219 @@
+# 椤圭洰鐩稿叧閰嶇疆
+ruoyi:
+ # 鍚嶇О
+ name: RuoYi
+ # 鐗堟湰
+ version: 3.8.9
+ # 鐗堟潈骞翠唤
+ copyrightYear: 2025
+ # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
+ profile: /javaWork/product-inventory-management/file
+
+ # 鑾峰彇ip鍦板潃寮�鍏�
+ addressEnabled: false
+ # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
+ captchaType: math
+
+# 寮�鍙戠幆澧冮厤缃�
+server:
+ # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
+ port: 9036
+ servlet:
+ # 搴旂敤鐨勮闂矾寰�
+ context-path: /
+ tomcat:
+ # tomcat鐨刄RI缂栫爜
+ uri-encoding: UTF-8
+ # 杩炴帴鏁版弧鍚庣殑鎺掗槦鏁帮紝榛樿涓�100
+ accept-count: 1000
+ threads:
+ # tomcat鏈�澶х嚎绋嬫暟锛岄粯璁や负200
+ max: 800
+ # Tomcat鍚姩鍒濆鍖栫殑绾跨▼鏁帮紝榛樿鍊�10
+ min-spare: 100
+
+# 鏃ュ織閰嶇疆
+logging:
+ level:
+ com.ruoyi: warn
+ org.springframework: warn
+
+minio:
+ endpoint: http://114.132.189.42/
+ port: 7019
+ secure: false
+ accessKey: admin
+ secretKey: 12345678
+ preview-expiry: 24 # 棰勮鍦板潃榛樿24灏忔椂
+ default-bucket: bdsm-product
+# 鐢ㄦ埛閰嶇疆
+user:
+ password:
+ # 瀵嗙爜鏈�澶ч敊璇鏁�
+ maxRetryCount: 5
+ # 瀵嗙爜閿佸畾鏃堕棿锛堥粯璁�10鍒嗛挓锛�
+ lockTime: 10
+
+# Spring閰嶇疆
+spring:
+ datasource:
+ type: com.alibaba.druid.pool.DruidDataSource
+ driverClassName: com.mysql.cj.jdbc.Driver
+ druid:
+ # 涓诲簱鏁版嵁婧�
+ master:
+ url: jdbc:mysql://192.168.1.185:3306/product-inventory-management-demo?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+ username: root
+ password: xd@123456..
+ # 浠庡簱鏁版嵁婧�
+ slave:
+ # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴
+ enabled: false
+ url:
+ username:
+ password:
+ # 鍒濆杩炴帴鏁�
+ initialSize: 5
+ # 鏈�灏忚繛鎺ユ睜鏁伴噺
+ minIdle: 10
+ # 鏈�澶ц繛鎺ユ睜鏁伴噺
+ maxActive: 20
+ # 閰嶇疆鑾峰彇杩炴帴绛夊緟瓒呮椂鐨勬椂闂�
+ maxWait: 60000
+ # 閰嶇疆杩炴帴瓒呮椂鏃堕棿
+ connectTimeout: 30000
+ # 閰嶇疆缃戠粶瓒呮椂鏃堕棿
+ socketTimeout: 60000
+ # 閰嶇疆闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆槸姣
+ timeBetweenEvictionRunsMillis: 60000
+ # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�灏忕敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
+ minEvictableIdleTimeMillis: 300000
+ # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�澶х敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
+ maxEvictableIdleTimeMillis: 900000
+ # 閰嶇疆妫�娴嬭繛鎺ユ槸鍚︽湁鏁�
+ validationQuery: SELECT 1 FROM DUAL
+ testWhileIdle: true
+ testOnBorrow: false
+ testOnReturn: false
+ webStatFilter:
+ enabled: true
+ statViewServlet:
+ enabled: true
+ # 璁剧疆鐧藉悕鍗曪紝涓嶅~鍒欏厑璁告墍鏈夎闂�
+ allow:
+ url-pattern: /druid/*
+ # 鎺у埗鍙扮鐞嗙敤鎴峰悕鍜屽瘑鐮�
+ login-username: ruoyi
+ login-password: 123456
+ filter:
+ stat:
+ enabled: true
+ # 鎱QL璁板綍
+ log-slow-sql: true
+ slow-sql-millis: 1000
+ merge-sql: true
+ wall:
+ config:
+ multi-statement-allow: true
+ # 璧勬簮淇℃伅
+ messages:
+ # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
+ basename: i18n/messages
+ # 鏂囦欢涓婁紶
+ servlet:
+ multipart:
+ # 鍗曚釜鏂囦欢澶у皬
+ max-file-size: 1GB
+ # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
+ max-request-size: 2GB
+ # 鏈嶅姟妯″潡
+ devtools:
+ restart:
+ # 鐑儴缃插紑鍏�
+ enabled: false
+ # redis 閰嶇疆
+ redis:
+ # 鍦板潃
+# host: 127.0.0.1
+ host: 192.168.1.185
+ # 绔彛锛岄粯璁や负6379
+ port: 6379
+ # 鏁版嵁搴撶储寮�
+ database: 0
+ # 瀵嗙爜
+# password: root2022!
+ password:
+
+ # 杩炴帴瓒呮椂鏃堕棿
+ timeout: 10s
+ lettuce:
+ pool:
+ # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
+ min-idle: 0
+ # 杩炴帴姹犱腑鐨勬渶澶х┖闂茶繛鎺�
+ max-idle: 8
+ # 杩炴帴姹犵殑鏈�澶ф暟鎹簱杩炴帴鏁�
+ max-active: 8
+ # #杩炴帴姹犳渶澶ч樆濉炵瓑寰呮椂闂达紙浣跨敤璐熷�艰〃绀烘病鏈夐檺鍒讹級
+ max-wait: -1ms
+
+# token閰嶇疆
+token:
+ # 浠ょ墝鑷畾涔夋爣璇�
+ header: Authorization
+ # 浠ょ墝瀵嗛挜
+ secret: abcdefghijklmnopqrstuvwxyz
+ # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
+ expireTime: 450
+
+# MyBatis Plus閰嶇疆
+mybatis-plus:
+ # 鎼滅储鎸囧畾鍖呭埆鍚� 鏍规嵁鑷繁鐨勯」鐩潵
+ typeAliasesPackage: com.ruoyi.**.pojo
+ # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
+ mapperLocations: classpath*:mapper/**/*Mapper.xml
+ # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
+ configLocation: classpath:mybatis/mybatis-config.xml
+ global-config:
+ enable-sql-runner: true
+ db-config:
+ id-type: auto
+
+# PageHelper鍒嗛〉鎻掍欢
+pagehelper:
+ helperDialect: mysql
+ supportMethodsArguments: true
+ params: count=countSql
+
+# Swagger閰嶇疆
+swagger:
+ # 鏄惁寮�鍚痵wagger
+ enabled: true
+ # 璇锋眰鍓嶇紑
+ pathMapping: /dev-api
+
+# 闃叉XSS鏀诲嚮
+xss:
+ # 杩囨护寮�鍏�
+ enabled: true
+ # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛�
+ excludes: /system/notice
+ # 鍖归厤閾炬帴
+ urlPatterns: /system/*,/monitor/*,/tool/*
+
+# 浠g爜鐢熸垚
+gen:
+ # 浣滆��
+ author: ruoyi
+ # 榛樿鐢熸垚鍖呰矾寰� system 闇�鏀规垚鑷繁鐨勬ā鍧楀悕绉� 濡� system monitor tool
+ packageName: com.ruoyi.project.system
+ # 鑷姩鍘婚櫎琛ㄥ墠缂�锛岄粯璁ゆ槸true
+ autoRemovePre: false
+ # 琛ㄥ墠缂�锛堢敓鎴愮被鍚嶄笉浼氬寘鍚〃鍓嶇紑锛屽涓敤閫楀彿鍒嗛殧锛�
+ tablePrefix: sys_
+ # 鏄惁鍏佽鐢熸垚鏂囦欢瑕嗙洊鍒版湰鍦帮紙鑷畾涔夎矾寰勶級锛岄粯璁や笉鍏佽
+ allowOverwrite: false
+
+file:
+ temp-dir: /javaWork/product-inventory-management/file/temp/uploads
+ upload-dir: /javaWork/product-inventory-management/file/prod/uploads
\ No newline at end of file
diff --git a/src/main/resources/application-demo.yml b/src/main/resources/application-demo.yml
index 7459313..631eb3e 100644
--- a/src/main/resources/application-demo.yml
+++ b/src/main/resources/application-demo.yml
@@ -45,7 +45,7 @@
accessKey: admin
secretKey: 12345678
preview-expiry: 24 # 棰勮鍦板潃榛樿24灏忔椂
- default-bucket: uploadPath
+ default-bucket: demo-product
# 鐢ㄦ埛閰嶇疆
user:
password:
--
Gitblit v1.9.3