|
@@ -47,7 +47,7 @@ class executor extends EventEmitter {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- async addWatermark(image, file, student, index, showMarker) {
|
|
|
+ async addWatermark(image, file, student, index, showMarker, showHeader) {
|
|
|
let fontFile = config.watermark.fontFile
|
|
|
let color = config.watermark.color
|
|
|
let imgData = gm(image)
|
|
@@ -96,6 +96,9 @@ class executor extends EventEmitter {
|
|
|
let title = '主观题号 | 分数'
|
|
|
if (showMarker) {
|
|
|
title += ' | 评卷员'
|
|
|
+ if (showHeader) {
|
|
|
+ title += ' | 复核人'
|
|
|
+ }
|
|
|
}
|
|
|
let startY = y
|
|
|
let width = title.length * fontSize
|
|
@@ -111,6 +114,9 @@ class executor extends EventEmitter {
|
|
|
let content = detail.mainNumber + '-' + detail.subNumber + ' : ' + detail.score
|
|
|
if (showMarker) {
|
|
|
content = content + ' ' + (detail.marker || detail.markerName || '')
|
|
|
+ if (showHeader) {
|
|
|
+ content = content + ' ' + (detail.header || '')
|
|
|
+ }
|
|
|
}
|
|
|
width = Math.max(width, content.length * fontSize)
|
|
|
imgData.drawText(x, y += height, content)
|
|
@@ -148,7 +154,7 @@ class executor extends EventEmitter {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
- async downloadFile(append, remoteTemplate, localTemplate, data, dir, client, bucket, index, watermark, showMarker) {
|
|
|
+ async downloadFile(append, remoteTemplate, localTemplate, data, dir, client, bucket, index, watermark, showMarker, showHeader) {
|
|
|
data.index = index
|
|
|
let remote = mustache.render(remoteTemplate, data)
|
|
|
let local = path.join(dir, mustache.render(localTemplate, data))
|
|
@@ -181,7 +187,7 @@ class executor extends EventEmitter {
|
|
|
}
|
|
|
//是否需要添加分数水印
|
|
|
if (watermark) {
|
|
|
- return this.addWatermark(imgData, local, data, index, showMarker)
|
|
|
+ return this.addWatermark(imgData, local, data, index, showMarker, showHeader)
|
|
|
} else {
|
|
|
return new Promise((resolve, reject) => {
|
|
|
fs.writeFile(local, imgData, err => {
|
|
@@ -198,7 +204,7 @@ class executor extends EventEmitter {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- async downloadSheet(dir, template, append, failover, watermark, showMarker, params) {
|
|
|
+ async downloadSheet(dir, template, append, failover, watermark, showMarker, showHeader, params) {
|
|
|
let bucket = env.server.bucketPrefix + '-sheet'
|
|
|
let client = upyun(bucket, config.upyun.operator, config.upyun.password)
|
|
|
if (env.server.upyunDomain && env.server.upyunDomain != '') {
|
|
@@ -225,7 +231,7 @@ class executor extends EventEmitter {
|
|
|
let student = array[i]
|
|
|
student.examId = env.examId
|
|
|
for (let i = 1; i <= student.sheetCount; i++) {
|
|
|
- promises.push(this.downloadFile(append, config.imageUrl.sheet, template, student, dir, client, bucket, i, watermark, showMarker))
|
|
|
+ promises.push(this.downloadFile(append, config.imageUrl.sheet, template, student, dir, client, bucket, i, watermark, showMarker, showHeader))
|
|
|
}
|
|
|
try {
|
|
|
//等待所有图片下载完毕
|