Răsfoiți Sursa

Merge remote-tracking branch 'origin/dev' into dev

honorfire 7 luni în urmă
părinte
comite
a355d1367a

+ 5 - 0
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/pom.xml

@@ -114,5 +114,10 @@
             <scope>provided</scope>
             <optional>true</optional>
         </dependency>
+
+        <dependency>
+            <groupId>vip.xiaonuo</groupId>
+            <artifactId>snowy-plugin-dev-api</artifactId>
+        </dependency>
     </dependencies>
 </project>

+ 5 - 2
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/impl/ExamPaperServiceImpl.java

@@ -183,7 +183,11 @@ public class ExamPaperServiceImpl extends BaseServiceImpl<ExamPaper> implements
     }
 
     private void examPaperFromVM(ExamPaperEditRequestVM examPaperEditRequestVM, ExamPaper examPaper, List<ExamPaperTitleItemVM> titleItemsVM) {
-        Integer gradeLevel = subjectService.levelBySubjectId(examPaperEditRequestVM.getSubjectId());
+        Integer gradeLevel = null;
+        if(examPaperEditRequestVM.getSubjectId() != null){
+            gradeLevel = subjectService.levelBySubjectId(examPaperEditRequestVM.getSubjectId());
+            examPaper.setGradeLevel(gradeLevel);
+        }
         Integer questionCount = titleItemsVM.stream()
                 .mapToInt(t -> t.getQuestionItems().size()).sum();
         Integer score = titleItemsVM.stream().
@@ -192,7 +196,6 @@ public class ExamPaperServiceImpl extends BaseServiceImpl<ExamPaper> implements
                 ).sum();
         examPaper.setQuestionCount(questionCount);
         examPaper.setScore(score);
-        examPaper.setGradeLevel(gradeLevel);
         List<String> dateTimes = examPaperEditRequestVM.getLimitDateTime();
         if (ExamPaperTypeEnum.TimeLimit == ExamPaperTypeEnum.fromCode(examPaper.getPaperType())) {
             examPaper.setLimitStartTime(DateTimeUtil.parse(dateTimes.get(0), DateTimeUtil.STANDER_FORMAT));

+ 6 - 3
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/impl/QuestionServiceImpl.java

@@ -95,10 +95,13 @@ public class QuestionServiceImpl extends BaseServiceImpl<Question> implements Qu
     @Override
     @Transactional
     public Question updateFullQuestion(QuestionEditRequestVM model) {
-        Integer gradeLevel = subjectService.levelBySubjectId(model.getSubjectId());
         Question question = questionMapper.selectByPrimaryKey(model.getId());
-        question.setSubjectId(model.getSubjectId());
-        question.setGradeLevel(gradeLevel);
+        Integer gradeLevel = null;
+        if(model.getSubjectId() != null){
+            gradeLevel = subjectService.levelBySubjectId(model.getSubjectId());
+            question.setGradeLevel(gradeLevel);
+            question.setSubjectId(model.getSubjectId());
+        }
         question.setScore(ExamUtil.scoreFromVM(model.getScore()));
         question.setDifficult(model.getDifficult());
         question.setCorrectFromVM(model.getCorrect(), model.getCorrectArray());

+ 1 - 4
snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/postreply/controller/ForumPostReplyController.java

@@ -89,7 +89,6 @@ public class ForumPostReplyController {
     @ApiOperationSupport(order = 3)
     @ApiOperation("编辑帖子回复表")
     @CommonLog("编辑帖子回复表")
-    @SaCheckPermission("/forum/postreply/edit")
     @PostMapping("/forum/postreply/edit")
     public CommonResult<String> edit(@RequestBody @Valid ForumPostReplyEditParam forumPostReplyEditParam) {
         return forumPostReplyService.edit(forumPostReplyEditParam);
@@ -104,12 +103,10 @@ public class ForumPostReplyController {
     @ApiOperationSupport(order = 4)
     @ApiOperation("删除帖子回复表")
     @CommonLog("删除帖子回复表")
-    @SaCheckPermission("/forum/postreply/delete")
     @PostMapping("/forum/postreply/delete")
     public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
                                                    CommonValidList<ForumPostReplyIdParam> forumPostReplyIdParamList) {
-        forumPostReplyService.delete(forumPostReplyIdParamList);
-        return CommonResult.ok();
+        return forumPostReplyService.delete(forumPostReplyIdParamList);
     }
 
     /**

+ 1 - 1
snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/postreply/service/ForumPostReplyService.java

@@ -61,7 +61,7 @@ public interface ForumPostReplyService extends IService<ForumPostReply> {
      * @author 金吉龙
      * @date  2025/07/16 08:47
      */
-    void delete(List<ForumPostReplyIdParam> forumPostReplyIdParamList);
+    CommonResult<String> delete(List<ForumPostReplyIdParam> forumPostReplyIdParamList);
 
     /**
      * 获取帖子回复表详情

+ 15 - 2
snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/postreply/service/impl/ForumPostReplyServiceImpl.java

@@ -197,6 +197,10 @@ public class ForumPostReplyServiceImpl extends ServiceImpl<ForumPostReplyMapper,
     public CommonResult<String> edit(ForumPostReplyEditParam forumPostReplyEditParam) {
         SaBaseLoginUser loginUser = StpLoginUserUtil.getLoginUser();
         ForumPostReply forumPostReply = this.queryEntity(forumPostReplyEditParam.getReplyId());
+        // 校验是否为自己的回复
+        if (!forumPostReply.getUserId().equals(loginUser.getId())) {
+            throw new CommonException("只能编辑自己的回复");
+        }
         BeanUtil.copyProperties(forumPostReplyEditParam, forumPostReply);
         // 过滤敏感词
         String replyContent = filterSensitivity(forumPostReplyEditParam.getReplyContent(), loginUser, forumPostReplyEditParam.getPostId());
@@ -207,9 +211,18 @@ public class ForumPostReplyServiceImpl extends ServiceImpl<ForumPostReplyMapper,
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public void delete(List<ForumPostReplyIdParam> forumPostReplyIdParamList) {
+    public CommonResult<String> delete(List<ForumPostReplyIdParam> forumPostReplyIdParamList) {
         // 执行删除
-        this.removeByIds(CollStreamUtil.toList(forumPostReplyIdParamList, ForumPostReplyIdParam::getReplyId));
+        boolean b = this.removeByIds(CollStreamUtil.toList(forumPostReplyIdParamList, ForumPostReplyIdParam::getReplyId));
+        if (b) {
+            // 同时删除点赞记录
+            QueryWrapper<ForumPostLike> queryWrapper = new QueryWrapper<>();
+            queryWrapper.lambda().in(ForumPostLike::getTargetId, CollStreamUtil.toList(forumPostReplyIdParamList, ForumPostReplyIdParam::getReplyId));
+            forumPostLikeMapper.delete(queryWrapper);
+            return CommonResult.ok();
+        } else {
+            return CommonResult.error();
+        }
     }
 
     @Override