优化目录列表数量统计,其他bug修复

This commit is contained in:
cjw 2024-07-17 16:12:03 +08:00
parent ba2eec3a0c
commit 0d337286b1
17 changed files with 110 additions and 46 deletions

View File

@ -9,8 +9,6 @@ import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log; import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType; import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController; import org.dromara.common.web.core.BaseController;
import org.dromara.system.domain.bo.CatalogDragBo; import org.dromara.system.domain.bo.CatalogDragBo;
import org.dromara.system.domain.bo.SysCatalogResourceBo; import org.dromara.system.domain.bo.SysCatalogResourceBo;
@ -37,8 +35,6 @@ public class SysCatalogResourceController extends BaseController {
private final ISysCatalogResourceService resourceService; private final ISysCatalogResourceService resourceService;
/** /**
* 查询目录-专题资源列表 * 查询目录-专题资源列表
*/ */
@ -50,12 +46,12 @@ public class SysCatalogResourceController extends BaseController {
} }
/** /**
* 查询同步教材列表 * 查询专题资源列表
*/ */
@SaCheckPermission("catalog:resource:pageList") @SaCheckPermission("catalog:resource:pageList")
@GetMapping("/pageList") @GetMapping("/pageList")
public TableDataInfo<SysCatalogResourceVo> list(SysCatalogResourceBo bo, PageQuery pageQuery) { public R<List<SysCatalogResourceVo>> pageList(SysCatalogResourceBo bo) {
return resourceService.queryPageList(bo, pageQuery); return R.ok(resourceService.queryPageList(bo));
} }

View File

@ -9,8 +9,6 @@ import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log; import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType; import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController; import org.dromara.common.web.core.BaseController;
import org.dromara.system.domain.bo.CatalogDragBo; import org.dromara.system.domain.bo.CatalogDragBo;
import org.dromara.system.domain.bo.SysCatalogTextbookBo; import org.dromara.system.domain.bo.SysCatalogTextbookBo;
@ -51,8 +49,8 @@ public class SysCatalogTextbookController extends BaseController {
*/ */
@SaCheckPermission("catalog:textbook:pageList") @SaCheckPermission("catalog:textbook:pageList")
@GetMapping("/pageList") @GetMapping("/pageList")
public TableDataInfo<SysCatalogTextbookVo> list(SysCatalogTextbookBo bo, PageQuery pageQuery) { public R<List<SysCatalogTextbookVo>> pageList(SysCatalogTextbookBo bo) {
return textbookService.queryPageList(bo, pageQuery); return R.ok(textbookService.queryPageList(bo));
} }

View File

@ -82,6 +82,9 @@ public class SysOssResourceController extends BaseController {
@RepeatSubmit() @RepeatSubmit()
@PostMapping() @PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysOssResourceBo bo) { public R<Void> add(@Validated(AddGroup.class) @RequestBody SysOssResourceBo bo) {
if (!sysOssResourceService.checkNameUnique(bo)) {
return R.fail("上传'" + bo.getFileName() + "'失败,名称已存在");
}
return toAjax(sysOssResourceService.insertByBo(bo)); return toAjax(sysOssResourceService.insertByBo(bo));
} }

View File

@ -82,6 +82,9 @@ public class SysOssTextbookController extends BaseController {
@RepeatSubmit() @RepeatSubmit()
@PostMapping() @PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysOssTextbookBo bo) { public R<Void> add(@Validated(AddGroup.class) @RequestBody SysOssTextbookBo bo) {
if (!sysOssTextbookService.checkNameUnique(bo)) {
return R.fail("上传'" + bo.getFileName() + "'失败,名称已存在");
}
return toAjax(sysOssTextbookService.insertByBo(bo)); return toAjax(sysOssTextbookService.insertByBo(bo));
} }
@ -150,6 +153,7 @@ public class SysOssTextbookController extends BaseController {
public R<String> preview(@NotNull(message = "主键不能为空") @PathVariable Long id) throws Exception { public R<String> preview(@NotNull(message = "主键不能为空") @PathVariable Long id) throws Exception {
return R.ok("操作成功", sysOssTextbookService.preview(id)); return R.ok("操作成功", sysOssTextbookService.preview(id));
} }
/** /**
* 定稿 * 定稿
* *

View File

@ -16,7 +16,6 @@ import org.dromara.system.domain.vo.SysCatalogResourceVo;
*/ */
@Mapper @Mapper
public interface SysCatalogResourceMapper extends BaseMapperPlus<SysCatalogResource, SysCatalogResourceVo> { public interface SysCatalogResourceMapper extends BaseMapperPlus<SysCatalogResource, SysCatalogResourceVo> {
Page<SysCatalogResourceVo> selectPageList(@Param("page") Page<SysCatalogResource> page, @Param("catalogId") Long catalogId);
Page<SysCatalogResourceVo> selectProtalPageList(@Param("page") Page<SysCatalogResource> page, @Param("tenantId") String tenantId); Page<SysCatalogResourceVo> selectProtalPageList(@Param("page") Page<SysCatalogResource> page, @Param("tenantId") String tenantId);
@ -27,4 +26,8 @@ public interface SysCatalogResourceMapper extends BaseMapperPlus<SysCatalogResou
int subOrderNum(@Param("mix") Long mix, @Param("max") Long max); int subOrderNum(@Param("mix") Long mix, @Param("max") Long max);
int selectMaxOrderNumByParentId(Long parentId); int selectMaxOrderNumByParentId(Long parentId);
long countOssNum(Long catalogId);
} }

View File

@ -25,5 +25,7 @@ public interface SysCatalogTextbookMapper extends BaseMapperPlus<SysCatalogTextb
int subOrderNum(@Param("mix") Long mix, @Param("max") Long max); int subOrderNum(@Param("mix") Long mix, @Param("max") Long max);
long countOssNum(Long catalogId);
} }

View File

@ -39,12 +39,14 @@ public interface ISysCatalogResourceService {
/** /**
* 分页查询资源列表 * 分页查询资源列表
* 新版修改逻辑保留接口不动
* *
* @param bo 查询条件 * @param bo 查询条件
* @param pageQuery 分页参数 * //@param pageQuery 分页参数
* @return 门户Banner分页列表 * @return 门户Banner分页列表
*/ */
TableDataInfo<SysCatalogResourceVo> queryPageList(SysCatalogResourceBo bo, PageQuery pageQuery); //TableDataInfo<SysCatalogResourceVo> queryPageList(SysCatalogResourceBo bo, PageQuery pageQuery);
List<SysCatalogResourceVo> queryPageList(SysCatalogResourceBo bo);
/** /**
* 分页查询门户资源列表 * 分页查询门户资源列表
@ -74,7 +76,7 @@ public interface ISysCatalogResourceService {
/** /**
* 校验并批量删除目录-专题资源信息 * 校验并批量删除目录-专题资源信息
* *
* @param catalogId 待删除的主键 * @param catalogId 待删除的主键
* @return 是否删除成功 * @return 是否删除成功
*/ */
int deleteById(Long catalogId); int deleteById(Long catalogId);

View File

@ -3,8 +3,6 @@ package org.dromara.system.service;
import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.lang.tree.Tree;
import com.baomidou.mybatisplus.core.conditions.Wrapper; 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.SysCatalogTextbook;
import org.dromara.system.domain.bo.CatalogDragBo; import org.dromara.system.domain.bo.CatalogDragBo;
import org.dromara.system.domain.bo.SysCatalogTextbookBo; import org.dromara.system.domain.bo.SysCatalogTextbookBo;
@ -39,12 +37,13 @@ public interface ISysCatalogTextbookService {
/** /**
* 分页查询同步教材列表 * 分页查询同步教材列表
* 新版修改逻辑保留接口不动
* *
* @param bo 查询条件 * @param bo 查询条件
* @param pageQuery 分页参数 * //@param pageQuery 分页参数
* @return 门户Banner分页列表 * @return 门户Banner分页列表
*/ */
TableDataInfo<SysCatalogTextbookVo> queryPageList(SysCatalogTextbookBo bo, PageQuery pageQuery); List<SysCatalogTextbookVo> queryPageList(SysCatalogTextbookBo bo);
/** /**
* 新增目录-同步教材 * 新增目录-同步教材
@ -65,7 +64,7 @@ public interface ISysCatalogTextbookService {
/** /**
* 校验并批量删除目录-同步教材信息 * 校验并批量删除目录-同步教材信息
* *
* @param catalogId 待删除的主键 * @param catalogId 待删除的主键
* @return 是否删除成功 * @return 是否删除成功
*/ */
int deleteById(Long catalogId); int deleteById(Long catalogId);

View File

@ -94,4 +94,12 @@ public interface ISysOssResourceService {
String preview(Long id); String preview(Long id);
/**
* 校验名称是否唯一
*
* @param resource 文件信息
* @return 结果
*/
boolean checkNameUnique(SysOssResourceBo resource);
} }

View File

@ -103,4 +103,12 @@ public interface ISysOssTextbookService {
Boolean finalize(SysOssTextbookBo bo); Boolean finalize(SysOssTextbookBo bo);
/**
* 校验名称是否唯一
*
* @param textbook 文件信息
* @return 结果
*/
boolean checkNameUnique(SysOssTextbookBo textbook);
} }

View File

@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.CacheNames; import org.dromara.common.core.constant.CacheNames;
import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.exception.ServiceException;
@ -75,16 +74,28 @@ public class SysCatalogResourceServiceImpl implements ISysCatalogResourceService
/** /**
* 管理使用,页面 * 管理使用,页面
* 新版修改逻辑保留接口不动
* *
* @param bo 查询条件 * @param bo 查询条件
* @param pageQuery 分页参数 * //@param pageQuery 分页参数
* @return * @return
*/ */
// @Override
// public TableDataInfo<SysCatalogResourceVo> queryPageList(SysCatalogResourceBo bo, PageQuery pageQuery) {
// //todo
// Page<SysCatalogResourceVo> result = baseMapper.selectPageList(pageQuery.build(), bo.getCatalogId());
// return TableDataInfo.build(result);
// }
@Override @Override
public TableDataInfo<SysCatalogResourceVo> queryPageList(SysCatalogResourceBo bo, PageQuery pageQuery) { public List<SysCatalogResourceVo> queryPageList(SysCatalogResourceBo bo) {
//todo List<SysCatalogResourceVo> list = baseMapper.selectVoList(new LambdaQueryWrapper<SysCatalogResource>()
Page<SysCatalogResourceVo> result = baseMapper.selectPageList(pageQuery.build(), bo.getCatalogId()); .eq(SysCatalogResource::getParentId, bo.getCatalogId())
return TableDataInfo.build(result); .eq(SysCatalogResource::getDelFlag, 0));
for (SysCatalogResourceVo one : list) {
long num = baseMapper.countOssNum(one.getCatalogId());
one.setResourceNum(num);
}
return list;
} }
/** /**

View File

@ -8,7 +8,6 @@ import com.baomidou.lock.annotation.Lock4j;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.CacheNames; import org.dromara.common.core.constant.CacheNames;
import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.exception.ServiceException;
@ -16,8 +15,6 @@ import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.core.utils.SpringUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.core.utils.TreeBuildUtils; import org.dromara.common.core.utils.TreeBuildUtils;
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.common.mybatis.helper.DataBaseHelper;
import org.dromara.common.redis.utils.CacheUtils; import org.dromara.common.redis.utils.CacheUtils;
import org.dromara.system.domain.SysCatalogTextbook; import org.dromara.system.domain.SysCatalogTextbook;
@ -74,10 +71,15 @@ public class SysCatalogTextbookServiceImpl implements ISysCatalogTextbookService
} }
@Override @Override
public TableDataInfo<SysCatalogTextbookVo> queryPageList(SysCatalogTextbookBo bo, PageQuery pageQuery) { public List<SysCatalogTextbookVo> queryPageList(SysCatalogTextbookBo bo) {
//todo List<SysCatalogTextbookVo> list = baseMapper.selectVoList(new LambdaQueryWrapper<SysCatalogTextbook>()
Page<SysCatalogTextbookVo> result = baseMapper.selectPageUserList(pageQuery.build(), bo.getCatalogId()); .eq(SysCatalogTextbook::getParentId, bo.getCatalogId())
return TableDataInfo.build(result); .eq(SysCatalogTextbook::getDelFlag, 0));
for (SysCatalogTextbookVo one : list) {
long num = baseMapper.countOssNum(one.getCatalogId());
one.setResourceNum(num);
}
return list;
} }
private LambdaQueryWrapper<SysCatalogTextbook> buildQueryWrapper(SysCatalogTextbookBo bo) { private LambdaQueryWrapper<SysCatalogTextbook> buildQueryWrapper(SysCatalogTextbookBo bo) {

View File

@ -16,6 +16,7 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.helper.DataBaseHelper; import org.dromara.common.mybatis.helper.DataBaseHelper;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.system.constant.StatusConstants;
import org.dromara.system.domain.SysCatalogPerson; import org.dromara.system.domain.SysCatalogPerson;
import org.dromara.system.domain.SysOssPerson; import org.dromara.system.domain.SysOssPerson;
import org.dromara.system.domain.SysOssTextbook; import org.dromara.system.domain.SysOssTextbook;
@ -239,6 +240,8 @@ public class SysOssPersonServiceImpl implements ISysOssPersonService {
date.setFilePath(path); date.setFilePath(path);
date.setType(ossPerson.getType()); date.setType(ossPerson.getType());
date.setOssType(1); date.setOssType(1);
date.setStatus(StatusConstants.IN_USE);
date.setFinalizeStatus(StatusConstants.DISABLED);
date.setCreateDept(ossPerson.getCreateDept()); date.setCreateDept(ossPerson.getCreateDept());
date.setCreateBy(ossPerson.getCreateBy()); date.setCreateBy(ossPerson.getCreateBy());
date.setUpdateBy(ossPerson.getCreateBy()); date.setUpdateBy(ossPerson.getCreateBy());

View File

@ -281,4 +281,11 @@ public class SysOssResourceServiceImpl implements ISysOssResourceService {
baseMapper.addPreviewNum(id); baseMapper.addPreviewNum(id);
return ossService.getUrlById(ossResource.getOssId()); return ossService.getUrlById(ossResource.getOssId());
} }
@Override
public boolean checkNameUnique(SysOssResourceBo resource) {
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysOssResource>()
.eq(SysOssResource::getFileName, resource.getFileName())
.eq(SysOssResource::getDelFlag, 0));
return !exist;
}
} }

View File

@ -282,6 +282,7 @@ public class SysOssTextbookServiceImpl implements ISysOssTextbookService {
date.setType(ossTextbook.getType()); date.setType(ossTextbook.getType());
date.setOssType(ossTextbook.getOssType()); date.setOssType(ossTextbook.getOssType());
date.setStatus(ossTextbook.getStatus()); date.setStatus(ossTextbook.getStatus());
date.setFinalizeStatus(ossTextbook.getFinalizeStatus());
date.setCreateDept(ossTextbook.getCreateDept()); date.setCreateDept(ossTextbook.getCreateDept());
date.setCreateBy(ossTextbook.getCreateBy()); date.setCreateBy(ossTextbook.getCreateBy());
date.setUpdateBy(LoginHelper.getUserId()); date.setUpdateBy(LoginHelper.getUserId());
@ -379,6 +380,15 @@ public class SysOssTextbookServiceImpl implements ISysOssTextbookService {
return baseMapper.insert(date) > 0; return baseMapper.insert(date) > 0;
} }
@Override
public boolean checkNameUnique(SysOssTextbookBo textBook) {
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysOssTextbook>()
.eq(SysOssTextbook::getFileName, textBook.getFileName())
.eq(SysOssTextbook::getOssType, textBook.getOssType())
.eq(SysOssTextbook::getDelFlag, 0));
return !exist;
}
private LambdaQueryWrapper<SysTextbookRecord> buildRecordQueryWrapper(SysTextbookRecord data) { private LambdaQueryWrapper<SysTextbookRecord> buildRecordQueryWrapper(SysTextbookRecord data) {
return new LambdaQueryWrapper<SysTextbookRecord>() return new LambdaQueryWrapper<SysTextbookRecord>()
.eq(SysTextbookRecord::getOssTextbookId, data.getOssTextbookId()) .eq(SysTextbookRecord::getOssTextbookId, data.getOssTextbookId())

View File

@ -4,16 +4,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.system.mapper.SysCatalogResourceMapper"> <mapper namespace="org.dromara.system.mapper.SysCatalogResourceMapper">
<select id="selectPageList" resultType="org.dromara.system.domain.vo.SysCatalogResourceVo">
select cr.catalog_id,cr.parent_id, cr.catalog_name, cr.order_num, count(sor.oss_id) as `resourceNum`
from sys_catalog_resource cr
left join sys_oss_resource sor on sor.catalog_id = cr.catalog_id
where FIND_IN_SET(#{catalogId}, cr.ancestors)
group by cr.catalog_id
having cr.parent_id = #{catalogId}
order by cr.order_num
</select>
<select id="selectProtalPageList" resultType="org.dromara.system.domain.vo.SysCatalogResourceVo"> <select id="selectProtalPageList" resultType="org.dromara.system.domain.vo.SysCatalogResourceVo">
select cr.catalog_id as catalogId, select cr.catalog_id as catalogId,
cr.catalog_name as catalogName, cr.catalog_name as catalogName,
@ -71,4 +61,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where parent_id = #{parentId} where parent_id = #{parentId}
and del_flag = 0 and del_flag = 0
</select> </select>
<select id="countOssNum" resultType="long">
select count(*)
from sys_catalog_resource cr
left join sys_oss_resource r on r.catalog_id = cr.catalog_id
where cr.del_flag = 0
and r.del_flag = 0
and (FIND_IN_SET(#{catalogId}, cr.ancestors) or cr.catalog_id = #{catalogId});
</select>
</mapper> </mapper>

View File

@ -45,4 +45,13 @@
</if> </if>
</where> </where>
</update> </update>
<select id="countOssNum" resultType="long">
select count(*)
from sys_catalog_textbook ct
left join sys_oss_textbook ot on ot.catalog_id = ct.catalog_id
where ct.del_flag = 0
and ot.del_flag = 0
and (FIND_IN_SET(#{catalogId}, ct.ancestors) or ct.catalog_id = #{catalogId})
</select>
</mapper> </mapper>