import { GetPCMenus, QueryTableDefine } from '@/services/go/commonService/index'; import { LoginQuery } from '@/services/go/useInfo/index'; import APP from '@/services'; import { getAccoutIdList } from '@/services/bus/account'; import { isLogin } from '@/services/bus/login'; import { checkTokenLoop, handleTokenCheck } from '@/services/bus/token'; import { getAppConfig, getCommonApiUrl } from '@/services/http/getconf'; import { queryAllMyColloct } from '@/services/http/mine/colloct'; import { queryHsbyMyGoods } from '@/services/http/mine/index'; import { getServerTime, queryErrorInfos } from '@/services/http/system/index'; import { queryAccountInfo, queryAreaRoleMarket, queryTaAccountMarket, queryTradeDate } from '@/services/socket/account/index'; import { querySystemParam } from '@/services/socket/error/index'; import ProtobufCtr from '@/services/socket/protobuf/index'; import { setServiceURL } from '@/services/request/serviceURL'; import { localStorageUtil } from '@/utils/storage'; import { message } from 'ant-design-vue'; import { pollingNotice } from '../http/notice'; /** * 全局数据刷新 */ export async function globalDataRefresh(): Promise { // 全局初始化依赖查询 await queryDependencies(); try { // 首先判断是否登录 如果没有登录不需要长链 if (isLogin()) { // 获取服务时间,token校验需要用到 await getServerTime(); await LoginQuery(); // 建立行情交易长链x await APP.connectTrading(); // token 校验处理 const res = await handleTokenCheck() .then(() => true) .catch(() => false); if (!res) { // Router.push({ path: '/login' }); // 回到登录页面 return Promise.reject('刷新时token校验失败'); } else { // token校验成功 马上轮询 checkTokenLoop(); // 登录并且建立长链成功后 进行资金账号相关业务走长连查询 // await queryAfterLogin(); await queryAllMyColloct(); await GetPCMenus(); await QueryTableDefine(); } } else { // 重置数据中心数据 APP.reset(); } if (!localStorageUtil.getItem('errorCodeInfos')) { await queryErrorInfos(); } // await queryGoodsList(); return Promise.resolve('ok'); } catch (error) { return Promise.reject('刷新数据加载失败'); } } /** * 全局依赖的数据查询,涉及各个方面 */ async function queryDependencies(): Promise { try { // 加载proto文件 await ProtobufCtr.loadProto('./proto/mtp.proto'); /** 获取接口查询配置信息 */ const config = await getAppConfig(); const apiUrl = await getCommonApiUrl(config.data.apiUrl); if (apiUrl.data.code === 200) setServiceURL(apiUrl.data.data); // await APP.connectQuote(); /** 数据返回 */ return Promise.resolve(1); } catch (error) { message.error(error.message); return Promise.reject(error); } } /** * 登录后的查询,涉及各个方面 */ export async function queryAfterLogin(): Promise { try { await queryAccountInfo('').catch((err) => { throw '账号信息 查询失败' + err; }); // 查询市场权限 const isArea = (): boolean => APP.get('userInfo').UserType === 5; // 查询系统枚举参数 await Promise.all([ queryHsbyMyGoods(getAccoutIdList()).catch((err: string) => { throw '盘面: ' + err; }), isArea() ? queryAreaRoleMarket().catch((err: string) => { throw '投资者查根据经纪会员查市场权限 查询失败: ' + err; }) : queryTaAccountMarket().catch((err: string) => { throw '非投资者查资金市场权限 查询失败: ' + err; }), querySystemParam().catch(() => { throw '查询系统参数 查询失败'; }), // queryAccountTradeRuleAndFeeAndMargin().catch(() => { // throw '查询账户交易费用与规则信息的方法 查询失败'; // }), // queryErrorCode().catch((err) => { // console.error('查询错误码 查询失败:' + err); // return ''; // }), queryTradeDate().catch(() => { throw '查询交易日 查询失败'; }), ]); // 通知公告轮询 pollingNotice(); return Promise.resolve('ok'); } catch (err) { console.error(err); return Promise.reject(err); } }