Files
kelfy-datamanager/src/main/java/com/joju/datamanager/controller/IntelligentGuidanceController.java

76 lines
2.9 KiB
Java
Raw Normal View History

2024-04-07 11:28:44 +08:00
package com.joju.datamanager.controller;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.joju.datamanager.common.annotation.EleganceLog;
import com.joju.datamanager.common.result.Result;
import com.joju.datamanager.common.result.ResultUtil;
import com.joju.datamanager.model.guidance.IntelligentGuidanceCategory;
import com.joju.datamanager.model.guidance.IntelligentGuidanceQuestions;
import com.joju.datamanager.service.IntelligentGuidanceCategoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @description: 智能导诊
* @author: Mr.zs
* @create: 2024-03-21 14:00
**/
@RestController
@RequestMapping("/IntelligentGuidance")
public class IntelligentGuidanceController {
@Autowired
IntelligentGuidanceCategoryService intelligentGuidanceCategoryService;
@GetMapping("/testGuidance")
public Result testInterface() {
return ResultUtil.successData("ok");
}
@GetMapping("/getSymptom")
@EleganceLog(description = "导诊根据身体部位获取症状")
public Result getSymptomByBodyAreaType(String bodyAreaType) {
List<IntelligentGuidanceCategory> intelligentGuidanceCategoryList = intelligentGuidanceCategoryService.getSymptomByBodyAreaType(bodyAreaType);
Map<String, List<IntelligentGuidanceCategory>> listMap = intelligentGuidanceCategoryList.stream().collect(Collectors.groupingBy(IntelligentGuidanceCategory::getBodyArea));
String bodyArea = listMap.keySet().iterator().next();
JSONObject result = JSONUtil.createObj().put("bodyArea", bodyArea).put("categoryList", intelligentGuidanceCategoryList);
JSONUtil.toJsonStr(result);
return ResultUtil.successData(JSONUtil.toJsonStr(result));
}
@GetMapping("/getQuestions")
@EleganceLog(description = "导诊获取症状对应的子问题")
public Result getQuestionsByChildId(String childId) {
List<IntelligentGuidanceQuestions> intelligentGuidanceQuestionsList = intelligentGuidanceCategoryService.getQuestionsByChildId(childId);
List<IntelligentGuidanceQuestions> intelligentGuidanceQuestions = intelligentGuidanceQuestionsList.stream().sorted(Comparator.comparing(IntelligentGuidanceQuestions::getSortId)).collect(Collectors.toList());
return ResultUtil.successData(intelligentGuidanceQuestions);
}
@GetMapping("/getAllBodyArea")
@EleganceLog(description = "导诊获取身体区域划分")
public Result getAllBodyArea() {
List<IntelligentGuidanceCategory> list = intelligentGuidanceCategoryService.getAllBodyArea();
return ResultUtil.successData(list);
}
}