| | |
| | | package cn.huge.module.ai.controller; |
| | | |
| | | import cn.huge.base.common.utils.GuavaCacheUtils; |
| | | import cn.huge.base.common.utils.HttpClientUtils; |
| | | import cn.huge.base.common.utils.ObjectUtils; |
| | | import cn.huge.base.common.utils.ReturnSucUtils; |
| | | import cn.huge.module.ai.controller.domain.dto.CaseInfoDetailDto; |
| | | import cn.huge.module.ai.controller.domain.dto.CaseInfoDto; |
| | | import cn.huge.module.ai.controller.domain.dto.CaseRiskDto; |
| | | import cn.huge.module.ai.controller.domain.dto.LawInfoDto; |
| | | import cn.huge.module.ai.controller.domain.vo.AiRequestVo; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.cloud.openfeign.support.FeignHttpClientProperties; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | |
| | | @Value("${ai.url}") |
| | | private String aiUrl; |
| | | |
| | | @RequestMapping("/get-case") |
| | | public Object getCase(@RequestParam String caseDes, @RequestParam String caseClaim, @RequestParam String caseId) { |
| | | @PostMapping("/get-case") |
| | | public Object getCase(@RequestBody AiRequestVo aiRequestVo) { |
| | | Object cacheAi = GuavaCacheUtils.getCacheAi("get-case"+aiRequestVo.getCaseId()); |
| | | if(ObjectUtils.isNotEmpty(cacheAi)){ |
| | | return ReturnSucUtils.getRepInfo("请求成功", cacheAi); |
| | | } |
| | | List<CaseInfoDto> caseInfoDtoList = new ArrayList<>(); |
| | | Map<String, String> params = new HashMap<>(); |
| | | params.put("caseDes", caseDes);//案件描述 |
| | | params.put("caseClaim", caseClaim);//案件诉求 |
| | | params.put("caseId", caseId);//案件id |
| | | params.put("topK", "3"); |
| | | params.put("caseDes", aiRequestVo.getCaseDes());//案件描述 |
| | | params.put("caseClaim", aiRequestVo.getCaseClaim());//案件诉求 |
| | | params.put("caseId", aiRequestVo.getCaseId());//案件id |
| | | params.put("topK", "2"); |
| | | params.put("metricType", "IP"); |
| | | String s = HttpClientUtils.httpPostForm(aiUrl + "/queryConciliationCase", params, new HashMap<>(), "utf-8"); |
| | | JSONObject object = JSONObject.parseObject(s); |
| | |
| | | caseInfoDtoList.add(caseInfoDto); |
| | | } |
| | | } |
| | | if (caseInfoDtoList.size() < 6) { |
| | | if (caseInfoDtoList.size() < 4) { |
| | | s = HttpClientUtils.httpPostForm(aiUrl + "/queryJudgmentCase", params, new HashMap<>(), "utf-8"); |
| | | object = JSONObject.parseObject(s); |
| | | code = object.getIntValue("code"); |
| | |
| | | } |
| | | } |
| | | } |
| | | GuavaCacheUtils.putCacheAi("get-case"+aiRequestVo.getCaseId(), caseInfoDtoList); |
| | | return ReturnSucUtils.getRepInfo("请求成功", caseInfoDtoList); |
| | | } |
| | | |
| | | |
| | | @RequestMapping("/get-law") |
| | | public Object getLaw(@RequestParam String caseDes, @RequestParam String caseClaim, @RequestParam String caseId) { |
| | | @PostMapping("/get-law") |
| | | public Object getLaw(@RequestBody AiRequestVo aiRequestVo) { |
| | | Object cacheAi = GuavaCacheUtils.getCacheAi("get-law"+aiRequestVo.getCaseId()); |
| | | if(ObjectUtils.isNotEmpty(cacheAi)){ |
| | | return ReturnSucUtils.getRepInfo("请求成功", cacheAi); |
| | | } |
| | | List<LawInfoDto> lawInfoDtos = new ArrayList<>(); |
| | | Map<String, String> params = new HashMap<>(); |
| | | params.put("caseDes", caseDes);//案件描述 |
| | | params.put("caseClaim", caseClaim);//案件诉求 |
| | | params.put("caseId", caseId);//案件id |
| | | params.put("caseDes", aiRequestVo.getCaseDes());//案件描述 |
| | | params.put("caseClaim", aiRequestVo.getCaseClaim());//案件诉求 |
| | | params.put("caseId", aiRequestVo.getCaseId());//案件id |
| | | String s = HttpClientUtils.httpPostForm(aiUrl + "/queryLawProvision", params, new HashMap<>(), "utf-8"); |
| | | JSONObject object = JSONObject.parseObject(s); |
| | | int code = object.getIntValue("code"); |
| | |
| | | lawInfoDtos.add(lawInfoDto); |
| | | } |
| | | } |
| | | GuavaCacheUtils.putCacheAi("get-law"+aiRequestVo.getCaseId(), lawInfoDtos); |
| | | return ReturnSucUtils.getRepInfo("请求成功", lawInfoDtos); |
| | | } |
| | | |
| | |
| | | String s = ""; |
| | | CaseInfoDetailDto caseInfoDetailDto = new CaseInfoDetailDto(); |
| | | if (type == 1) {//表示纠纷类案件 |
| | | s = HttpClientUtils.httpGet(aiUrl + "/getConciliationCaseText?caseId="+caseId, new HashMap<>(), "utf-8"); |
| | | s = HttpClientUtils.httpGet(aiUrl + "/getConciliationCaseText?caseId=" + caseId, new HashMap<>(), "utf-8"); |
| | | JSONObject object = JSONObject.parseObject(s); |
| | | int code = object.getIntValue("code"); |
| | | if (code == 200) { |
| | |
| | | caseInfoDetailDto.setCaseId(data.getString("id")); |
| | | caseInfoDetailDto.setCaseTitle(data.getString("case_title")); |
| | | caseInfoDetailDto.setCaseDesc(data.getString("case_des")); |
| | | caseInfoDetailDto.setCaseClaim("case_claim"); |
| | | caseInfoDetailDto.setCaseClaim(data.getString("case_claim")); |
| | | caseInfoDetailDto.setAgreeContent(data.getString("agree_content")); |
| | | } |
| | | } else { |
| | | s = HttpClientUtils.httpGet(aiUrl + "/getJudgmentCaseText?caseId="+caseId, new HashMap<>(), "utf-8"); |
| | | s = HttpClientUtils.httpGet(aiUrl + "/getJudgmentCaseText?cpwsCaseInfoId=" + caseId, new HashMap<>(), "utf-8"); |
| | | JSONObject object = JSONObject.parseObject(s); |
| | | int code = object.getIntValue("code"); |
| | | if (code == 200) { |
| | |
| | | return ReturnSucUtils.getRepInfo("请求成功", caseInfoDetailDto); |
| | | } |
| | | |
| | | @PostMapping("/get-clain-rise-case") |
| | | public Object getClaimRiskByCase(@RequestBody AiRequestVo aiRequestVo) { |
| | | Object cacheAi = GuavaCacheUtils.getCacheAi("get-clain-rise-case"+aiRequestVo.getCaseId()); |
| | | if(ObjectUtils.isNotEmpty(cacheAi)){ |
| | | return ReturnSucUtils.getRepInfo("请求成功", cacheAi); |
| | | } |
| | | CaseRiskDto caseRiskDto = new CaseRiskDto(); |
| | | Map<String, String> params = new HashMap<>(); |
| | | params.put("caseDes", aiRequestVo.getCaseDes());//案件描述 |
| | | params.put("caseClaim", aiRequestVo.getCaseClaim());//案件诉求 |
| | | params.put("caseId", aiRequestVo.getCaseId());//案件id |
| | | String s = HttpClientUtils.httpPostForm(aiUrl + "/getClaimRiskByCase", params, new HashMap<>(), "utf-8"); |
| | | JSONObject object = JSONObject.parseObject(s); |
| | | int code = object.getIntValue("code"); |
| | | if (code == 200) { |
| | | JSONObject data = object.getJSONObject("data"); |
| | | caseRiskDto.setIsClaimRisk(data.getIntValue("is_claim_risk")); |
| | | caseRiskDto.setAnalysisProcess(data.getString("analysis_process")); |
| | | } |
| | | GuavaCacheUtils.putCacheAi("get-clain-rise-case"+aiRequestVo.getCaseId(), caseRiskDto); |
| | | return ReturnSucUtils.getRepInfo("请求成功", caseRiskDto); |
| | | } |
| | | |
| | | } |