|
@@ -0,0 +1,63 @@
|
|
|
+'use strict';
|
|
|
+
|
|
|
+/**
|
|
|
+ * 标准库std 相关接口
|
|
|
+ *
|
|
|
+ * @author Mai
|
|
|
+ * @date 2020/3/15
|
|
|
+ * @version
|
|
|
+ */
|
|
|
+
|
|
|
+// 加密类
|
|
|
+const jwt = require('jsonwebtoken');
|
|
|
+const privateKey = 'jl2pm3850key888sc';
|
|
|
+// todo 修改请求链接
|
|
|
+const dealCatagoryApi = '/api/external/jlbb/folder';
|
|
|
+const dealDataApi = '/api/external/jlbb/folder';
|
|
|
+
|
|
|
+const pmUtils = {
|
|
|
+ getJwt() {
|
|
|
+ // todo jwt加密
|
|
|
+ return jwt.sign({}, privateKey, {expiresIn: '5s', 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.err) throw '项目管理返回数据异常';
|
|
|
+ return res.data.data;
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+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 = { code: pCode, token: pmUtils.getJwt() };
|
|
|
+ return await pmUtils.postData(ctx, url, data);
|
|
|
+ } 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'], bidsection_id: selects };
|
|
|
+ return await pmUtils.postData(ctx, url, data);
|
|
|
+ } catch (err) {
|
|
|
+ ctx.log(err);
|
|
|
+ return {};
|
|
|
+ }
|
|
|
+ }
|
|
|
+};
|