自动发布文章,权限插入

This commit is contained in:
2025-11-19 13:25:32 +08:00
parent 0dcee95a45
commit 4ab8877b80
7 changed files with 307 additions and 54 deletions

View File

@@ -73,6 +73,65 @@ public class NCResourceServiceImpl implements ResourceService {
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public ResultDomain<Integer> batchCreateResources(List<TbResource> resources) {
ResultDomain<Integer> resultDomain = new ResultDomain<>();
try {
if (resources == null || resources.isEmpty()) {
resultDomain.fail("资源列表不能为空");
return resultDomain;
}
Date now = new Date();
// 填充必要的默认值
for (TbResource res : resources) {
if (res.getID() == null) {
res.setID(IDUtils.generateID());
}
if (res.getResourceID() == null) {
res.setResourceID(IDUtils.generateID());
}
if (res.getCreateTime() == null) {
res.setCreateTime(now);
}
if (res.getUpdateTime() == null) {
res.setUpdateTime(now);
}
if (res.getStatus() == null) {
res.setStatus(0);
}
if (res.getViewCount() == null) {
res.setViewCount(0);
}
if (res.getLikeCount() == null) {
res.setLikeCount(0);
}
if (res.getCollectCount() == null) {
res.setCollectCount(0);
}
if (res.getIsRecommend() == null) {
res.setIsRecommend(false);
}
if (res.getIsBanner() == null) {
res.setIsBanner(false);
}
}
int count = resourceMapper.batchInsertResources(resources);
if (count > 0) {
logger.info("批量创建资源成功,共 {} 条", count);
resultDomain.success("批量创建资源成功", count);
} else {
resultDomain.fail("批量创建资源失败");
}
} catch (Exception e) {
logger.error("批量创建资源异常: {}", e.getMessage(), e);
resultDomain.fail("批量创建资源失败: " + e.getMessage());
}
return resultDomain;
}
@Override
public ResultDomain<TbResource> getResourcePage(TbResource filter, PageParam pageParam) {
ResultDomain<TbResource> resultDomain = new ResultDomain<>();
@@ -161,6 +220,19 @@ public class NCResourceServiceImpl implements ResourceService {
@Override
@Transactional(rollbackFor = Exception.class)
public ResultDomain<ResourceVO> createResource(ResourceVO resourceVO) {
// 前端/管理端调用:使用当前登录用户的部门角色
List<UserDeptRoleVO> userDeptRoles = null;
try {
userDeptRoles = LoginUtil.getCurrentDeptRole();
} catch (Exception e) {
logger.warn("获取当前用户部门角色失败: {}", e.getMessage());
}
return createResource(resourceVO, userDeptRoles);
}
@Override
@Transactional(rollbackFor = Exception.class)
public ResultDomain<ResourceVO> createResource(ResourceVO resourceVO, List<UserDeptRoleVO> userDeptRoles) {
ResultDomain<ResourceVO> resultDomain = new ResultDomain<>();
try {
// 参数验证
@@ -169,14 +241,6 @@ public class NCResourceServiceImpl implements ResourceService {
return resultDomain;
}
// 检查标题是否已存在
List<UserDeptRoleVO> userDeptRoles = LoginUtil.getCurrentDeptRole();
int count = resourceMapper.countByTitle(resourceVO.getResource().getTitle(), null, userDeptRoles);
if (count > 0) {
resultDomain.fail("资源标题已存在");
return resultDomain;
}
// 设置默认值
if (resourceVO.getResource().getID() == null) {
resourceVO.getResource().setID(IDUtils.generateID());

View File

@@ -288,13 +288,15 @@
<insert id="batchInsertResources" parameterType="java.util.List">
INSERT INTO tb_resource (
id, resource_id, title, content, summary, cover_image, tag_id, author, source,
source_url, creator,create_time
source_url, status, is_recommend, is_banner, publish_time,
creator, updater, create_time, update_time, deleted
) VALUES
<foreach collection="resourceList" item="item" separator=",">
(
#{item.id}, #{item.resourceID}, #{item.title}, #{item.content}, #{item.summary}, #{item.coverImage},
#{item.tagID}, #{item.author}, #{item.source}, #{item.sourceUrl},
#{item.creator}, #{item.createTime}
#{item.id}, #{item.resourceID}, #{item.title}, #{item.content}, #{item.summary}, #{item.coverImage},
#{item.tagID}, #{item.author}, #{item.source}, #{item.sourceUrl},
#{item.status}, #{item.isRecommend}, #{item.isBanner}, #{item.publishTime},
#{item.creator}, #{item.updater}, #{item.createTime}, #{item.updateTime}, #{item.deleted}
)
</foreach>
</insert>