Commit 53ee8f5a authored by 姜登's avatar 姜登

gjjh5

parent a404dcef
......@@ -3,21 +3,30 @@
const Controller = require('egg').Controller;
class PartnerController extends Controller {
// constructor(ctx) {
// super(ctx);
// constructor(ctx) {
// super(ctx);
// }
// }
async show() {
const { ctx, service } = this;
const { appKey } = ctx.params;
const ret = await service.partner.fetchTheme(appKey);
if (ret && ret.id === appKey) {
if (ret && ret.appKey === appKey) {
ctx.success(ret);
return;
}
ctx.fail('尚未配置主题');
}
async fetchAgreements() {
const { ctx, service } = this;
const { id } = ctx.params;
const ret = await service.partner.fetchAgreements(id);
ctx.success(ret);
}
}
module.exports = PartnerController;
......@@ -3,7 +3,9 @@
module.exports = (options, app) => {
return async function errorHandler(ctx, next) {
try {
if(ctx.request.method == 'post'){
app.logger.info(JSON.stringify(ctx.request.body));
}
await next();
} catch (err) {
// 所有的异常都在 app 上触发一个 error 事件,框架会记录一条错误日志
......
......@@ -29,7 +29,9 @@ module.exports = app => {
gjjRouter.get('/hubs/:hubId/scripts', controller.script.fetchHubSeripts);// 根据hubId 获取脚本数据(数组)
gjjRouter.get('/theme/:appKey', controller.partner.show);// 根据hubId 获取脚本数据(数组)
gjjRouter.get('/theme/:appKey', controller.partner.show);// 根据appkey查询合作方主题
gjjRouter.get('/agreements/:id', controller.partner.fetchAgreements);//查询协议
gjjRouter.post('/getToken', controller.token.partnerCreate);// 合作方创建token
......
......@@ -22,7 +22,7 @@ class CacheService extends Service {
const data = await app.cache.get(taskPrefix + key);
if (!data || (data && data.status !== 'success')) {
await app.cache.set(taskPrefix + key, JSON.stringify(value), 'EX', exprie);
await app.cache.set(taskPrefix + key, JSON.stringify(value), exprie);
}
const order = await ctx.model.TaskStatus.findOne({
......
......@@ -22,15 +22,15 @@ class PartnerService extends Service {
}
}
}
const ret = await ctx.curl(`${host + fetchTheme}/${appKey}`, {
const ret = await ctx.curl(`${host + fetchTheme}/${appKey}/theme`, {
charset: 'utf-8',
timeout: ['30s', '30s'],
dataType: 'json',
method: 'GET',
});
ctx.logger.info(`【Partner】 fetchTheme ${host + fetchTheme}/${appKey}`, ret.data);
if (ret.status === 200 && ret.data && ret.data.id === appKey) {
await this.app.cache.set(redisThemePrefix + appKey, JSON.stringify(ret.data), 'EX', 7200);
if (ret.status === 200 && ret.data && ret.data.appKey === appKey) {
await this.app.cache.set(redisThemePrefix + appKey, JSON.stringify(ret.data), 7200);
}
return ret.data;
}
......@@ -58,7 +58,31 @@ class PartnerService extends Service {
});
ctx.logger.info(`【Partner】 fetchTheme ${url}`, ret.data);
if (ret.status === 200 && ret.data && ret.data.id === appKey) {
await this.app.cache.set(redisScriptsPrefix + appKey, JSON.stringify(ret.data), 'EX', 7200);
await this.app.cache.set(redisScriptsPrefix + appKey, JSON.stringify(ret.data), 7200);
}
return ret.data;
}
async fetchAgreements(id) {
const { ctx, partnerAPI: { fetchAgreements, host, redisAgreementsPrefix } } = this;
const data = await this.app.cache.get(redisAgreementsPrefix + id);
if (data) {
try {
return JSON.parse(data);
} catch (err) {
ctx.logger.error('【Partner】 fetchAgreements', redisAgreementsPrefix + id, 'result:', data, err);
await this.app.cache.del(redisAgreementsPrefix + id);
}
}
const url = `${host + fetchAgreements}/${id}`;
const ret = await ctx.curl(url, {
charset: 'utf-8',
timeout: ['30s', '30s'],
dataType: 'json',
method: 'GET',
});
ctx.logger.info(`【Partner】 fetchAgreements ${url}`, ret.data);
if (ret.status === 200 && ret.data && ret.data.id === id) {
await this.app.cache.set(redisScriptsPrefix + appKey, JSON.stringify(ret.data), 7200);
}
return ret.data;
}
......
......@@ -36,7 +36,7 @@ class ScriptsService extends Service {
});
ctx.logger.info(`【Scripts】fetchScripts,${baseURL + fetchScriptsUrl}`, 'result:', result.data);
if (result.data && result.data.length > 0) {
await this.app.cache.set(redisScriptsKey, JSON.stringify(result.data), 'EX', 300);
await this.app.cache.set(redisScriptsKey, JSON.stringify(result.data), 300);
}
return result.data;
......@@ -74,7 +74,7 @@ class ScriptsService extends Service {
});
ctx.logger.info(`【Scripts】fetchParams,${baseURL + fetchParamsInfoUrl}`, 'result:', result.data);
if (result.data && result.data.length > 0) {
await this.app.cache.set(redisParamsKey, JSON.stringify(result.data), 'EX', 300);
await this.app.cache.set(redisParamsKey, JSON.stringify(result.data), 300);
}
return result.data;
}
......
......@@ -22,15 +22,17 @@ module.exports = () => {
};
config.partnerAPI = {
host: 'https://dev-nginx.jianbing.com/zeus-api/v1',
fetchTheme: '/chaos/partners/theme',
host: 'https://uat-nginx.jianbing.com/zeus-api/v1',
fetchTheme: '/chaos/hf/partners',
fetchScripts: '/chaos/partners/scripts',
fetchAgreements: '/chaos/agreements',
redisThemePrefix: 'URANUS.HF.PARNTERS.THEME',
redisScriptsPrefix: 'URANUS.HF.PARNTERS.SCRIPTS',
redisAgreementsPrefix: 'URANUS.HF.PARNTERS.Agreements',
};
config.scriptsAPI = {
host: 'https://dev-nginx.jianbing.com/zeus-api/v1',
host: 'https://uat-nginx.jianbing.com/zeus-api/v1',
fetchScriptsUrl: '/chaos/hf/two_dimension_array/queries',
fetchOneScriptUrl: '/chaos/hf/two_dimension_array/info',
fetchParamsInfoUrl: '/chaos/hf/login_param_map',
......@@ -81,7 +83,7 @@ module.exports = () => {
delegate: 'model',
baseDir: 'model',
dialect: 'mysql',
host: 'rm-bp1272001633qc0x9.mysql.rds.aliyuncs.com',
host: 'rm-bp1272001633qc0x9o.mysql.rds.aliyuncs.com',
database: 'data_service_dev',
username: 'hexin',
password: 'gYUHszn9#q',
......
......@@ -64,10 +64,11 @@ module.exports = () => {
config.partnerAPI = {
host: 'https://dev-nginx.jianbing.com/zeus-api/v1',
fetchTheme: '/chaos/partners/theme',
fetchTheme: '/chaos/hf/partners',
fetchScripts: '/chaos/partners/scripts',
redisThemePrefix: 'URANUS.HF.PARNTERS.THEME',
redisScriptsPrefix: 'URANUS.HF.PARNTERS.SCRIPTS',
redisAgreementsPrefix: 'URANUS.HF.PARNTERS.Agreements',
};
config.lockKeys = {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment