Pārlūkot izejas kodu

feat:舌诊(aikanshe版本)-配置模式

caoliqin 1 dienu atpakaļ
vecāks
revīzija
0ca6bacffe

+ 1 - 1
fs-service/src/main/java/com/fs/aiTongueApi/config/AiTongueConfig.java

@@ -4,7 +4,7 @@ public interface AiTongueConfig {
     String getFaceHistoryByIDUrl="https://api.aikanshe.com/agency/getHistoryByID";
     String quanxiUrl="https://api.aikanshe.com/agency/quanxi";
     String checkTongue="https://api.aikanshe.com/agency/checkTongue";
-    String appKey="i5h5u6g59dw9x0o6yymd3tf5ea6gcdqi";
+//    String appKey="i5h5u6g59dw9x0o6yymd3tf5ea6gcdqi";
 
     String newCheckTongue="http://132.232.234.246:5056/api/detect";
 }

+ 15 - 4
fs-service/src/main/java/com/fs/aiTongueApi/service/impl/AiTongueServiceImpl.java

@@ -1,6 +1,7 @@
 package com.fs.aiTongueApi.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.TypeReference;
 import com.fs.aiTongueApi.config.AiTongueConfig;
 import com.fs.aiTongueApi.domain.AITongueResult;
@@ -12,6 +13,8 @@ import com.fs.aiTongueApi.service.AiTongueService;
 import com.fs.common.utils.uuid.UUID;
 import com.fs.his.domain.FsHealthTongue;
 import com.fs.his.service.IFsHealthTongueService;
+import com.fs.system.domain.SysConfig;
+import com.fs.system.mapper.SysConfigMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.hc.core5.net.URIBuilder;
 import org.apache.http.HttpEntity;
@@ -43,10 +46,12 @@ public class AiTongueServiceImpl implements AiTongueService {
 
     @Autowired
     private IFsHealthTongueService tongueService;
+    @Autowired
+    private SysConfigMapper sysConfigMapper;
 
     @Override
     public AITongueResult<TongueData> getHistoryTongue(QueryAiTongue queryAiTongue) {
-        queryAiTongue.setAppkey(AiTongueConfig.appKey);
+        queryAiTongue.setAppkey(getAppKey());
         String result = sendPost(AiTongueConfig.getFaceHistoryByIDUrl, queryAiTongue);
         System.out.println(result);
         AITongueResult<TongueData> aiTongueResult = JSON.parseObject(result, new TypeReference<AITongueResult<TongueData>>(){});
@@ -65,7 +70,7 @@ public class AiTongueServiceImpl implements AiTongueService {
             // 添加文件或表单参数
             builder.addBinaryBody("file", inputStream, ContentType.DEFAULT_BINARY, "图片.jpg");
 
-            builder.addTextBody("appkey", AiTongueConfig.appKey);
+            builder.addTextBody("appkey", getAppKey());
             HttpEntity multipart = builder.build();
             httpPost.setEntity(multipart);
             // 执行请求
@@ -81,6 +86,12 @@ public class AiTongueServiceImpl implements AiTongueService {
         return aiTongueResult;
     }
 
+    private String getAppKey() {
+        SysConfig config = sysConfigMapper.selectConfigByConfigKey("his.config");
+        JSONObject json = JSON.parseObject(config.getConfigValue());
+        return json.getString("tongueAppKey");
+    }
+
     @Override
     public AITongueResult<TongueData> quanXiTongue(QueryQuanXi queryQuanXi) {
         String s="";
@@ -95,7 +106,7 @@ public class AiTongueServiceImpl implements AiTongueService {
 
             builder.addTextBody("age", queryQuanXi.getAge(), ContentType.create("text/plain", Charset.forName("UTF-8")));
             builder.addTextBody("male", queryQuanXi.getMale(), ContentType.create("text/plain", Charset.forName("UTF-8")));
-            builder.addTextBody("appkey", AiTongueConfig.appKey);
+            builder.addTextBody("appkey", getAppKey());
             if (queryQuanXi.getIsYuejin()!=null){
                 builder.addTextBody("isYuejin", queryQuanXi.getIsYuejin(), ContentType.create("text/plain", Charset.forName("UTF-8")));
             }
@@ -112,7 +123,7 @@ public class AiTongueServiceImpl implements AiTongueService {
             // 执行请求
             HttpResponse response = httpClient.execute(httpPost);
             String responseBody = EntityUtils.toString(response.getEntity());
-            System.out.println(responseBody);
+            log.info(responseBody);
             s=responseBody;
         } catch (Exception e) {
             e.printStackTrace();

+ 7 - 0
fs-service/src/main/java/com/fs/his/service/IFsHealthTongueService.java

@@ -74,6 +74,13 @@ public interface IFsHealthTongueService
 
     R insertFsHealthTongueByImgUrl(FsHealthTongueUParam param);
 
+    /**
+     * 爱看舌-旧版的舌诊功能
+     * @param param
+     * @return
+     */
+    R insertFsHealthTongueByImgUrlOld(FsHealthTongueUParam param);
+
     FsHealthTongueUVO selectFsHealthTongueByUserId(long userId);
 
     List<FsHealthTongueListVO> selectFsHealthTongueListVO(FsHealthTongueParam param);

+ 70 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsHealthTongueServiceImpl.java

@@ -25,6 +25,8 @@ import com.fs.his.vo.FsHealthTongueUVO;
 import com.qiniu.util.Json;
 import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.fs.his.mapper.FsHealthTongueMapper;
@@ -40,6 +42,8 @@ import com.fs.his.service.IFsHealthTongueService;
 @Service
 public class FsHealthTongueServiceImpl implements IFsHealthTongueService
 {
+    private static final Logger log = LoggerFactory.getLogger(FsHealthTongueServiceImpl.class);
+
     @Autowired
     private FsHealthTongueMapper fsHealthTongueMapper;
     @Autowired
@@ -186,6 +190,72 @@ public class FsHealthTongueServiceImpl implements IFsHealthTongueService
         }
     }
 
+    @Override
+    public R insertFsHealthTongueByImgUrlOld(FsHealthTongueUParam param) {
+
+        QueryQuanXi queryQuanXi = new QueryQuanXi();
+        if (param.getName()!=null&&!param.getName().equals("")) {
+            queryQuanXi.setName(param.getName());
+        } else {
+            queryQuanXi.setName("匿名");
+        }
+        if (param.getAge()!=null) {
+            queryQuanXi.setAge(param.getAge()+"");
+        } else {
+            queryQuanXi.setAge("55");
+        }
+
+        queryQuanXi.setFile(param.getTongueUrl());
+        if (param.getSex()!=null) {
+            queryQuanXi.setMale(param.getSex()==1?"1":"0");
+        } else {
+            queryQuanXi.setMale("0");
+        }
+
+        AITongueResult<TongueData> tongueDataAITongueResult = aiTongueService.quanXiTongue(queryQuanXi);
+
+        if (tongueDataAITongueResult.getCode().equals("40001")) {
+            FsHealthTongue fsHealthTongue = new FsHealthTongue();
+            fsHealthTongue.setAge(param.getAge());
+            fsHealthTongue.setPatientId(param.getPatientId());
+            fsHealthTongue.setName(param.getName());
+            fsHealthTongue.setSex(param.getSex());
+            fsHealthTongue.setStatus(0);
+            fsHealthTongue.setUserId(param.getUserId());
+            fsHealthTongue.setTongueUrl(param.getTongueUrl());
+            TongueData data = tongueDataAITongueResult.getData();
+            fsHealthTongue.setTongueId(data.getId());
+            fsHealthTongue.setCreateTime(new Date());
+            fsHealthTongue.setTypeName(data.getTypeName()+"质");
+
+            fsHealthTongue.setBotai(data.getBotai());
+            fsHealthTongue.setBotaiDesc(data.getBotaiDesc());
+            fsHealthTongue.setChihen(data.getChihen());
+            fsHealthTongue.setChihenDesc(data.getChihenDesc());
+            fsHealthTongue.setLiewen(data.getLiewen());
+            fsHealthTongue.setLiewenDesc(data.getLiewenDesc());
+            fsHealthTongue.setShemianName(data.getShemianName());
+            fsHealthTongue.setShemianDesc(data.getShemianDesc());
+            fsHealthTongue.setTaiseName(data.getTaiseName());
+            fsHealthTongue.setTaiseDesc(data.getTaiseDesc());
+            String json =fsHealthTongueMapper.selectTypeJSON();
+            String typeName = fsHealthTongue.getTypeName();
+            String itemTypeJSonValue="[]";
+            List<Map<String, Object>> itemTypeJsonList = (List<Map<String, Object>>) JSON.parse(json);
+            for (Map<String, Object> stringStringMap : itemTypeJsonList) {
+                String itemType = (String) stringStringMap.get("itemType");
+                if (itemType.equals(typeName)){
+                    itemTypeJSonValue= Json.encode(stringStringMap.get("item"));
+                }
+            }
+            fsHealthTongue.setTypeJson(itemTypeJSonValue);
+            fsHealthTongueMapper.insertFsHealthTongue(fsHealthTongue);
+            return R.ok().put("data",fsHealthTongue);
+        } else {
+            return R.error(tongueDataAITongueResult.getMeta().getMsg());
+        }
+    }
+
     @Override
     public FsHealthTongueUVO selectFsHealthTongueByUserId(long userId) {
         return fsHealthTongueMapper.selectFsHealthTongueByUserId(userId);

+ 10 - 1
fs-user-app/src/main/java/com/fs/app/controller/HealthTongueController.java

@@ -5,6 +5,7 @@ import com.fs.common.annotation.Log;
 import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
 import com.fs.common.enums.BusinessType;
+import com.fs.config.cloud.CloudHostProper;
 import com.fs.his.domain.FsDoctorArticle;
 import com.fs.his.domain.FsHealthTongue;
 import com.fs.his.domain.FsPatient;
@@ -49,6 +50,8 @@ public class HealthTongueController extends AppBaseController
     private IFsPatientService fsPatientService;
     @Autowired
     private FsDoctorArticleMapper fsDoctorArticleMapper;
+    @Autowired
+    private CloudHostProper cloudHostProper;
     /**
      * 查询舌苔列表
      */
@@ -152,6 +155,12 @@ public class HealthTongueController extends AppBaseController
 //            }
 //        }
         param.setUserId(Long.parseLong(getUserId()));
-        return fsHealthTongueService.insertFsHealthTongueByImgUrl(param);
+        R result;
+        if("鸿森堂".equals(cloudHostProper.getCompanyName())){
+            result = fsHealthTongueService.insertFsHealthTongueByImgUrlOld(param);
+        } else {
+            result = fsHealthTongueService.insertFsHealthTongueByImgUrl(param);
+        }
+        return result;
     }
 }