|
@@ -41,8 +41,8 @@ class executor extends EventEmitter {
|
|
|
async addWatermark(image, file, student, index, showMarker, showHeader) {
|
|
|
let fontFile = config.watermark.fontFile
|
|
|
let color = config.watermark.color
|
|
|
- let imgData = gm(image)
|
|
|
let size = sizeOf(image)
|
|
|
+ let imgData = gm(image)
|
|
|
//添加第一页的得分明细
|
|
|
if (index == 1) {
|
|
|
//初始坐标
|
|
@@ -150,17 +150,19 @@ class executor extends EventEmitter {
|
|
|
request_util({
|
|
|
url: url,
|
|
|
method: 'GET',
|
|
|
+ encoding: null,
|
|
|
timeout: 3000,
|
|
|
maxAttempts: 3,
|
|
|
retryDelay: 500,
|
|
|
retryStrategy: request_util.RetryStrategies.HTTPOrNetworkError
|
|
|
}, function (error, response, body) {
|
|
|
- if (response.statusCode == 200) {
|
|
|
- resolve(body);
|
|
|
+ if (!error && response.statusCode == 200) {
|
|
|
+ resolve(body)
|
|
|
} else {
|
|
|
- let message = response.statusCode + ' ' + (error || '') + (response.headers['error-info'] || '')
|
|
|
- logger.error(message)
|
|
|
- reject(message)
|
|
|
+ logger.error(error || (url + ' download error'))
|
|
|
+ error = error || {}
|
|
|
+ error.code = response ? response.statusCode : 500
|
|
|
+ reject(error)
|
|
|
}
|
|
|
})
|
|
|
})
|
|
@@ -209,8 +211,12 @@ class executor extends EventEmitter {
|
|
|
}
|
|
|
|
|
|
async downloadSheet(dir, template, append, failover, watermark, showMarker, showHeader, params) {
|
|
|
+ params.upload = true
|
|
|
+ params.withSheetUrl = true
|
|
|
+ params.withScoreDetail = watermark === true
|
|
|
+ params.withMarkTrack = watermark === true
|
|
|
try {
|
|
|
- let totalCount = await api.countStudents(env.examId, true)
|
|
|
+ let totalCount = await api.countStudents(env.examId, params)
|
|
|
this.emit('total', totalCount)
|
|
|
|
|
|
let count = 0
|
|
@@ -218,11 +224,6 @@ class executor extends EventEmitter {
|
|
|
this.emit('count', 0)
|
|
|
for (;;) {
|
|
|
pageNumber++
|
|
|
-
|
|
|
- params.upload = true
|
|
|
- params.withSheeturl = true
|
|
|
- params.withScoreDetail = watermark === true
|
|
|
- params.withMarkTrack = watermark === true
|
|
|
let array = await api.getStudents(env.examId, pageNumber, 10, params)
|
|
|
if (array == undefined || array.length == 0) {
|
|
|
break
|