index.ts 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. import { GetPCMenus, QueryTableDefine } from '@/services/go/commonService/index';
  2. import { LoginQuery } from '@/services/go/useInfo/index';
  3. import APP from '@/services';
  4. import { getAccoutIdList } from '@/services/bus/account';
  5. import { isLogin } from '@/services/bus/login';
  6. import { checkTokenLoop, handleTokenCheck } from '@/services/bus/token';
  7. import { getAppConfig, getCommonApiUrl } from '@/services/http/getconf';
  8. import { queryAllMyColloct } from '@/services/http/mine/colloct';
  9. import { queryHsbyMyGoods } from '@/services/http/mine/index';
  10. import { getServerTime, queryErrorInfos } from '@/services/http/system/index';
  11. import { queryAccountInfo, queryAreaRoleMarket, queryTaAccountMarket, queryTradeDate } from '@/services/socket/account/index';
  12. import { querySystemParam } from '@/services/socket/error/index';
  13. import ProtobufCtr from '@/services/socket/protobuf/index';
  14. import { setServiceURL } from '@/services/request/serviceURL';
  15. import { localStorageUtil } from '@/utils/storage';
  16. import { message } from 'ant-design-vue';
  17. import { pollingNotice } from '../http/notice';
  18. /**
  19. * 全局数据刷新
  20. */
  21. export async function globalDataRefresh(): Promise<string> {
  22. // 全局初始化依赖查询
  23. await queryDependencies();
  24. try {
  25. // 首先判断是否登录 如果没有登录不需要长链
  26. if (isLogin()) {
  27. // 获取服务时间,token校验需要用到
  28. await getServerTime();
  29. await LoginQuery();
  30. // 建立行情交易长链x
  31. await APP.connectTrading();
  32. // token 校验处理
  33. const res = await handleTokenCheck()
  34. .then(() => true)
  35. .catch(() => false);
  36. if (!res) {
  37. // Router.push({ path: '/login' }); // 回到登录页面
  38. return Promise.reject('刷新时token校验失败');
  39. } else {
  40. // token校验成功 马上轮询
  41. checkTokenLoop();
  42. // 登录并且建立长链成功后 进行资金账号相关业务走长连查询
  43. // await queryAfterLogin();
  44. await queryAllMyColloct();
  45. await GetPCMenus();
  46. await QueryTableDefine();
  47. }
  48. } else {
  49. // 重置数据中心数据
  50. APP.reset();
  51. }
  52. if (!localStorageUtil.getItem('errorCodeInfos')) {
  53. await queryErrorInfos();
  54. }
  55. // await queryGoodsList();
  56. return Promise.resolve('ok');
  57. } catch (error) {
  58. return Promise.reject('刷新数据加载失败');
  59. }
  60. }
  61. /**
  62. * 全局依赖的数据查询,涉及各个方面
  63. */
  64. async function queryDependencies(): Promise<number> {
  65. try {
  66. // 加载proto文件
  67. await ProtobufCtr.loadProto('./proto/mtp.proto');
  68. /** 获取接口查询配置信息 */
  69. const config = await getAppConfig();
  70. const apiUrl = await getCommonApiUrl(config.data.apiUrl);
  71. if (apiUrl.data.code === 200) setServiceURL(apiUrl.data.data);
  72. // await APP.connectQuote();
  73. /** 数据返回 */
  74. return Promise.resolve(1);
  75. } catch (error) {
  76. message.error(error.message);
  77. return Promise.reject(error);
  78. }
  79. }
  80. /**
  81. * 登录后的查询,涉及各个方面
  82. */
  83. export async function queryAfterLogin(): Promise<string> {
  84. try {
  85. await queryAccountInfo('').catch((err) => {
  86. throw '账号信息 查询失败' + err;
  87. });
  88. // 查询市场权限
  89. const isArea = (): boolean => APP.get('userInfo').UserType === 5;
  90. // 查询系统枚举参数
  91. await Promise.all([
  92. queryHsbyMyGoods(getAccoutIdList()).catch((err: string) => {
  93. throw '盘面: ' + err;
  94. }),
  95. isArea()
  96. ? queryAreaRoleMarket().catch((err: string) => {
  97. throw '投资者查根据经纪会员查市场权限 查询失败: ' + err;
  98. })
  99. : queryTaAccountMarket().catch((err: string) => {
  100. throw '非投资者查资金市场权限 查询失败: ' + err;
  101. }),
  102. querySystemParam().catch(() => {
  103. throw '查询系统参数 查询失败';
  104. }),
  105. // queryAccountTradeRuleAndFeeAndMargin().catch(() => {
  106. // throw '查询账户交易费用与规则信息的方法 查询失败';
  107. // }),
  108. // queryErrorCode().catch((err) => {
  109. // console.error('查询错误码 查询失败:' + err);
  110. // return '';
  111. // }),
  112. queryTradeDate().catch(() => {
  113. throw '查询交易日 查询失败';
  114. }),
  115. ]);
  116. // 通知公告轮询
  117. pollingNotice();
  118. return Promise.resolve('ok');
  119. } catch (err) {
  120. console.error(err);
  121. return Promise.reject(err);
  122. }
  123. }