From 63eefa2207e57ec662db909fabd2da03d18f02f0 Mon Sep 17 00:00:00 2001 From: cyc Date: Fri, 3 Apr 2026 16:01:00 +0800 Subject: [PATCH] =?UTF-8?q?skill=E6=A8=A1=E5=9D=97=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/platform/domain/Skill.java | 4 +++ .../service/impl/ApprovalServiceImpl.java | 1 + .../service/impl/SkillServiceImpl.java | 31 +++++++++++++++++-- .../managementPlatform/SkillDaoMapper.xml | 9 ++++-- 4 files changed, 39 insertions(+), 6 deletions(-) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Skill.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Skill.java index a28c4c6b..a6938d0a 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Skill.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/Skill.java @@ -43,4 +43,8 @@ public class Skill { private String mdContent; private Integer praisesCount; + + private String praiseUserIds; + + private Boolean praised; } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ApprovalServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ApprovalServiceImpl.java index 2a61d79f..04275036 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ApprovalServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ApprovalServiceImpl.java @@ -179,6 +179,7 @@ public class ApprovalServiceImpl implements ApprovalService { break; case "SKILL": Skill skill = JSONUtil.toBean(content, Skill.class); + skill.setIsPublic(true); skillDao.edit(skill); break; } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/SkillServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/SkillServiceImpl.java index 44e2accf..186640f4 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/SkillServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/SkillServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONArray; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson2.JSON; import com.ruoyi.common.security.utils.SecurityUtils; @@ -99,7 +100,11 @@ public class SkillServiceImpl implements SkillService { @Override public Skill queryById(Long id) { - return skillDao.getSkillById(id); + Long userid = SecurityUtils.getLoginUser().getUserid(); + Skill skill = skillDao.getSkillById(id); + JSONArray userIds = StrUtil.isBlank(skill.getPraiseUserIds()) ? JSONUtil.createArray() : JSONUtil.parseArray(skill.getPraiseUserIds()); + skill.setPraised(userIds.contains(userid.intValue())); + return skill; } @Override @@ -121,9 +126,9 @@ public class SkillServiceImpl implements SkillService { public Skill publish(Long id, LoginUser loginUser, HttpServletRequest request) { Set roles = loginUser.getRoles(); Skill skill = skillDao.getSkillById(id); - skill.setIsPublic(true); if (roles.contains("admin")) { //无需审批,直接通过 + skill.setIsPublic(true); skillDao.edit(skill); } @@ -137,7 +142,7 @@ public class SkillServiceImpl implements SkillService { approvalRequest.setStatus(ApprovalStatus.PENDING.getCode()); String titleTemplate = "{}发布的Skill\"{}\"需要审核,请查看"; - String urlTemplate = "/dataset/skill/info/{}"; + String urlTemplate = "/dataset/skills/info/{}"; String titleFormat = StrUtil.format(titleTemplate, username, skill.getName()); String urlFormat = StrUtil.format(urlTemplate, skill.getId()); @@ -155,6 +160,16 @@ public class SkillServiceImpl implements SkillService { Skill skill = skillDao.getSkillById(id); int praiseCount = skill.getPraisesCount() == null ? 1 : skill.getPraisesCount() + 1; skill.setPraisesCount(praiseCount); + + Long userid = SecurityUtils.getLoginUser().getUserid(); + JSONArray userIds = StrUtil.isBlank(skill.getPraiseUserIds()) ? JSONUtil.createArray() : JSONUtil.parseArray(skill.getPraiseUserIds()); + if (userIds.contains(userid)) { + return skill; + } + userIds.add(userid); + skill.setPraiseUserIds(JSONUtil.toJsonStr(userIds)); + skill.setPraised(true); + skillDao.edit(skill); return skill; } @@ -164,6 +179,16 @@ public class SkillServiceImpl implements SkillService { Skill skill = skillDao.getSkillById(id); int praiseCount = skill.getPraisesCount() == null ? 0 : skill.getPraisesCount() - 1; skill.setPraisesCount(praiseCount); + + Long userid = SecurityUtils.getLoginUser().getUserid(); + JSONArray userIds = StrUtil.isBlank(skill.getPraiseUserIds()) ? JSONUtil.createArray() : JSONUtil.parseArray(skill.getPraiseUserIds()); + if (!userIds.contains(userid.intValue())) { + return skill; + } + userIds.remove(userIds.indexOf(userid.intValue())); + skill.setPraiseUserIds(JSONUtil.toJsonStr(userIds)); + skill.setPraised(false); + skillDao.edit(skill); return skill; } diff --git a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/SkillDaoMapper.xml b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/SkillDaoMapper.xml index 1b4161f6..073c8344 100644 --- a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/SkillDaoMapper.xml +++ b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/SkillDaoMapper.xml @@ -2,9 +2,9 @@ - insert into skill(name, description, type, preview_pic, create_by, update_by,file_path,file_tree_json,md_content) + insert into skill(name, description, type, preview_pic, create_by, update_by,file_path,file_tree_json,md_content,praises_count) values (#{skill.name}, #{skill.description}, #{skill.type}, - #{skill.previewPic}, #{skill.createBy}, #{skill.updateBy},#{skill.filePath},#{skill.fileTreeJson},#{skill.mdContent}) + #{skill.previewPic}, #{skill.createBy}, #{skill.updateBy},#{skill.filePath},#{skill.fileTreeJson},#{skill.mdContent},#{skill.praisesCount}) @@ -22,9 +22,12 @@ preview_pic = #{skill.previewPic}, - + praises_count = #{skill.praisesCount}, + + praise_user_ids = #{skill.praiseUserIds}, + file_path = #{skill.filePath},