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

[fix]

parent 35a5cfc7
Pipeline #6716 passed with stage
in 23 seconds
...@@ -81,7 +81,7 @@ class OrderController extends Controller { ...@@ -81,7 +81,7 @@ class OrderController extends Controller {
return ctx.fail('未开通此服务'); return ctx.fail('未开通此服务');
} }
await service.signature.signatureCheck(ctx.request.body); await service.signature.signatureCheck(ctx.request.body);
const data = await service.order.getOneByOrderId(orderId); const data = await service.order.getOneByOrderId({ orderId });
if (data) { if (data) {
if (data.status === 'success') { if (data.status === 'success') {
const result = await service.storage.read(orderId, appKey); const result = await service.storage.read(orderId, appKey);
...@@ -149,7 +149,7 @@ class OrderController extends Controller { ...@@ -149,7 +149,7 @@ class OrderController extends Controller {
if (!(appKeyInfo && appKeyInfo.valid === true && appKeyInfo.enableHfView === true)) { if (!(appKeyInfo && appKeyInfo.valid === true && appKeyInfo.enableHfView === true)) {
return ctx.fail('未开通此服务'); return ctx.fail('未开通此服务');
} }
const data = await service.order.getOneByOrderId(orderId); const data = await service.order.getOneByOrderId({ orderId });
if (data) { if (data) {
if (data.status === 'success' && (data.appKey === appKey)) { if (data.status === 'success' && (data.appKey === appKey)) {
const result = await service.storage.read(orderId, appKey); const result = await service.storage.read(orderId, appKey);
......
...@@ -23,7 +23,6 @@ class TaskController extends Controller { ...@@ -23,7 +23,6 @@ class TaskController extends Controller {
}; };
this.centersInfoRule = { this.centersInfoRule = {
sign: 'string', sign: 'string',
type: { type: 'enum', values: ['shebao'] },
params: { params: {
type: 'object', type: 'object',
rule: { rule: {
...@@ -139,7 +138,7 @@ class TaskController extends Controller { ...@@ -139,7 +138,7 @@ class TaskController extends Controller {
if (!order) { if (!order) {
throw new Error(`【taskId】:${taskId} 任务已经结束.`); throw new Error(`【taskId】:${taskId} 任务已经结束.`);
} }
const { orderId, appKey, notifyUrl, userId, cityId } = order; const { orderId, appKey, cityId } = order;
insertData.orderId = orderId; insertData.orderId = orderId;
// insertData.cityName = result.data.jsName.split('.')[0]; // insertData.cityName = result.data.jsName.split('.')[0];
insertData.jsName = result.data.jsName; insertData.jsName = result.data.jsName;
...@@ -149,7 +148,7 @@ class TaskController extends Controller { ...@@ -149,7 +148,7 @@ class TaskController extends Controller {
insertData.appKey = appKey; insertData.appKey = appKey;
delete insertData.code; delete insertData.code;
await service.storage.write(insertData); await service.storage.write(insertData);
await service.partner.notify({ taskId, notifyUrl, orderId, userId, appKey }); await service.partner.notify(order);
} catch (err) { } catch (err) {
ctx.logger.error(`【controller/task/handleCallback err】:${err}${JSON.stringify(result)}`); ctx.logger.error(`【controller/task/handleCallback err】:${err}${JSON.stringify(result)}`);
taskNote = { taskNote = {
...@@ -172,7 +171,6 @@ class TaskController extends Controller { ...@@ -172,7 +171,6 @@ class TaskController extends Controller {
const { ctx, service } = this; const { ctx, service } = this;
try { try {
ctx.validate(this.centersInfoRule); ctx.validate(this.centersInfoRule);
// await service.signature.signatureCheck(ctx.request.body);
const result = await service.scripts.getCentersInfo(ctx.request.body); const result = await service.scripts.getCentersInfo(ctx.request.body);
ctx.body = result; ctx.body = result;
return; return;
...@@ -193,8 +191,7 @@ class TaskController extends Controller { ...@@ -193,8 +191,7 @@ class TaskController extends Controller {
async fetchCityConfig() { async fetchCityConfig() {
const { ctx, service } = this; const { ctx, service } = this;
try { try {
ctx.validate(this.centersInfoRule); const result = await service.scripts.getCityInfo();
const result = await service.scripts.getCityInfo(ctx.request.body);
ctx.body = result; ctx.body = result;
return; return;
} catch (err) { } catch (err) {
......
...@@ -35,6 +35,6 @@ module.exports = app => { ...@@ -35,6 +35,6 @@ module.exports = app => {
sbRouter.post('/getOrderSn', controller.order.fetchOrderId); // 合作方获取订单号(老版H5) sbRouter.post('/getOrderSn', controller.order.fetchOrderId); // 合作方获取订单号(老版H5)
sbRouter.post('/getData', controller.order.partnerShow); // 合作方获取订单数据 sbRouter.post('/getData', controller.order.partnerShow); // 合作方获取订单数据
sbRouter.post('/getCentersInfo', controller.task.fetchCentersInfo); // 合作方获取社保中心配置 sbRouter.post('/getCentersInfo', controller.task.fetchCentersInfo); // 合作方获取社保中心配置
sbRouter.post('/getCityConfig', controller.task.fetchCityConfig); // 合作方获取社保省份和社保中心关系 sbRouter.get('/getCityConfig', controller.task.fetchCityConfig); // 合作方获取社保省份和社保中心关系
sbRouter.get('/orderData/:appKey/:orderId', controller.order.orderShow); // 获取展示页面数据 sbRouter.get('/orderData/:appKey/:orderId', controller.order.orderShow); // 获取展示页面数据
}; };
...@@ -3,10 +3,10 @@ ...@@ -3,10 +3,10 @@
const Service = require('egg').Service; const Service = require('egg').Service;
class OrderService extends Service { class OrderService extends Service {
async getOneByOrderId(orderId) { async getOneByOrderId(params) {
const { ctx } = this; const { ctx } = this;
const order = await ctx.model.TaskStatus.findOne({ const order = await ctx.model.TaskStatus.findOne({
where: { orderId }, where: params,
}); });
return order; return order;
} }
......
...@@ -96,43 +96,29 @@ class PartnerService extends Service { ...@@ -96,43 +96,29 @@ class PartnerService extends Service {
// 查询结束后回调通知合作方 // 查询结束后回调通知合作方
// 对于状态已经是成功的订单号不会在做通知 // 对于状态已经是成功的订单号不会在做通知
// orderId/userId/status // orderId/userId/status
async notify({ taskId, cb, orderId, userId, appKey, status = 'success' }) { async notify(order) {
const { ctx, service } = this; const { ctx, service } = this;
if (!cb) { const { orderId, notifyUrl, userId, notice } = order;
if (ctx.app.notifyMap.has(appKey)) { const dbRes = await service.order.getOneByOrderId({ orderId, notice: 1 });
cb = ctx.app.notifyMap.get(appKey); if (!dbRes && notifyUrl && notice !== '1') {
} else { const ret = await ctx.curl(notifyUrl, {
ctx.logger.info(`【orderId】:${orderId} 没有回调地址`); charset: 'utf-8',
return; timeout: [30000, 30000],
contentType: 'json',
method: 'POST',
data: {
order_id: orderId,
user_id: userId,
status: 'success',
},
} }
} );
ctx.logger.info(`【Partner】 notice ${notifyUrl}`, 'orderId:', orderId, 'result:', ret.status, JSON.stringify(ret.data));
const data = await service.cache.get({ key: taskId }); if (ret.status === 200) {
if (data && data.status === 'success') { await order.update({ notice: '1' });
ctx.logger.info(`【taskId】:${taskId} 模拟器多次通知任务成功情况`);
return;
}
if (data) {
try {
await ctx.curl(cb, {
method: 'POST',
data: { orderSn: orderId, status, userId },
dataType: 'json',
contentType: 'json',
timeout: ['30s', '30s'],
});
ctx.model.TaskStatus.update(
{ notice: 1 },
{ where: { taskId } }
);
} catch (e) { // 回调失败
ctx.logger.error(`【cb】:${cb} 回调通知失败`);
ctx.model.TaskStatus.update(
{ notice: 0 },
{ where: { taskId } }
);
} }
} }
return;
} }
} }
......
...@@ -183,7 +183,7 @@ class ScriptsService extends Service { ...@@ -183,7 +183,7 @@ class ScriptsService extends Service {
dataType: 'json', dataType: 'json',
contentType: 'json', contentType: 'json',
method: 'POST', method: 'POST',
data: params, data: { type: 'shebao', ...params },
}); });
return result.data; return result.data;
} catch (err) { } catch (err) {
...@@ -192,7 +192,7 @@ class ScriptsService extends Service { ...@@ -192,7 +192,7 @@ class ScriptsService extends Service {
} }
} }
async getCityInfo(params) { async getCityInfo() {
try { try {
const { cityInfoUrl, ctx } = this; const { cityInfoUrl, ctx } = this;
const result = await ctx.curl(cityInfoUrl, { const result = await ctx.curl(cityInfoUrl, {
...@@ -200,8 +200,7 @@ class ScriptsService extends Service { ...@@ -200,8 +200,7 @@ class ScriptsService extends Service {
timeout: ['30s', '30s'], timeout: ['30s', '30s'],
dataType: 'json', dataType: 'json',
contentType: 'json', contentType: 'json',
method: 'POST', method: 'get',
data: params,
}); });
return result.data; return result.data;
} catch (err) { } catch (err) {
......
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