From c9f7314cd0e02201940a7800e5668bb4bbd932be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A4=E8=88=9F=E7=83=9F=E9=9B=A8?= <494979+gzyy@user.noreply.gitee.com> Date: Fri, 13 Aug 2021 02:03:46 +0000 Subject: [PATCH] =?UTF-8?q?!77=20update=20=E5=AF=B9=E8=B1=A1=E5=AD=98?= =?UTF-8?q?=E5=82=A8=E9=85=8D=E7=BD=AE=20=E9=87=8D=E6=9E=84=E5=88=B0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=20=E5=8A=A8=E6=80=81=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=20*=20=E5=A2=9E=E5=8A=A0=E5=AF=B9=E8=B1=A1=E5=AD=98?= =?UTF-8?q?=E5=82=A8=E9=85=8D=E7=BD=AEsql=20*=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E5=AD=98=E5=82=A8=E9=85=8D=E7=BD=AE=20*=20Me?= =?UTF-8?q?rge=20branch=20'dev'=20of=20https://gitee.com/JavaLionLi/RuoYi-?= =?UTF-8?q?Vue-Plus=20into=20dev=20*=20=E5=A2=9E=E5=8A=A0=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=E5=AD=98=E5=82=A8=E9=85=8D=E7=BD=AE=20*=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=AF=B9=E8=B1=A1=E5=AD=98=E5=82=A8=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/SysOssConfigController.java | 126 +++++ .../com/ruoyi/system/domain/SysOssConfig.java | 111 ++++ .../system/domain/bo/SysOssConfigBo.java | 126 +++++ .../system/domain/vo/SysOssConfigVo.java | 94 ++++ .../system/mapper/SysOssConfigMapper.java | 16 + .../system/service/ISysOssConfigService.java | 66 +++ .../service/impl/SysOssConfigServiceImpl.java | 145 +++++ .../mapper/system/SysOssConfigMapper.xml | 27 + ruoyi-ui/src/api/system/sysOssConfig.js | 58 ++ ruoyi-ui/src/views/system/ossConfig/index.vue | 495 ++++++++++++++++++ sql/sys_oss_config.sql | 45 ++ 11 files changed, 1309 insertions(+) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOssConfig.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOssConfigMapper.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssConfigService.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java create mode 100644 ruoyi-system/src/main/resources/mapper/system/SysOssConfigMapper.xml create mode 100644 ruoyi-ui/src/api/system/sysOssConfig.js create mode 100644 ruoyi-ui/src/views/system/ossConfig/index.vue create mode 100644 sql/sys_oss_config.sql diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java new file mode 100644 index 00000000..669fcb97 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssConfigController.java @@ -0,0 +1,126 @@ +package com.ruoyi.web.controller.system; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.UserConstants; +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.enums.BusinessType; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.domain.SysOssConfig; +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; +import java.util.List; + +/** + * 云存储配置Controller + * + * @author ruoyi + * @date 2021-08-11 + */ +@Validated +@Api(value = "云存储配置控制器", tags = {"云存储配置管理"}) +@RequiredArgsConstructor(onConstructor_ = @Autowired) +@RestController +@RequestMapping("/system/sysOssConfig") +public class SysOssConfigController extends BaseController { + + private final ISysOssConfigService iSysOssConfigService; + + /** + * 查询云存储配置列表 + */ + @ApiOperation("查询云存储配置列表") + @PreAuthorize("@ss.hasPermi('system:sysOssConfig:list')") + @GetMapping("/list") + public TableDataInfo list(@Validated SysOssConfigBo bo) { + return iSysOssConfigService.queryPageList(bo); + } + + /** + * 获取云存储配置详细信息 + */ + @ApiOperation("获取云存储配置详细信息") + @PreAuthorize("@ss.hasPermi('system:sysOssConfig:query')") + @GetMapping("/{ossConfigId}") + public AjaxResult getInfo(@NotNull(message = "主键不能为空") + @PathVariable("ossConfigId") Integer ossConfigId) { + return AjaxResult.success(iSysOssConfigService.queryById(ossConfigId)); + } + + /** + * 新增云存储配置 + */ + @ApiOperation("新增云存储配置") + @PreAuthorize("@ss.hasPermi('system:sysOssConfig:add')") + @Log(title = "云存储配置", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public AjaxResult add(@Validated(AddGroup.class) @RequestBody SysOssConfigBo bo) { + if (StringUtils.isNotEmpty(bo.getConfigKey()) + && UserConstants.NOT_UNIQUE.equals(iSysOssConfigService.checkConfigKeyUnique(bo))) { + return AjaxResult.error("新增云配置'" + bo.getConfigKey() + "'失败,configKey已存在"); + } + return toAjax(iSysOssConfigService.insertByBo(bo) ? 1 : 0); + } + + /** + * 修改云存储配置 + */ + @ApiOperation("修改云存储配置") + @PreAuthorize("@ss.hasPermi('system:sysOssConfig:edit')") + @Log(title = "云存储配置", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public AjaxResult edit(@Validated(EditGroup.class) @RequestBody SysOssConfigBo bo) { + if (StringUtils.isNotEmpty(bo.getConfigKey()) + && UserConstants.NOT_UNIQUE.equals(iSysOssConfigService.checkConfigKeyUnique(bo))) { + return AjaxResult.error("修改云配置'" + bo.getConfigKey() + "'失败,configKey已存在"); + } + return toAjax(iSysOssConfigService.updateByBo(bo) ? 1 : 0); + } + + /** + * 删除云存储配置 + */ + @ApiOperation("删除云存储配置") + @PreAuthorize("@ss.hasPermi('system:sysOssConfig:remove')") + @Log(title = "云存储配置", businessType = BusinessType.DELETE) + @DeleteMapping("/{ossConfigIds}") + public AjaxResult remove(@NotEmpty(message = "主键不能为空") + @PathVariable Integer[] ossConfigIds) { + List list = iSysOssConfigService.list(); + if(ObjectUtil.isNotNull(list)&&list.size()==1){ + return AjaxResult.error("必须保留一条云配置文件"); + } + return toAjax(iSysOssConfigService.deleteWithValidByIds(Arrays.asList(ossConfigIds), true) ? 1 : 0); + } + + /** + * 状态修改 + */ + @PreAuthorize("@ss.hasPermi('system:sysOssConfig:edit')") + @Log(title = "云存储状态修改", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public AjaxResult changeStatus(@RequestBody SysOssConfig sysOssConfig) { + return toAjax(iSysOssConfigService.updateOssConfigStatus(sysOssConfig)); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOssConfig.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOssConfig.java new file mode 100644 index 00000000..cb21fecd --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOssConfig.java @@ -0,0 +1,111 @@ +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; + + /** + * 是否htpps(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; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java new file mode 100644 index 00000000..2836f267 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysOssConfigBo.java @@ -0,0 +1,126 @@ +package com.ruoyi.system.domain.bo; + +import com.baomidou.mybatisplus.annotation.TableId; +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.*; + +import java.util.Date; + +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 云存储配置业务对象 sys_oss_config + * + * @author ruoyi + * @date 2021-08-11 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@ApiModel("云存储配置业务对象") +public class SysOssConfigBo extends BaseEntity { + + /** + * 主建 + */ + @ApiModelProperty("主建") + private Integer 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") + @NotBlank(message = "accessKey不能为空", groups = { AddGroup.class, EditGroup.class }) + @Size(min = 2, max = 100, message = "accessKey长度必须介于2和100 之间") + private String accessKey; + + /** + * 秘钥 + */ + @ApiModelProperty(value = "secretKey") + @NotBlank(message = "secretKey不能为空", groups = { AddGroup.class, EditGroup.class }) + @Size(min = 2, max = 100, message = "secretKey长度必须介于2和100 之间") + private String secretKey; + + /** + * 桶名称 + */ + @ApiModelProperty(value = "bucketName") + @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") + @NotBlank(message = "endpoint不能为空", groups = { AddGroup.class, EditGroup.class }) + @Size(min = 2, max = 100, message = "endpoint长度必须介于2和100之间") + private String endpoint; + + /** + * 是否htpps(0否 1是) + */ + @ApiModelProperty(value = "是否htpps(0否 1是)") + private String isHttps; + + /** + * 域 + */ + @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正常 1停用) + */ + @ApiModelProperty("状态(0正常 1停用)") + private String status; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java new file mode 100644 index 00000000..06b00d33 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java @@ -0,0 +1,94 @@ +package com.ruoyi.system.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.ruoyi.common.annotation.ExcelDictFormat; +import com.ruoyi.common.convert.ExcelDictConvert; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import java.util.Date; + + + +/** + * 云存储配置视图对象 sys_oss_config + * + * @author ruoyi + * @date 2021-08-11 + */ +@Data +@ApiModel("云存储配置视图对象") +@ExcelIgnoreUnannotated +public class SysOssConfigVo { + + private static final long serialVersionUID = 1L; + + /** + * 主建 + */ + @ApiModelProperty("主建") + private Integer 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; + + /** + * 是否htpps(0否 1是) + */ + @ApiModelProperty("是否htpps(0否 1是)") + private String isHttps; + + /** + * 域 + */ + @ApiModelProperty("域") + private String region; + + /** + * 状态(0正常 1停用) + */ + @ApiModelProperty("状态(0正常 1停用)") + private String status; + + /** + * 扩展字段 + */ + @ApiModelProperty("扩展字段") + private String ext1; + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOssConfigMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOssConfigMapper.java new file mode 100644 index 00000000..d55ea275 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOssConfigMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.system.mapper; + +import com.ruoyi.system.domain.SysOssConfig; +import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus; +import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache; +import org.apache.ibatis.annotations.CacheNamespace; + +/** + * 云存储配置Mapper接口 + * + * @author ruoyi + * @date 2021-08-11 + */ +public interface SysOssConfigMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssConfigService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssConfigService.java new file mode 100644 index 00000000..76b3f110 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssConfigService.java @@ -0,0 +1,66 @@ +package com.ruoyi.system.service; + +import com.ruoyi.system.domain.SysOssConfig; +import com.ruoyi.system.domain.vo.SysOssConfigVo; +import com.ruoyi.system.domain.bo.SysOssConfigBo; +import com.ruoyi.common.core.mybatisplus.core.IServicePlus; +import com.ruoyi.common.core.page.TableDataInfo; + +import java.util.Collection; +import java.util.List; + +/** + * 云存储配置Service接口 + * + * @author ruoyi + * @date 2021-08-11 + */ +public interface ISysOssConfigService extends IServicePlus { + /** + * 查询单个 + * @return + */ + SysOssConfigVo queryById(Integer ossConfigId); + + /** + * 查询列表 + */ + TableDataInfo 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 ids, Boolean isValid); + + /** + * 启用停用状态 + * @param sysOssConfig + * @return + */ + int updateOssConfigStatus(SysOssConfig sysOssConfig); + + /** + * 判断configkey是否唯一 + * @param bo + * @return + */ + String checkConfigKeyUnique(SysOssConfigBo bo); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java new file mode 100644 index 00000000..fdce3850 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOssConfigServiceImpl.java @@ -0,0 +1,145 @@ +package com.ruoyi.system.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.exception.CustomException; +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.oss.constant.CloudConstant; +import com.ruoyi.system.domain.SysConfig; +import com.ruoyi.system.mapper.SysConfigMapper; +import com.ruoyi.system.service.ISysConfigService; +import org.springframework.beans.factory.annotation.Autowired; +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.system.domain.bo.SysOssConfigBo; +import com.ruoyi.system.domain.vo.SysOssConfigVo; +import com.ruoyi.system.domain.SysOssConfig; +import com.ruoyi.system.mapper.SysOssConfigMapper; +import com.ruoyi.system.service.ISysOssConfigService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 云存储配置Service业务层处理 + * + * @author ruoyi + * @date 2021-08-11 + */ +@Service +public class SysOssConfigServiceImpl extends ServicePlusImpl implements ISysOssConfigService { + + @Autowired + private ISysConfigService iSysConfigService; + @Autowired + private SysConfigMapper sysConfigMapper; + @Autowired + private RedisCache redisCache; + + @Override + public SysOssConfigVo queryById(Integer ossConfigId){ + return getVoById(ossConfigId); + } + + @Override + public TableDataInfo queryPageList(SysOssConfigBo bo) { + PagePlus result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo)); + return PageUtils.buildDataInfo(result); + } + + + private LambdaQueryWrapper buildQueryWrapper(SysOssConfigBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getConfigKey()), SysOssConfig::getConfigKey, bo.getConfigKey()); + lqw.like(StringUtils.isNotBlank(bo.getBucketName()), SysOssConfig::getBucketName, bo.getBucketName()); + return lqw; + } + + @Override + public Boolean insertByBo(SysOssConfigBo bo) { + SysOssConfig add = BeanUtil.toBean(bo, SysOssConfig.class); + validEntityBeforeSave(add); + return save(add); + } + + @Override + public Boolean updateByBo(SysOssConfigBo bo) { + SysOssConfig update = BeanUtil.toBean(bo, SysOssConfig.class); + validEntityBeforeSave(update); + return updateById(update); + } + + /** + * 保存前的数据校验 + * + * @param entity 实体类数据 + */ + private void validEntityBeforeSave(SysOssConfig entity){ + //TODO 做一些数据校验,如唯一约束 + } + + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + return removeByIds(ids); + } + + /** + * 判断configKey是否唯一 + * @param bo + * @return + */ + @Override + public String checkConfigKeyUnique(SysOssConfigBo bo) { + Long ossConfigId = StringUtils.isNull(bo.getOssConfigId()) ? -1L : bo.getOssConfigId(); + SysOssConfig info = getOne(new LambdaQueryWrapper() + .select(SysOssConfig::getOssConfigId, SysOssConfig::getConfigKey) + .eq(SysOssConfig::getConfigKey, bo.getConfigKey()).last("limit 1")); + if (StringUtils.isNotNull(info) && info.getOssConfigId().longValue() != ossConfigId.longValue()) { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } + + /** + * 启用禁用状态 + * @param sysOssConfig + * @return + */ + @Override + public int updateOssConfigStatus(SysOssConfig sysOssConfig) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysConfig::getConfigKey, CloudConstant.CLOUD_STORAGE_CONFIG_KEY); + SysConfig sysConfig = sysConfigMapper.selectOne(queryWrapper); + + if(ObjectUtil.isNotNull(sysConfig)){ + sysConfig.setConfigValue(sysOssConfig.getConfigKey()); + iSysConfigService.updateConfig(sysConfig); + } + return baseMapper.updateById(sysOssConfig); + } + + /** + * 设置cache key + * + * @param configKey 参数键 + * @return 缓存键key + */ + private String getCacheKey(String configKey) { + return Constants.SYS_CONFIG_KEY + configKey; + } + + +} diff --git a/ruoyi-system/src/main/resources/mapper/system/SysOssConfigMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysOssConfigMapper.xml new file mode 100644 index 00000000..77dc40e2 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysOssConfigMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-ui/src/api/system/sysOssConfig.js b/ruoyi-ui/src/api/system/sysOssConfig.js new file mode 100644 index 00000000..23269b0c --- /dev/null +++ b/ruoyi-ui/src/api/system/sysOssConfig.js @@ -0,0 +1,58 @@ +import request from '@/utils/request' + +// 查询云存储配置列表 +export function listSysOssConfig(query) { + return request({ + url: '/system/sysOssConfig/list', + method: 'get', + params: query + }) +} + +// 查询云存储配置详细 +export function getSysOssConfig(ossConfigId) { + return request({ + url: '/system/sysOssConfig/' + ossConfigId, + method: 'get' + }) +} + +// 新增云存储配置 +export function addSysOssConfig(data) { + return request({ + url: '/system/sysOssConfig', + method: 'post', + data: data + }) +} + +// 修改云存储配置 +export function updateSysOssConfig(data) { + return request({ + url: '/system/sysOssConfig', + method: 'put', + data: data + }) +} + +// 删除云存储配置 +export function delSysOssConfig(ossConfigId) { + return request({ + url: '/system/sysOssConfig/' + ossConfigId, + method: 'delete' + }) +} + +// 用户状态修改 +export function changeOssConfigStatus(ossConfigId, status,configKey) { + const data = { + ossConfigId, + status, + configKey + } + return request({ + url: '/system/sysOssConfig/changeStatus', + method: 'put', + data: data + }) +} diff --git a/ruoyi-ui/src/views/system/ossConfig/index.vue b/ruoyi-ui/src/views/system/ossConfig/index.vue new file mode 100644 index 00000000..3d8525f2 --- /dev/null +++ b/ruoyi-ui/src/views/system/ossConfig/index.vue @@ -0,0 +1,495 @@ + + + diff --git a/sql/sys_oss_config.sql b/sql/sys_oss_config.sql new file mode 100644 index 00000000..5d644207 --- /dev/null +++ b/sql/sys_oss_config.sql @@ -0,0 +1,45 @@ +/* +Navicat MySQL Data Transfer + +Source Server : mysql57 +Source Server Version : 50735 +Source Host : localhost:3306 +Source Database : ry-vue + +Target Server Type : MYSQL +Target Server Version : 50735 +File Encoding : 65001 + +Date: 2021-08-12 09:01:33 +*/ + +SET FOREIGN_KEY_CHECKS=0; + +-- ---------------------------- +-- Table structure for sys_oss_config +-- ---------------------------- +DROP TABLE IF EXISTS `sys_oss_config`; +CREATE TABLE `sys_oss_config` ( + `oss_config_id` int(5) NOT NULL AUTO_INCREMENT COMMENT '主建', + `config_key` varchar(255) NOT NULL DEFAULT '' COMMENT '配置key', + `access_key` varchar(255) DEFAULT '' COMMENT 'access_key', + `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 '0' COMMENT '是否htpps(0否 1是)', + `region` varchar(255) DEFAULT '' COMMENT '域', + `status` char(1) DEFAULT '0' 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 AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='云存储配置表'; + +-- ---------------------------- +-- Records of sys_oss_config +-- ---------------------------- +INSERT INTO `sys_oss_config` VALUES ('1', 'minio3', 'ruoyi', 'ruoyi123', 'ruoyi', '', 'http://localhost:9000', '0', '', '0', '', 'admin', '2021-08-11 21:29:37', 'admin', '2021-08-11 22:52:41', null);