const JSZip = require('jszip');
/**
* 选中多个订单 然后导出其中用户的上传的身份证图片正反面
* @param {*} data
*/
static async imgZip(data) {
data.trade_ids = JSON.parse(data.trade_ids)
let arr = "'" + data.trade_ids.join("','") + "'";
//先循环查出地址
let info = await super.query(`
SELECT b.*,c.path,c.pathback FROM (
SELECT * from (
SELECT name,idCard,credit_no,trade_id from laborpersontemp where trade_id in (${arr})
UNION ALL
SELECT name,idCard,credit_no,trade_id from laborpersonrecord where trade_id in (${arr})
) a GROUP BY a.idCard,a.credit_no
) b INNER JOIN laborpersonmain c on b.idCard=c.idCard and b.credit_no = c.credit_no and c.status = '2'
GROUP BY c.idCard;
`);
let len = info.length;
var zip = new JSZip();
for (let i = 0; i < len; i++) {
let name1 = `${info[i].idCard}_${info[i].name}正.${info[i].path.split('.')[info[i].path.split('.').length - 1]}`;
let name2 = `${info[i].idCard}_${info[i].name}反.${info[i].path.split('.')[info[i].path.split('.').length - 1]}`;
let buffer1 = Buffer.from(fs.readFileSync(path.resolve(`${Config.rootPath}/public/${info[i].path}`)));
let buffer2 = Buffer.from(fs.readFileSync(path.resolve(`${Config.rootPath}/public/${info[i].pathback}`)));
zip.file(name1, buffer1, { base64: true });
zip.file(name2, buffer2, { base64: true });
}
// // 压缩
return await zip.generateAsync({
// 压缩类型选择nodebuffer,在回调函数中会返回zip压缩包的Buffer的值
type: "nodebuffer",
// 压缩算法
compression: "DEFLATE",
compressionOptions: {
level: 9
}
})
}