From 8a0bbe1ffb7cd41664aa2240130c5d4abbc7dd9b Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 21 一月 2026 10:28:58 +0800
Subject: [PATCH] 双屏仪硬件回调信息添加诊所账号
---
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/H5AICallbackController.java | 37 ++++++++++++
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysAiMessageMapper.java | 16 +++++
ruoyi-system/src/main/java/com/ruoyi/system/service/TSysAiMessageService.java | 16 +++++
ruoyi-system/src/main/resources/mapper/system/TSysAiMessageMapper.xml | 19 ++++++
ruoyi-system/src/main/java/com/ruoyi/system/model/TSysAiMessage.java | 53 +++++++++++++++++
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysAiMessageServiceImpl.java | 20 ++++++
6 files changed, 161 insertions(+), 0 deletions(-)
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/H5AICallbackController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/H5AICallbackController.java
index fa25ff3..1ebce1b 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/H5AICallbackController.java
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/H5AICallbackController.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.system.model.*;
import com.ruoyi.system.service.*;
import com.ruoyi.system.utils.util.AesSimpleUtil;
@@ -47,6 +48,12 @@
private TSysInspectionRiskEstimateService sysInspectionRiskEstimateService;
@Autowired
private TSysChronicDiseaseService sysChronicDiseaseService;
+ @Autowired
+ private TSysAiMessageService sysAiMessageService;
+ @Autowired
+ private ISysUserService sysUserService;
+ @Autowired
+ private TCrmClinicService crmClinicService;
// @PostMapping("/reportReturn")
// public String reportReturn(String encryptedJson, String signEncryptedJson) throws Exception {
@@ -146,6 +153,10 @@
// 解密
String raw = AesUtil.decrypt(clientKey, clientIV , data);
log.info("H5舌面报告推送,解密后:{}",raw);
+ TSysAiMessage tSysAiMessage = new TSysAiMessage();
+ tSysAiMessage.setCommitType(1);
+ tSysAiMessage.setContent(raw);
+ tSysAiMessage.setCreateTime(LocalDateTime.now());
JSONObject jsonObject = JSONObject.parseObject(raw);
@@ -175,7 +186,10 @@
if(Objects.nonNull(vipEndTime) && vipEndTime.isAfter(LocalDateTime.now())){
sysInspection.setIsPay(1);
}
+ }else {
+ tSysAiMessage.setErrorMessage("未查询到患者");
}
+ sysAiMessageService.save(tSysAiMessage);
sysInspection.setOutUserId(outUserId);
sysInspection.setBirthday(birthday);
sysInspection.setSex("0".equals(gender)?1:2);
@@ -220,6 +234,10 @@
@PostMapping("/xiMaDoubleScreenReportPush")
public JSONObject xiMaDoubleScreenReportPush(@RequestBody JSONObject jsonObject){
log.info("双屏仪报告推送:{}",jsonObject);
+ TSysAiMessage tSysAiMessage = new TSysAiMessage();
+ tSysAiMessage.setCommitType(1);
+ tSysAiMessage.setContent(jsonObject.toJSONString());
+ tSysAiMessage.setCreateTime(LocalDateTime.now());
// 主体信息
String reportTime = jsonObject.getString("report_time"); // 报告时间
String report_print_url = jsonObject.getString("report_print_url"); // 报告H5页面地址
@@ -244,6 +262,7 @@
Long device_account_id = userInfo.getLong("device_account_id"); // 设备账号ID
String sex = userInfo.getString("sex"); // 性别
String age = userInfo.getString("age"); // 年龄
+ String device_account = userInfo.getString("device_account"); // 诊所账号
sysInspection.setThreeUserId(id);
sysInspection.setPhone(phone);
@@ -275,6 +294,24 @@
sysAppUser.setSex("男".equals(sex) ? 1 : 2);
}
+ // 查询诊所账号
+ SysUser sysUser = sysUserService.selectByPhone(device_account);
+ if(Objects.nonNull(sysUser)){
+ // 通过账号查询诊所信息
+ TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class)
+ .eq(TCrmClinic::getUserId, sysUser.getUserId())
+ .last("LIMIT 1"));
+ if(Objects.nonNull(crmClinic)){
+ sysAppUser.setClinicId(crmClinic.getId());
+ }else {
+ tSysAiMessage.setErrorMessage("未查询到诊所信息");
+ sysAiMessageService.save(tSysAiMessage);
+ }
+ }else {
+ tSysAiMessage.setErrorMessage("未查询到诊所绑定账号");
+ sysAiMessageService.save(tSysAiMessage);
+ }
+
sysInspectionService.save(sysInspection);
// 指脉结果
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysAiMessageMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysAiMessageMapper.java
new file mode 100644
index 0000000..96b2a8d
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysAiMessageMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.mapper;
+
+import com.ruoyi.system.model.TSysAiMessage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * AI推送消息表 Mapper 接口
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2026-01-21
+ */
+public interface TSysAiMessageMapper extends BaseMapper<TSysAiMessage> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysAiMessage.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysAiMessage.java
new file mode 100644
index 0000000..e92eb66
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysAiMessage.java
@@ -0,0 +1,53 @@
+package com.ruoyi.system.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * AI推送消息表
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2026-01-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("t_sys_ai_message")
+@ApiModel(value="TSysAiMessage对象", description="AI推送消息表")
+public class TSysAiMessage implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ private String id;
+
+ @ApiModelProperty(value = "推送内容")
+ @TableField("content")
+ private String content;
+
+ @ApiModelProperty(value = "推送时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @TableField("create_time")
+ private LocalDateTime createTime;
+
+ @ApiModelProperty(value = "推送类型 1=小程序 2=双屏仪硬件")
+ @TableField("commit_type")
+ private Integer commitType;
+
+ @ApiModelProperty(value = "错误信息提示")
+ @TableField("error_message")
+ private String errorMessage;
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysAiMessageService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysAiMessageService.java
new file mode 100644
index 0000000..8af7f6c
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysAiMessageService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.service;
+
+import com.ruoyi.system.model.TSysAiMessage;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * AI推送消息表 服务类
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2026-01-21
+ */
+public interface TSysAiMessageService extends IService<TSysAiMessage> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysAiMessageServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysAiMessageServiceImpl.java
new file mode 100644
index 0000000..5755bf1
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysAiMessageServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.system.service.impl;
+
+import com.ruoyi.system.model.TSysAiMessage;
+import com.ruoyi.system.mapper.TSysAiMessageMapper;
+import com.ruoyi.system.service.TSysAiMessageService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * AI推送消息表 服务实现类
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2026-01-21
+ */
+@Service
+public class TSysAiMessageServiceImpl extends ServiceImpl<TSysAiMessageMapper, TSysAiMessage> implements TSysAiMessageService {
+
+}
diff --git a/ruoyi-system/src/main/resources/mapper/system/TSysAiMessageMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TSysAiMessageMapper.xml
new file mode 100644
index 0000000..a70c3bf
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/TSysAiMessageMapper.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.TSysAiMessageMapper">
+
+ <!-- 通用查询映射结果 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.system.model.TSysAiMessage">
+ <id column="id" property="id" />
+ <result column="content" property="content" />
+ <result column="create_time" property="createTime" />
+ <result column="commit_type" property="commitType" />
+ <result column="error_message" property="errorMessage" />
+ </resultMap>
+
+ <!-- 通用查询结果列 -->
+ <sql id="Base_Column_List">
+ id, content, create_time, commit_type, error_message
+ </sql>
+
+</mapper>
--
Gitblit v1.7.1