添加各资源管理的分页查询

This commit is contained in:
cjw 2024-06-18 10:44:07 +08:00
parent f7ae4752e2
commit 3d65a43faf
16 changed files with 169 additions and 31 deletions

View File

@ -89,7 +89,7 @@ public class AuthController {
Long userId = LoginHelper.getUserId();
scheduledExecutorService.schedule(() -> {
WebSocketMessageDto dto = new WebSocketMessageDto();
dto.setMessage("欢迎登录RuoYi-Vue-Plus后台管理系统");
//dto.setMessage("欢迎登录RuoYi-Vue-Plus后台管理系统");
dto.setSessionKeys(List.of(userId));
WebSocketUtils.publishMessage(dto);
}, 3, TimeUnit.SECONDS);

View File

@ -38,8 +38,8 @@ public class SysOssTextbookController extends BaseController {
/**
* 查询请填写功能名称列表
*/
@SaCheckPermission("file:textbook:list")
@GetMapping("/list")
@SaCheckPermission("file:textbook:pageList")
@GetMapping("/pageList")
public TableDataInfo<SysOssTextbookVo> list(SysOssTextbookBo bo, PageQuery pageQuery) {
return sysOssTextbookService.queryPageList(bo, pageQuery);
}
@ -61,7 +61,7 @@ public class SysOssTextbookController extends BaseController {
* 新增请填写功能名称
*/
@SaCheckPermission("file:textbook:add")
@Log(title = "请填写功能名称", businessType = BusinessType.INSERT)
@Log(title = "新增同步教材资源", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysOssTextbookBo bo) {
@ -72,7 +72,7 @@ public class SysOssTextbookController extends BaseController {
* 修改请填写功能名称
*/
@SaCheckPermission("file:textbook:edit")
@Log(title = "请填写功能名称", businessType = BusinessType.UPDATE)
@Log(title = "更新同步教材资源", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysOssTextbookBo bo) {
@ -85,10 +85,22 @@ public class SysOssTextbookController extends BaseController {
* @param ossIds 主键串
*/
@SaCheckPermission("file:textbook:remove")
@Log(title = "请填写功能名称", businessType = BusinessType.DELETE)
@Log(title = "删除同步教材资源", businessType = BusinessType.DELETE)
@DeleteMapping("/{ossIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ossIds) {
return toAjax(sysOssTextbookService.deleteWithValidByIds(List.of(ossIds), true));
}
/**
* 审核
*
* @param bo 主键串
*/
@SaCheckPermission("file:textbook:review")
@Log(title = "【审核同步教材资源】", businessType = BusinessType.UPDATE)
@DeleteMapping("/review")
public R<Void> review(@RequestBody SysOssTextbookBo bo) {
return toAjax(sysOssTextbookService.reviewByBo(bo));
}
}

View File

@ -40,5 +40,10 @@ public class SysOssResource extends BaseEntity {
*/
private String filePath;
/**
* 状态
*/
private Integer status;
}

View File

@ -33,5 +33,10 @@ public class SysOssResourceBo extends BaseEntity {
@NotNull(message = "文件名不能为空", groups = {AddGroup.class, EditGroup.class})
private String fileName;
/**
* 状态
*/
private Integer status;
}

View File

@ -38,5 +38,10 @@ public class SysOssResourceVo implements Serializable {
*/
private String fileName;
/**
* 状态
*/
private Integer status;
}

View File

@ -1,7 +1,11 @@
package org.dromara.system.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.system.domain.SysOssResource;
import org.dromara.system.domain.vo.SysOssResourceVo;
@ -14,5 +18,6 @@ import org.dromara.system.domain.vo.SysOssResourceVo;
*/
@Mapper
public interface SysOssResourceMapper extends BaseMapperPlus<SysOssResource, SysOssResourceVo> {
Page<SysOssResourceVo> selectPageUserList(@Param("page") Page<SysOssResource> page,
@Param(Constants.WRAPPER) Wrapper<SysOssResource> queryWrapper);
}

View File

@ -1,7 +1,11 @@
package org.dromara.system.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.system.domain.SysOssTextbook;
import org.dromara.system.domain.vo.SysOssTextbookVo;
@ -14,5 +18,6 @@ import org.dromara.system.domain.vo.SysOssTextbookVo;
*/
@Mapper
public interface SysOssTextbookMapper extends BaseMapperPlus<SysOssTextbook, SysOssTextbookVo> {
Page<SysOssTextbookVo> selectPageUserList(@Param("page") Page<SysOssTextbook> page,
@Param(Constants.WRAPPER) Wrapper<SysOssTextbook> queryWrapper);
}

View File

@ -1,8 +1,10 @@
package org.dromara.system.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.system.domain.SysCatalogResource;
import org.dromara.system.domain.bo.SysCatalogResourceBo;
import org.dromara.system.domain.vo.SysCatalogResourceVo;
@ -89,4 +91,22 @@ public interface ISysCatalogResourceService {
* @return 结果 true 存在 false 不存在
*/
boolean checkCatalogExistFile(Long catalogId);
/**
* 根据ID查询信息
*
* @param catalogId 目录ID
* @return 目录信息
*/
SysCatalogResourceVo selectCatalogById(Long catalogId);
/**
* 通过ID查询目录名称(包含自身)
*
* @param catalogId ID
* @return 目录名称串/分隔
*/
String selectCatalogNameById(Long catalogId);
List<SysCatalogResource> selectList(Wrapper<SysCatalogResource> queryWrapper);
}

View File

@ -1,8 +1,10 @@
package org.dromara.system.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.system.domain.SysCatalogTextbook;
import org.dromara.system.domain.bo.SysCatalogTextbookBo;
import org.dromara.system.domain.vo.SysCatalogTextbookVo;
@ -104,4 +106,6 @@ public interface ISysCatalogTextbookService {
* @return 目录名称串/分隔
*/
String selectCatalogNameById(Long catalogId);
List<SysCatalogTextbook> selectList(Wrapper<SysCatalogTextbook> queryWrapper);
}

View File

@ -66,4 +66,6 @@ public interface ISysOssTextbookService {
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
Boolean reviewByBo(SysOssTextbookBo bo);
}

View File

@ -1,13 +1,16 @@
package org.dromara.system.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.CacheNames;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.SpringUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -156,6 +159,30 @@ public class SysCatalogResourceServiceImpl implements ISysCatalogResourceService
.eq(SysOssResource::getCatalogId, catalogId));
}
@Override
public SysCatalogResourceVo selectCatalogById(Long catalogId) {
return baseMapper.selectVoById(catalogId);
}
@Override
public String selectCatalogNameById(Long catalogId) {
List<String> list = new ArrayList<>();
SysCatalogResourceVo vo = SpringUtils.getAopProxy(this).selectCatalogById(catalogId);
for (Long id : StringUtils.splitTo(vo.getAncestors(), Convert::toLong)) {
SysCatalogResourceVo parentVo = SpringUtils.getAopProxy(this).selectCatalogById(id);
if (ObjectUtil.isNotNull(parentVo)) {
list.add(parentVo.getCatalogName());
}
}
list.add(vo.getCatalogName());
return String.join(StringUtils.SLASH, list);
}
@Override
public List<SysCatalogResource> selectList(Wrapper<SysCatalogResource> queryWrapper) {
return baseMapper.selectList(queryWrapper);
}
/**
* 修改子元素关系
*

View File

@ -3,6 +3,7 @@ package org.dromara.system.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -187,6 +188,11 @@ public class SysCatalogTextbookServiceImpl implements ISysCatalogTextbookService
return String.join(StringUtils.SLASH, list);
}
@Override
public List<SysCatalogTextbook> selectList(Wrapper<SysCatalogTextbook> queryWrapper) {
return baseMapper.selectList(queryWrapper);
}
/**
* 修改子元素关系
*

View File

@ -1,28 +1,32 @@
package org.dromara.system.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.helper.DataBaseHelper;
import org.dromara.system.domain.SysCatalogResource;
import org.dromara.system.domain.SysOssResource;
import org.dromara.system.domain.bo.SysOssResourceBo;
import org.dromara.system.domain.vo.SysCatalogResourceVo;
import org.dromara.system.domain.vo.SysOssResourceVo;
import org.dromara.system.domain.vo.SysOssVo;
import org.dromara.system.mapper.SysCatalogResourceMapper;
import org.dromara.system.mapper.SysOssResourceMapper;
import org.dromara.system.service.ISysCatalogResourceService;
import org.dromara.system.service.ISysOssResourceService;
import org.dromara.system.service.ISysOssService;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 请填写功能名称Service业务层处理
@ -36,7 +40,7 @@ public class SysOssResourceServiceImpl implements ISysOssResourceService {
private final SysOssResourceMapper baseMapper;
private final SysCatalogResourceMapper catalogMapper;
private final ISysCatalogResourceService catalogService;
private final ISysOssService ossService;
@ -60,8 +64,7 @@ public class SysOssResourceServiceImpl implements ISysOssResourceService {
*/
@Override
public TableDataInfo<SysOssResourceVo> queryPageList(SysOssResourceBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<SysOssResource> lqw = buildQueryWrapper(bo);
Page<SysOssResourceVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
Page<SysOssResourceVo> result = baseMapper.selectPageUserList(pageQuery.build(), this.buildQueryWrapper(bo));
return TableDataInfo.build(result);
}
@ -73,15 +76,21 @@ public class SysOssResourceServiceImpl implements ISysOssResourceService {
*/
@Override
public List<SysOssResourceVo> queryList(SysOssResourceBo bo) {
LambdaQueryWrapper<SysOssResource> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
return baseMapper.selectVoList(this.buildQueryWrapper(bo));
}
private LambdaQueryWrapper<SysOssResource> buildQueryWrapper(SysOssResourceBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SysOssResource> lqw = Wrappers.lambdaQuery();
return lqw;
private Wrapper<SysOssResource> buildQueryWrapper(SysOssResourceBo bo) {
QueryWrapper<SysOssResource> wrapper = Wrappers.query();
wrapper.eq(ObjectUtil.isNotNull(bo.getStatus()), "r.status", bo.getStatus())
.and(ObjectUtil.isNotNull(bo.getCatalogId()), w -> {
List<SysCatalogResource> deptList = catalogService.selectList(new LambdaQueryWrapper<SysCatalogResource>()
.select(SysCatalogResource::getCatalogId)
.apply(DataBaseHelper.findInSet(bo.getCatalogId(), "ancestors")));
List<Long> ids = StreamUtils.toList(deptList, SysCatalogResource::getCatalogId);
ids.add(bo.getCatalogId());
w.in("r.catalog_id", ids);
});
return wrapper;
}
/**
@ -93,6 +102,9 @@ public class SysOssResourceServiceImpl implements ISysOssResourceService {
@Override
public Boolean insertByBo(SysOssResourceBo bo) {
SysOssResource add = MapstructUtils.convert(bo, SysOssResource.class);
String path = catalogService.selectCatalogNameById(add.getCatalogId());
add.setFilePath(path);
add.setStatus(-1);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
@ -122,7 +134,7 @@ public class SysOssResourceServiceImpl implements ISysOssResourceService {
if (ObjectUtil.isNull(ossVo)) {
throw new ServiceException("资源文件不存在");
}
SysCatalogResource ossResource = catalogMapper.selectById(entity.getCatalogId());
SysCatalogResourceVo ossResource = catalogService.selectCatalogById(entity.getCatalogId());
if (ObjectUtil.isNull(ossResource)) {
throw new ServiceException("资源目录不存在");
}

View File

@ -1,14 +1,19 @@
package org.dromara.system.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.helper.DataBaseHelper;
import org.dromara.system.domain.SysCatalogTextbook;
import org.dromara.system.domain.SysOssTextbook;
import org.dromara.system.domain.bo.SysOssTextbookBo;
import org.dromara.system.domain.vo.SysCatalogTextbookVo;
@ -22,7 +27,6 @@ import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 请填写功能名称Service业务层处理
@ -60,8 +64,7 @@ public class SysOssTextbookServiceImpl implements ISysOssTextbookService {
*/
@Override
public TableDataInfo<SysOssTextbookVo> queryPageList(SysOssTextbookBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<SysOssTextbook> lqw = buildQueryWrapper(bo);
Page<SysOssTextbookVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
Page<SysOssTextbookVo> result = baseMapper.selectPageUserList(pageQuery.build(), this.buildQueryWrapper(bo));
return TableDataInfo.build(result);
}
@ -73,15 +76,22 @@ public class SysOssTextbookServiceImpl implements ISysOssTextbookService {
*/
@Override
public List<SysOssTextbookVo> queryList(SysOssTextbookBo bo) {
LambdaQueryWrapper<SysOssTextbook> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
return baseMapper.selectVoList(this.buildQueryWrapper(bo));
}
private LambdaQueryWrapper<SysOssTextbook> buildQueryWrapper(SysOssTextbookBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SysOssTextbook> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getType() != null, SysOssTextbook::getType, bo.getType());
return lqw;
private Wrapper<SysOssTextbook> buildQueryWrapper(SysOssTextbookBo bo) {
QueryWrapper<SysOssTextbook> wrapper = Wrappers.query();
wrapper.eq(ObjectUtil.isNotNull(bo.getType()), "ot.type", bo.getType())
.eq(ObjectUtil.isNotNull(bo.getStatus()), "ot.status", bo.getStatus())
.and(ObjectUtil.isNotNull(bo.getCatalogId()), w -> {
List<SysCatalogTextbook> deptList = catalogService.selectList(new LambdaQueryWrapper<SysCatalogTextbook>()
.select(SysCatalogTextbook::getCatalogId)
.apply(DataBaseHelper.findInSet(bo.getCatalogId(), "ancestors")));
List<Long> ids = StreamUtils.toList(deptList, SysCatalogTextbook::getCatalogId);
ids.add(bo.getCatalogId());
w.in("ot.catalog_id", ids);
});
return wrapper;
}
/**
@ -145,4 +155,12 @@ public class SysOssTextbookServiceImpl implements ISysOssTextbookService {
}
return baseMapper.deleteBatchIds(ids) > 0;
}
@Override
public Boolean reviewByBo(SysOssTextbookBo bo) {
SysOssTextbook date = new SysOssTextbook();
date.setId(bo.getId());
date.setStatus(bo.getStatus());
return baseMapper.updateById(date) > 0;
}
}

View File

@ -4,4 +4,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.system.mapper.SysOssResourceMapper">
<select id="selectPageUserList" resultType="org.dromara.system.domain.vo.SysOssResourceVo">
select *
from sys_oss_resource r
left join sys_catalog_resource cr on cr.catalog_id = r.catalog_id
${ew.getCustomSqlSegment}
</select>
</mapper>

View File

@ -4,4 +4,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.system.mapper.SysOssTextbookMapper">
<select id="selectPageUserList" resultType="org.dromara.system.domain.vo.SysOssTextbookVo">
select *
from sys_oss_textbook ot
left join sys_catalog_textbook ct on ct.catalog_id = ot.catalog_id
${ew.getCustomSqlSegment}
</select>
</mapper>