1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- 'use strict';
- /**
- * 标准库std 相关接口
- *
- * @author Mai
- * @date 2020/3/15
- * @version
- */
- // 加密类
- const jwt = require('jsonwebtoken');
- const privateKey = 'jl2pm3850key888sc';
- const dealCatagoryApi = '/api/external/jlbb/folder';
- const dealDataApi = '/api/external/jlbb/contract';
- const pmUtils = {
- getJwt() {
- return jwt.sign({}, privateKey, {expiresIn: '10m', algorithm: 'HS256'});
- },
- async postData(ctx, url, data) {
- const res = await ctx.curl(url, {
- method: 'GET', //'POST',
- contentType: 'json',
- data,
- dataType: 'json',
- timeout: [2000, 10000],
- timing: true,
- });
- if (res.status !== 200) throw '请求项目管理数据异常';
- if (!res.data || res.data.code) throw '项目管理返回数据异常';
- return res.data.data;
- },
- };
- const filterLeaf = function(node, result) {
- if (node.children) {
- for (const child of node.children) {
- filterLeaf(child, result);
- }
- } else if (node.isfolder !== undefined && !node.isfolder) result.push(node);
- };
- module.exports = {
- async dealCatagory(ctx, pCode) {
- // mock
- // return [ {id: 1, name: 'A标'}, {id: 2, name: 'B标'}, {id: 3, name: 'C标'}];
- const url = ctx.app.config.managementProxyPath + dealCatagoryApi;
- try {
- const data = await pmUtils.postData(ctx, url, { code: pCode, token: pmUtils.getJwt() });
- const result = [];
- filterLeaf(data, result);
- return result;
- } catch (err) {
- ctx.log(err);
- return [];
- }
- },
- async dealData(ctx, pCode, selects) {
- if (!selects || selects.length === 0) return {};
- const url = ctx.app.config.managementProxyPath + dealDataApi;
- try {
- const data = { code: pCode, token: pmUtils.getJwt(), key: ['contracts', 'tree_contracts'], bidsectionid: selects };
- return await pmUtils.postData(ctx, url, data);
- } catch (err) {
- ctx.log(err);
- return {};
- }
- }
- };
|