Bläddra i källkod

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

dzx 8 månader sedan
förälder
incheckning
f548e46a30

+ 3 - 3
src/main/java/com/xjrsoft/module/feedback/controller/FeedbackController.java

@@ -77,13 +77,13 @@ public class FeedbackController {
         LambdaQueryWrapper<Feedback> feedbackLambdaQueryWrapper = new LambdaQueryWrapper<>();
         feedbackLambdaQueryWrapper
                 .eq(Feedback::getUserId, StpUtil.getLoginIdAsLong())
-                .eq(Feedback::getHandleReadStatus, 0)
+                .eq(Feedback::getHandleReadStatus, 1)
                 ;
         List<Feedback> feedbacks = feedbackService.list(feedbackLambdaQueryWrapper);
         if(CollectionUtils.isNotEmpty(feedbacks)){
-            return RT.ok(true);
+            return RT.ok(false);
         }
-        return RT.ok(false);
+        return RT.ok(true);
     }
 
     @PostMapping("/add-feedback-item")

+ 2 - 0
src/main/java/com/xjrsoft/module/feedback/dto/FeedbackPageDto.java

@@ -6,6 +6,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import javax.validation.constraints.NotNull;
 import java.time.LocalTime;
 import java.time.LocalDateTime;
 import java.math.BigDecimal;
@@ -23,6 +24,7 @@ import java.util.Date;
 public class FeedbackPageDto extends PageInput {
 
     @ApiModelProperty("处理状态(0:未处理,1:已处理)")
+    @NotNull(message = "处理状态不能为空!")
     private Integer handleStatus;
 
     @ApiModelProperty("意见反馈反馈用户主键id(xjr_user)")

+ 2 - 2
src/main/java/com/xjrsoft/module/feedback/entity/Feedback.java

@@ -104,8 +104,8 @@ public class Feedback implements Serializable {
     @ApiModelProperty("处理时间")
     private LocalDateTime handleTime;
     /**
-    * 处理知晓状态(0:未读,1:已读)
+    * 处理知晓状态(0:没有未读,1:有未读)
     */
-    @ApiModelProperty("处理知晓状态(0:未读,1:已读)")
+    @ApiModelProperty("处理知晓状态(0:没有未读,1:有未读)")
     private Integer handleReadStatus;
 }

+ 39 - 7
src/main/java/com/xjrsoft/module/feedback/service/impl/FeedbackServiceImpl.java

@@ -70,7 +70,37 @@ public class FeedbackServiceImpl extends MPJBaseServiceImpl<FeedbackMapper, Feed
                 .eq(StringUtils.isNotEmpty(dto.getTerminalType()), Feedback::getTerminalType, dto.getTerminalType())
                 .orderByDesc(Feedback::getCreateDate)
                 ;
-        return this.selectJoinListPage(ConventPage.getPage(dto), FeedbackPageVo.class, feedbackMPJLambdaWrapper);
+        IPage<FeedbackPageVo> page = this.selectJoinListPage(ConventPage.getPage(dto), FeedbackPageVo.class, feedbackMPJLambdaWrapper);
+
+        // 处理最后一条反馈内容
+        List<FeedbackPageVo> dataList = page.getRecords();
+        if(CollectionUtils.isNotEmpty(dataList)){
+            List<String> ids = dataList.stream()
+                    .map(FeedbackPageVo::getId)
+                    .collect(Collectors.toList());
+            if(CollectionUtils.isNotEmpty(ids)){
+                List<FeedbackItem> feedbackItems = feedbackItemMapper.selectList(
+                        Wrappers.lambdaQuery(FeedbackItem.class)
+                                .in(FeedbackItem::getFeedbackId, ids)
+                );
+
+                Map<Long, List<FeedbackItem>> groupByFeedbackId = feedbackItems.stream()
+                        .collect(Collectors.groupingBy(FeedbackItem::getFeedbackId));
+
+                for (FeedbackPageVo vo : page.getRecords()){
+                    List<FeedbackItem> feedbackItemList = groupByFeedbackId.get(Long.parseLong(vo.getId()));
+                    if(CollectionUtils.isNotEmpty(feedbackItemList)){
+                        feedbackItemList.sort(Comparator.comparing(FeedbackItem::getCreateDate).reversed());
+                        FeedbackItem lastOne = feedbackItemList.get(0);
+                        if(ObjectUtils.isNotEmpty(lastOne)){
+                            vo.setFeedbackTime(lastOne.getCreateDate());
+                        }
+                    }
+                }
+            }
+        }
+
+        return page;
     }
 
     @Override
@@ -112,6 +142,7 @@ public class FeedbackServiceImpl extends MPJBaseServiceImpl<FeedbackMapper, Feed
                         feedbackItemList.sort(Comparator.comparing(FeedbackItem::getCreateDate).reversed());
                         FeedbackItem lastOne = feedbackItemList.get(0);
                         if(ObjectUtils.isNotEmpty(lastOne)){
+                            vo.setFeedbackTime(lastOne.getCreateDate());
                             vo.setFeedback(lastOne.getFeedback());
                             vo.setReply(lastOne.getReply());
                         }
@@ -171,7 +202,7 @@ public class FeedbackServiceImpl extends MPJBaseServiceImpl<FeedbackMapper, Feed
         LocalDateTime nowLocalDateTime = LocalDateTime.now();
         Long loginId = StpUtil.getLoginIdAsLong();
 
-        // 如果没有传入意见反馈主键id表示为新增反馈,应该添加主表记录
+        // 如果没有传入意见反馈主键id表示为新增反馈,应该添加主表记录
         if(ObjectUtils.isEmpty(dto.getFeedbackId())){
             Feedback feedback = new Feedback();
             feedback.setCreateDate(nowLocalDateTime);
@@ -226,6 +257,7 @@ public class FeedbackServiceImpl extends MPJBaseServiceImpl<FeedbackMapper, Feed
         Long loginId = StpUtil.getLoginIdAsLong();
 
         FeedbackItem feedbackItem = BeanUtil.toBean(dto, FeedbackItem.class);
+        feedbackItem.setId(dto.getId());
         feedbackItem.setModifyDate(nowLocalDateTime);
         feedbackItem.setModifyUserId(loginId);
 
@@ -234,7 +266,7 @@ public class FeedbackServiceImpl extends MPJBaseServiceImpl<FeedbackMapper, Feed
         feedbackItem.setReplyTime(nowLocalDateTime);
         feedbackItem.setReplyReadStatus(0);
 
-        feedbackItemMapper.insert(feedbackItem);
+        feedbackItemMapper.updateById(feedbackItem);
         
         // 处理主反馈的状态
         Feedback updateFeedback = new Feedback();
@@ -250,11 +282,11 @@ public class FeedbackServiceImpl extends MPJBaseServiceImpl<FeedbackMapper, Feed
                 ;
         List<FeedbackItem> replyLFeedbackItems = feedbackItemMapper.selectList(replyLambdaQueryWrapper);
         if(CollectionUtils.isEmpty(replyLFeedbackItems)){
-            updateFeedback.setHandleReadStatus(1);
+            updateFeedback.setHandleStatus(1);
             updateFeedback.setHandleTime(nowLocalDateTime);
         }
 
-        updateFeedback.setHandleReadStatus(0);
+        updateFeedback.setHandleReadStatus(1);
 
         this.updateById(updateFeedback);
         return true;
@@ -269,7 +301,7 @@ public class FeedbackServiceImpl extends MPJBaseServiceImpl<FeedbackMapper, Feed
             throw new MyException("当前反馈已被修改,请刷新重试");
         }
 
-        // 将所有已经处理反馈项阅读
+        // 将所有已经处理反馈项阅读
         LambdaUpdateWrapper<FeedbackItem> feedbackItemLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
         feedbackItemLambdaUpdateWrapper
                 .set(FeedbackItem::getReplyReadStatus, 1)
@@ -280,7 +312,7 @@ public class FeedbackServiceImpl extends MPJBaseServiceImpl<FeedbackMapper, Feed
 
         this.updateById(new Feedback(){{
             setId(dto.getId());
-            setHandleReadStatus(1);
+            setHandleReadStatus(0);
         }});
         return true;
     }

+ 1 - 1
src/main/java/com/xjrsoft/module/feedback/vo/FeedbackPageVo.java

@@ -67,7 +67,7 @@ public class FeedbackPageVo {
     /**
     * 处理知晓状态(0:未读,1:已读)
     */
-    @ApiModelProperty("处理知晓状态(0:未读,1:已读)")
+    @ApiModelProperty("处理知晓状态(0:没有未读,1:有未读)")
     private Integer handleReadStatus;
 
 }

+ 1 - 1
src/main/java/com/xjrsoft/module/feedback/vo/HistoryPageMobileVo.java

@@ -43,7 +43,7 @@ public class HistoryPageMobileVo {
     /**
     * 处理知晓状态(0:未读,1:已读)
     */
-    @ApiModelProperty("处理知晓状态(0:未读,1:已读)")
+    @ApiModelProperty("处理知晓状态(0:没有未读,1:有未读)")
     private Integer handleReadStatus;
 
     @ApiModelProperty("最后一条反馈文本")

+ 2 - 2
src/main/resources/sqlScript/20250409_sql.sql

@@ -19,7 +19,7 @@ create table `feedback`
     `feedback_time`      datetime    not null comment '反馈时间',
     `handle_status`      int      default 0 comment '处理状态(0:未处理,1:已处理)',
     `handle_time`        datetime default null comment '处理时间',
-    `handle_read_status` int      default 0 comment '处理知晓状态(0:未读,1:已读)'
+    `handle_read_status` int      default 0 comment '处理知晓状态(0:没有未读,1:有未读)'
 ) engine = innodb
   default charset = utf8mb4 comment = '意见反馈';
 
@@ -42,7 +42,7 @@ create table `feedback_item`
     `feedback`          varchar(512) not null comment '反馈文本',
     `feedback_file_id`  bigint       default null comment '反馈附件主键id',
     `reply_status`      int          default 0 comment '回复状态(0:未回复,1:已回复)',
-    `reply_user_id`            bigint      not null comment '回复反馈用户主键id(xjr_user)',
+    `reply_user_id`     bigint       default null comment '回复反馈用户主键id(xjr_user)',
     `reply`             varchar(512) default null comment '回复文本',
     `reply_file_id`     bigint       default null comment '回复附件主键id',
     `reply_time`        datetime     default null comment '回复时间',