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