Commit 2d13addb authored by 姜登's avatar 姜登

gjj

parent d62dd15d
Pipeline #4067 passed with stage
in 47 seconds
......@@ -50,13 +50,27 @@ class OrderController extends Controller {
const uuid = require('node-uuid');
ctx.validate(this.createRule);
let { appKey, userId, notifyUrl, backUrl, orderId } = ctx.request.body;
orderId = orderId || uuid.v1();
await service.order.update({
if (orderId) {
await service.order.update({
orderId,
taskId: '',
userId: userId || '',
cityId: '',
notifyUrl: (ctx.app.notifyMap.get(appKey) && ctx.app.notifyMap.get(appKey).notifyUrl) || '',
backUrl: backUrl || '',
appKey: appKey,
status: 'init',
})
ctx.success({ orderId });
return
}
orderId = uuid.v1();
await service.order.create({
orderId,
taskId: '',
userId: userId || '',
cityId: '',
notifyUrl: notifyUrl || (ctx.app.notifyMap.get(appKey) && ctx.app.notifyMap.get(appKey).notifyUrl) || '',
notifyUrl: notifyUrl || '',
backUrl: backUrl || '',
appKey: appKey,
status: 'init',
......
......@@ -20,40 +20,33 @@ class OrderService extends Service {
async create(params) {
const { ctx } = this;
// const order = await ctx.model.TaskStatus.findOne({
// where: { orderId: params.orderId },
// });
// if (order) {
// ctx.throw(400, { message: 'already have order' });
// }
await ctx.model.TaskStatus.create(params);
return;
}
async update(params) {
const { ctx } = this;
const order = await ctx.model.TaskStatus.findOne({
const order = await ctx.model.TaskStatus.findAll({
where: { orderId: params.orderId },
order: [['updateDate', 'DESC']]
order: [['createDate', 'DESC']],
});
if (!order) {
if (order.length === 0) {
ctx.throw(400, { message: 'no order' });
return;
}
if (params.orderId) {
const success = await ctx.model.TaskStatus.findOne({
where: { orderId: params.orderId, status: 'success' },
});
if (success) {
ctx.throw(400, { message: 'order success' });
for (const item of order) {
if (item.status === 'success') {
ctx.throw(400, { message: 'orderId success' });
return;
}
}
const { appKey, taskId, notifyUrl, backUrl, userId } = order;
const { appKey, taskId, notifyUrl, backUrl, userId } = order[0];
if (taskId) {
await ctx.model.TaskStatus.create({ appKey, status: 'init', notifyUrl, backUrl, userId, ...params })
} else {
await order.update(params);
await order[0].update(params);
}
return order;
return order[0];
}
}
......
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