commit c0161e33473de9c03272ee66121f6336c5c68eb9 Author: niuniuniu Date: Sat Nov 4 11:12:20 2023 +0800 知识库模块-胡志勇 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..493e215 --- /dev/null +++ b/.gitignore @@ -0,0 +1,47 @@ +###################################################################### +# Build Tools + +.gradle +/build/ +!gradle/wrapper/gradle-wrapper.jar + +logs/ +target/ +!.mvn/wrapper/maven-wrapper.jar + +###################################################################### +# IDE + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### JRebel ### +rebel.xml +### NetBeans ### +nbproject/private/ +build/* +nbbuild/ +dist/ +nbdist/ +.nb-gradle/ + +###################################################################### +# Others +*.log +*.xml.versionsBackup +*.swp + +!*/build/*.java +!*/build/*.html +!*/build/*.xml diff --git a/health-knowledge-common/pom.xml b/health-knowledge-common/pom.xml new file mode 100644 index 0000000..004be52 --- /dev/null +++ b/health-knowledge-common/pom.xml @@ -0,0 +1,127 @@ + + + 4.0.0 + + com.health + health-knowledge + 3.6.3 + + 3.6.6 + health-knowledge-common + + + + + com.baidu.aip + java-sdk + 4.12.0 + + + org.slf4j + slf4j-simple + + + + + + com.health + health-common-core + 3.6.5 + + + org.projectlombok + lombok + + + org.springframework.cloud + spring-cloud-starter-bootstrap + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + org.springframework.cloud + spring-cloud-starter-loadbalancer + + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + + io.jsonwebtoken + jjwt + 0.9.1 + + + + com.alibaba + fastjson + 1.2.80 + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-starter-validation + + + + org.apache.commons + commons-lang3 + + + + org.projectlombok + lombok + + + + cn.hutool + hutool-all + 5.8.3 + + + + com.aliyun + dysmsapi20170525 + 2.0.1 + + + + com.aliyun.oss + aliyun-sdk-oss + 3.12.0 + + + + + org.springframework.boot + spring-boot-starter-amqp + + + redis.clients + jedis + + + diff --git a/health-knowledge-common/src/main/java/com/health/knowledge/common/constants/Constants.java b/health-knowledge-common/src/main/java/com/health/knowledge/common/constants/Constants.java new file mode 100644 index 0000000..080bec0 --- /dev/null +++ b/health-knowledge-common/src/main/java/com/health/knowledge/common/constants/Constants.java @@ -0,0 +1,18 @@ +package com.health.knowledge.common.constants; + +/** + * @description: 系统常量 + * @author hzy + */ +public class Constants { + /** + * 成功标记 + */ + public static final Integer SUCCESS = 200; + public static final String SUCCESS_MSG = "操作成功"; + /** + * 失败标记 + */ + public static final Integer ERROR = 500; + public static final String ERROR_MSG = "操作异常"; +} diff --git a/health-knowledge-common/src/main/java/com/health/knowledge/common/domain/DiseaseDetail.java b/health-knowledge-common/src/main/java/com/health/knowledge/common/domain/DiseaseDetail.java new file mode 100644 index 0000000..2e9dbea --- /dev/null +++ b/health-knowledge-common/src/main/java/com/health/knowledge/common/domain/DiseaseDetail.java @@ -0,0 +1,43 @@ +package com.health.knowledge.common.domain; + +import lombok.Data; + +import java.util.Date; + +/** + * 病症详情 + */ +@Data +public class DiseaseDetail { + /** + * 病症详情主键ID + */ + private Integer diseaseDetailId; + /** + * 病症ID 关联科室表二级ID + */ + private Integer diseaseId; + /** + * 病理 + */ + private String pathology; + /** + * 症状 + */ + private String symptom; + /** + * 宜与忌(注意事项) + */ + private String attention; + /** + * 西医治疗内容 + */ + private String westernTreatment; + + + private Integer createUser; + private Date createTime; + private Integer updateUser; + private Date updateTime; + private Integer delStatus; +} diff --git a/health-knowledge-common/src/main/java/com/health/knowledge/common/domain/MedicineDetail.java b/health-knowledge-common/src/main/java/com/health/knowledge/common/domain/MedicineDetail.java new file mode 100644 index 0000000..56ef60c --- /dev/null +++ b/health-knowledge-common/src/main/java/com/health/knowledge/common/domain/MedicineDetail.java @@ -0,0 +1,55 @@ +package com.health.knowledge.common.domain; + + +import lombok.Data; + +import java.util.Date; + +/** + * 药品详情 + */ +@Data +public class MedicineDetail { + /** + * 药品详情主键ID + */ + private Integer medicineDetailId; + /** + * 药品ID + */ + private Integer medicineId; + /** + * 药品成分 + */ + private String ingredient; + /** + * 用药禁忌 + */ + private String medicineAvoid; + /** + * 功能主治 + */ + private String majorFunction; + /** + * 用法用量 + */ + private String usageAndDosage; + /** + * 药品性状 + */ + private String feature; + /** + * 包装规格 + */ + private String packageSpecification; + /** + * 不良反应 + */ + private String adverseReaction; + + + private Integer createUser; + private Date createTime; + private Integer updateUser; + private Date updateTime; +} diff --git a/health-knowledge-common/src/main/java/com/health/knowledge/common/domain/Moreover.java b/health-knowledge-common/src/main/java/com/health/knowledge/common/domain/Moreover.java new file mode 100644 index 0000000..c1b5b18 --- /dev/null +++ b/health-knowledge-common/src/main/java/com/health/knowledge/common/domain/Moreover.java @@ -0,0 +1,87 @@ +package com.health.knowledge.common.domain; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * 科室病症。药品分类 三级 + */ +@Data +public class Moreover implements Serializable { + private Integer id; + private Integer parentId; + private String name; + private String picture; + private Integer createUser; + private Date createTime; + private Integer updateUser; + private Date updateTime; + private Integer delStatus; + + private List chirldren; + + + private Integer medicineDetailId; + /** + * 药品ID + */ + private Integer medicineId; + /** + * 药品成分 + */ + private String ingredient; + /** + * 用药禁忌 + */ + private String medicineAvoid; + /** + * 功能主治 + */ + private String majorFunction; + /** + * 用法用量 + */ + private String usageAndDosage; + /** + * 药品性状 + */ + private String feature; + /** + * 包装规格 + */ + private String packageSpecification; + /** + * 不良反应 + */ + private String adverseReaction; + + + + + + private Integer diseaseDetailId; + /** + * 病症ID 关联科室表二级ID + */ + private Integer diseaseId; + /** + * 病理 + */ + private String pathology; + /** + * 症状 + */ + private String symptom; + /** + * 宜与忌(注意事项) + */ + private String attention; + /** + * 西医治疗内容 + */ + private String westernTreatment; + +} diff --git a/health-knowledge-common/src/main/java/com/health/knowledge/common/result/Result.java b/health-knowledge-common/src/main/java/com/health/knowledge/common/result/Result.java new file mode 100644 index 0000000..f0e7e64 --- /dev/null +++ b/health-knowledge-common/src/main/java/com/health/knowledge/common/result/Result.java @@ -0,0 +1,76 @@ +package com.health.knowledge.common.result; + +import com.health.knowledge.common.constants.Constants; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author DongZl + * @description: 响应信息主体 + */ +@Data +public class Result implements Serializable { + + private static final long serialVersionUID = 1L; + /** + * 成功 + */ + public static final int SUCCESS = Constants.SUCCESS; + /** + * 失败 + */ + public static final int FAIL = Constants.ERROR; + /** + * 返回状态码 + */ + private int code; + /** + * 响应信息 + */ + private String msg; + /** + * 响应数据 + */ + private T data; + + public static Result success() { + return restResult(null, SUCCESS, Constants.SUCCESS_MSG); + } + + public static Result success(T data) { + return restResult(data, SUCCESS, Constants.SUCCESS_MSG); + } + + public static Result success(T data, String msg) { + return restResult(data, SUCCESS, msg); + } + + public static Result error() { + return restResult(null, FAIL, Constants.ERROR_MSG); + } + + public static Result error(String msg) { + return restResult(null, FAIL, msg); + } + + public static Result error(T data) { + return restResult(data, FAIL, Constants.ERROR_MSG); + } + + public static Result error(T data, String msg) { + return restResult(data, FAIL, msg); + } + + public static Result error(int code, String msg) { + return restResult(null, code, msg); + } + + private static Result restResult(T data, int code, String msg) { + Result apiResult = new Result<>(); + apiResult.setCode(code); + apiResult.setData(data); + apiResult.setMsg(msg); + return apiResult; + } +} diff --git a/health-knowledge-common/src/main/java/com/health/knowledge/common/utils/BaiDuAiCheck.java b/health-knowledge-common/src/main/java/com/health/knowledge/common/utils/BaiDuAiCheck.java new file mode 100644 index 0000000..a4cba9d --- /dev/null +++ b/health-knowledge-common/src/main/java/com/health/knowledge/common/utils/BaiDuAiCheck.java @@ -0,0 +1,36 @@ +package com.health.knowledge.common.utils; + +import org.json.JSONObject; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; + +public class BaiDuAiCheck { + + + /** + * 图片审核 + * @param file + * @return + * @throws IOException + */ + public static JSONObject checkImg(MultipartFile file) throws IOException { + byte[] files = FileCopyUtils.copyToByteArray(file.getInputStream()); + JSONObject response = BaiDuAiConfig.client.imageCensorUserDefined(files, null); + System.out.println(response); + return response; + } + + + + /** + * 文本审核 + * @param text + * @return + */ + public static JSONObject checkText(String text){ + JSONObject response = BaiDuAiConfig.client.textCensorUserDefined(text); + return response; + } +} diff --git a/health-knowledge-common/src/main/java/com/health/knowledge/common/utils/BaiDuAiConfig.java b/health-knowledge-common/src/main/java/com/health/knowledge/common/utils/BaiDuAiConfig.java new file mode 100644 index 0000000..3da33b6 --- /dev/null +++ b/health-knowledge-common/src/main/java/com/health/knowledge/common/utils/BaiDuAiConfig.java @@ -0,0 +1,22 @@ +package com.health.knowledge.common.utils; + + +import com.baidu.aip.contentcensor.AipContentCensor; + +/** + * 百度敏感信息配置 + */ +public class BaiDuAiConfig { + //设置APPID/AK/SK + private static final String APP_ID="41793871"; + private static final String API_KEY="kmuqlfvH0QSAzsHGuNQRpICB"; + public static final String SECRET_KEY="cF3KyORcop0x0PUiz3KUu1CcYFyBwzwp"; + + + /** + * 初始化客户端 + */ + public static final AipContentCensor client = new AipContentCensor(APP_ID, API_KEY, SECRET_KEY); + + +} diff --git a/health-knowledge-remote/pom.xml b/health-knowledge-remote/pom.xml new file mode 100644 index 0000000..1fda39c --- /dev/null +++ b/health-knowledge-remote/pom.xml @@ -0,0 +1,40 @@ + + + 4.0.0 + + com.health + health-knowledge + 3.6.3 + + 3.6.3 + health-knowledge-remote + + + + dragon-public + dragon-maven + http://10.100.1.7:8081/repository/maven-public/ + + + + + dragon-release + dragon-releases + http://10.100.1.7:8081/repository/maven-releases/ + + + + + com.health + base-system-common + 3.6.6 + + + com.health + health-common-log + + + + diff --git a/health-knowledge-remote/src/main/java/com/health/knowledge/remote/RemoteKnowledgeService.java b/health-knowledge-remote/src/main/java/com/health/knowledge/remote/RemoteKnowledgeService.java new file mode 100644 index 0000000..a5dcebf --- /dev/null +++ b/health-knowledge-remote/src/main/java/com/health/knowledge/remote/RemoteKnowledgeService.java @@ -0,0 +1,16 @@ +package com.health.knowledge.remote; + +import com.health.knowledge.remote.factory.RemoteKnowledgeFallbackFactory; + +import org.springframework.cloud.openfeign.FeignClient; + + +/** + * 用户服务 + * + * @author health + */ +@FeignClient(contextId = "remoteKnowledgeService", value = "health-knowledge", fallbackFactory = RemoteKnowledgeFallbackFactory.class) +public interface RemoteKnowledgeService { + +} diff --git a/health-knowledge-remote/src/main/java/com/health/knowledge/remote/RemoteLogService.java b/health-knowledge-remote/src/main/java/com/health/knowledge/remote/RemoteLogService.java new file mode 100644 index 0000000..a48ec59 --- /dev/null +++ b/health-knowledge-remote/src/main/java/com/health/knowledge/remote/RemoteLogService.java @@ -0,0 +1,14 @@ +package com.health.knowledge.remote; + +import com.health.knowledge.remote.factory.RemoteLogFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; + +/** + * 日志服务 + * + * @author health + */ +@FeignClient(contextId = "remoteLogService", value = "health-base-system", fallbackFactory = RemoteLogFallbackFactory.class) +public interface RemoteLogService { + +} diff --git a/health-knowledge-remote/src/main/java/com/health/knowledge/remote/factory/RemoteKnowledgeFallbackFactory.java b/health-knowledge-remote/src/main/java/com/health/knowledge/remote/factory/RemoteKnowledgeFallbackFactory.java new file mode 100644 index 0000000..2963942 --- /dev/null +++ b/health-knowledge-remote/src/main/java/com/health/knowledge/remote/factory/RemoteKnowledgeFallbackFactory.java @@ -0,0 +1,27 @@ +package com.health.knowledge.remote.factory; + + +import com.health.knowledge.remote.RemoteKnowledgeService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + + +/** + * 用户服务降级处理 + * + * @author health + */ +@Component +public class RemoteKnowledgeFallbackFactory implements FallbackFactory { + private static final Logger log = LoggerFactory.getLogger(RemoteKnowledgeFallbackFactory.class); + + @Override + public RemoteKnowledgeService create(Throwable throwable) { + log.error("用户服务调用失败:{}", throwable.getMessage()); + return new RemoteKnowledgeService() { + + }; + } +} diff --git a/health-knowledge-remote/src/main/java/com/health/knowledge/remote/factory/RemoteLogFallbackFactory.java b/health-knowledge-remote/src/main/java/com/health/knowledge/remote/factory/RemoteLogFallbackFactory.java new file mode 100644 index 0000000..eb44105 --- /dev/null +++ b/health-knowledge-remote/src/main/java/com/health/knowledge/remote/factory/RemoteLogFallbackFactory.java @@ -0,0 +1,27 @@ +package com.health.knowledge.remote.factory; + +import com.health.knowledge.remote.RemoteLogService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + + +/** + * 日志服务降级处理 + * + * @author health + */ +@Component +public class RemoteLogFallbackFactory implements FallbackFactory { + private static final Logger log = LoggerFactory.getLogger(RemoteLogFallbackFactory.class); + + @Override + public RemoteLogService create(Throwable throwable) { + log.error("日志服务调用失败:{}", throwable.getMessage()); + return new RemoteLogService() { + + }; + + } +} diff --git a/health-knowledge-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/health-knowledge-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..2dd0d96 --- /dev/null +++ b/health-knowledge-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,2 @@ +com.health.knowledge.remote.factory.RemoteKnowledgeFallbackFactory +com.health.knowledge.remote.factory.RemoteLogFallbackFactory diff --git a/health-knowledge-server/pom.xml b/health-knowledge-server/pom.xml new file mode 100644 index 0000000..b0b2698 --- /dev/null +++ b/health-knowledge-server/pom.xml @@ -0,0 +1,182 @@ + + + + com.health + health-knowledge + 3.6.3 + + 4.0.0 + health-knowledge-server + 3.6.3 + + + dragon-public + dragon-maven + http://10.100.1.7:8081/repository/maven-public/ + + + + + dragon-release + dragon-releases + http://10.100.1.7:8081/repository/maven-releases/ + + + + + com.health + health-knowledge-common + 3.6.6 + + + cn.hutool + hutool-all + 5.7.20 + + + com.health + base-file-common + + + + + redis.clients + jedis + 2.9.0 + + + + junit + junit + 4.12 + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + org.springframework.boot + spring-boot-starter-web + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.1.2 + + + + org.projectlombok + lombok + true + + + org.springframework.boot + spring-boot-starter-test + test + + + + com.health + base-file-remote + + + com.health + base-system-common + 3.6.6 + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + com.mysql + mysql-connector-j + + + + + com.health + health-common-datasource + + + + + com.health + health-common-datascope + + + + + com.health + health-common-log + + + + com.health + health-common-swagger + + + com.health + health-common-core + 3.6.5 + + + + + com.github.tobato + fastdfs-client + 1.26.5 + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + diff --git a/health-knowledge-server/src/main/java/com/health/knowledge/server/HealthKnowledgeApplication.java b/health-knowledge-server/src/main/java/com/health/knowledge/server/HealthKnowledgeApplication.java new file mode 100644 index 0000000..c2f20d8 --- /dev/null +++ b/health-knowledge-server/src/main/java/com/health/knowledge/server/HealthKnowledgeApplication.java @@ -0,0 +1,23 @@ +package com.health.knowledge.server; + +import com.health.common.security.annotation.EnableRyFeignClients; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; + +/** + * @author 冯凯 + * @version 1.0 + * @description: 知识库启动类 + * @date 2023/10/25 15:35 + */ +@SpringBootApplication +@EnableRyFeignClients +@EnableCaching +public class HealthKnowledgeApplication { + + public static void main(String[] args) { + SpringApplication.run(HealthKnowledgeApplication.class); + } +} + diff --git a/health-knowledge-server/src/main/java/com/health/knowledge/server/config/RedisConfig.java b/health-knowledge-server/src/main/java/com/health/knowledge/server/config/RedisConfig.java new file mode 100644 index 0000000..0e066b9 --- /dev/null +++ b/health-knowledge-server/src/main/java/com/health/knowledge/server/config/RedisConfig.java @@ -0,0 +1,24 @@ +package com.health.knowledge.server.config; + + +import com.health.knowledge.server.utils.SingleTonRedisUtil; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import redis.clients.jedis.Jedis; + +@Configuration +public class RedisConfig { + + @Bean + public SingleTonRedisUtil singleTonRedisUtil(@Qualifier("jedis") Jedis jedis){ + SingleTonRedisUtil singleTonRedisUtil = new SingleTonRedisUtil(jedis); + return singleTonRedisUtil; + } + + @Bean(name = "jedis") + public Jedis getJedis(){ + Jedis jedis = new Jedis("10.100.1.2", 6379); + return jedis; + } +} diff --git a/health-knowledge-server/src/main/java/com/health/knowledge/server/controller/MoreoverController.java b/health-knowledge-server/src/main/java/com/health/knowledge/server/controller/MoreoverController.java new file mode 100644 index 0000000..9420c1c --- /dev/null +++ b/health-knowledge-server/src/main/java/com/health/knowledge/server/controller/MoreoverController.java @@ -0,0 +1,301 @@ +package com.health.knowledge.server.controller; + +import com.health.knowledge.common.domain.DiseaseDetail; +import com.health.knowledge.common.domain.MedicineDetail; +import com.health.knowledge.common.domain.Moreover; +import com.health.knowledge.common.result.Result; +import com.health.knowledge.common.utils.BaiDuAiCheck; +import com.health.knowledge.server.service.MoreoverService; +import org.json.JSONObject; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.List; + +@RestController +@RequestMapping("/moreover") +public class MoreoverController { + @Autowired + private MoreoverService moreoverService; + + + + /** + * 递归 查询一二级 + * @param id + * @return + */ + @GetMapping("/findById/{id}") + public Moreover findById(@PathVariable Integer id){ + Moreover moreover=moreoverService.findById(id); + return moreover; + } + + + @GetMapping("/MoreoverList") + public Result> list(){ + List list=moreoverService.list(); + return Result.success(list); + } + + + /** + * 图片上传并审核图片内容 + * @param file + * @param type + * @return + * @throws IOException + */ + @PostMapping({"/upLoadImg/{type}"}) + public JSONObject upLoadImg(@RequestParam("file")MultipartFile file,@PathVariable("type")String type) throws IOException { + JSONObject jsonObject = new JSONObject(); + JSONObject result = BaiDuAiCheck.checkImg(file); + + if (result.get("conclusion")==null){ + jsonObject.put("code",1); + }else if (result.get("conclusion").equals("合规")){ + JSONObject srcJson = new JSONObject(); + srcJson.put("src",type); + jsonObject.put("code",0); + jsonObject.put("msg","上传成功"); + jsonObject.put("data",srcJson); + }else { + jsonObject.put("code",3); + jsonObject.put("msg","疑似或存在违规图片!请勿传播非法内容"); + } + + return jsonObject; + } + + /** + * 添加并审核科室、病症/药品、细分药品 内容 + * @param moreover + * @return + */ + @PostMapping("/addMoreover") + public Object addMoreover(@RequestBody Moreover moreover){ + JSONObject jsonObject = new JSONObject(); + JSONObject result = BaiDuAiCheck.checkText(moreover.getName()); + System.out.println(result); + if (result.get("conclusion")==null){ + jsonObject.put("code",2); + }else if (result.get("conclusion").equals("合规")){ + jsonObject.put("code",1); + Result result1=moreoverService.addMoreover(moreover); + return result1; + }else { + jsonObject.put("code",3); + } + + return jsonObject; + } + + + /** + * 添加药品详情 对药瓶详情内容审核 + */ + @PostMapping("/addMedicineDetail") + public Object addMedicineDetail(@RequestBody MedicineDetail medicineDetail){ + JSONObject jsonObject = new JSONObject(); + JSONObject text = BaiDuAiCheck.checkText(medicineDetail.toString()); + System.out.println(text); + if (text.get("conclusion")==null){ + jsonObject.put("code",2); + }else if (text.get("conclusion").equals("合规")){ + jsonObject.put("code",1); + Result result=moreoverService.addMecicineDetail(medicineDetail); + return result; + }else { + jsonObject.put("code",3); + } + return jsonObject; + } + + + /** + * 添加病症详情 对病症详情内容审核 + * @param diseaseDetail + * @return + */ + @PostMapping("/addDiseaseDetail") + public Object addDiseaseDetail(@RequestBody DiseaseDetail diseaseDetail){ + JSONObject jsonObject = new JSONObject(); + JSONObject checkText = BaiDuAiCheck.checkText(diseaseDetail.toString()); + System.out.println(checkText); + if (checkText.get("conclusion")==null){ + jsonObject.put("code",2); + }else if (checkText.get("conclusion").equals("合规")){ + jsonObject.put("code",1); + Result result=moreoverService.addDiseaseDetail(diseaseDetail); + return result; + }else { + jsonObject.put("code",3); + } + + return jsonObject; + } + + + /** + * 查询科室、药品(一级) + * @param id + * @return + */ + @GetMapping("/findOneId/{id}") + public List seekId(@PathVariable Integer id){ + List list=moreoverService.seekId(id); + return list; + } + + + /** + * 查询病症、药品(一二级) + * @param parentId + * @return + */ + @GetMapping("/findTwoId/{parentId}") + public List seekParentId(@PathVariable Integer parentId){ + List list=moreoverService.seekParentId(parentId); + return list; + } + + + /** + * 查询药品详情(二三级) + * @param parentId + * @return + */ + @GetMapping("findMedicineThree/{parentId}") + public List seekMedicineThree(@PathVariable Integer parentId){ + List list=moreoverService.seekMedicineThree(parentId); + return list; + } + + + /** + * 查询病症详情(二三级) + * @param parentId + * @return + */ + @GetMapping("/findDiseaseThree/{parentId}") + public List seekDiseaseThree(@PathVariable Integer parentId){ + List list=moreoverService.seekDiseaseThree(parentId); + return list; + } + + + /** + * 科室、药品逻辑删除 + * @param id + * @return + */ + @PostMapping("/delMoreover/{id}") + public Result delMoreover(@PathVariable Integer id){ + Result result=moreoverService.delMoreover(id); + return result; + } + + + /** + * 药品详情逻辑删除 + * @param medicineDetailId + * @return + */ + @PostMapping("/delMedicine/{medicineDetailId}") + public Result delMedicine(@PathVariable Integer medicineDetailId){ + Result result=moreoverService.delMedicine(medicineDetailId); + return result; + } + + + /** + * 病症详情逻辑删除 + * @param diseaseDetailId + * @return + */ + @PostMapping("/delDisease/{diseaseDetailId}") + public Result delDisease(@PathVariable Integer diseaseDetailId){ + Result result=moreoverService.delDisease(diseaseDetailId); + return result; + } + + + /** + * 修改科室/药品并审核修改信息 + * @param updateId + * @param moreover + * @return + */ + @PostMapping("/updateMoreover/{updateId}") + public Object updateMoreover(@PathVariable Integer updateId,@RequestBody Moreover moreover){ + JSONObject jsonObject = new JSONObject(); + JSONObject checkText = BaiDuAiCheck.checkText(moreover.toString()); + System.out.println(checkText); + if (checkText.get("conclusion")==null){ + jsonObject.put("code",2); + }else if (checkText.get("conclusion").equals("合规")){ + jsonObject.put("code",1); + Result result=moreoverService.updateMoreover(moreover,updateId); + return result; + }else { + jsonObject.put("code",3); + } + + return jsonObject; + } + + /** + * 修改病症详情及内容审核 + * @param updateDetailId + * @param diseaseDetail + * @return + */ + @PostMapping("/updateDiseaseDetail/{updateDetailId}") + public Object updateDiseaseDetail(@PathVariable Integer updateDetailId,@RequestBody DiseaseDetail diseaseDetail){ + JSONObject jsonObject = new JSONObject(); + JSONObject detailtext = BaiDuAiCheck.checkText(diseaseDetail.toString()); + System.out.println(detailtext); + if (detailtext.get("conclusion")==null){ + jsonObject.put("code",2); + }else if (detailtext.get("conclusion").equals("合规")){ + jsonObject.put("code",1); + Result result=moreoverService.updateDiseaeDetail(diseaseDetail,updateDetailId); + return result; + }else { + jsonObject.put("code",3); + } + + return jsonObject; + } + + + /** + * 修改药品详情及内容审核 + * @param updateMedicineDetailId + * @param medicineDetail + * @return + */ + @PostMapping("/updateMedicineDetail/{updateMedicineDetailId}") + public Object updateMedicineDetail(@PathVariable Integer updateMedicineDetailId,@RequestBody MedicineDetail medicineDetail){ + JSONObject jsonObject = new JSONObject(); + JSONObject checkedText = BaiDuAiCheck.checkText(medicineDetail.toString()); + System.out.println(checkedText); + if (checkedText.get("conclusion")==null){ + jsonObject.put("code",2); + }else if (checkedText.get("conclusion").equals("合规")){ + jsonObject.put("code",1); + Result result=moreoverService.updateMedicineDetail(medicineDetail,updateMedicineDetailId); + return result; + }else { + jsonObject.put("code",3); + } + + return jsonObject; + } + + + + +} diff --git a/health-knowledge-server/src/main/java/com/health/knowledge/server/mapper/MoreoverMapper.java b/health-knowledge-server/src/main/java/com/health/knowledge/server/mapper/MoreoverMapper.java new file mode 100644 index 0000000..a4fa9a8 --- /dev/null +++ b/health-knowledge-server/src/main/java/com/health/knowledge/server/mapper/MoreoverMapper.java @@ -0,0 +1,62 @@ +package com.health.knowledge.server.mapper; + +import com.health.knowledge.common.domain.DiseaseDetail; +import com.health.knowledge.common.domain.MedicineDetail; +import com.health.knowledge.common.domain.Moreover; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface MoreoverMapper { + Moreover findById(@Param("id") Integer id); + + List findByParentId(@Param("parentId") Integer parentId); + + + void addMoreover(Moreover moreover); + + void addMedicineDetail(MedicineDetail medicineDetail); + + void addDiseaseDetail(DiseaseDetail diseaseDetail); + + List seekId(@Param("id") Integer id); + + List seekParentId(@Param("parentId") Integer parentId); + + List seekMedicineThree(@Param("parentId") Integer parentId); + + List seekDiseaseId(@Param("parentId") Integer parentId); + + void delMoreover(@Param("id") Integer id); + + void delMedicine(@Param("medicineDetailId") Integer medicineDetailId); + + void delDisease(@Param("diseaseDetailId") Integer diseaseDetailId); + + void updateMoreover(@Param("moreover") Moreover moreover, @Param("updateId") Integer updateId); + + void updateDiseaseDetail(@Param("diseaseDetail") DiseaseDetail diseaseDetail, @Param("updateDetailId") Integer updateDetailId); + + void updateMedicineDetail(@Param("medicineDetail") MedicineDetail medicineDetail, @Param("updateMedicineDetailId") Integer updateMedicineDetailId); + + List list(); + + + + +/* List findMoreoverList(@Param("parentId") Integer parentId); + + void deleteMoreover(@Param("id") Integer id); + + void addMoreover(Moreover moreover); + + void updateMoreover(Moreover moreover); + + List findParentId(@Param("parentId") Integer parentId); + + List secondId(@Param("parentId") Integer parentId); + + List findDiease(@Param("parentId") Integer parentId);*/ +} diff --git a/health-knowledge-server/src/main/java/com/health/knowledge/server/service/MoreoverService.java b/health-knowledge-server/src/main/java/com/health/knowledge/server/service/MoreoverService.java new file mode 100644 index 0000000..01f2c97 --- /dev/null +++ b/health-knowledge-server/src/main/java/com/health/knowledge/server/service/MoreoverService.java @@ -0,0 +1,56 @@ +package com.health.knowledge.server.service; + +import com.health.knowledge.common.domain.DiseaseDetail; +import com.health.knowledge.common.domain.MedicineDetail; +import com.health.knowledge.common.domain.Moreover; +import com.health.knowledge.common.result.Result; + +import java.util.List; + +public interface MoreoverService { + Moreover findById(Integer id); + + /* List findMoreoverList(Integer parentId); + + Result deleteMoreover(Integer id); + + + + Result updateMoreover(Moreover moreover); + + + List findParentId(Integer parentId); + + List secondId(Integer parentId); + + List findDiesaes(Integer parentId); +*/ + Result addMoreover(Moreover moreover); + + Result addMecicineDetail(MedicineDetail medicineDetail); + + Result addDiseaseDetail(DiseaseDetail diseaseDetail); + + List seekId(Integer id); + + List seekParentId(Integer parentId); + + List seekMedicineThree(Integer parentId); + + List seekDiseaseThree(Integer parentId); + + Result delMoreover(Integer id); + + Result delMedicine(Integer medicineDetailId); + + Result delDisease(Integer diseaseDetailId); + + Result updateMoreover(Moreover moreover, Integer updateId); + + Result updateDiseaeDetail(DiseaseDetail diseaseDetail, Integer updateDetailId); + + Result updateMedicineDetail(MedicineDetail medicineDetail, Integer updateMedicineDetailId); + + List list(); + +} diff --git a/health-knowledge-server/src/main/java/com/health/knowledge/server/service/imp/MoreoverServiceImpl.java b/health-knowledge-server/src/main/java/com/health/knowledge/server/service/imp/MoreoverServiceImpl.java new file mode 100644 index 0000000..e7f4cc9 --- /dev/null +++ b/health-knowledge-server/src/main/java/com/health/knowledge/server/service/imp/MoreoverServiceImpl.java @@ -0,0 +1,202 @@ +package com.health.knowledge.server.service.imp; + +import com.health.knowledge.common.domain.DiseaseDetail; +import com.health.knowledge.common.domain.MedicineDetail; +import com.health.knowledge.common.domain.Moreover; +import com.health.knowledge.common.result.Result; +import com.health.knowledge.server.utils.JsonUtils; +import com.health.knowledge.server.utils.SingleTonRedisUtil; +import com.health.knowledge.server.mapper.MoreoverMapper; +import com.health.knowledge.server.service.MoreoverService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +@Slf4j +public class MoreoverServiceImpl implements MoreoverService { + + @Autowired + private MoreoverMapper moreoverMapper; + @Autowired + private RedisTemplate redisTemplate; + //注入自定义的redis工具 + @Autowired + private SingleTonRedisUtil redisUtil; + + @Override + public Moreover findById(Integer id) { + Moreover moreover=moreoverMapper.findById(id); + if (moreover!=null){ + Integer parentId = moreover.getId(); + List moreoverList=moreoverMapper.findByParentId(parentId); + //儿子塞进去 + moreover.setChirldren(moreoverList); + //递归 + getTree(moreoverList); + } + return moreover; + } + + + + + //添加科室、药品 内容审核 + @Override + public Result addMoreover(Moreover moreover) { + + + moreoverMapper.addMoreover(moreover); + return Result.success(); + } + + @Override + public Result addMecicineDetail(MedicineDetail medicineDetail) { + moreoverMapper.addMedicineDetail(medicineDetail); + return Result.success(); + } + + @Override + public Result addDiseaseDetail(DiseaseDetail diseaseDetail) { + moreoverMapper.addDiseaseDetail(diseaseDetail); + return Result.success(); + } + + //查询一级 + @Override + public List seekId(Integer id) { + return moreoverMapper.seekId(id); + } + + @Override + public List seekParentId(Integer parentId) { + return moreoverMapper.seekParentId(parentId); + } + + @Override + public List seekMedicineThree(Integer parentId) { + return moreoverMapper.seekMedicineThree(parentId); + } + + @Override + public List seekDiseaseThree(Integer parentId) { + return moreoverMapper.seekDiseaseId(parentId); + } + + @Override + public Result delMoreover(Integer id) { + moreoverMapper.delMoreover(id); + return Result.success(); + } + + @Override + public Result delMedicine(Integer medicineDetailId) { + moreoverMapper.delMedicine(medicineDetailId); + return Result.success(); + } + + @Override + public Result delDisease(Integer diseaseDetailId) { + moreoverMapper.delDisease(diseaseDetailId); + return Result.success(); + } + + @Override + public Result updateMoreover(Moreover moreover, Integer updateId) { + moreoverMapper.updateMoreover(moreover,updateId); + return Result.success(); + } + + @Override + public Result updateDiseaeDetail(DiseaseDetail diseaseDetail, Integer updateDetailId) { + moreoverMapper.updateDiseaseDetail(diseaseDetail,updateDetailId); + return Result.success(); + } + + @Override + public Result updateMedicineDetail(MedicineDetail medicineDetail, Integer updateMedicineDetailId) { + moreoverMapper.updateMedicineDetail(medicineDetail,updateMedicineDetailId); + return Result.success(); + } + + @Override + public List list() { + //获取redis中存储的json字符串 + String morever = redisUtil.hget("moreover", "0"); + if (morever!=null){ + log.info("get moreover from redis"); + //json对象,封装的对象类型 + List moreovers = JsonUtils.jsonToList(morever, Moreover.class); + return moreovers; + } + + List moreovers=moreoverMapper.list(); + log.info("get moreover from db"); + + String s = JsonUtils.objectToJson(moreovers); + + redisUtil.hest("moreover","0",s); + log.info("set data to redis"); + + return moreovers; + } + + /*@Override + public List findMoreoverList(Integer parentId) { + return moreoverMapper.findMoreoverList(parentId); + } + + @Override + public Result deleteMoreover(Integer id) { + moreoverMapper.deleteMoreover(id); + return Result.success(); + } + + @Override + public Result addMoreover(Moreover moreover) { + moreoverMapper.addMoreover(moreover); + return Result.success(); + } + + @Override + public Result updateMoreover(Moreover moreover) { + moreoverMapper.updateMoreover(moreover); + return Result.success(); + } + + @Override + public List findParentId(Integer parentId) { + return moreoverMapper.findParentId(parentId); + } + + @Override + public List secondId(Integer parentId) { + return moreoverMapper.secondId(parentId); + } + + @Override + public List findDiesaes(Integer parentId) { + return moreoverMapper.findDiease(parentId); + }*/ + + + private void getTree(List moreoverList) { + List retList=new ArrayList<>(); + for (Moreover moreover : moreoverList) { + retList=moreoverMapper.findByParentId(moreover.getId()); + + //size>0有儿子 + if (retList.size()>0){ + //儿子塞进去 + moreover.setChirldren(retList); + getTree(retList); + } + } + + + } +} diff --git a/health-knowledge-server/src/main/java/com/health/knowledge/server/utils/JsonUtils.java b/health-knowledge-server/src/main/java/com/health/knowledge/server/utils/JsonUtils.java new file mode 100644 index 0000000..3e7a66c --- /dev/null +++ b/health-knowledge-server/src/main/java/com/health/knowledge/server/utils/JsonUtils.java @@ -0,0 +1,68 @@ +package com.health.knowledge.server.utils; + + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JavaType; +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.util.List; + +public class JsonUtils { + + //定义jackson对象 + private static final ObjectMapper MAPPER =new ObjectMapper(); + + + /** + * 将对象转换成json字符串 + * @param data + * @return + */ + public static String objectToJson(Object data){ + try { + String string = MAPPER.writeValueAsString(data); + return string; + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + return null; + } + + + /** + * 将json结果集转化为对象 + * @param jsonData + * @param beanType + * @return + * @param + */ + public static T jsonToPojo(String jsonData,Class beanType){ + try { + T t= MAPPER.readValue(jsonData,beanType); + return t; + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + return null; + } + + + /** + * 将json数据转换成pojo对象list + * @param jsonData + * @param beanType + * @return + * @param + */ + public static List jsonToList(String jsonData,Class beanType){ + JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType); + try { + List list = MAPPER.readValue(jsonData, javaType); + return list; + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + + return null; + } +} diff --git a/health-knowledge-server/src/main/java/com/health/knowledge/server/utils/RedisUtils.java b/health-knowledge-server/src/main/java/com/health/knowledge/server/utils/RedisUtils.java new file mode 100644 index 0000000..a5f9ebb --- /dev/null +++ b/health-knowledge-server/src/main/java/com/health/knowledge/server/utils/RedisUtils.java @@ -0,0 +1,11 @@ +package com.health.knowledge.server.utils; + +public interface RedisUtils { + + public void hest(String key,String filed,String value); + public String hget(String key,String field); + public void set(String key,String value); + public String get(String key); + public void expire(String key,int seconds); + public long ttl(String key); +} diff --git a/health-knowledge-server/src/main/java/com/health/knowledge/server/utils/SingleTonRedisUtil.java b/health-knowledge-server/src/main/java/com/health/knowledge/server/utils/SingleTonRedisUtil.java new file mode 100644 index 0000000..dac6c68 --- /dev/null +++ b/health-knowledge-server/src/main/java/com/health/knowledge/server/utils/SingleTonRedisUtil.java @@ -0,0 +1,41 @@ +package com.health.knowledge.server.utils; + +import redis.clients.jedis.Jedis; + +public class SingleTonRedisUtil implements RedisUtils{ + + private Jedis jedis; + public SingleTonRedisUtil(Jedis jedis){ + this.jedis=jedis; + } + + @Override + public void hest(String key, String filed, String value) { + jedis.hset(key,filed,value); + } + + @Override + public String hget(String key, String field) { + return jedis.hget(key,field); + } + + @Override + public void set(String key, String value) { + + } + + @Override + public String get(String key) { + return null; + } + + @Override + public void expire(String key, int seconds) { + + } + + @Override + public long ttl(String key) { + return 0; + } +} diff --git a/health-knowledge-server/src/main/resources/banner.txt b/health-knowledge-server/src/main/resources/banner.txt new file mode 100644 index 0000000..fbd45f5 --- /dev/null +++ b/health-knowledge-server/src/main/resources/banner.txt @@ -0,0 +1,10 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} + _ _ + (_) | | + _ __ _ _ ___ _ _ _ ______ ___ _ _ ___ | |_ ___ _ __ ___ +| '__|| | | | / _ \ | | | || ||______|/ __|| | | |/ __|| __| / _ \| '_ ` _ \ +| | | |_| || (_) || |_| || | \__ \| |_| |\__ \| |_ | __/| | | | | | +|_| \__,_| \___/ \__, ||_| |___/ \__, ||___/ \__| \___||_| |_| |_| + __/ | __/ | + |___/ |___/ \ No newline at end of file diff --git a/health-knowledge-server/src/main/resources/bootstrap.yml b/health-knowledge-server/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..7f09f4c --- /dev/null +++ b/health-knowledge-server/src/main/resources/bootstrap.yml @@ -0,0 +1,32 @@ +# Tomcat +server: + port: 10009 +mybatis: + configuration: + map-underscore-to-camel-case: true +# Spring +spring: + application: + # 应用名称 + name: health-knowledge + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 10.100.1.5:8848 + config: + # 配置中心地址 + server-addr: 10.100.1.5:8848 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + +management: + health: + rabbit: + enabled: false diff --git a/health-knowledge-server/src/main/resources/logback.xml b/health-knowledge-server/src/main/resources/logback.xml new file mode 100644 index 0000000..7f2b31a --- /dev/null +++ b/health-knowledge-server/src/main/resources/logback.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + diff --git a/health-knowledge-server/src/main/resources/mapper/knowledge/MoreoverMapper.xml b/health-knowledge-server/src/main/resources/mapper/knowledge/MoreoverMapper.xml new file mode 100644 index 0000000..3a36fb6 --- /dev/null +++ b/health-knowledge-server/src/main/resources/mapper/knowledge/MoreoverMapper.xml @@ -0,0 +1,75 @@ + + + + + insert into tb_moreover (id,parent_id,name,picture,create_user,create_time,update_user,update_time) + values (#{id},#{parentId},#{name},#{picture},#{createUser},NOW(),#{updateUser},#{updateTime}) + + + insert into tb_medicine_detail (medicine_detail_id,medicine_id,ingredient,medicine_avoid,major_function,usage_and_dosage,feature,package_specification,adverse_reaction,create_user,create_time,update_user,update_time) + values (#{medicineDetailId},#{medicineId},#{ingredient},#{medicineAvoid},#{majorFunction},#{usageAndDosage},#{feature},#{packageSpecification},#{adverseReaction},#{createUser},NOW(),#{updateUser},#{updateTime}) + + + insert into tb_disease_detail (disease_detail_id,disease_id,pathology,symptom,attention,western_treatment,create_user,create_time,update_user,update_time) + values (#{diseaseDetailId},#{diseaseId},#{pathology},#{symptom},#{attention},#{westernTreatment},#{createUser},NOW(),#{updateUser},#{updateTime}) + + + + update tb_moreover set del_status=2 where id =#{id} + + + + update tb_medicine_detail set del_status=2 where medicine_detail_id =#{medicineDetailId} + + + + update tb_disease_detail set del_status=2 where disease_detail_id =#{diseaseDetailId} + + + + + update tb_moreover set parent_id=#{moreover.parentId},name=#{moreover.name},picture=#{moreover.picture}, + update_user=#{moreover.updateUser},update_time=NOW() where id=#{updateId} + + + + + update tb_disease_detail set disease_id=#{diseaseDetail.diseaseId},pathology=#{diseaseDetail.pathology},symptom=#{diseaseDetail.symptom}, + attention=#{diseaseDetail.attention},western_treatment=#{diseaseDetail.westernTreatment},update_user=#{diseaseDetail.updateUser},update_time=NOW() + where disease_detail_id=#{updateDetailId} + + + + + update tb_medicine_detail set medicine_id=#{medicineDetail.medicineId},ingredient=#{medicineDetail.ingredient},medicine_avoid=#{medicineDetail.medicineAvoid}, + major_function=#{medicineDetail.majorFunction},usage_and_dosage=#{medicineDetail.usageAndDosage},feature=#{medicineDetail.feature},package_specification=#{medicineDetail.packageSpecification}, + adverse_reaction=#{medicineDetail.adverseReaction},update_user=#{medicineDetail.updateUser},update_time=NOW() where medicine_detail_id=#{updateMedicineDetailId} + + + + + + + + + + + + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..dd96eba --- /dev/null +++ b/pom.xml @@ -0,0 +1,36 @@ + + + + com.health + health-modules + 3.6.3 + + pom + 4.0.0 + 3.6.3 + health-knowledge + + health-knowledge-common + health-knowledge-remote + health-knowledge-server + + + 健康知识库模块knowledge + + + dragon-public + dragon-maven + http://10.100.1.7:8081/repository/maven-public/ + + + + + dragon-release + dragon-releases + http://10.100.1.7:8081/repository/maven-releases/ + + + +