aozhiwei 714eeea721 1
2022-01-26 14:28:52 +08:00

56 lines
1.6 KiB
JavaScript

const util = require('util');
const utils = require('./utils');
const db = require("./db");
const log = require("./log");
const C = require("./C");
class BoxRepairer {
constructor(boxOrder) {
this.boxOrder = boxOrder;
}
async repairPaidOrder() {
await this.internalRepairPaidOrder();
utils.emitEvent(C.REMOVE_PENDING_ORDER_EVENT, this.boxOrder.getOrderId());
}
async internalRepairPaidOrder() {
const logClass = 'repairPaidOrder';
const {err, boxDb} = await this.getBoxDb(logClass);
if (err || !boxDb) {
utils.throwError(util.format('%s box not found orderDb:%s err:%s',
logClass,
JSON.stringify(this.boxOrder.getOrderDb()),
err
)
);
return;
}
log.info(util.format('%s begin orderDb:%s boxDb:%s',
logClass,
JSON.stringify(this.boxOrder.getOrderDb()),
JSON.stringify(boxDb)
)
);
if (boxDb['state'] == C.BOX_STATE_PAID) {
await this.boxOrder.setDone(logClass);
} else {
const err = await this.boxOrder.setBoxPaidState(logClass, boxDb);
if (!err) {
await this.boxOrder.setDone(logClass);
}
}
log.info(util.format('%s end orderDb:%s boxDb:%s',
logClass,
JSON.stringify(this.boxOrder.getOrderDb()),
JSON.stringify(boxDb)
)
);
}
}
exports.BoxRepairer = BoxRepairer;