提交反馈功能
parent
e13ab07577
commit
80669d4c0f
@ -0,0 +1,29 @@
|
||||
package com.supervision.controller;
|
||||
|
||||
import com.supervision.pojo.vo.FeedBackVO;
|
||||
import com.supervision.service.FeedbackService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@Tag(name = "问诊回顾-反馈")
|
||||
@RestController
|
||||
@RequestMapping("/feedback")
|
||||
@RequiredArgsConstructor
|
||||
public class FeedbackController {
|
||||
|
||||
private final FeedbackService feedbackService;
|
||||
|
||||
@Operation(summary = "查询问答记录")
|
||||
@GetMapping("queryQaRecordForFeedback")
|
||||
public FeedBackVO queryQaRecordForFeedback(String processId) {
|
||||
return feedbackService.queryQaRecordForFeedback(processId);
|
||||
}
|
||||
|
||||
@Operation(summary = "保存反馈")
|
||||
@PostMapping("saveFeedback")
|
||||
public void saveFeedback(@RequestBody FeedBackVO feedbackVO) {
|
||||
feedbackService.saveFeedback(feedbackVO);
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.supervision.pojo.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class FeedBackQaVO {
|
||||
|
||||
private String id;
|
||||
|
||||
@Schema(description = "问题")
|
||||
private String question;
|
||||
|
||||
@Schema(description = "回答")
|
||||
private String answer;
|
||||
|
||||
@Schema(description = "反馈类型(1合理 2不合理)")
|
||||
private Integer feedbackType;
|
||||
|
||||
@Schema(description = "反馈项(1回答过于冗长 2答非所问 3内容过于简洁)")
|
||||
private Integer feedbackItem;
|
||||
|
||||
@Schema(description = "反馈备注")
|
||||
private String feedbackRemark;
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
package com.supervision.pojo.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class FeedBackVO {
|
||||
|
||||
@Schema(description = "对话列表")
|
||||
private List<FeedBackQaVO> qaList;
|
||||
|
||||
@Schema(description = "评价级别 1可靠 2基本可靠 3仅供参考")
|
||||
private Integer evaluateLevel;
|
||||
|
||||
@Schema(description = "评价备注内容")
|
||||
private String evaluateRemark;
|
||||
|
||||
private String processId;
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.supervision.service;
|
||||
|
||||
import com.supervision.pojo.vo.FeedBackVO;
|
||||
|
||||
public interface FeedbackService {
|
||||
|
||||
FeedBackVO queryQaRecordForFeedback(String processId);
|
||||
|
||||
void saveFeedback(FeedBackVO feedbackVO);
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
package com.supervision.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.supervision.model.DiagnosisQaRecord;
|
||||
import com.supervision.model.Process;
|
||||
import com.supervision.pojo.vo.FeedBackQaVO;
|
||||
import com.supervision.pojo.vo.FeedBackVO;
|
||||
import com.supervision.service.DiagnosisQaRecordService;
|
||||
import com.supervision.service.FeedbackService;
|
||||
import com.supervision.service.ProcessService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class FeedbackServiceImpl implements FeedbackService {
|
||||
|
||||
private final ProcessService processService;
|
||||
|
||||
private final DiagnosisQaRecordService diagnosisQaRecordService;
|
||||
|
||||
|
||||
@Override
|
||||
public FeedBackVO queryQaRecordForFeedback(String processId) {
|
||||
List<DiagnosisQaRecord> qaRecordList = diagnosisQaRecordService.lambdaQuery().eq(DiagnosisQaRecord::getProcessId, processId).list();
|
||||
List<FeedBackQaVO> feedBackQaVOList = qaRecordList.stream().map(e -> {
|
||||
FeedBackQaVO feedBackQaVO = new FeedBackQaVO();
|
||||
feedBackQaVO.setId(e.getId());
|
||||
feedBackQaVO.setQuestion(e.getQuestion());
|
||||
feedBackQaVO.setAnswer(e.getAnswer());
|
||||
feedBackQaVO.setFeedbackType(e.getFeedbackType());
|
||||
feedBackQaVO.setFeedbackItem(e.getFeedbackItem());
|
||||
feedBackQaVO.setFeedbackRemark(e.getFeedbackRemark());
|
||||
return feedBackQaVO;
|
||||
}).toList();
|
||||
Process process = processService.getById(processId);
|
||||
FeedBackVO feedBackVO = new FeedBackVO();
|
||||
feedBackVO.setQaList(feedBackQaVOList);
|
||||
feedBackVO.setProcessId(processId);
|
||||
feedBackVO.setEvaluateLevel(process.getEvaluateLevel());
|
||||
feedBackVO.setEvaluateRemark(process.getEvaluateRemark());
|
||||
return feedBackVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void saveFeedback(FeedBackVO feedbackVO) {
|
||||
processService.lambdaUpdate().eq(Process::getId, feedbackVO.getProcessId())
|
||||
.set(Process::getEvaluateLevel, feedbackVO.getEvaluateLevel())
|
||||
.set(Process::getEvaluateRemark, feedbackVO.getEvaluateRemark()).update();
|
||||
for (FeedBackQaVO feedBackQaVO : feedbackVO.getQaList()) {
|
||||
if (ObjectUtil.isNotEmpty(feedBackQaVO.getId())) {
|
||||
diagnosisQaRecordService.lambdaUpdate().eq(DiagnosisQaRecord::getId, feedBackQaVO.getId())
|
||||
.set(DiagnosisQaRecord::getFeedbackType, feedBackQaVO.getFeedbackType())
|
||||
.set(DiagnosisQaRecord::getFeedbackItem, feedBackQaVO.getFeedbackItem())
|
||||
.set(DiagnosisQaRecord::getFeedbackRemark, feedBackQaVO.getFeedbackRemark()).update();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue