| | |
| | | // thirdPartyApi.js |
| | | const axios = require('axios'); |
| | | |
| | | const logger = require('./logger'); // 根据实际情况调整路径 |
| | | // BASIC_API = 'https://hemobs.icoldchain.cn/' |
| | | const path = require('path'); |
| | | const FormData = require('form-data'); |
| | | // const logger = require(path.resolve(__dirname, 'logger')); |
| | | BASIC_API = 'https://hemobs.icoldchain.cn/' |
| | | const BASIC_API = 'http://testbs.ihemodialysis.com/' |
| | | let cachedToken = null; |
| | | let tokenExpiresAt = null; |
| | | |
| | | |
| | | // 获取 Token 的函数 |
| | | async function getAccessToken() { |
| | |
| | | |
| | | // 获取缓存或新的 Token |
| | | async function getCachedOrNewToken() { |
| | | logger.log('Check if the token exists') |
| | | logger.info('获取缓存或新的 Token') |
| | | if (cachedToken && tokenExpiresAt > Date.now()) { |
| | | logger.info('有缓存token,直接输出') |
| | | return cachedToken; |
| | | } |
| | | |
| | | // 如果 token 已经过期或不存在,则重新获取 |
| | | logger.log('If the token has expired or does not exist, retrieve it again') |
| | | logger.info('如果 token 已经过期或不存在,则重新获取') |
| | | console.log('如果 token 已经过期或不存在,则重新获取') |
| | | const { data, expires_in } = await getAccessToken(); |
| | | cachedToken = data; |
| | | tokenExpiresAt = Date.now() + (expires_in - 60) * 1000; // 提前 60 秒刷新 token |
| | |
| | | async function fetchThirdPartyDataNoToke(url, method = 'GET', headers = {}, data = null, queryParams = {}, pathParams = {}) { |
| | | try { |
| | | const fullUrl = buildUrl(url, pathParams); |
| | | logger.info(`打包token 请求头url${fullUrl},data=${JSON.stringify(data)}`) |
| | | const response = await axios({ |
| | | url: fullUrl, |
| | | method, |
| | |
| | | |
| | | return response.data; |
| | | } catch (error) { |
| | | console.error('Error fetching third-party data:', error.message); |
| | | |
| | | throw error; |
| | | } |
| | | } |
| | |
| | | async function fetchThirdPartyData(url, method = 'GET', headers = {}, data = null, queryParams = {}, pathParams = {}) { |
| | | try { |
| | | const token = await getCachedOrNewToken(); |
| | | logger.info(`get token====${token}`) |
| | | console.log('得到了token------------------------',token) |
| | | const fullUrl = buildUrl(url, pathParams); |
| | | |
| | | logger.info(`打包token 请求头url${fullUrl},data=${JSON.stringify(data)}`) |
| | | const response = await axios({ |
| | | url: fullUrl, |
| | | method, |
| | |
| | | |
| | | return response.data; |
| | | } catch (error) { |
| | | logger.error('Error fetching third-party data:', error.message) |
| | | console.error('Error fetching third-party data:', error.message); |
| | | logger.error(`请求失败!'${error.message} `) |
| | | throw error; |
| | | } |
| | | } |
| | |
| | | fetchThirdPartyData, |
| | | getAccessToken |
| | | }; |
| | | |
| | | // 插入数据 |
| | | const installData=async (mode)=>{ |
| | | console.log(mode) |
| | | try{ |
| | | let selectSql=`SELECT * FROM patient_rtcf_result WHERE code='${mode.recordNo}'` |
| | | const [rows] = await pool.promise().query(selectSql); |
| | | if(rows.length>0){ |
| | | let updateSql='' |
| | | if(mode.fatFree){ |
| | | updateSql=`UPDATE patient_rtcf_result SET rtcf_json_bf ='${JSON.stringify(mode)}'` |
| | | }else if (mode.bmi){ |
| | | updateSql=`UPDATE patient_rtcf_result SET rtcf_json_bmi ='${JSON.stringify(mode)}'` |
| | | } |
| | | if(updateSql){ |
| | | console.log(`-------------------------更新${updateSql}---------`) |
| | | console.log(updateSql) |
| | | await pool.promise().query(updateSql) |
| | | } |
| | | }else{ |
| | | console.log('34') |
| | | // 临时的人体成分分析 |
| | | let bf='' |
| | | // 临时的身高体重 |
| | | let bmi='' |
| | | if(mode.fatFree){ |
| | | bf=JSON.stringify(mode) |
| | | } |
| | | if(mode.bmi){ |
| | | bmi=JSON.stringify(mode) |
| | | } |
| | | console.log(`bf=${bf},bmi=====${bmi}`) |
| | | let sqlStr=`INSERT INTO patient_rtcf_result (id, code, patient_code,`+ |
| | | `comm_time,rtcf_json_bmi,`+ |
| | | `rtcf_json_bf,`+ |
| | | `create_time)`+ |
| | | `VALUES (0, '${mode.recordNo}', '${mode.userID}', '${mode.measureTime}','${bmi}','${bf}','${moment(new Date()).format('YYYY-MM-DD HH:mm:ss')}')` |
| | | console.log(sqlStr) |
| | | await pool.promise().query(sqlStr) |
| | | } |
| | | |
| | | }catch(err){ |
| | | console.log('数据写入异常22') |
| | | } |
| | | } |