xuhy
2026-01-21 8a0bbe1ffb7cd41664aa2240130c5d4abbc7dd9b
双屏仪硬件回调信息添加诊所账号
5个文件已添加
1个文件已修改
161 ■■■■■ 已修改文件
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/H5AICallbackController.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysAiMessageMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TSysAiMessage.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/TSysAiMessageService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysAiMessageServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TSysAiMessageMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
        // 指脉结果
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysAiMessageMapper.java
New file
@@ -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> {
}
ruoyi-system/src/main/java/com/ruoyi/system/model/TSysAiMessage.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/service/TSysAiMessageService.java
New file
@@ -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> {
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysAiMessageServiceImpl.java
New file
@@ -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 {
}
ruoyi-system/src/main/resources/mapper/system/TSysAiMessageMapper.xml
New file
@@ -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>