459242451@qq.com 3 年 前
コミット
8976094a4a
42 ファイル変更136 行追加2809 行削除
  1. 0 14
      pom.xml
  2. 0 5
      ruoyi-admin/pom.xml
  3. 0 109
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java
  4. 0 137
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java
  5. 17 54
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
  6. 88 40
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhdd/IncidentController.java
  7. 2 2
      ruoyi-admin/src/main/resources/bootstrap.yml
  8. BIN
      ruoyi-admin/src/main/resources/word/incidentDetail.docx
  9. 0 55
      ruoyi-oss/pom.xml
  10. 0 38
      ruoyi-oss/src/main/java/com/ruoyi/oss/constant/CloudConstant.java
  11. 0 26
      ruoyi-oss/src/main/java/com/ruoyi/oss/entity/UploadResult.java
  12. 0 63
      ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/CloudServiceEnumd.java
  13. 0 51
      ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/PolicyType.java
  14. 0 16
      ruoyi-oss/src/main/java/com/ruoyi/oss/exception/OssException.java
  15. 0 75
      ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java
  16. 0 55
      ruoyi-oss/src/main/java/com/ruoyi/oss/properties/CloudStorageProperties.java
  17. 0 74
      ruoyi-oss/src/main/java/com/ruoyi/oss/service/ICloudStorageStrategy.java
  18. 0 62
      ruoyi-oss/src/main/java/com/ruoyi/oss/service/abstractd/AbstractCloudStorageStrategy.java
  19. 0 113
      ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/AliyunCloudStorageStrategy.java
  20. 0 181
      ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioCloudStorageStrategy.java
  21. 0 121
      ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QcloudCloudStorageStrategy.java
  22. 0 127
      ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuCloudStorageStrategy.java
  23. 0 6
      ruoyi-system/pom.xml
  24. 0 80
      ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOss.java
  25. 0 111
      ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOssConfig.java
  26. 0 67
      ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssBo.java
  27. 0 130
      ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java
  28. 0 93
      ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java
  29. 0 69
      ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssVo.java
  30. 0 15
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOssConfigMapper.java
  31. 0 12
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOssMapper.java
  32. 0 58
      ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssConfigService.java
  33. 0 24
      ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssService.java
  34. 0 183
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java
  35. 0 90
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssServiceImpl.java
  36. 0 27
      ruoyi-system/src/main/resources/mapper/system/SysOssConfigMapper.xml
  37. 0 18
      ruoyi-system/src/main/resources/mapper/system/SysOssMapper.xml
  38. 4 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/IncidentVo.java
  39. 11 14
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/impl/DutyReportServiceImpl.java
  40. 0 212
      sql/20211209修改.sql
  41. 0 59
      sql/oss.sql
  42. 14 123
      sql/ry_postgresql.sql

+ 0 - 14
pom.xml

@@ -35,12 +35,6 @@
         <lock4j.version>2.2.1</lock4j.version>
         <dynamic-ds.version>3.4.1</dynamic-ds.version>
 
-        <!-- OSS 配置 -->
-        <qiniu.version>7.8.0</qiniu.version>
-        <aliyun.oss.version>3.13.1</aliyun.oss.version>
-        <qcloud.cos.version>5.6.51</qcloud.cos.version>
-        <minio.version>8.3.0</minio.version>
-
         <!-- docker 配置 -->
         <docker.registry.url>docker.xt.wenhq.top</docker.registry.url>
         <docker.registry.host>http://${docker.registry.url}:8083</docker.registry.host>
@@ -240,13 +234,6 @@
                 <version>${ruoyi-vue-plus.version}</version>
             </dependency>
 
-            <!-- demo模块 -->
-            <dependency>
-                <groupId>com.ruoyi</groupId>
-                <artifactId>ruoyi-oss</artifactId>
-                <version>${ruoyi-vue-plus.version}</version>
-            </dependency>
-
             <!-- 指挥调度模块 -->
             <dependency>
                 <groupId>com.ruoyi</groupId>
@@ -264,7 +251,6 @@
         <module>ruoyi-quartz</module>
         <module>ruoyi-generator</module>
         <module>ruoyi-common</module>
-        <module>ruoyi-oss</module>
         <module>ruoyi-zhdd</module>
     </modules>
     <packaging>pom</packaging>

+ 0 - 5
ruoyi-admin/pom.xml

@@ -48,11 +48,6 @@
             <artifactId>ruoyi-quartz</artifactId>
         </dependency>
 
-        <dependency>
-            <groupId>com.ruoyi</groupId>
-            <artifactId>ruoyi-oss</artifactId>
-        </dependency>
-
         <!-- 代码生成-->
         <dependency>
             <groupId>com.ruoyi</groupId>

+ 0 - 109
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java

@@ -1,109 +0,0 @@
-package com.ruoyi.web.controller.system;
-
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.annotation.RepeatSubmit;
-import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.common.core.validate.AddGroup;
-import com.ruoyi.common.core.validate.EditGroup;
-import com.ruoyi.common.core.validate.QueryGroup;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.system.domain.bo.SysOssConfigBo;
-import com.ruoyi.system.domain.vo.SysOssConfigVo;
-import com.ruoyi.system.service.ISysOssConfigService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-import java.util.Arrays;
-
-/**
- * 云存储配置Controller
- *
- * @author Lion Li
- * @author 孤舟烟雨
- * @date 2021-08-13
- */
-@Validated
-@Api(value = "云存储配置控制器", tags = {"云存储配置管理"})
-@RequiredArgsConstructor(onConstructor_ = @Autowired)
-@RestController
-@RequestMapping("/system/oss/config")
-public class SysOssConfigController extends BaseController {
-
-	private final ISysOssConfigService iSysOssConfigService;
-
-	/**
-	 * 查询云存储配置列表
-	 */
-	@ApiOperation("查询云存储配置列表")
-	@PreAuthorize("@ss.hasPermi('system:oss:list')")
-	@GetMapping("/list")
-	public TableDataInfo<SysOssConfigVo> list(@Validated(QueryGroup.class) SysOssConfigBo bo) {
-		return iSysOssConfigService.queryPageList(bo);
-	}
-
-	/**
-	 * 获取云存储配置详细信息
-	 */
-	@ApiOperation("获取云存储配置详细信息")
-	@PreAuthorize("@ss.hasPermi('system:oss:query')")
-	@GetMapping("/{ossConfigId}")
-	public AjaxResult<SysOssConfigVo> getInfo(@NotNull(message = "主键不能为空")
-											  @PathVariable("ossConfigId") Integer ossConfigId) {
-		return AjaxResult.success(iSysOssConfigService.queryById(ossConfigId));
-	}
-
-	/**
-	 * 新增云存储配置
-	 */
-	@ApiOperation("新增云存储配置")
-	@PreAuthorize("@ss.hasPermi('system:oss:add')")
-	@Log(title = "云存储配置", businessType = BusinessType.INSERT)
-	@RepeatSubmit()
-	@PostMapping()
-	public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody SysOssConfigBo bo) {
-		return toAjax(iSysOssConfigService.insertByBo(bo) ? 1 : 0);
-	}
-
-	/**
-	 * 修改云存储配置
-	 */
-	@ApiOperation("修改云存储配置")
-	@PreAuthorize("@ss.hasPermi('system:oss:edit')")
-	@Log(title = "云存储配置", businessType = BusinessType.UPDATE)
-	@RepeatSubmit()
-	@PutMapping()
-	public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody SysOssConfigBo bo) {
-		return toAjax(iSysOssConfigService.updateByBo(bo) ? 1 : 0);
-	}
-
-	/**
-	 * 删除云存储配置
-	 */
-	@ApiOperation("删除云存储配置")
-	@PreAuthorize("@ss.hasPermi('system:oss:remove')")
-	@Log(title = "云存储配置", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ossConfigIds}")
-	public AjaxResult<Void> remove(@NotEmpty(message = "主键不能为空")
-								   @PathVariable Long[] ossConfigIds) {
-		return toAjax(iSysOssConfigService.deleteWithValidByIds(Arrays.asList(ossConfigIds), true) ? 1 : 0);
-	}
-
-	/**
-	 * 状态修改
-	 */
-	@PreAuthorize("@ss.hasPermi('system:oss:edit')")
-	@Log(title = "云存储状态修改", businessType = BusinessType.UPDATE)
-	@PutMapping("/changeStatus")
-	public AjaxResult changeStatus(@RequestBody SysOssConfigBo bo) {
-		return toAjax(iSysOssConfigService.updateOssConfigStatus(bo));
-	}
-}

+ 0 - 137
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java

@@ -1,137 +0,0 @@
-package com.ruoyi.web.controller.system;
-
-
-import cn.hutool.core.convert.Convert;
-import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.http.HttpUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.annotation.RepeatSubmit;
-import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.common.core.validate.QueryGroup;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.JsonUtils;
-import com.ruoyi.common.utils.file.FileUtils;
-import com.ruoyi.oss.constant.CloudConstant;
-import com.ruoyi.system.domain.SysConfig;
-import com.ruoyi.system.domain.SysOss;
-import com.ruoyi.system.domain.bo.SysOssBo;
-import com.ruoyi.system.domain.vo.SysOssVo;
-import com.ruoyi.system.service.ISysConfigService;
-import com.ruoyi.system.service.ISysOssService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.MediaType;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.constraints.NotEmpty;
-import java.io.IOException;
-import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 文件上传 控制层
- *
- * @author Lion Li
- */
-@Validated
-@Api(value = "OSS云存储控制器", tags = {"OSS云存储管理"})
-@RequiredArgsConstructor(onConstructor_ = @Autowired)
-@RestController
-@RequestMapping("/system/oss")
-public class SysOssController extends BaseController {
-
-	private final ISysOssService iSysOssService;
-	private final ISysConfigService iSysConfigService;
-
-	/**
-	 * 查询OSS云存储列表
-	 */
-	@ApiOperation("查询OSS云存储列表")
-	@PreAuthorize("@ss.hasPermi('system:oss:list')")
-	@GetMapping("/list")
-	public TableDataInfo<SysOssVo> list(@Validated(QueryGroup.class) SysOssBo bo) {
-		return iSysOssService.queryPageList(bo);
-	}
-
-	/**
-	 * 上传OSS云存储
-	 */
-	@ApiOperation("上传OSS云存储")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "file", value = "文件", dataType = "java.io.File", required = true),
-	})
-	@PreAuthorize("@ss.hasPermi('system:oss:upload')")
-	@Log(title = "OSS云存储", businessType = BusinessType.INSERT)
-	@RepeatSubmit
-	@PostMapping("/upload")
-	public AjaxResult<Map<String, String>> upload(@RequestPart("file") MultipartFile file) {
-		if (ObjectUtil.isNull(file)) {
-			throw new ServiceException("上传文件不能为空");
-		}
-		SysOss oss = iSysOssService.upload(file);
-		Map<String, String> map = new HashMap<>(2);
-		map.put("url", oss.getUrl());
-		map.put("fileName", oss.getFileName());
-		return AjaxResult.success(map);
-	}
-
-	@ApiOperation("下载OSS云存储")
-	@PreAuthorize("@ss.hasPermi('system:oss:download')")
-	@GetMapping("/download/{ossId}")
-	public void download(@PathVariable Long ossId, HttpServletResponse response) throws IOException {
-		SysOss sysOss = iSysOssService.getById(ossId);
-		if (ObjectUtil.isNull(sysOss)) {
-			throw new ServiceException("文件数据不存在!");
-		}
-		response.reset();
-		response.addHeader("Access-Control-Allow-Origin", "*");
-		response.addHeader("Access-Control-Expose-Headers", "Content-Disposition");
-		FileUtils.setAttachmentResponseHeader(response, URLEncoder.encode(sysOss.getOriginalName(), StandardCharsets.UTF_8.toString()));
-		response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE + "; charset=UTF-8");
-		long data = HttpUtil.download(sysOss.getUrl(), response.getOutputStream(), false);
-		response.setContentLength(Convert.toInt(data));
-	}
-
-	/**
-	 * 删除OSS云存储
-	 */
-	@ApiOperation("删除OSS云存储")
-	@PreAuthorize("@ss.hasPermi('system:oss:remove')")
-	@Log(title = "OSS云存储" , businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ossIds}")
-	public AjaxResult<Void> remove(@NotEmpty(message = "主键不能为空")
-								   @PathVariable Long[] ossIds) {
-		return toAjax(iSysOssService.deleteWithValidByIds(Arrays.asList(ossIds), true) ? 1 : 0);
-	}
-
-	/**
-	 * 变更图片列表预览状态
-	 */
-	@ApiOperation("变更图片列表预览状态")
-	@PreAuthorize("@ss.hasPermi('system:oss:edit')")
-	@Log(title = "OSS云存储" , businessType = BusinessType.UPDATE)
-	@PutMapping("/changePreviewListResource")
-	public AjaxResult<Void> changePreviewListResource(@RequestBody String body) {
-		Map<String, Boolean> map = JsonUtils.parseMap(body);
-		SysConfig config = iSysConfigService.getOne(new LambdaQueryWrapper<SysConfig>()
-			.eq(SysConfig::getConfigKey, CloudConstant.PEREVIEW_LIST_RESOURCE_KEY));
-		config.setConfigValue(map.get("previewListResource").toString());
-		return toAjax(iSysConfigService.updateConfig(config));
-	}
-
-}

+ 17 - 54
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java

@@ -10,14 +10,14 @@ import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.framework.web.service.TokenService;
-import com.ruoyi.system.domain.SysOss;
-import com.ruoyi.system.service.ISysOssService;
 import com.ruoyi.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
-import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -28,27 +28,22 @@ import java.util.Map;
  */
 @RestController
 @RequestMapping("/system/user/profile")
-public class SysProfileController extends BaseController
-{
+public class SysProfileController extends BaseController {
     @Autowired
     private ISysUserService userService;
 
     @Autowired
     private TokenService tokenService;
 
-    @Autowired
-	private ISysOssService iSysOssService;
-
     /**
      * 个人信息
      */
     @GetMapping
-    public AjaxResult profile()
-    {
+    public AjaxResult profile() {
         LoginUser loginUser = getLoginUser();
         SysUser user = loginUser.getUser();
-		Map<String,Object> ajax = new HashMap<>();
-		ajax.put("user", user);
+        Map<String, Object> ajax = new HashMap<>();
+        ajax.put("user", user);
         ajax.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername()));
         ajax.put("postGroup", userService.selectUserPostGroup(loginUser.getUsername()));
         return AjaxResult.success(ajax);
@@ -59,24 +54,20 @@ public class SysProfileController extends BaseController
      */
     @Log(title = "个人信息", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult updateProfile(@RequestBody SysUser user)
-    {
+    public AjaxResult updateProfile(@RequestBody SysUser user) {
         if (StringUtils.isNotEmpty(user.getPhonenumber())
-                && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
-        {
+            && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) {
             return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
         }
         if (StringUtils.isNotEmpty(user.getEmail())
-                && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
-        {
+            && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) {
             return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
         }
         LoginUser loginUser = getLoginUser();
         SysUser sysUser = loginUser.getUser();
         user.setUserId(sysUser.getUserId());
         user.setPassword(null);
-        if (userService.updateUserProfile(user) > 0)
-        {
+        if (userService.updateUserProfile(user) > 0) {
             // 更新缓存用户信息
             sysUser.setNickName(user.getNickName());
             sysUser.setPhonenumber(user.getPhonenumber());
@@ -93,21 +84,17 @@ public class SysProfileController extends BaseController
      */
     @Log(title = "个人信息", businessType = BusinessType.UPDATE)
     @PutMapping("/updatePwd")
-    public AjaxResult updatePwd(String oldPassword, String newPassword)
-    {
+    public AjaxResult updatePwd(String oldPassword, String newPassword) {
         LoginUser loginUser = getLoginUser();
         String userName = loginUser.getUsername();
         String password = loginUser.getPassword();
-        if (!SecurityUtils.matchesPassword(oldPassword, password))
-        {
+        if (!SecurityUtils.matchesPassword(oldPassword, password)) {
             return AjaxResult.error("修改密码失败,旧密码错误");
         }
-        if (SecurityUtils.matchesPassword(newPassword, password))
-        {
+        if (SecurityUtils.matchesPassword(newPassword, password)) {
             return AjaxResult.error("新密码不能与旧密码相同");
         }
-        if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0)
-        {
+        if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0) {
             // 更新缓存用户密码
             loginUser.getUser().setPassword(SecurityUtils.encryptPassword(newPassword));
             tokenService.setLoginUser(loginUser);
@@ -116,28 +103,4 @@ public class SysProfileController extends BaseController
         return AjaxResult.error("修改密码异常,请联系管理员");
     }
 
-    /**
-     * 头像上传
-     */
-    @Log(title = "用户头像", businessType = BusinessType.UPDATE)
-    @PostMapping("/avatar")
-    public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws IOException
-    {
-        if (!file.isEmpty())
-        {
-            LoginUser loginUser = getLoginUser();
-			SysOss oss = iSysOssService.upload(file);
-			String avatar = oss.getUrl();
-            if (userService.updateUserAvatar(loginUser.getUsername(), avatar))
-            {
-				Map<String,Object> ajax = new HashMap<>();
-                ajax.put("imgUrl", avatar);
-                // 更新缓存用户头像
-                loginUser.getUser().setAvatar(avatar);
-                tokenService.setLoginUser(loginUser);
-                return AjaxResult.success(ajax);
-            }
-        }
-        return AjaxResult.error("上传图片异常,请联系管理员");
-    }
 }

+ 88 - 40
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhdd/IncidentController.java

@@ -2,7 +2,6 @@ package com.ruoyi.web.controller.zhdd;
 
 import cn.afterturn.easypoi.word.WordExportUtil;
 import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.convert.Convert;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
@@ -15,6 +14,7 @@ import com.ruoyi.common.annotation.RepeatSubmit;
 import com.ruoyi.common.annotation.Security;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.TreeSelect;
 import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.model.LoginUser;
@@ -34,6 +34,7 @@ import com.ruoyi.zhdd.domain.Plan;
 import com.ruoyi.zhdd.domain.PlanFile;
 import com.ruoyi.zhdd.domain.bo.IncidentBo;
 import com.ruoyi.zhdd.domain.bo.IncidentTasksBo;
+import com.ruoyi.zhdd.domain.bo.MessagePushUser;
 import com.ruoyi.zhdd.domain.vo.IncidentTaskVo;
 import com.ruoyi.zhdd.domain.vo.IncidentVo;
 import com.ruoyi.zhdd.domain.vo.PlanFileVo;
@@ -153,6 +154,29 @@ public class IncidentController extends BaseController {
         if (sysDept != null) {
             incidentVo.setCreateDept(sysDept.getDeptName());
         }
+        // 组装主办和协办部门数据树
+        List<TreeSelect> madinList = new ArrayList<>();
+        if (StrUtil.isNotBlank(incidentVo.getMadinDept())) {
+            TreeSelect madin = new TreeSelect();
+            madin.setId(incidentVo.getMadinDept());
+            madin.setLabel(incidentVo.getMadinDeptText());
+            madinList.add(madin);
+        }
+        incidentVo.setMadinDeptList(madinList);
+
+        List<TreeSelect> assistList = new ArrayList<>();
+        if (StrUtil.isNotBlank(incidentVo.getAssistDept())) {
+            for (int i = 0; i < incidentVo.getAssistDept().split(",").length; i++) {
+                TreeSelect assist = new TreeSelect();
+                assist.setId(incidentVo.getAssistDept().split(",")[i]);
+                if (incidentVo.getAssistDept().split(",").length == incidentVo.getAssistDeptText().split(",").length) {
+                    assist.setLabel(incidentVo.getAssistDeptText().split(",")[i]);
+                }
+                assistList.add(assist);
+            }
+        }
+        incidentVo.setAssistDeptList(assistList);
+
         map.put("baseInfo", incidentVo);
         // 查询所属预案
         List<PlanVo> voOne = planService.listVo(Wrappers.<Plan>lambdaQuery().eq(Plan::getType, incidentVo.getType()).eq(Plan::getCreateDept, incidentVo.getPlanDept()));
@@ -285,58 +309,82 @@ public class IncidentController extends BaseController {
         return AjaxResult.success(result);
     }
 
-    @ApiOperation("应急方案导出")
-//    @Log(title = "应急方案导出", businessType = BusinessType.EXPORT)
+    @ApiOperation("事件报告导出")
     @GetMapping("/download")
     public void download(@RequestParam String id, HttpServletRequest request, HttpServletResponse response) {
+        // id为事件id
         Map<String, Object> map = new HashMap<>();
-        // 查询处置方案
-        IncidentTaskVo incidentTaskVo = incidentTaskService.queryById(id);
-        if (incidentTaskVo != null) {
-            map.put("taskName", incidentTaskVo.getTaskName());
+        IncidentVo incidentVo = iIncidentService.queryById(id);
+        if (incidentVo != null) {
+            map.put("name", incidentVo.getName());
+            /*if (ObjectUtil.isNotEmpty(incidentVo.getType())) {
+                map.put("type", sysDictDataService.selectDictLabel("zhdd_plan_type", Convert.toStr(incidentVo.getType())));
+            } else {
+                map.put("type", "-");
+            }*/
+            map.put("createTime", DateUtil.formatDateTime(incidentVo.getCreateTime()));
+            map.put("addr", incidentVo.getAddr());
+            map.put("commanderText", StrUtil.blankToDefault(incidentVo.getCommanderText(), "无"));
+            map.put("madinDeptText", StrUtil.blankToDefault(incidentVo.getMadinDeptText(), "部门无"));
+            map.put("assistDeptText", StrUtil.blankToDefault(incidentVo.getAssistDeptText(), "部门无"));
+            // 解析主办部门和协办部门人员
+            String madinDeptUser = incidentVo.getMadinDeptUser();
+            if (StrUtil.isNotBlank(madinDeptUser)) {
+                List<MessagePushUser> messagePushUsers = JSONUtil.toList(madinDeptUser, MessagePushUser.class);
+                map.put("madinDeptUser", messagePushUsers.stream().map(MessagePushUser::getNickName).collect(Collectors.joining(",")));
+            } else {
+                map.put("madinDeptUser", "人员无");
+            }
+            String assistDeptUser = incidentVo.getAssistDeptUser();
+            if (StrUtil.isNotBlank(assistDeptUser)) {
+                List<MessagePushUser> messagePushUsers = JSONUtil.toList(assistDeptUser, MessagePushUser.class);
+                map.put("assistDeptUser", messagePushUsers.stream().map(MessagePushUser::getNickName).collect(Collectors.joining(",")));
+            } else {
+                map.put("assistDeptUser", "人员无");
+            }
+            map.put("conclusionDeal", StrUtil.blankToDefault(incidentVo.getConclusionDeal(), "无"));
+            map.put("conclusion", StrUtil.blankToDefault(incidentVo.getConclusion(), "无"));
 
-            // 查询事件详情
-            IncidentVo incidentVo = iIncidentService.queryById(incidentTaskVo.getIncidentId());
-            if (incidentVo != null) {
-                map.put("name", incidentVo.getName());
-                if (ObjectUtil.isNotEmpty(incidentVo.getType())) {
-                    map.put("type", sysDictDataService.selectDictLabel("zhdd_plan_type", Convert.toStr(incidentVo.getType())));
-                } else {
-                    map.put("type", "-");
-                }
-                map.put("createTime", DateUtil.formatDateTime(incidentVo.getCreateTime()));
-                map.put("addr", incidentVo.getAddr());
-                if (StrUtil.isNotBlank(incidentVo.getSource())) {
-                    map.put("source", sysDictDataService.selectDictLabel("zhdd_incident_source", incidentVo.getSource()));
-                } else {
-                    map.put("source", "-");
-                }
-                if (ObjectUtil.isNotEmpty(incidentVo.getLevel())) {
-                    map.put("level", sysDictDataService.selectDictLabel("zhdd_incident_level", Convert.toStr(incidentVo.getLevel())));
-                } else {
-                    map.put("level", "-");
+            /*if (StrUtil.isNotBlank(incidentVo.getSource())) {
+                map.put("source", sysDictDataService.selectDictLabel("zhdd_incident_source", incidentVo.getSource()));
+            } else {
+                map.put("source", "-");
+            }
+            if (ObjectUtil.isNotEmpty(incidentVo.getLevel())) {
+                map.put("level", sysDictDataService.selectDictLabel("zhdd_incident_level", Convert.toStr(incidentVo.getLevel())));
+            } else {
+                map.put("level", "-");
+            }*/
+            // 查询处置方案
+            List<IncidentTaskVo> incidentTasks = incidentTaskService.listTaskInfo(id);
+            if (incidentTasks != null && incidentTasks.size() > 0) {
+                StringBuilder tasks = new StringBuilder();
+                for (int i = 0; i < incidentTasks.size(); i++) {
+                    tasks.append(i + 1).append("、").append(incidentTasks.get(i).getTaskName()).append("\r");
                 }
+                map.put("tasks", tasks.toString());
+            } else {
+                map.put("tasks", "无");
             }
-            // 查询方案人员
-//            map.put("incidentPerson", incidentTaskPersonService.listVo(Wrappers.<IncidentTaskPerson>lambdaQuery().eq(IncidentTaskPerson::getIncidentTaskId, id)));
-            // 查询方案指令
-//            List<IncidentTaskCommandVo> incidentTaskCommandVos = incidentTaskCommandService.listVo(Wrappers.<IncidentTaskCommand>lambdaQuery().eq(IncidentTaskCommand::getIncidentTaskId, id));
-//            for (int i = 0; i < incidentTaskCommandVos.size(); i++) {
-//                incidentTaskCommandVos.get(i).setIndex(i + 1);
-//            }
-//            map.put("incidentCommand", incidentTaskCommandVos);
+
             // 查询处置过程
             List<IncidentProcess> incidentProcess = processService.list(Wrappers.<IncidentProcess>lambdaQuery()
-                .eq(IncidentProcess::getIncidentId, incidentTaskVo.getIncidentId()).orderByDesc(IncidentProcess::getCreateTime));
+                .eq(IncidentProcess::getIncidentId, id).orderByAsc(IncidentProcess::getCreateTime));
             if (incidentProcess != null && incidentProcess.size() > 0) {
-                IncidentProcess processData = incidentProcess.get(0);
-                map.put("process", DateUtil.formatDateTime(processData.getCreateTime()) + ":" + processData.getDes());
+                StringBuilder processs = new StringBuilder();
+                for (int i = 0; i < incidentProcess.size(); i++) {
+                    processs.append(i + 1).append("、").append(incidentProcess.get(i).getDes()).append("\r");
+                }
+                map.put("processs", processs.toString());
+            } else {
+                map.put("processs", "无");
             }
         }
-        String fileName = "plan_" + DateUtil.format(new Date(), "yyyyMMddHHmmss") + ".docx";
+
+        String fileName = "incident_" + DateUtil.format(new Date(), "yyyyMMddHHmmss") + ".docx";
         try {
             XWPFDocument doc = WordExportUtil.exportWord07(
-                "word/incidentTask.docx", map);
+                "word/incidentDetail.docx", map);
             FileOutputStream fos = new FileOutputStream(ExcelUtil.getAbsoluteFile(fileName));
             doc.write(fos);
             // 设置强制下载不打开

+ 2 - 2
ruoyi-admin/src/main/resources/bootstrap.yml

@@ -1,9 +1,9 @@
 spring:
   profiles:
-    active: test
+    active: dev
 ruoyi:
   # 名称
-  name: YJZH-SQ
+  name: YJZH-SQ-temp
 server:
   # 服务器的HTTP端口,默认为8080
   port: 8080

BIN
ruoyi-admin/src/main/resources/word/incidentDetail.docx


+ 0 - 55
ruoyi-oss/pom.xml

@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>ruoyi-vue-plus</artifactId>
-        <groupId>com.ruoyi</groupId>
-        <version>3.1.0</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>ruoyi-oss</artifactId>
-
-    <description>
-        OSS对象存储模块
-    </description>
-
-    <dependencies>
-
-        <!-- 通用工具-->
-        <dependency>
-            <groupId>com.ruoyi</groupId>
-            <artifactId>ruoyi-common</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>com.qiniu</groupId>
-            <artifactId>qiniu-java-sdk</artifactId>
-            <version>${qiniu.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.aliyun.oss</groupId>
-            <artifactId>aliyun-sdk-oss</artifactId>
-            <version>${aliyun.oss.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.qcloud</groupId>
-            <artifactId>cos_api</artifactId>
-            <version>${qcloud.cos.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>slf4j-log4j12</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>io.minio</groupId>
-            <artifactId>minio</artifactId>
-            <version>${minio.version}</version>
-        </dependency>
-
-    </dependencies>
-
-</project>

+ 0 - 38
ruoyi-oss/src/main/java/com/ruoyi/oss/constant/CloudConstant.java

@@ -1,38 +0,0 @@
-package com.ruoyi.oss.constant;
-
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * 云存储常量
- *
- * @author Lion Li
- */
-public class CloudConstant {
-
-	/**
-	 * OSS模块KEY
-	 */
-	public static final String SYS_OSS_KEY = "sys_oss:";
-
-	/**
-	 * 云存储配置KEY
-	 */
-	public static final String CLOUD_STORAGE_CONFIG_KEY = "CloudStorageConfig";
-
-	/**
-	 * 缓存配置KEY
-	 */
-	public static final String CACHE_CONFIG_KEY = SYS_OSS_KEY + CLOUD_STORAGE_CONFIG_KEY;
-
-	/**
-	 * 预览列表资源开关Key
-	 */
-	public static final String PEREVIEW_LIST_RESOURCE_KEY = "sys.oss.previewListResource";
-
-	/**
-	 * 系统数据ids
-	 */
-	public static final List<Integer> SYSTEM_DATA_IDS = Arrays.asList(1, 2, 3, 4);
-
-}

+ 0 - 26
ruoyi-oss/src/main/java/com/ruoyi/oss/entity/UploadResult.java

@@ -1,26 +0,0 @@
-package com.ruoyi.oss.entity;
-
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-
-/**
- * 上传返回体
- *
- * @author Lion Li
- */
-@Data
-@NoArgsConstructor
-@Accessors(chain = true)
-public class UploadResult {
-
-	/**
-	 * 文件路径
-	 */
-	private String url;
-
-	/**
-	 * 文件名
-	 */
-	private String filename;
-}

+ 0 - 63
ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/CloudServiceEnumd.java

@@ -1,63 +0,0 @@
-package com.ruoyi.oss.enumd;
-
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.oss.service.impl.AliyunCloudStorageStrategy;
-import com.ruoyi.oss.service.impl.MinioCloudStorageStrategy;
-import com.ruoyi.oss.service.impl.QcloudCloudStorageStrategy;
-import com.ruoyi.oss.service.impl.QiniuCloudStorageStrategy;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * 云存储服务商枚举
- *
- * @author Lion Li
- */
-@Getter
-@AllArgsConstructor
-public enum CloudServiceEnumd {
-
-	/**
-	 * 七牛云
-	 */
-	QINIU("qiniu", QiniuCloudStorageStrategy.class),
-
-	/**
-	 * 阿里云
-	 */
-	ALIYUN("aliyun", AliyunCloudStorageStrategy.class),
-
-	/**
-	 * 腾讯云
-	 */
-	QCLOUD("qcloud", QcloudCloudStorageStrategy.class),
-
-	/**
-	 * minio
-	 */
-	MINIO("minio", MinioCloudStorageStrategy.class);
-
-	private final String value;
-
-	private final Class<?> serviceClass;
-
-	public static Class<?> getServiceClass(String value) {
-		for (CloudServiceEnumd clazz : values()) {
-			if (clazz.getValue().equals(value)) {
-				return clazz.getServiceClass();
-			}
-		}
-		return null;
-	}
-
-	public static String getServiceName(String value) {
-		for (CloudServiceEnumd clazz : values()) {
-			if (clazz.getValue().equals(value)) {
-				return StringUtils.uncapitalize(clazz.getServiceClass().getSimpleName());
-			}
-		}
-		return null;
-	}
-
-
-}

+ 0 - 51
ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/PolicyType.java

@@ -1,51 +0,0 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 庄骞 (smallchill@163.com)
- */
-package com.ruoyi.oss.enumd;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * minio策略配置
- *
- * @author Lion Li
- */
-@Getter
-@AllArgsConstructor
-public enum PolicyType {
-
-	/**
-	 * 只读
-	 */
-	READ("read-only"),
-
-	/**
-	 * 只写
-	 */
-	WRITE("write-only"),
-
-	/**
-	 * 读写
-	 */
-	READ_WRITE("read-write");
-
-	/**
-	 * 类型
-	 */
-	private final String type;
-
-}

+ 0 - 16
ruoyi-oss/src/main/java/com/ruoyi/oss/exception/OssException.java

@@ -1,16 +0,0 @@
-package com.ruoyi.oss.exception;
-
-/**
- * OSS异常类
- *
- * @author Lion Li
- */
-public class OssException extends RuntimeException {
-
-	private static final long serialVersionUID = 1L;
-
-	public OssException(String msg) {
-		super(msg);
-	}
-
-}

+ 0 - 75
ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java

@@ -1,75 +0,0 @@
-package com.ruoyi.oss.factory;
-
-import cn.hutool.core.convert.Convert;
-import com.ruoyi.common.utils.JsonUtils;
-import com.ruoyi.common.utils.RedisUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.reflect.ReflectUtils;
-import com.ruoyi.oss.constant.CloudConstant;
-import com.ruoyi.oss.enumd.CloudServiceEnumd;
-import com.ruoyi.oss.exception.OssException;
-import com.ruoyi.oss.properties.CloudStorageProperties;
-import com.ruoyi.oss.service.ICloudStorageStrategy;
-import com.ruoyi.oss.service.abstractd.AbstractCloudStorageStrategy;
-import lombok.extern.slf4j.Slf4j;
-
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * 文件上传Factory
- *
- * @author Lion Li
- */
-@Slf4j
-public class OssFactory {
-
-	static {
-		RedisUtils.subscribe(CloudConstant.CACHE_CONFIG_KEY, String.class, msg -> {
-			refreshService(msg);
-			log.info("订阅刷新OSS配置 => " + msg);
-		});
-	}
-
-	/**
-	 * 服务实例缓存
-	 */
-	private static final Map<String, ICloudStorageStrategy> SERVICES = new ConcurrentHashMap<>();
-
-	/**
-	 * 获取默认实例
-	 */
-	public static ICloudStorageStrategy instance() {
-		// 获取redis 默认类型
-		String type = Convert.toStr(RedisUtils.getCacheObject(CloudConstant.CACHE_CONFIG_KEY));
-		if (StringUtils.isEmpty(type)) {
-			throw new OssException("文件存储服务类型无法找到!");
-		}
-		return instance(type);
-	}
-
-	/**
-	 * 根据类型获取实例
-	 */
-	public static ICloudStorageStrategy instance(String type) {
-		ICloudStorageStrategy service = SERVICES.get(type);
-		if (service == null) {
-			refreshService(type);
-			service = SERVICES.get(type);
-		}
-		return service;
-	}
-
-	private static void refreshService(String type) {
-		Object json = RedisUtils.getCacheObject(CloudConstant.SYS_OSS_KEY + type);
-		CloudStorageProperties properties = JsonUtils.parseObject(json.toString(), CloudStorageProperties.class);
-		if (properties == null) {
-			throw new OssException("系统异常, '" + type + "'配置信息不存在!");
-		}
-		// 获取redis配置信息 创建对象 并缓存
-		ICloudStorageStrategy service = (ICloudStorageStrategy) ReflectUtils.newInstance(CloudServiceEnumd.getServiceClass(type));
-		((AbstractCloudStorageStrategy)service).init(properties);
-		SERVICES.put(type, service);
-	}
-
-}

+ 0 - 55
ruoyi-oss/src/main/java/com/ruoyi/oss/properties/CloudStorageProperties.java

@@ -1,55 +0,0 @@
-package com.ruoyi.oss.properties;
-
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * OSS云存储 配置属性
- *
- * @author Lion Li
- */
-@Data
-public class CloudStorageProperties {
-
-	/**
-	 * 域名
-	 */
-	private String endpoint;
-
-	/**
-	 * 前缀
-	 */
-	private String prefix;
-
-	/**
-	 * ACCESS_KEY
-	 */
-	private String accessKey;
-
-	/**
-	 * SECRET_KEY
-	 */
-	private String secretKey;
-
-	/**
-	 * 存储空间名
-	 */
-	private String bucketName;
-
-	/**
-	 * 存储区域
-	 */
-	private String region;
-
-	/**
-	 * 是否https(Y=是,N=否)
-	 */
-	private String isHttps;
-
-	/**
-	 * 更新时间
-	 */
-	private Date updateTime;
-
-}

+ 0 - 74
ruoyi-oss/src/main/java/com/ruoyi/oss/service/ICloudStorageStrategy.java

@@ -1,74 +0,0 @@
-package com.ruoyi.oss.service;
-
-import com.ruoyi.oss.entity.UploadResult;
-
-import java.io.InputStream;
-
-/**
- * 云存储策略
- *
- * @author Lion Li
- */
-public interface ICloudStorageStrategy {
-
-	void createBucket();
-
-	/**
-	 * 获取服务商类型
-	 */
-	String getServiceType();
-
-	/**
-	 * 文件路径
-	 *
-	 * @param prefix 前缀
-	 * @param suffix 后缀
-	 * @return 返回上传路径
-	 */
-	String getPath(String prefix, String suffix);
-
-	/**
-	 * 文件上传
-	 *
-	 * @param data 文件字节数组
-	 * @param path 文件路径,包含文件名
-	 * @return 返回http地址
-	 */
-	UploadResult upload(byte[] data, String path, String contentType);
-
-	/**
-	 * 文件删除
-	 *
-	 * @param path 文件路径,包含文件名
-	 */
-	void delete(String path);
-
-	/**
-	 * 文件上传
-	 *
-	 * @param data   文件字节数组
-	 * @param suffix 后缀
-	 * @return 返回http地址
-	 */
-	UploadResult uploadSuffix(byte[] data, String suffix, String contentType);
-
-	/**
-	 * 文件上传
-	 *
-	 * @param inputStream 字节流
-	 * @param path        文件路径,包含文件名
-	 * @return 返回http地址
-	 */
-	UploadResult upload(InputStream inputStream, String path, String contentType);
-
-	/**
-	 * 文件上传
-	 *
-	 * @param inputStream 字节流
-	 * @param suffix      后缀
-	 * @return 返回http地址
-	 */
-	UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType);
-
-	String getEndpointLink();
-}

+ 0 - 62
ruoyi-oss/src/main/java/com/ruoyi/oss/service/abstractd/AbstractCloudStorageStrategy.java

@@ -1,62 +0,0 @@
-package com.ruoyi.oss.service.abstractd;
-
-import cn.hutool.core.io.IoUtil;
-import cn.hutool.core.util.IdUtil;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.oss.entity.UploadResult;
-import com.ruoyi.oss.properties.CloudStorageProperties;
-import com.ruoyi.oss.service.ICloudStorageStrategy;
-
-import java.io.InputStream;
-
-/**
- * 云存储策略(支持七牛、阿里云、腾讯云、minio)
- *
- * @author Lion Li
- */
-public abstract class AbstractCloudStorageStrategy implements ICloudStorageStrategy {
-
-	protected CloudStorageProperties properties;
-
-	public abstract void init(CloudStorageProperties properties);
-
-	@Override
-	public abstract void createBucket();
-
-	@Override
-	public abstract String getServiceType();
-
-	@Override
-	public String getPath(String prefix, String suffix) {
-		// 生成uuid
-		String uuid = IdUtil.fastSimpleUUID();
-		// 文件路径
-		String path = DateUtils.datePath() + "/" + uuid;
-		if (StringUtils.isNotBlank(prefix)) {
-			path = prefix + "/" + path;
-		}
-		return path + suffix;
-	}
-
-	@Override
-	public abstract UploadResult upload(byte[] data, String path, String contentType);
-
-	@Override
-	public abstract void delete(String path);
-
-	@Override
-	public UploadResult upload(InputStream inputStream, String path, String contentType) {
-		byte[] data = IoUtil.readBytes(inputStream);
-		return this.upload(data, path, contentType);
-	}
-
-	@Override
-	public abstract UploadResult uploadSuffix(byte[] data, String suffix, String contentType);
-
-	@Override
-	public abstract UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType);
-
-	@Override
-	public abstract String getEndpointLink();
-}

+ 0 - 113
ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/AliyunCloudStorageStrategy.java

@@ -1,113 +0,0 @@
-package com.ruoyi.oss.service.impl;
-
-import com.aliyun.oss.ClientConfiguration;
-import com.aliyun.oss.OSSClient;
-import com.aliyun.oss.common.auth.DefaultCredentialProvider;
-import com.aliyun.oss.model.CannedAccessControlList;
-import com.aliyun.oss.model.CreateBucketRequest;
-import com.aliyun.oss.model.ObjectMetadata;
-import com.aliyun.oss.model.PutObjectRequest;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.oss.entity.UploadResult;
-import com.ruoyi.oss.enumd.CloudServiceEnumd;
-import com.ruoyi.oss.exception.OssException;
-import com.ruoyi.oss.properties.CloudStorageProperties;
-import com.ruoyi.oss.service.abstractd.AbstractCloudStorageStrategy;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-
-/**
- * 阿里云存储策略
- *
- * @author Lion Li
- */
-public class AliyunCloudStorageStrategy extends AbstractCloudStorageStrategy {
-
-	private OSSClient client;
-
-	@Override
-	public void init(CloudStorageProperties cloudStorageProperties) {
-		properties = cloudStorageProperties;
-		try {
-			ClientConfiguration configuration = new ClientConfiguration();
-			DefaultCredentialProvider credentialProvider = new DefaultCredentialProvider(
-				properties.getAccessKey(), properties.getSecretKey());
-			client = new OSSClient(properties.getEndpoint(), credentialProvider, configuration);
-			createBucket();
-		} catch (Exception e) {
-			throw new OssException("阿里云存储配置错误! 请检查系统配置:[" + e.getMessage() + "]");
-		}
-	}
-
-	@Override
-	public void createBucket() {
-		try {
-			String bucketName = properties.getBucketName();
-			if (client.doesBucketExist(bucketName)) {
-				return;
-			}
-			CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName);
-			createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
-			client.createBucket(createBucketRequest);
-		} catch (Exception e) {
-			throw new OssException("创建Bucket失败, 请核对阿里云配置信息:[" + e.getMessage() + "]");
-		}
-	}
-
-	@Override
-	public String getServiceType() {
-		return CloudServiceEnumd.ALIYUN.getValue();
-	}
-
-	@Override
-	public UploadResult upload(byte[] data, String path, String contentType) {
-		return upload(new ByteArrayInputStream(data), path, contentType);
-	}
-
-	@Override
-	public UploadResult upload(InputStream inputStream, String path, String contentType) {
-		try {
-			ObjectMetadata metadata = new ObjectMetadata();
-			metadata.setContentType(contentType);
-			client.putObject(new PutObjectRequest(properties.getBucketName(), path, inputStream, metadata));
-		} catch (Exception e) {
-			throw new OssException("上传文件失败,请检查阿里云配置信息:[" + e.getMessage() + "]");
-		}
-		return new UploadResult().setUrl(getEndpointLink() + "/" + path).setFilename(path);
-	}
-
-	@Override
-	public void delete(String path) {
-		path = path.replace(getEndpointLink() + "/", "");
-		try {
-			client.deleteObject(properties.getBucketName(), path);
-		} catch (Exception e) {
-			throw new OssException("上传文件失败,请检查阿里云配置信息:[" + e.getMessage() + "]");
-		}
-	}
-
-	@Override
-	public UploadResult uploadSuffix(byte[] data, String suffix, String contentType) {
-		return upload(data, getPath(properties.getPrefix(), suffix), contentType);
-	}
-
-	@Override
-	public UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType) {
-		return upload(inputStream, getPath(properties.getPrefix(), suffix), contentType);
-	}
-
-	@Override
-	public String getEndpointLink() {
-		String endpoint = properties.getEndpoint();
-		StringBuilder sb = new StringBuilder(endpoint);
-		if (StringUtils.containsAnyIgnoreCase(endpoint, "http://")) {
-			sb.insert(7, properties.getBucketName() + ".");
-		} else if (StringUtils.containsAnyIgnoreCase(endpoint, "https://")) {
-			sb.insert(8, properties.getBucketName() + ".");
-		} else {
-			throw new OssException("Endpoint配置错误");
-		}
-		return sb.toString();
-	}
-}

+ 0 - 181
ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioCloudStorageStrategy.java

@@ -1,181 +0,0 @@
-package com.ruoyi.oss.service.impl;
-
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.oss.entity.UploadResult;
-import com.ruoyi.oss.enumd.CloudServiceEnumd;
-import com.ruoyi.oss.enumd.PolicyType;
-import com.ruoyi.oss.exception.OssException;
-import com.ruoyi.oss.properties.CloudStorageProperties;
-import com.ruoyi.oss.service.abstractd.AbstractCloudStorageStrategy;
-import io.minio.*;
-import org.springframework.http.MediaType;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-
-/**
- * minio存储策略
- *
- * @author Lion Li
- */
-public class MinioCloudStorageStrategy extends AbstractCloudStorageStrategy {
-
-	private MinioClient minioClient;
-
-	@Override
-	public void init(CloudStorageProperties cloudStorageProperties) {
-		properties = cloudStorageProperties;
-		try {
-			minioClient = MinioClient.builder()
-				.endpoint(properties.getEndpoint())
-				.credentials(properties.getAccessKey(), properties.getSecretKey())
-				.build();
-			createBucket();
-		} catch (Exception e) {
-			throw new OssException("Minio存储配置错误! 请检查系统配置:[" + e.getMessage() + "]");
-		}
-	}
-
-	@Override
-	public void createBucket() {
-		try {
-			String bucketName = properties.getBucketName();
-			boolean exists = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
-			if (exists) {
-				return;
-			}
-			// 不存在就创建桶
-			minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
-			minioClient.setBucketPolicy(SetBucketPolicyArgs.builder()
-				.bucket(bucketName)
-				.config(getPolicy(bucketName, PolicyType.READ))
-				.build());
-		} catch (Exception e) {
-			throw new OssException("创建Bucket失败, 请核对Minio配置信息:[" + e.getMessage() + "]");
-		}
-	}
-
-	@Override
-	public String getServiceType() {
-		return CloudServiceEnumd.MINIO.getValue();
-	}
-
-	@Override
-	public UploadResult upload(byte[] data, String path, String contentType) {
-		return upload(new ByteArrayInputStream(data), path, contentType);
-	}
-
-	@Override
-	public UploadResult upload(InputStream inputStream, String path, String contentType) {
-		try {
-			minioClient.putObject(PutObjectArgs.builder()
-				.bucket(properties.getBucketName())
-				.object(path)
-				.contentType(StringUtils.blankToDefault(contentType, MediaType.APPLICATION_OCTET_STREAM_VALUE))
-				.stream(inputStream, inputStream.available(), -1)
-				.build());
-		} catch (Exception e) {
-			throw new OssException("上传文件失败,请核对Minio配置信息:[" + e.getMessage() + "]");
-		}
-		return new UploadResult().setUrl(getEndpointLink() + "/" + path).setFilename(path);
-	}
-
-	@Override
-	public void delete(String path) {
-		path = path.replace(getEndpointLink() + "/", "");
-		try {
-			minioClient.removeObject(RemoveObjectArgs.builder()
-				.bucket(properties.getBucketName())
-				.object(path)
-				.build());
-		} catch (Exception e) {
-			throw new OssException(e.getMessage());
-		}
-	}
-
-	@Override
-	public UploadResult uploadSuffix(byte[] data, String suffix, String contentType) {
-		return upload(data, getPath(properties.getPrefix(), suffix), contentType);
-	}
-
-	@Override
-	public UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType) {
-		return upload(inputStream, getPath(properties.getPrefix(), suffix), contentType);
-	}
-
-	@Override
-	public String getEndpointLink() {
-		return properties.getEndpoint() + "/" + properties.getBucketName();
-	}
-
-	private String getPolicy(String bucketName, PolicyType policyType) {
-		StringBuilder builder = new StringBuilder();
-		builder.append("{\n");
-		builder.append("    \"Statement\": [\n");
-		builder.append("        {\n");
-		builder.append("            \"Action\": [\n");
-		if (policyType == PolicyType.WRITE) {
-			builder.append("                \"s3:GetBucketLocation\",\n");
-			builder.append("                \"s3:ListBucketMultipartUploads\"\n");
-		} else if (policyType == PolicyType.READ_WRITE) {
-			builder.append("                \"s3:GetBucketLocation\",\n");
-			builder.append("                \"s3:ListBucket\",\n");
-			builder.append("                \"s3:ListBucketMultipartUploads\"\n");
-		} else {
-			builder.append("                \"s3:GetBucketLocation\"\n");
-		}
-		builder.append("            ],\n");
-		builder.append("            \"Effect\": \"Allow\",\n");
-		builder.append("            \"Principal\": \"*\",\n");
-		builder.append("            \"Resource\": \"arn:aws:s3:::");
-		builder.append(bucketName);
-		builder.append("\"\n");
-		builder.append("        },\n");
-		if (PolicyType.READ.equals(policyType)) {
-			builder.append("        {\n");
-			builder.append("            \"Action\": [\n");
-			builder.append("                \"s3:ListBucket\"\n");
-			builder.append("            ],\n");
-			builder.append("            \"Effect\": \"Deny\",\n");
-			builder.append("            \"Principal\": \"*\",\n");
-			builder.append("            \"Resource\": \"arn:aws:s3:::");
-			builder.append(bucketName);
-			builder.append("\"\n");
-			builder.append("        },\n");
-		}
-		builder.append("        {\n");
-		builder.append("            \"Action\": ");
-		switch (policyType) {
-			case WRITE:
-				builder.append("[\n");
-				builder.append("                \"s3:AbortMultipartUpload\",\n");
-				builder.append("                \"s3:DeleteObject\",\n");
-				builder.append("                \"s3:ListMultipartUploadParts\",\n");
-				builder.append("                \"s3:PutObject\"\n");
-				builder.append("            ],\n");
-				break;
-			case READ_WRITE:
-				builder.append("[\n");
-				builder.append("                \"s3:AbortMultipartUpload\",\n");
-				builder.append("                \"s3:DeleteObject\",\n");
-				builder.append("                \"s3:GetObject\",\n");
-				builder.append("                \"s3:ListMultipartUploadParts\",\n");
-				builder.append("                \"s3:PutObject\"\n");
-				builder.append("            ],\n");
-				break;
-			default:
-				builder.append("\"s3:GetObject\",\n");
-				break;
-		}
-		builder.append("            \"Effect\": \"Allow\",\n");
-		builder.append("            \"Principal\": \"*\",\n");
-		builder.append("            \"Resource\": \"arn:aws:s3:::");
-		builder.append(bucketName);
-		builder.append("/*\"\n");
-		builder.append("        }\n");
-		builder.append("    ],\n");
-		builder.append("    \"Version\": \"2012-10-17\"\n");
-		builder.append("}\n");
-		return builder.toString();
-	}
-}

+ 0 - 121
ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QcloudCloudStorageStrategy.java

@@ -1,121 +0,0 @@
-package com.ruoyi.oss.service.impl;
-
-import com.qcloud.cos.COSClient;
-import com.qcloud.cos.ClientConfig;
-import com.qcloud.cos.auth.BasicCOSCredentials;
-import com.qcloud.cos.auth.COSCredentials;
-import com.qcloud.cos.http.HttpProtocol;
-import com.qcloud.cos.model.*;
-import com.qcloud.cos.region.Region;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.oss.entity.UploadResult;
-import com.ruoyi.oss.enumd.CloudServiceEnumd;
-import com.ruoyi.oss.exception.OssException;
-import com.ruoyi.oss.properties.CloudStorageProperties;
-import com.ruoyi.oss.service.abstractd.AbstractCloudStorageStrategy;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-
-/**
- * 腾讯云存储策略
- *
- * @author Lion Li
- */
-public class QcloudCloudStorageStrategy extends AbstractCloudStorageStrategy {
-
-	private COSClient client;
-
-	@Override
-	public void init(CloudStorageProperties cloudStorageProperties) {
-		properties = cloudStorageProperties;
-		try {
-			COSCredentials credentials = new BasicCOSCredentials(
-				properties.getAccessKey(), properties.getSecretKey());
-			// 初始化客户端配置
-			ClientConfig clientConfig = new ClientConfig();
-			// 设置bucket所在的区域,华南:gz 华北:tj 华东:sh
-			clientConfig.setRegion(new Region(properties.getRegion()));
-			if ("Y".equals(properties.getIsHttps())) {
-				clientConfig.setHttpProtocol(HttpProtocol.https);
-			} else {
-				clientConfig.setHttpProtocol(HttpProtocol.http);
-			}
-			client = new COSClient(credentials, clientConfig);
-			createBucket();
-		} catch (Exception e) {
-			throw new OssException("腾讯云存储配置错误! 请检查系统配置:[" + e.getMessage() + "]");
-		}
-	}
-
-	@Override
-	public void createBucket() {
-		try {
-			String bucketName = properties.getBucketName();
-			if (client.doesBucketExist(bucketName)) {
-				return;
-			}
-			CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName);
-			createBucketRequest.setCannedAcl(CannedAccessControlList.PublicRead);
-			client.createBucket(createBucketRequest);
-		} catch (Exception e) {
-			throw new OssException("创建Bucket失败, 请核对腾讯云配置信息:[" + e.getMessage() + "]");
-		}
-	}
-
-	@Override
-	public String getServiceType() {
-		return CloudServiceEnumd.QCLOUD.getValue();
-	}
-
-	@Override
-	public UploadResult upload(byte[] data, String path, String contentType) {
-		return upload(new ByteArrayInputStream(data), path, contentType);
-	}
-
-	@Override
-	public UploadResult upload(InputStream inputStream, String path, String contentType) {
-		try {
-			ObjectMetadata metadata = new ObjectMetadata();
-			metadata.setContentType(contentType);
-			client.putObject(new PutObjectRequest(properties.getBucketName(), path, inputStream, metadata));
-		} catch (Exception e) {
-			throw new OssException("上传文件失败,请检查腾讯云配置信息:[" + e.getMessage() + "]");
-		}
-		return new UploadResult().setUrl(getEndpointLink() + "/" + path).setFilename(path);
-	}
-
-	@Override
-	public void delete(String path) {
-		path = path.replace(getEndpointLink() + "/", "");
-		try {
-			client.deleteObject(new DeleteObjectRequest(properties.getBucketName(), path));
-		} catch (Exception e) {
-			throw new OssException("上传文件失败,请检腾讯云查配置信息:[" + e.getMessage() + "]");
-		}
-	}
-
-	@Override
-	public UploadResult uploadSuffix(byte[] data, String suffix, String contentType) {
-		return upload(data, getPath(properties.getPrefix(), suffix), contentType);
-	}
-
-	@Override
-	public UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType) {
-		return upload(inputStream, getPath(properties.getPrefix(), suffix), contentType);
-	}
-
-	@Override
-	public String getEndpointLink() {
-		String endpoint = properties.getEndpoint();
-		StringBuilder sb = new StringBuilder(endpoint);
-		if (StringUtils.containsAnyIgnoreCase(endpoint, "http://")) {
-			sb.insert(7, properties.getBucketName() + ".");
-		} else if (StringUtils.containsAnyIgnoreCase(endpoint, "https://")) {
-			sb.insert(8, properties.getBucketName() + ".");
-		} else {
-			throw new OssException("Endpoint配置错误");
-		}
-		return sb.toString();
-	}
-}

+ 0 - 127
ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuCloudStorageStrategy.java

@@ -1,127 +0,0 @@
-package com.ruoyi.oss.service.impl;
-
-import cn.hutool.core.util.ArrayUtil;
-import com.qiniu.http.Response;
-import com.qiniu.storage.BucketManager;
-import com.qiniu.storage.Configuration;
-import com.qiniu.storage.Region;
-import com.qiniu.storage.UploadManager;
-import com.qiniu.util.Auth;
-import com.ruoyi.oss.entity.UploadResult;
-import com.ruoyi.oss.enumd.CloudServiceEnumd;
-import com.ruoyi.oss.exception.OssException;
-import com.ruoyi.oss.properties.CloudStorageProperties;
-import com.ruoyi.oss.service.abstractd.AbstractCloudStorageStrategy;
-
-import java.io.InputStream;
-
-/**
- * 七牛云存储策略
- *
- * @author Lion Li
- */
-public class QiniuCloudStorageStrategy extends AbstractCloudStorageStrategy {
-
-	private UploadManager uploadManager;
-	private BucketManager bucketManager;
-	private String token;
-
-	@Override
-	public void init(CloudStorageProperties cloudStorageProperties) {
-		properties = cloudStorageProperties;
-		try {
-			Configuration config = new Configuration(getRegion(properties.getRegion()));
-			// https设置
-			config.useHttpsDomains = false;
-			config.useHttpsDomains = "Y".equals(properties.getIsHttps());
-			uploadManager = new UploadManager(config);
-			Auth auth = Auth.create(properties.getAccessKey(), properties.getSecretKey());
-			String bucketName = properties.getBucketName();
-			token = auth.uploadToken(bucketName);
-			bucketManager = new BucketManager(auth, config);
-
-			if (!ArrayUtil.contains(bucketManager.buckets(), bucketName)) {
-				bucketManager.createBucket(bucketName, properties.getRegion());
-			}
-		} catch (Exception e) {
-			throw new OssException("七牛云存储配置错误! 请检查系统配置:[" + e.getMessage() + "]");
-		}
-	}
-
-	@Override
-	public void createBucket() {
-		try {
-			String bucketName = properties.getBucketName();
-			if (ArrayUtil.contains(bucketManager.buckets(), bucketName)) {
-				return;
-			}
-			bucketManager.createBucket(bucketName, properties.getRegion());
-		} catch (Exception e) {
-			throw new OssException("创建Bucket失败, 请核对七牛云配置信息:[" + e.getMessage() + "]");
-		}
-	}
-
-	@Override
-	public String getServiceType() {
-		return CloudServiceEnumd.QINIU.getValue();
-	}
-
-	@Override
-	public UploadResult upload(byte[] data, String path, String contentType) {
-		try {
-			Response res = uploadManager.put(data, path, token, null, contentType, false);
-			if (!res.isOK()) {
-				throw new RuntimeException("上传七牛出错:" + res.toString());
-			}
-		} catch (Exception e) {
-			throw new OssException("上传文件失败,请核对七牛配置信息:[" + e.getMessage() + "]");
-		}
-		return new UploadResult().setUrl(getEndpointLink() + "/" + path).setFilename(path);
-	}
-
-	@Override
-	public void delete(String path) {
-		try {
-			path = path.replace(getEndpointLink() + "/", "");
-			Response res = bucketManager.delete(properties.getBucketName(), path);
-			if (!res.isOK()) {
-				throw new RuntimeException("删除七牛文件出错:" + res.toString());
-			}
-		} catch (Exception e) {
-			throw new OssException(e.getMessage());
-		}
-	}
-
-	@Override
-	public UploadResult uploadSuffix(byte[] data, String suffix, String contentType) {
-		return upload(data, getPath(properties.getPrefix(), suffix), contentType);
-	}
-
-	@Override
-	public UploadResult uploadSuffix(InputStream inputStream, String suffix, String contentType) {
-		return upload(inputStream, getPath(properties.getPrefix(), suffix), contentType);
-	}
-
-	@Override
-	public String getEndpointLink() {
-		return properties.getEndpoint();
-	}
-
-	private Region getRegion(String region) {
-		switch (region) {
-			case "z0":
-				return Region.region0();
-			case "z1":
-				return Region.region1();
-			case "z2":
-				return Region.region2();
-			case "na0":
-				return Region.regionNa0();
-			case "as0":
-				return Region.regionAs0();
-			default:
-				return Region.autoRegion();
-		}
-	}
-
-}

+ 0 - 6
ruoyi-system/pom.xml

@@ -23,12 +23,6 @@
             <artifactId>ruoyi-common</artifactId>
         </dependency>
 
-        <!-- OSS功能模块 -->
-        <dependency>
-            <groupId>com.ruoyi</groupId>
-            <artifactId>ruoyi-oss</artifactId>
-        </dependency>
-
     </dependencies>
 
 </project>

+ 0 - 80
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOss.java

@@ -1,80 +0,0 @@
-package com.ruoyi.system.domain;
-
-import com.baomidou.mybatisplus.annotation.*;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * OSS云存储对象
- *
- * @author Lion Li
- */
-@Data
-@NoArgsConstructor
-@Accessors(chain = true)
-@TableName("sys_oss")
-public class SysOss implements Serializable {
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * 云存储主键
-	 */
-	@TableId(value = "oss_id", type = IdType.AUTO)
-	private Long ossId;
-
-	/**
-	 * 文件名
-	 */
-	private String fileName;
-
-	/**
-	 * 原名
-	 */
-	private String originalName;
-
-	/**
-	 * 文件后缀名
-	 */
-	private String fileSuffix;
-
-	/**
-	 * URL地址
-	 */
-	private String url;
-
-	/**
-	 * 创建时间
-	 */
-	@TableField(fill = FieldFill.INSERT)
-	private Date createTime;
-
-	/**
-	 * 上传人
-	 */
-	@TableField(fill = FieldFill.INSERT)
-	private String createBy;
-
-	/**
-	 * 更新时间
-	 */
-	@TableField(fill = FieldFill.INSERT_UPDATE)
-	private Date updateTime;
-
-	/**
-	 * 更新人
-	 */
-	@TableField(fill = FieldFill.INSERT_UPDATE)
-	private String updateBy;
-
-	/**
-	 * 服务商
-	 */
-	private String service;
-
-}

+ 0 - 111
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOssConfig.java

@@ -1,111 +0,0 @@
-package com.ruoyi.system.domain;
-
-import com.baomidou.mybatisplus.annotation.*;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.experimental.Accessors;
-import java.io.Serializable;
-import java.util.Date;
-import java.math.BigDecimal;
-
-/**
- * 云存储配置对象 sys_oss_config
- *
- * @author ruoyi
- * @date 2021-08-11
- */
-@Data
-@NoArgsConstructor
-@Accessors(chain = true)
-@TableName("sys_oss_config")
-public class SysOssConfig implements Serializable {
-
-    private static final long serialVersionUID=1L;
-
-
-    /**
-     * 主建
-     */
-    @TableId(value = "oss_config_id")
-    private Integer ossConfigId;
-
-    /**
-     * 配置key
-     */
-    private String configKey;
-
-    /**
-     * accessKey
-     */
-    private String accessKey;
-
-    /**
-     * 秘钥
-     */
-    private String secretKey;
-
-    /**
-     * 桶名称
-     */
-    private String bucketName;
-
-    /**
-     * 前缀
-     */
-    private String prefix;
-
-    /**
-     * 访问站点
-     */
-    private String endpoint;
-
-    /**
-     * 是否https(0否 1是)
-     */
-    private String isHttps;
-
-    /**
-     * 域
-     */
-    private String region;
-
-    /**
-     * 状态(0正常 1停用)
-     */
-    private String status;
-
-    /**
-     * 扩展字段
-     */
-    private String ext1;
-
-    /**
-     * 创建者
-     */
-    @TableField(fill = FieldFill.INSERT)
-    private String createBy;
-
-    /**
-     * 创建时间
-     */
-    @TableField(fill = FieldFill.INSERT)
-    private Date createTime;
-
-    /**
-     * 更新者
-     */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private String updateBy;
-
-    /**
-     * 更新时间
-     */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private Date updateTime;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-}

+ 0 - 67
ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssBo.java

@@ -1,67 +0,0 @@
-package com.ruoyi.system.domain.bo;
-
-import com.ruoyi.common.core.domain.BaseEntity;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * OSS云存储分页查询对象 sys_oss
- *
- * @author Lion Li
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ApiModel("OSS云存储分页查询对象")
-public class SysOssBo extends BaseEntity {
-
-	/**
-	 * 分页大小
-	 */
-	@ApiModelProperty("分页大小")
-	private Integer pageSize;
-	/**
-	 * 当前页数
-	 */
-	@ApiModelProperty("当前页数")
-	private Integer pageNum;
-	/**
-	 * 排序列
-	 */
-	@ApiModelProperty("排序列")
-	private String orderByColumn;
-	/**
-	 * 排序的方向desc或者asc
-	 */
-	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
-	private String isAsc;
-
-
-	/**
-	 * 文件名
-	 */
-	@ApiModelProperty("文件名")
-	private String fileName;
-	/**
-	 * 原名
-	 */
-	@ApiModelProperty("原名")
-	private String originalName;
-	/**
-	 * 文件后缀名
-	 */
-	@ApiModelProperty("文件后缀名")
-	private String fileSuffix;
-	/**
-	 * URL地址
-	 */
-	@ApiModelProperty("URL地址")
-	private String url;
-	/**
-	 * 服务商
-	 */
-	@ApiModelProperty("服务商")
-	private String service;
-
-}

+ 0 - 130
ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java

@@ -1,130 +0,0 @@
-package com.ruoyi.system.domain.bo;
-
-import com.ruoyi.common.core.domain.BaseEntity;
-import com.ruoyi.common.core.validate.AddGroup;
-import com.ruoyi.common.core.validate.EditGroup;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-
-/**
- * 云存储配置业务对象 sys_oss_config
- *
- * @author Lion Li
- * @author 孤舟烟雨
- * @date 2021-08-13
- */
-
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ApiModel("云存储配置业务对象")
-public class SysOssConfigBo extends BaseEntity {
-
-	/**
-	 * 主建
-	 */
-	@ApiModelProperty(value = "主建", required = true)
-	@NotNull(message = "主建不能为空", groups = { EditGroup.class })
-	private Long ossConfigId;
-
-    /**
-     * 配置key
-     */
-    @ApiModelProperty(value = "configKey", required = true)
-    @NotBlank(message = "configKey不能为空", groups = { AddGroup.class, EditGroup.class })
-	@Size(min = 2, max = 100, message = "configKey长度必须介于2和20 之间")
-    private String configKey;
-
-    /**
-     * accessKey
-     */
-    @ApiModelProperty(value = "accessKey", required = true)
-	@NotBlank(message = "accessKey不能为空", groups = { AddGroup.class, EditGroup.class })
-	@Size(min = 2, max = 100, message = "accessKey长度必须介于2和100 之间")
-    private String accessKey;
-
-    /**
-     * 秘钥
-     */
-    @ApiModelProperty(value = "secretKey", required = true)
-	@NotBlank(message = "secretKey不能为空", groups = { AddGroup.class, EditGroup.class })
-	@Size(min = 2, max = 100, message = "secretKey长度必须介于2和100 之间")
-    private String secretKey;
-
-    /**
-     * 桶名称
-     */
-    @ApiModelProperty(value = "bucketName", required = true)
-	@NotBlank(message = "bucketName不能为空", groups = { AddGroup.class, EditGroup.class })
-	@Size(min = 2, max = 100, message = "bucketName长度必须介于2和100之间")
-    private String bucketName;
-
-    /**
-     * 前缀
-     */
-    @ApiModelProperty(value = "前缀")
-    private String prefix;
-
-    /**
-     * 访问站点
-     */
-    @ApiModelProperty(value = "endpoint", required = true)
-	@NotBlank(message = "endpoint不能为空", groups = { AddGroup.class, EditGroup.class })
-	@Size(min = 2, max = 100, message = "endpoint长度必须介于2和100之间")
-    private String endpoint;
-
-	/**
-	 * 是否https(Y=是,N=否)
-	 */
-	@ApiModelProperty("是否https(Y=是,N=否)")
-	private String isHttps;
-
-	/**
-	 * 状态(0=正常,1=停用)
-	 */
-	@ApiModelProperty("状态(0=正常,1=停用)")
-	private String status;
-
-    /**
-     * 域
-     */
-    @ApiModelProperty(value = "region")
-    private String region;
-
-    /**
-     * 扩展字段
-     */
-    @ApiModelProperty(value = "扩展字段")
-    private String ext1;
-
-
-    /**
-     * 分页大小
-     */
-    @ApiModelProperty("分页大小")
-    private Integer pageSize;
-
-    /**
-     * 当前页数
-     */
-    @ApiModelProperty("当前页数")
-    private Integer pageNum;
-
-    /**
-     * 排序列
-     */
-    @ApiModelProperty("排序列")
-    private String orderByColumn;
-
-    /**
-     * 排序的方向desc或者asc
-     */
-    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
-    private String isAsc;
-
-}

+ 0 - 93
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java

@@ -1,93 +0,0 @@
-package com.ruoyi.system.domain.vo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-
-/**
- * 云存储配置视图对象 sys_oss_config
- *
- * @author Lion Li
- * @author 孤舟烟雨
- * @date 2021-08-13
- */
-@Data
-@ApiModel("云存储配置视图对象")
-public class SysOssConfigVo {
-
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 主建
-     */
-    @ApiModelProperty("主建")
-    private Long ossConfigId;
-
-    /**
-     * 配置key
-     */
-    @ApiModelProperty("配置key")
-    private String configKey;
-
-    /**
-     * accessKey
-     */
-    @ApiModelProperty("accessKey")
-    private String accessKey;
-
-    /**
-     * 秘钥
-     */
-    @ApiModelProperty("secretKey")
-    private String secretKey;
-
-    /**
-     * 桶名称
-     */
-    @ApiModelProperty("桶名称")
-    private String bucketName;
-
-    /**
-     * 前缀
-     */
-    @ApiModelProperty("前缀")
-    private String prefix;
-
-    /**
-     * 访问站点
-     */
-    @ApiModelProperty("访问站点")
-    private String endpoint;
-
-    /**
-     * 是否https(Y=是,N=否)
-     */
-    @ApiModelProperty("是否https(Y=是,N=否)")
-    private String isHttps;
-
-    /**
-     * 域
-     */
-    @ApiModelProperty("域")
-    private String region;
-
-    /**
-     * 状态(0=正常,1=停用)
-     */
-    @ApiModelProperty("状态(0=正常,1=停用)")
-    private String status;
-
-    /**
-     * 扩展字段
-     */
-    @ApiModelProperty("扩展字段")
-    private String ext1;
-
-    /**
-     * 备注
-     */
-    @ApiModelProperty("备注")
-    private String remark;
-
-}

+ 0 - 69
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssVo.java

@@ -1,69 +0,0 @@
-package com.ruoyi.system.domain.vo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * OSS云存储视图对象 sys_oss
- *
- * @author Lion Li
- */
-@Data
-@ApiModel("OSS云存储视图对象")
-public class SysOssVo {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 *  云存储主键
-	 */
-	@ApiModelProperty("云存储主键")
-	private Long ossId;
-
-	/**
-	 * 文件名
-	 */
-	@ApiModelProperty("文件名")
-	private String fileName;
-
-	/**
-	 * 原名
-	 */
-	@ApiModelProperty("原名")
-	private String originalName;
-
-	/**
-	 * 文件后缀名
-	 */
-	@ApiModelProperty("文件后缀名")
-	private String fileSuffix;
-
-	/**
-	 * URL地址
-	 */
-	@ApiModelProperty("URL地址")
-	private String url;
-
-	/**
-	 * 创建时间
-	 */
-	@ApiModelProperty("创建时间")
-	private Date createTime;
-
-	/**
-	 * 上传人
-	 */
-	@ApiModelProperty("上传人")
-	private String createBy;
-
-	/**
-	 * 服务商
-	 */
-	@ApiModelProperty("服务商")
-	private String service;
-
-
-}

+ 0 - 15
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOssConfigMapper.java

@@ -1,15 +0,0 @@
-package com.ruoyi.system.mapper;
-
-import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
-import com.ruoyi.system.domain.SysOssConfig;
-
-/**
- * 云存储配置Mapper接口
- *
- * @author Lion Li
- * @author 孤舟烟雨
- * @date 2021-08-13
- */
-public interface SysOssConfigMapper extends BaseMapperPlus<SysOssConfig> {
-
-}

+ 0 - 12
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOssMapper.java

@@ -1,12 +0,0 @@
-package com.ruoyi.system.mapper;
-
-import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
-import com.ruoyi.system.domain.SysOss;
-
-/**
- * 文件上传 数据层
- *
- * @author Lion Li
- */
-public interface SysOssMapper extends BaseMapperPlus<SysOss> {
-}

+ 0 - 58
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssConfigService.java

@@ -1,58 +0,0 @@
-package com.ruoyi.system.service;
-
-import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
-import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.system.domain.SysOssConfig;
-import com.ruoyi.system.domain.bo.SysOssConfigBo;
-import com.ruoyi.system.domain.vo.SysOssConfigVo;
-
-import java.util.Collection;
-
-/**
- * 云存储配置Service接口
- *
- * @author Lion Li
- * @author 孤舟烟雨
- * @date 2021-08-13
- */
-public interface ISysOssConfigService extends IServicePlus<SysOssConfig, SysOssConfigVo> {
-
-	/**
-	 * 查询单个
-	 */
-	SysOssConfigVo queryById(Integer ossConfigId);
-
-	/**
-	 * 查询列表
-	 */
-    TableDataInfo<SysOssConfigVo> queryPageList(SysOssConfigBo bo);
-
-
-	/**
-	 * 根据新增业务对象插入云存储配置
-	 * @param bo 云存储配置新增业务对象
-	 * @return
-	 */
-	Boolean insertByBo(SysOssConfigBo bo);
-
-	/**
-	 * 根据编辑业务对象修改云存储配置
-	 * @param bo 云存储配置编辑业务对象
-	 * @return
-	 */
-	Boolean updateByBo(SysOssConfigBo bo);
-
-	/**
-	 * 校验并删除数据
-	 * @param ids 主键集合
-	 * @param isValid 是否校验,true-删除前校验,false-不校验
-	 * @return
-	 */
-	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
-
-	/**
-	 * 启用停用状态
-	 */
-	int updateOssConfigStatus(SysOssConfigBo bo);
-
-}

+ 0 - 24
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssService.java

@@ -1,24 +0,0 @@
-package com.ruoyi.system.service;
-
-import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
-import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.system.domain.SysOss;
-import com.ruoyi.system.domain.bo.SysOssBo;
-import com.ruoyi.system.domain.vo.SysOssVo;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.util.Collection;
-
-/**
- * 文件上传 服务层
- *
- * @author Lion Li
- */
-public interface ISysOssService extends IServicePlus<SysOss, SysOssVo> {
-
-	TableDataInfo<SysOssVo> queryPageList(SysOssBo sysOss);
-
-	SysOss upload(MultipartFile file);
-
-	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
-}

+ 0 - 183
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java

@@ -1,183 +0,0 @@
-package com.ruoyi.system.service.impl;
-
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.collection.CollUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.ruoyi.common.constant.UserConstants;
-import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
-import com.ruoyi.common.core.page.PagePlus;
-import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.JsonUtils;
-import com.ruoyi.common.utils.PageUtils;
-import com.ruoyi.common.utils.RedisUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.oss.constant.CloudConstant;
-import com.ruoyi.system.domain.SysOssConfig;
-import com.ruoyi.system.domain.bo.SysOssConfigBo;
-import com.ruoyi.system.domain.vo.SysOssConfigVo;
-import com.ruoyi.system.mapper.SysOssConfigMapper;
-import com.ruoyi.system.service.ISysOssConfigService;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.annotation.PostConstruct;
-import java.util.Collection;
-import java.util.List;
-
-/**
- * 云存储配置Service业务层处理
- *
- * @author Lion Li
- * @author 孤舟烟雨
- * @date 2021-08-13
- */
-@Slf4j
-@RequiredArgsConstructor(onConstructor_ = @Autowired)
-@Service
-public class SysOssConfigServiceImpl extends ServicePlusImpl<SysOssConfigMapper, SysOssConfig, SysOssConfigVo> implements ISysOssConfigService {
-
-	/**
-	 * 项目启动时,初始化参数到缓存,加载配置类
-	 */
-	@PostConstruct
-	public void init() {
-		List<SysOssConfig> list = list();
-		for (SysOssConfig config : list) {
-			String configKey = config.getConfigKey();
-			if ("0".equals(config.getStatus())) {
-				RedisUtils.setCacheObject(CloudConstant.CACHE_CONFIG_KEY, configKey);
-			}
-			setConfigCache(true, config);
-		}
-	}
-
-    @Override
-    public SysOssConfigVo queryById(Integer ossConfigId){
-        return getVoById(ossConfigId);
-    }
-
-    @Override
-    public TableDataInfo<SysOssConfigVo> queryPageList(SysOssConfigBo bo) {
-        PagePlus<SysOssConfig, SysOssConfigVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
-        return PageUtils.buildDataInfo(result);
-    }
-
-
-    private LambdaQueryWrapper<SysOssConfig> buildQueryWrapper(SysOssConfigBo bo) {
-        LambdaQueryWrapper<SysOssConfig> lqw = Wrappers.lambdaQuery();
-        lqw.eq(StringUtils.isNotBlank(bo.getConfigKey()), SysOssConfig::getConfigKey, bo.getConfigKey());
-        lqw.like(StringUtils.isNotBlank(bo.getBucketName()), SysOssConfig::getBucketName, bo.getBucketName());
-		lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysOssConfig::getStatus, bo.getStatus());
-		return lqw;
-    }
-
-    @Override
-    public Boolean insertByBo(SysOssConfigBo bo) {
-        SysOssConfig config = BeanUtil.toBean(bo, SysOssConfig.class);
-        validEntityBeforeSave(config);
-		return setConfigCache(save(config), config);
-    }
-
-    @Override
-    public Boolean updateByBo(SysOssConfigBo bo) {
-        SysOssConfig config = BeanUtil.toBean(bo, SysOssConfig.class);
-        validEntityBeforeSave(config);
-		LambdaUpdateWrapper<SysOssConfig> luw = new LambdaUpdateWrapper<>();
-		luw.set(StringUtils.isBlank(config.getPrefix()), SysOssConfig::getPrefix, "");
-		luw.set(StringUtils.isBlank(config.getRegion()), SysOssConfig::getRegion, "");
-		luw.set(StringUtils.isBlank(config.getExt1()), SysOssConfig::getExt1, "");
-		luw.eq(SysOssConfig::getOssConfigId, config.getOssConfigId());
-		return setConfigCache(update(config, luw), config);
-    }
-
-    /**
-     * 保存前的数据校验
-     */
-    private void validEntityBeforeSave(SysOssConfig entity){
-		if (StringUtils.isNotEmpty(entity.getConfigKey())
-			&& UserConstants.NOT_UNIQUE.equals(checkConfigKeyUnique(entity))) {
-			throw new ServiceException("操作配置'" + entity.getConfigKey() + "'失败, 配置key已存在!");
-		}
-    }
-
-    @Override
-    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-    	if(isValid) {
-			if (CollUtil.containsAny(ids, CloudConstant.SYSTEM_DATA_IDS)) {
-				throw new ServiceException("系统内置, 不可删除!");
-			}
-		}
-        boolean flag = removeByIds(ids);
-    	if (flag) {
-			for (Long configId : ids) {
-				SysOssConfig config = getById(configId);
-				RedisUtils.deleteObject(getCacheKey(config.getConfigKey()));
-			}
-		}
-    	return flag;
-    }
-
-	/**
-	 * 判断configKey是否唯一
-	 */
-	private String checkConfigKeyUnique(SysOssConfig sysOssConfig) {
-		long ossConfigId = StringUtils.isNull(sysOssConfig.getOssConfigId()) ? -1L : sysOssConfig.getOssConfigId();
-		SysOssConfig info = getOne(new LambdaQueryWrapper<SysOssConfig>()
-			.select(SysOssConfig::getOssConfigId, SysOssConfig::getConfigKey)
-			.eq(SysOssConfig::getConfigKey, sysOssConfig.getConfigKey()));
-		if (StringUtils.isNotNull(info) && info.getOssConfigId() != ossConfigId) {
-			return UserConstants.NOT_UNIQUE;
-		}
-		return UserConstants.UNIQUE;
-	}
-
-	/**
-	 * 启用禁用状态
-	 */
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public int updateOssConfigStatus(SysOssConfigBo bo) {
-		SysOssConfig sysOssConfig = BeanUtil.toBean(bo, SysOssConfig.class);
-		int row = baseMapper.update(null, new LambdaUpdateWrapper<SysOssConfig>()
-			.set(SysOssConfig::getStatus, "1"));
-		row += baseMapper.updateById(sysOssConfig);
-		if (row > 0) {
-			RedisUtils.setCacheObject(CloudConstant.CACHE_CONFIG_KEY, sysOssConfig.getConfigKey());
-		}
-		return row;
-	}
-
-	/**
-	 * 设置cache key
-	 *
-	 * @param configKey 参数键
-	 * @return 缓存键key
-	 */
-	private String getCacheKey(String configKey) {
-		return CloudConstant.SYS_OSS_KEY + configKey;
-	}
-
-	/**
-	 * 如果操作成功 则更新缓存
-	 * @param flag 操作状态
-	 * @param config 配置
-	 * @return 返回操作状态
-	 */
-	private boolean setConfigCache(boolean flag, SysOssConfig config) {
-		if (flag) {
-			RedisUtils.setCacheObject(
-				getCacheKey(config.getConfigKey()),
-				JsonUtils.toJsonString(config));
-			RedisUtils.publish(CloudConstant.CACHE_CONFIG_KEY, config.getConfigKey(), msg -> {
-				log.info("发布刷新OSS配置 => " + msg);
-			});
-		}
-		return flag;
-	}
-}

+ 0 - 90
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssServiceImpl.java

@@ -1,90 +0,0 @@
-package com.ruoyi.system.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
-import com.ruoyi.common.core.page.PagePlus;
-import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.PageUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.oss.entity.UploadResult;
-import com.ruoyi.oss.factory.OssFactory;
-import com.ruoyi.oss.service.ICloudStorageStrategy;
-import com.ruoyi.system.domain.SysOss;
-import com.ruoyi.system.domain.bo.SysOssBo;
-import com.ruoyi.system.domain.vo.SysOssVo;
-import com.ruoyi.system.mapper.SysOssMapper;
-import com.ruoyi.system.service.ISysOssService;
-import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.IOException;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 文件上传 服务层实现
- *
- * @author Lion Li
- */
-@Service
-public class SysOssServiceImpl extends ServicePlusImpl<SysOssMapper, SysOss, SysOssVo> implements ISysOssService {
-
-	@Override
-	public TableDataInfo<SysOssVo> queryPageList(SysOssBo bo) {
-		PagePlus<SysOss, SysOssVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
-		return PageUtils.buildDataInfo(result);
-	}
-
-	private LambdaQueryWrapper<SysOss> buildQueryWrapper(SysOssBo bo) {
-		Map<String, Object> params = bo.getParams();
-		LambdaQueryWrapper<SysOss> lqw = Wrappers.lambdaQuery();
-		lqw.like(StringUtils.isNotBlank(bo.getFileName()), SysOss::getFileName, bo.getFileName());
-		lqw.like(StringUtils.isNotBlank(bo.getOriginalName()), SysOss::getOriginalName, bo.getOriginalName());
-		lqw.eq(StringUtils.isNotBlank(bo.getFileSuffix()), SysOss::getFileSuffix, bo.getFileSuffix());
-		lqw.eq(StringUtils.isNotBlank(bo.getUrl()), SysOss::getUrl, bo.getUrl());
-		lqw.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null,
-			SysOss::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime"));
-		lqw.eq(StringUtils.isNotBlank(bo.getCreateBy()), SysOss::getCreateBy, bo.getCreateBy());
-		lqw.eq(StringUtils.isNotBlank(bo.getService()), SysOss::getService, bo.getService());
-		return lqw;
-	}
-
-	@Override
-	public SysOss upload(MultipartFile file) {
-		String originalfileName = file.getOriginalFilename();
-		String suffix = StringUtils.substring(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length());
-		ICloudStorageStrategy storage = OssFactory.instance();
-		UploadResult uploadResult;
-		try {
-			uploadResult = storage.uploadSuffix(file.getBytes(), suffix, file.getContentType());
-		} catch (IOException e) {
-			throw new ServiceException(e.getMessage());
-		}
-		// 保存文件信息
-		SysOss oss = new SysOss()
-			.setUrl(uploadResult.getUrl())
-			.setFileSuffix(suffix)
-			.setFileName(uploadResult.getFilename())
-			.setOriginalName(originalfileName)
-			.setService(storage.getServiceType());
-		save(oss);
-		return oss;
-	}
-
-	@Override
-	public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-		if (isValid) {
-			// 做一些业务上的校验,判断是否需要校验
-		}
-		List<SysOss> list = listByIds(ids);
-		for (SysOss sysOss : list) {
-			ICloudStorageStrategy storage = OssFactory.instance(sysOss.getService());
-			storage.delete(sysOss.getUrl());
-		}
-		return removeByIds(ids);
-	}
-
-}

+ 0 - 27
ruoyi-system/src/main/resources/mapper/system/SysOssConfigMapper.xml

@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.ruoyi.system.mapper.SysOssConfigMapper">
-
-    <resultMap type="com.ruoyi.system.domain.SysOssConfig" id="SysOssConfigResult">
-        <result property="ossConfigId" column="oss_config_id"/>
-        <result property="configKey" column="config_key"/>
-        <result property="accessKey" column="access_key"/>
-        <result property="secretKey" column="secret_key"/>
-        <result property="bucketName" column="bucket_name"/>
-        <result property="prefix" column="prefix"/>
-        <result property="endpoint" column="endpoint"/>
-        <result property="isHttps" column="is_https"/>
-        <result property="region" column="region"/>
-        <result property="status" column="status"/>
-        <result property="ext1" column="ext1"/>
-        <result property="createBy" column="create_by"/>
-        <result property="createTime" column="create_time"/>
-        <result property="updateBy" column="update_by"/>
-        <result property="updateTime" column="update_time"/>
-        <result property="remark" column="remark"/>
-    </resultMap>
-
-
-</mapper>

+ 0 - 18
ruoyi-system/src/main/resources/mapper/system/SysOssMapper.xml

@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.ruoyi.system.mapper.SysOssMapper">
-
-    <resultMap type="com.ruoyi.system.domain.SysOss" id="SysOssResult">
-        <result property="ossId" column="oss_id"/>
-        <result property="fileName" column="file_name"/>
-        <result property="fileSuffix" column="file_suffix"/>
-        <result property="url" column="url"/>
-        <result property="createTime" column="create_time"/>
-        <result property="createBy" column="create_by"/>
-        <result property="updateTime" column="update_time"/>
-        <result property="updateBy" column="update_by"/>
-        <result property="service" column="service"/>
-    </resultMap>
-
-
-</mapper>

+ 4 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/IncidentVo.java

@@ -1,11 +1,13 @@
 package com.ruoyi.zhdd.domain.vo;
 
 import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.ruoyi.common.core.domain.TreeSelect;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 
 /**
@@ -149,6 +151,7 @@ public class IncidentVo {
     @ApiModelProperty("主办单位")
     private String madinDept;
     private String madinDeptText;
+    private List<TreeSelect> madinDeptList;
 
     @ApiModelProperty(value = "主办单位用户结构")
     private String madinDeptUser;
@@ -160,6 +163,7 @@ public class IncidentVo {
     @ApiModelProperty("协办单位 多个数据用,分割")
     private String assistDept;
     private String assistDeptText;
+    private List<TreeSelect> assistDeptList;
 
     @ApiModelProperty(value = "协办单位用户结构")
     private String assistDeptUser;

+ 11 - 14
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/impl/DutyReportServiceImpl.java

@@ -1,31 +1,27 @@
 package com.ruoyi.zhdd.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.convert.Convert;
-import cn.hutool.core.util.NumberUtil;
-import cn.hutool.core.util.StrUtil;
-import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.PageUtils;
-import com.ruoyi.common.core.page.PagePlus;
-import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.zhdd.domain.Incident;
-import org.springframework.stereotype.Service;
-import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
+import com.ruoyi.common.core.page.PagePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.zhdd.domain.DutyReport;
 import com.ruoyi.zhdd.domain.bo.DutyReportBo;
 import com.ruoyi.zhdd.domain.vo.DutyReportVo;
-import com.ruoyi.zhdd.domain.DutyReport;
 import com.ruoyi.zhdd.mapper.DutyReportMapper;
 import com.ruoyi.zhdd.service.IDutyReportService;
+import org.springframework.stereotype.Service;
 
 import java.sql.Timestamp;
+import java.util.Collection;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
-import java.util.Collection;
 
 /**
  * 值班报告信息Service业务层处理
@@ -55,10 +51,11 @@ public class DutyReportServiceImpl extends ServicePlusImpl<DutyReportMapper, Dut
     private LambdaQueryWrapper<DutyReport> buildQueryWrapper(DutyReportBo bo) {
         Map<String, Object> params = bo.getParams();
         LambdaQueryWrapper<DutyReport> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getCreateBy()), DutyReport::getCreateBy, bo.getCreateBy());
         lqw.eq(StringUtils.isNotBlank(bo.getReportContent()), DutyReport::getReportContent, bo.getReportContent());
         lqw.eq(bo.getStatus() != null, DutyReport::getStatus, bo.getStatus());
         if (params.get("beginTime") != null && params.get("endTime") != null) {
-            lqw.between(DutyReport::getDutyDate, Timestamp.valueOf(Convert.toStr(params.get("beginTime"))+ " 00:00:00"), Timestamp.valueOf(Convert.toStr(params.get("endTime")) + " 23:59:59"));
+            lqw.between(DutyReport::getDutyDate, Timestamp.valueOf(Convert.toStr(params.get("beginTime")) + " 00:00:00"), Timestamp.valueOf(Convert.toStr(params.get("endTime")) + " 23:59:59"));
         }
         lqw.orderByDesc(DutyReport::getUpdateTime);
         return lqw;

+ 0 - 212
sql/20211209修改.sql

@@ -1,212 +0,0 @@
-alter table b_resource
-    add location_type varchar(10);
-
-comment
-on column b_resource.location_type is '位置类型(水上和陆上)';
-
-INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark)
-VALUES (22, '资源位置类型', 'zhdd_location_type', '0', 'admin', '2021-09-28 15:55:09', 'admin', '2021-09-28 15:55:09', null);
-
-INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
-VALUES (144, 0, '水上', '1', 'zhdd_location_type', null,
-        'default', 'N', '0', 'admin', '2021-09-28 15:57:23', 'admin', '2021-09-28 15:57:23', null);
-INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
-VALUES (145, 0, '陆上', '2', 'zhdd_location_type', null,
-        'default', 'N', '0', 'admin', '2021-09-28 15:57:23', 'admin', '2021-09-28 15:57:23', null);
-
-alter table b_incident
-    add conclusion varchar(1000);
-
-comment
-on column b_incident.conclusion is '归档总结';
-
-alter table b_incident
-    add conclusion_file varchar(3000);
-
-comment
-on column b_incident.conclusion_file is '归档附件';
-
--- 2021-12-15
-ALTER TABLE "public"."sys_dept"
-    ADD COLUMN "other_id" varchar(64);
-
-COMMENT
-ON COLUMN "public"."sys_dept"."other_id" IS '其他系统编号';
-
-ALTER TABLE "public"."sys_user"
-    ADD COLUMN "other_id" varchar(64);
-
-COMMENT
-ON COLUMN "public"."sys_user"."other_id" IS '其他系统编号';
-
-
--- 2021-12-23 update
-alter table sys_user alter column user_id type varchar(36) using user_id::varchar(36);
-alter table sys_user
-    alter column user_id drop default;
-drop sequence sys_user_user_id_seq;
-alter table sys_user alter column dept_id type varchar(36) using dept_id::varchar(36);
-alter table sys_dept alter column dept_id type varchar(36) using dept_id::varchar(36);
-alter table sys_dept
-    alter column dept_id drop default;
-drop sequence sys_dept_dept_id_seq;
-alter table sys_dept alter column parent_id type varchar(36) using parent_id::varchar(36);
-alter table sys_user_role alter column user_id type varchar(36) using user_id::varchar(36);
-alter table sys_user_role alter column role_id type varchar(36) using role_id::varchar(36);
-alter table sys_role alter column role_id type varchar(36) using role_id::varchar(36);
-alter table sys_role
-    alter column role_id drop default;
-alter table sys_menu alter column menu_id type varchar(36) using menu_id::varchar(36);
-alter table sys_menu
-    alter column menu_id drop default;
-alter table sys_user
-    add org_id varchar(32);
-comment
-on column sys_user.org_id is '组织机构id';
-alter table sys_user
-    add superior varchar(50);
-
-comment
-on column sys_user.superior is '直属上级';
-
-alter table sys_dept
-    add code varchar(50);
-
-comment
-on column sys_dept.code is '代码';
-
-alter table sys_dept
-    add description varchar;
-
-comment
-on column sys_dept.description is '描述';
-
-alter table sys_dept
-    add "dept_short_name" varchar(100);
-
-comment
-on column sys_dept."dept_short_name" is '部门简称';
-
-alter table sys_dept
-    add "org_id" varchar(32);
-
-comment
-on column sys_dept."org_id" is '组织id';
-
-alter table sys_user
-    add id_number varchar(30);
-
-comment
-on column sys_user.id_number is '身份证';
-
-alter table sys_user alter column phonenumber type varchar(20) using phonenumber::varchar(20);
-
--- 2022-1-5新增
-INSERT INTO public.sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time)
-VALUES (23, '语音指令', 'zhdd_voice', '0', 'admin', '2021-09-28 15:55:09', 'admin', '2021-09-28 15:55:09');
-
-INSERT INTO public.sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
-VALUES (146, 0, '应急专家', '4', 'zhdd_resource', null, 'default', 'N', '0', 'admin', '2021-09-28 15:57:23', 'admin', '2021-09-28 15:57:23', null);
-INSERT INTO public.sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
-VALUES (147, 0, '地图放大', 'mapZoomIn', 'zhdd_voice', null, 'default', 'N', '0', 'admin', '2021-09-28 15:57:23', 'admin', '2021-09-28 15:57:23', null);
-INSERT INTO public.sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
-VALUES (148, 0, '地图缩写', 'mapZoomOut', 'zhdd_voice', null, 'default', 'N', '0', 'admin', '2021-09-28 15:57:23', 'admin', '2021-09-28 15:57:23', null);
-INSERT INTO public.sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
-VALUES (149, 0, '打开单兵设备图层', 'singleDeviceLayer', 'zhdd_voice', null, 'default', 'N', '0', 'admin', '2021-09-28 15:57:23', 'admin', '2021-09-28 15:57:23', null);
-INSERT INTO public.sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
-VALUES (150, 0, '打开视频设备图层', 'videoDeviceLayer', 'zhdd_voice', null, 'default', 'N', '0', 'admin', '2021-09-28 15:57:23', 'admin', '2021-09-28 15:57:23', null);
-INSERT INTO public.sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark)
-VALUES (151, 0, '打开应急事件图层', 'incidentLayer', 'zhdd_voice', null, 'default', 'N', '0', 'admin', '2021-09-28 15:57:23', 'admin', '2021-09-28 15:57:23', null);
-
-alter table b_incident_process
-    alter column status set default 0;
-
--- 以上已同步
--- 2022-1-13
-alter table b_incident_task
-    add expr_json text;
-
-create table b_chemical_data
-(
-    id          varchar(36),
-    name        varchar(36),
-    content     text,
-    create_time timestamp(0),
-    create_by   varchar(64),
-    update_by   varchar(64),
-    update_time timestamp(0),
-    del_flag    char default '0'
-);
-comment
-on table b_chemical_data is '危化品信息';
-comment
-on column b_chemical_data.id is 'id';
-comment
-on column b_chemical_data.name is '中文名称';
-comment
-on column b_chemical_data.content is '内容';
-
-alter table b_incident_process
-    add incident_status smallint;
-
-comment
-on column b_incident_process.incident_status is '时间处置过程当前状态';
-
-INSERT INTO public.sys_config (config_id, config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark)
-VALUES (12, '大华组织id', 'dh.device.orgId', 'S4NbecfYB1DFLAIM9FFHQ8', 'N', 'admin', '2021-09-16 03:32:56', '', null, '用于获取设备树');
-
-alter table b_resource_detail alter column num type numeric(8,3) using num::numeric(8,3);
-
-alter table b_resource_detail
-    add available_num numeric(8, 3);
-
-comment
-on column b_resource_detail.available_num is '可用数量';
-
-alter table b_resource
-    add dept_id varchar(36);
-
-comment
-on column b_resource.dept_id is '部门id';
-
-
-alter table sys_dept
-    add flag int;
-
-comment
-on column sys_dept.flag is '0机构;1部门';
-
-alter table sys_dept drop column other_id;
-
-alter table sys_dept drop column code;
-
-alter table sys_dept drop column description;
-
-alter table sys_dept drop column dept_short_name;
-
-alter table sys_dept drop column org_id;
-
-alter table sys_role_menu alter column role_id type varchar(36) using role_id::varchar(36);
-
-alter table sys_role_menu alter column menu_id type varchar(36) using menu_id::varchar(36);
-
-alter table b_incident_task
-    add "send_flag" varchar(10);
-
-comment
-on column b_incident_task."send_flag" is '消息发送类型';
-
-update b_incident_task
-set send_flag = 1
-where 1 = 1;
-
--- 以上已同步
-
-
-
-
-
-
-
-
-

+ 0 - 59
sql/oss.sql

@@ -1,59 +0,0 @@
-USE `tocc-sq`;
-
--- ----------------------------
--- OSS云存储表
--- ----------------------------
-drop table if exists sys_oss;
-create table sys_oss (
-    oss_id          bigint(20)   not null auto_increment    comment '云存储主键',
-    file_name       varchar(64)  not null default ''        comment '文件名',
-    original_name   varchar(64)  not null default ''        comment '原名',
-    file_suffix     varchar(10)  not null default ''        comment '文件后缀名',
-    url              varchar(200) not null                   comment 'URL地址',
-    create_time     datetime              default null      comment '创建时间',
-    create_by       varchar(64)           default ''        comment '上传人',
-    update_time     datetime              default null      comment '更新时间',
-    update_by       varchar(64)           default ''        comment '更新人',
-    service         varchar(10)  not null default 'minio'   comment '服务商',
-    primary key (oss_id)
-) engine=innodb comment ='OSS云存储表';
-
--- ----------------------------
--- OSS云存储动态配置表
--- ----------------------------
-drop table if exists sys_oss_config;
-create table sys_oss_config (
-    oss_config_id   bigint(20)   not null auto_increment comment '主建',
-    config_key      varchar(255)  not null default ''     comment '配置key',
-    access_key      varchar(255)            default ''    comment 'accessKey',
-    secret_key      varchar(255)            default ''    comment '秘钥',
-    bucket_name     varchar(255)            default ''    comment '桶名称',
-    prefix           varchar(255)           default ''     comment '前缀',
-    endpoint         varchar(255)           default ''     comment '访问站点',
-    is_https         char(1)                default 'N'    comment '是否https(Y=是,N=否)',
-    region           varchar(255)           default ''     comment '域',
-    status           char(1)                default '1'    comment '状态(0=正常,1=停用)',
-    ext1             varchar(255)           default ''      comment '扩展字段',
-    create_by       varchar(64)             default ''     comment '创建者',
-    create_time     datetime                default null   comment '创建时间',
-    update_by       varchar(64)             default ''      comment '更新者',
-    update_time     datetime                default null    comment '更新时间',
-    remark           varchar(500)           default null    comment '备注',
-    primary key (oss_config_id)
-) engine=innodb comment='云存储配置表';
-
-insert into sys_config values(11, 'OSS预览列表资源开关',   'sys.oss.previewListResource',      'true',           'Y', 'admin', sysdate(), '', null, 'true:开启, false:关闭');
-
-insert into sys_menu values('118',  '文件管理', '1',   '10', 'oss',     'system/oss/index',      1, 0, 'C', '0', '0', 'system:oss:list',      'upload',       'admin', sysdate(), '', null, '文件管理菜单');
-
-insert into sys_menu values('1600', '文件查询', '118', '1', '#', '', 1, 0, 'F', '0', '0', 'system:oss:query',        '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1601', '文件上传', '118', '2', '#', '', 1, 0, 'F', '0', '0', 'system:oss:upload',       '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1602', '文件下载', '118', '3', '#', '', 1, 0, 'F', '0', '0', 'system:oss:download',     '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1603', '文件删除', '118', '4', '#', '', 1, 0, 'F', '0', '0', 'system:oss:remove',       '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1604', '配置添加', '118', '5', '#', '', 1, 0, 'F', '0', '0', 'system:oss:add',          '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values('1605', '配置编辑', '118', '6', '#', '', 1, 0, 'F', '0', '0', 'system:oss:edit',         '#', 'admin', sysdate(), '', null, '');
-
-insert into sys_oss_config values (1, 'minio',  'ruoyi',            'ruoyi123',        'ruoyi',             '', 'http://localhost:9000',                'N', '',            '0', '', 'admin', sysdate(), 'admin', sysdate(), NULL);
-insert into sys_oss_config values (2, 'qiniu',  'XXXXXXXXXXXXXXX',  'XXXXXXXXXXXXXXX', 'ruoyi',             '', 'http://XXX.XXXX.com',                  'N', 'z0',          '1', '', 'admin', sysdate(), 'admin', sysdate(), NULL);
-insert into sys_oss_config values (3, 'aliyun', 'XXXXXXXXXXXXXXX',  'XXXXXXXXXXXXXXX', 'ruoyi',             '', 'http://oss-cn-beijing.aliyuncs.com',   'N', '',            '1', '', 'admin', sysdate(), 'admin', sysdate(), NULL);
-insert into sys_oss_config values (4, 'qcloud', 'XXXXXXXXXXXXXXX',  'XXXXXXXXXXXXXXX', 'ruoyi-1250000000',  '', 'http://cos.ap-beijing.myqcloud.com',   'N', 'ap-beijing',  '1', '', 'admin', sysdate(), 'admin', sysdate(), NULL);

+ 14 - 123
sql/ry_postgresql.sql

@@ -1,5 +1,3 @@
-
-
 -- ----------------------------
 -- 1、部门表
 -- ----------------------------
@@ -10,7 +8,7 @@ create table sys_dept
     parent_id   int8        default 0,
     ancestors   varchar(50) default '',
     dept_name   varchar(30) default '',
-    order_num   int4 default 0,
+    order_num   int4        default 0,
     leader      varchar(20) default null,
     phone       varchar(11) default null,
     email       varchar(50) default null,
@@ -141,17 +139,17 @@ values (1, 100, 'admin', '若依', '00', 'ry@163.com', '15888888888', '1', '', '
 drop table if exists sys_post;
 create table sys_post
 (
-    post_id BIGSERIAL not null              ,
-        post_code varchar (64) not null,
-        post_name varchar (50) not null,
-        post_sort int4 not null,
-        status char (1) not null,
-        create_by varchar (64) default '',
-        create_time timestamp (0),
-        update_by varchar (64) default '',
-        update_time timestamp (0),
-        remark varchar (500) default null,
-        CONSTRAINT sys_post_pkey primary key (post_id)
+    post_id     BIGSERIAL   not null,
+    post_code   varchar(64) not null,
+    post_name   varchar(50) not null,
+    post_sort   int4        not null,
+    status      char(1)     not null,
+    create_by   varchar(64)  default '',
+    create_time timestamp(0),
+    update_by   varchar(64)  default '',
+    update_time timestamp(0),
+    remark      varchar(500) default null,
+    CONSTRAINT sys_post_pkey primary key (post_id)
 );
 COMMENT
 ON COLUMN sys_post.post_id IS '岗位ID';
@@ -346,7 +344,8 @@ insert into sys_menu
 values ('110', '定时任务', '2', '2', 'job', 'monitor/job/index', 1, 0, 'C', '0', '0', 'monitor:job:list', 'job', 'admin', now(), '', null, '定时任务菜单');
 insert into sys_menu
 values ('111', '数据监控', '2', '3', 'druid', 'monitor/druid/index', 1, 0, 'C', '0', '0', 'monitor:druid:list', 'druid', 'admin', now(), '', null, '数据监控菜单');
-insert into sys_menu values('112',  '服务监控', '2',   '4', 'server',     'monitor/server/index',     1, 0, 'C', '0', '0', 'monitor:server:list',     'server',        'admin', now(), '', null, '服务监控菜单');
+insert into sys_menu
+values ('112', '服务监控', '2', '4', 'server', 'monitor/server/index', 1, 0, 'C', '0', '0', 'monitor:server:list', 'server', 'admin', now(), '', null, '服务监控菜单');
 insert into sys_menu
 values ('113', '缓存监控', '2', '5', 'cache', 'monitor/cache/index', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis', 'admin', now(), '', null, '缓存监控菜单');
 insert into sys_menu
@@ -1708,104 +1707,6 @@ COMMENT
 ON TABLE QRTZ_SIMPROP_TRIGGERS IS '同步机制的行锁表';
 
 
--- ----------------------------
--- OSS云存储表
--- ----------------------------
-drop table if exists sys_oss;
-create table sys_oss
-(
-    oss_id        BIGSERIAL    not null                 ,
-    file_name     varchar(64)  not null default ''      ,
-    original_name varchar(64)  not null default ''      ,
-    file_suffix   varchar(10)  not null default ''      ,
-    url           varchar(200) not null                 ,
-    create_time   timestamp(0)          default null    ,
-    create_by     varchar(64)           default ''      ,
-    update_time   timestamp(0)          default null    ,
-    update_by     varchar(64)           default ''      ,
-    service       varchar(10)  not null default 'minio' ,
-    CONSTRAINT sys_oss_pkey primary key (oss_id)
-);
-COMMENT
-ON COLUMN sys_oss.oss_id         is '云存储主键';
-COMMENT
-ON COLUMN sys_oss.file_name      is '文件名';
-COMMENT
-ON COLUMN sys_oss.original_name is '原名';
-COMMENT
-ON COLUMN sys_oss.file_suffix is '文件后缀名';
-COMMENT
-ON COLUMN sys_oss.url is 'URL地址';
-COMMENT
-ON COLUMN sys_oss.create_time is '创建时间';
-COMMENT
-ON COLUMN sys_oss.create_by is '上传人';
-COMMENT
-ON COLUMN sys_oss.update_time is '更新时间';
-COMMENT
-ON COLUMN sys_oss.update_by is '更新人';
-COMMENT
-ON COLUMN sys_oss.service is '服务商';
-COMMENT
-ON TABLE  sys_oss is 'OSS云存储表';
--- ----------------------------
--- OSS云存储动态配置表
--- ----------------------------
-drop table if exists sys_oss_config;
-create table sys_oss_config
-(
-    oss_config_id BIGSERIAL    not null             ,
-    config_key    varchar(255) not null default ''  ,
-    access_key    varchar(255)          default ''  ,
-    secret_key    varchar(255)          default ''  ,
-    bucket_name   varchar(255)          default ''  ,
-    prefix        varchar(255)          default ''  ,
-    endpoint      varchar(255)          default ''  ,
-    is_https      char(1)               default 'N' ,
-    region        varchar(255)          default ''  ,
-    status        char(1)               default '1' ,
-    ext1          varchar(255)          default ''  ,
-    create_by     varchar(64)           default ''  ,
-    create_time   timestamp(0)          default null,
-    update_by     varchar(64)           default ''  ,
-    update_time   timestamp(0)          default null,
-    remark        varchar(500)          default null,
-    CONSTRAINT sys_oss_config_pkey primary key (oss_config_id)
-);
-COMMENT
-ON COLUMN sys_oss_config.oss_config_id is '主建';
-COMMENT
-ON COLUMN sys_oss_config.config_key    is '配置key';
-COMMENT
-ON COLUMN sys_oss_config.access_key    is 'accessKey';
-COMMENT
-ON COLUMN sys_oss_config.secret_key    is '秘钥';
-COMMENT
-ON COLUMN sys_oss_config.bucket_name   is '桶名称';
-COMMENT
-ON COLUMN sys_oss_config.prefix        is '前缀';
-COMMENT
-ON COLUMN sys_oss_config.endpoint      is '访问站点';
-COMMENT
-ON COLUMN sys_oss_config.is_https      is '是否https(Y=是,N=否)';
-COMMENT
-ON COLUMN sys_oss_config.region        is '域';
-COMMENT
-ON COLUMN sys_oss_config.status        is '状态(0=正常,1=停用)';
-COMMENT
-ON COLUMN sys_oss_config.ext1          is '扩展字段';
-COMMENT
-ON COLUMN sys_oss_config.create_by     is '创建者';
-COMMENT
-ON COLUMN sys_oss_config.create_time   is '创建时间';
-COMMENT
-ON COLUMN sys_oss_config.update_by     is '更新者';
-COMMENT
-ON COLUMN sys_oss_config.update_time   is '更新时间';
-COMMENT
-ON COLUMN sys_oss_config.remark        is '备注';
-COMMENT
-ON TABLE  sys_oss_config               is '云存储配置表';
 
 insert into sys_config
 values (11, 'OSS预览列表资源开关', 'sys.oss.previewListResource', 'true', 'Y', 'admin', now(), '', null, 'true:开启, false:关闭');
@@ -1825,13 +1726,3 @@ insert into sys_menu
 values ('1604', '配置添加', '118', '5', '#', '', 1, 0, 'F', '0', '0', 'system:oss:add', '#', 'admin', now(), '', null, '');
 insert into sys_menu
 values ('1605', '配置编辑', '118', '6', '#', '', 1, 0, 'F', '0', '0', 'system:oss:edit', '#', 'admin', now(), '', null, '');
-
-insert into sys_oss_config
-values (1, 'minio', 'ruoyi', 'ruoyi123', 'ruoyi', '', 'http://localhost:9000', 'N', '', '0', '', 'admin', now(), 'admin', now(), NULL);
-insert into sys_oss_config
-values (2, 'qiniu', 'XXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXX', 'ruoyi', '', 'http://XXX.XXXX.com', 'N', 'z0', '1', '', 'admin', now(), 'admin', now(), NULL);
-insert into sys_oss_config
-values (3, 'aliyun', 'XXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXX', 'ruoyi', '', 'http://oss-cn-beijing.aliyuncs.com', 'N', '', '1', '', 'admin', now(), 'admin', now(), NULL);
-insert into sys_oss_config
-values (4, 'qcloud', 'XXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXX', 'ruoyi-1250000000', '', 'http://cos.ap-beijing.myqcloud.com', 'N', 'ap-beijing', '1', '', 'admin', now(), 'admin', now(), NULL);
-