Commit e7a260ca authored by 姜登's avatar 姜登

yys

parent 1ef51a0b
...@@ -87,26 +87,6 @@ class OrderController extends Controller { ...@@ -87,26 +87,6 @@ class OrderController extends Controller {
ctx.success({ orderId: object.orderId }); ctx.success({ orderId: object.orderId });
} }
async show() {
const { ctx, service } = this;
ctx.validate(this.showRule);
const { orderId } = ctx.params;
await service.signature.signatureCheck(ctx.request.body);
const data = await service.order.getOneByOrderId(orderId);
if (data) {
if (data.status === 'success') {
const result = await service.storage.read(orderId);
ctx.success(result);
return;
}
ctx.success({
status: data.status,
});
return;
}
ctx.fail('无此订单号');
}
async partnerShow() { async partnerShow() {
const { ctx, service } = this; const { ctx, service } = this;
try { try {
...@@ -118,9 +98,8 @@ class OrderController extends Controller { ...@@ -118,9 +98,8 @@ class OrderController extends Controller {
if (!(appKeyInfo && appKeyInfo.valid === true && appKeyInfo.enableHfData === true)) { if (!(appKeyInfo && appKeyInfo.valid === true && appKeyInfo.enableHfData === true)) {
return ctx.fail('未开通此服务'); return ctx.fail('未开通此服务');
} }
const data = await service.order.getOneByOrderId(orderId); const data = await service.order.getOneByOrderId({ orderId, status: 'success' });
if (data) { if (data) {
if (data.status === 'success') {
const result = await service.storage.read(orderId, appKey); const result = await service.storage.read(orderId, appKey);
ctx.body = { ctx.body = {
code: 0, code: 0,
...@@ -128,7 +107,6 @@ class OrderController extends Controller { ...@@ -128,7 +107,6 @@ class OrderController extends Controller {
}; };
return; return;
} }
}
ctx.body = { ctx.body = {
code: -1, code: -1,
msg: '无此订单号', msg: '无此订单号',
...@@ -139,25 +117,6 @@ class OrderController extends Controller { ...@@ -139,25 +117,6 @@ class OrderController extends Controller {
} }
} }
async orderShow() {
const { ctx, service } = this;
const { appKey, orderId } = ctx.params;
const appKeyInfo = await service.partner.fetchInfo(appKey);
if (!(appKeyInfo && appKeyInfo.valid === true && appKeyInfo.enableHfView === true)) {
return ctx.fail('未开通此服务');
}
const data = await service.order.getOneByOrderId(orderId);
if (data) {
if (data.status === 'success' && (data.appKey === appKey)) {
const result = await service.storage.read(orderId, appKey);
const ret = service.washData.dealData(result);
ctx.success(ret);
return;
}
}
ctx.fail('无此订单号');
}
async fetchOrderId() { async fetchOrderId() {
const { ctx, service } = this; const { ctx, service } = this;
try { try {
......
...@@ -133,27 +133,20 @@ class TaskController extends Controller { ...@@ -133,27 +133,20 @@ class TaskController extends Controller {
break; break;
case 0: case 0:
taskNote = { taskNote = {
status: 'success', status: 'wash',
note: { message: 'task success' }, note: { message: 'wash' },
}; };
try { try {
const insertData = await service.washData.wash(result);
const order = await service.order.getOneByTaskId(taskId); const order = await service.order.getOneByTaskId(taskId);
if (!order) { if (!order) {
throw new Error('任务已经结束了'); throw new Error('任务不存在');
} }
const { orderId, appKey } = order; const { orderId } = order;
insertData.orderId = orderId; await service.washData.wash(result, orderId);
insertData.cityName = await service.scripts.fetchScriptName(insertData.cid);
insertData.taskId = taskId;
insertData.appKey = appKey;
delete insertData.code;
await service.storage.write(insertData);
await service.cache.set({ await service.cache.set({
key: taskId, key: taskId,
value: taskNote, value: taskNote,
}); });
await service.partner.notice(order);
return; return;
} catch (err) { } catch (err) {
ctx.logger.error('handleCallback', JSON.stringify(err), JSON.stringify(result)); ctx.logger.error('handleCallback', JSON.stringify(err), JSON.stringify(result));
...@@ -173,6 +166,32 @@ class TaskController extends Controller { ...@@ -173,6 +166,32 @@ class TaskController extends Controller {
}); });
} }
async dataCallback() {
const { ctx, service } = this;
const { data } = ctx.request.body;
const { taskId, state } = data;
const order = await service.order.getOneByTaskId(taskId);
if (!order) {
throw new Error('任务不存在');
}
let taskNote = {
status: 'failure',
note: { message: '存储数据出错' },
};
if (state === 'success') {
taskNote = {
status: 'success',
note: { message: 'task success' },
};
}
await service.partner.notice(order, state);
await service.cache.set({
key: taskId,
value: taskNote,
});
ctx.success('ok');
}
} }
module.exports = TaskController; module.exports = TaskController;
...@@ -6,39 +6,41 @@ ...@@ -6,39 +6,41 @@
module.exports = app => { module.exports = app => {
const { router, controller } = app; const { router, controller } = app;
const gjjRouter = router.namespace(app.config.projectRootPath); const yysRouter = router.namespace(app.config.projectRootPath);
gjjRouter.post('/tasks', controller.task.create); // 创建任务 yysRouter.post('/tasks', controller.task.create); // 创建任务
gjjRouter.get('/tasks/:taskId', controller.task.show); // 获取任务状态 yysRouter.get('/tasks/:taskId', controller.task.show); // 获取任务状态
gjjRouter.post('/tasks/:taskId/submit', controller.task.submit); // 提交任务参数 yysRouter.post('/tasks/:taskId/submit', controller.task.submit); // 提交任务参数
gjjRouter.post('/tasks/:taskId/capture', controller.task.fetchCapture); // 获取验证码 yysRouter.post('/tasks/:taskId/capture', controller.task.fetchCapture); // 获取验证码
gjjRouter.post('/callback', controller.task.handleCallback); // 处理回调结果,不对外 yysRouter.post('/callback', controller.task.handleCallback); // 处理回调结果,不对外
// gjjRouter.get('/scripts', controller.script.fetchScripts); // 获取所有脚本信息 yysRouter.post('/dataCallback', controller.task.dataCallback);// 数据处理完成结果,不对外
// gjjRouter.get('/scripts/:phone');// 手机号获取脚本信息 // yysRouter.get('/scripts', controller.script.fetchScripts); // 获取所有脚本信息
// gjjRouter.get('/scripts/:scriptId', controller.script.fetchOneScripts); // 获取单一脚本信息
gjjRouter.get('/help/:scriptId', controller.script.fetchHelpInfo); // 获取帮助信息 // yysRouter.get('/scripts/:phone');// 手机号获取脚本信息
gjjRouter.get('/notice/:scriptId', controller.script.fetchNoticeInfo);// 获取提示信息 // yysRouter.get('/scripts/:scriptId', controller.script.fetchOneScripts); // 获取单一脚本信息
gjjRouter.get('/query_button/:scriptId', controller.script.fetchQueryButtonInfo); // 获取查询按钮信息
gjjRouter.get('/params', controller.script.fetchParamsInfo); // 获取登录参数字典 yysRouter.get('/help/:scriptId', controller.script.fetchHelpInfo); // 获取帮助信息
gjjRouter.post('/tokens', controller.token.create); // 创建token yysRouter.get('/notice/:scriptId', controller.script.fetchNoticeInfo);// 获取提示信息
gjjRouter.post('/orders', controller.order.create); // 创建订单号 yysRouter.get('/query_button/:scriptId', controller.script.fetchQueryButtonInfo); // 获取查询按钮信息
gjjRouter.get('/hubs/:phone/scripts', controller.script.fetchHubSeripts);// 根据phone 获取脚本数据(数组) yysRouter.get('/params', controller.script.fetchParamsInfo); // 获取登录参数字典
yysRouter.post('/tokens', controller.token.create); // 创建token
yysRouter.post('/orders', controller.order.create); // 创建订单号
gjjRouter.get('/theme/:appKey', controller.partner.show);// 根据appkey查询合作方主题 yysRouter.get('/hubs/:phone/scripts', controller.script.fetchHubSeripts);// 根据phone 获取脚本数据(数组)
gjjRouter.get('/agreements/:id', controller.partner.fetchAgreements);// 查询协议 yysRouter.get('/theme/:appKey', controller.partner.show);// 根据appkey查询合作方主题
gjjRouter.post('/getToken', controller.token.partnerCreate);// 合作方创建token yysRouter.get('/agreements/:id', controller.partner.fetchAgreements);// 查询协议
gjjRouter.post('/getOrderSn', controller.order.fetchOrderId);// 合作方获取订单号 yysRouter.post('/getToken', controller.token.partnerCreate);// 合作方创建token
gjjRouter.post('/getThxdData', controller.order.partnerShow);// 合作方获取订单数据 yysRouter.post('/getOrderSn', controller.order.fetchOrderId);// 合作方获取订单号
// gjjRouter.get('/orderData/:appKey/:orderId', controller.order.orderShow);// 获取展示页面数据 yysRouter.post('/getThxdData', controller.order.partnerShow);// 合作方获取订单数据
// yysRouter.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;
} }
......
...@@ -120,10 +120,11 @@ class PartnerService extends Service { ...@@ -120,10 +120,11 @@ class PartnerService extends Service {
return ret.data; return ret.data;
} }
async notice(order) { async notice(order, state) {
const { ctx } = this; const { ctx, service } = this;
const { orderId, notifyUrl, userId, notice } = order; const { orderId, notifyUrl, userId, notice } = order;
if (notifyUrl && notice !== '1') { const dbRes = await service.order.getOneByOrderId({ orderId, notice: 1 });
if (!dbRes && notifyUrl && notice !== '1') {
const ret = await ctx.curl(notifyUrl, { const ret = await ctx.curl(notifyUrl, {
charset: 'utf-8', charset: 'utf-8',
timeout: [30000, 30000], timeout: [30000, 30000],
...@@ -132,7 +133,7 @@ class PartnerService extends Service { ...@@ -132,7 +133,7 @@ class PartnerService extends Service {
data: { data: {
orderId, orderId,
userId, userId,
status: 'success', status: state,
}, },
} }
); );
......
...@@ -7,16 +7,20 @@ class WashDataService extends Service { ...@@ -7,16 +7,20 @@ class WashDataService extends Service {
super(ctx); super(ctx);
const { config } = this; const { config } = this;
this.washUrl = config.washAPI.host + config.washAPI.washUrl; this.washUrl = config.washAPI.host + config.washAPI.washUrl;
this.clearGjj = ['ID', 'phone', 'birthday', 'email', 'address', 'card', 'deposit_base', 'person_rate', 'company_rate', 'marriage', 'sex', 'company_id']; this.callbackUrl = config.dataCallbackUrl;
this.clearLoan = ['name', 'ID', 'warning_rate', 'fund_date', 'bank', 'phone', 'address', 'past_due', 'past_principle', 'past_interest', 'past_period', 'history_past_period', 'history_past_amount', 'assure_style', 'house_type', 'debit_account', 'left_period'];
} }
async wash(data) { async wash(data, orderId) {
const { app, washUrl, ctx } = this; const { app, washUrl, ctx } = this;
const rawdata = this._switchData(data); const rawdata = {
data,
callbackUrl: this.callbackUrl,
orderId,
netMark: 0,
};
const washData = await app.curl(washUrl, const washData = await app.curl(washUrl,
{ {
charset: 'utf-8', charset: 'utf-8',
timeout: [30000, 30000], timeout: [3000, 3000],
dataType: 'json', dataType: 'json',
data: rawdata, data: rawdata,
method: 'post', method: 'post',
...@@ -26,14 +30,6 @@ class WashDataService extends Service { ...@@ -26,14 +30,6 @@ class WashDataService extends Service {
ctx.logger.error(`【washData】url${washUrl} ,params`, rawdata, washData); ctx.logger.error(`【washData】url${washUrl} ,params`, rawdata, washData);
throw new Error('清洗数据出错'); throw new Error('清洗数据出错');
} }
if (washData.data.code !== 0) {
ctx.logger.error(`【washData】url${washUrl} ,params`, rawdata, washData.data);
throw new Error('清洗数据出错');
}
washData.data.data.general_analyzed_data.overdueClassify = {};
washData.data.data.general_analyzed_data.loanClassify = {};
washData.data.data.general_analyzed_data.blacklist = {};
return washData.data; return washData.data;
} }
...@@ -47,25 +43,6 @@ class WashDataService extends Service { ...@@ -47,25 +43,6 @@ class WashDataService extends Service {
bar.appKey = ''; bar.appKey = '';
return bar; return bar;
} }
dealData(data, passID = false) {
const { clearGjj, clearLoan } = this;
delete data.data.general_analyzed_data;
for (const gjjItem of data.data.gjj_data) {
for (const text of clearGjj) {
if (!(passID && text === 'ID')) {
delete gjjItem.gjj_brief[text];
}
}
delete gjjItem.gjj_account_analyzed_data;
}
for (const loanItem of data.data.loan_data) {
for (const text of clearLoan) {
delete loanItem.loan_brief[text];
}
}
return data;
}
} }
module.exports = WashDataService; module.exports = WashDataService;
...@@ -101,6 +101,7 @@ module.exports = () => { ...@@ -101,6 +101,7 @@ module.exports = () => {
config.callbackUrl = 'https://dev-nginx.jianbing.com/yysh5/callback'; config.callbackUrl = 'https://dev-nginx.jianbing.com/yysh5/callback';
config.dataCallbackUrl = 'https://dev-nginx.jianbing.com/yysh5/dataCallback';
return config; return config;
}; };
...@@ -103,6 +103,7 @@ module.exports = () => { ...@@ -103,6 +103,7 @@ module.exports = () => {
}; };
config.callbackUrl = process.env.CALLBACK_URL || 'https://dev-nginx.jianbing.com/yysh5/callback'; config.callbackUrl = process.env.CALLBACK_URL || 'https://dev-nginx.jianbing.com/yysh5/callback';
config.dataCallbackUrl = process.env.DATACALLBACK_URL || 'https://dev-nginx.jianbing.com/yysh5/dataCallback';
return config; return config;
}; };
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