Commit f381bd1b authored by 高诸锋's avatar 高诸锋

fix

parent e5db8927
Pipeline #3939 passed with stage
in 1 minute 0 seconds
......@@ -76,6 +76,17 @@ class PartnerController extends Controller {
return;
}
}
async fetchAgreements() {
const { ctx, service } = this;
const { id } = ctx.params;
const ret = await service.partner.fetchAgreements(id);
if (ret && String(ret.id) === id) {
ctx.success(ret);
return;
}
ctx.fail('未获取到协议');
}
}
module.exports = PartnerController;
......@@ -95,6 +95,11 @@ module.exports = app => {
defaultValue: '',
field: 'type',
},
notice: {
type: DataTypes.INTEGER(1),
allowNull: true,
field: 'notice',
},
}, {
tableName: 'sbH5_status',
timestamps: false,
......
......@@ -24,16 +24,15 @@ module.exports = app => {
sbRouter.get('/params', controller.script.fetchParamsInfo); // 获取登录参数字典
sbRouter.post('/tokens', controller.token.create); // 创建token
sbRouter.post('/orders', controller.order.create); // 创建订单号
sbRouter.post('/orders/:orderId', controller.order.show); // 获取订单号详情
// sbRouter.post('/orders/:orderId', controller.order.show); // 获取订单号详情
sbRouter.get('/hubs/:hubId/scripts', controller.script.fetchHubSeripts);// 根据hubId 获取脚本数据(数组)
sbRouter.get('/theme/:appKey', controller.partner.show);// 根据hubId 获取脚本数据(数组)
sbRouter.get('/theme/:appKey', controller.partner.show); // 根据appKey查询合作方的主题
// 这个接口之后会移除掉
sbRouter.get('/orders', controller.order.fetchOrderId);
sbRouter.post('/getToken', controller.partner.getToken);
sbRouter.post('/getData', controller.partner.partnerShow);
sbRouter.get('/agreements/:id', controller.partner.fetchAgreements); // 查询协议
sbRouter.post('/getToken', controller.partner.getToken); // 合作方获取token
sbRouter.post('/getData', controller.partner.partnerShow); // 合作方获取订单数据
sbRouter.post('/getCityConfig', controller.task.fetchCityConfig); // 合作方获取城市配置
};
......@@ -12,7 +12,7 @@ class CacheService extends Service {
}
/**
* 将taskId状态缓存到redis和数据库
* 将taskId状态缓存到cache和数据库
* @param {Object} key taskId
* - value: 状态 提示信息 status 、note={}
* - exprie: 过期时间(单位/s)
......@@ -36,7 +36,7 @@ class CacheService extends Service {
}
/**
* 获取task状态 优先redis
* 获取task状态 优先cache
* @param {Object} key taskId
* @return {Object} status note
*/
......
......@@ -100,6 +100,31 @@ class PartnerService extends Service {
}
}
}
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:', JSON.stringify(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}`, JSON.stringify(ret.data));
if (ret.status === 200 && ret.data && ret.data.id === id) {
await this.app.cache.set(redisAgreementsPrefix + id, JSON.stringify(ret.data), 300);
}
return ret.data;
}
}
module.exports = PartnerService;
......@@ -9,6 +9,11 @@ module.exports = appInfo => {
// add your config here
config.middleware = ['requestLog', 'errorHandler', 'verifyAppKey'];
// egg日志保存最长时间
config.logrotator = {
maxDays: 5,
};
config.verifyAppKey = {
match: '/orders',
};
......
......@@ -17,8 +17,10 @@ module.exports = () => {
host: 'https://dev-nginx.jianbing.com/zeus-api/v1',
fetchTheme: '/chaos/partners/theme',
fetchScripts: '/chaos/partners/scripts',
redisThemePrefix: 'URANUS.HF.PARNTERS.THEME',
redisScriptsPrefix: 'URANUS.HF.PARNTERS.SCRIPTS',
redisThemePrefix: 'PARNTERS.THEME',
redisScriptsPrefix: 'PARNTERS.SCRIPTS',
fetchAgreements: '',
redisAgreementsPrefix: 'PARNTERS.Agreements',
};
config.scriptsAPI = {
......
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