礼包码:导出excel

This commit is contained in:
luying
2022-09-14 17:41:05 +08:00
parent 2d6f59ff57
commit 5fd7fa73fb
5 changed files with 37 additions and 13 deletions
+30 -9
View File
@@ -9,7 +9,7 @@ import { gameData } from '@pubUtils/data';
import { smsModel } from '@db/Sms';
import { isString } from 'underscore';
import { GiftCodeModel } from '@db/GiftCode';
import { GiftCodeDetailModel } from '@db/GiftCodeDetail';
import GiftCodeDetail, { GiftCodeDetailModel } from '@db/GiftCodeDetail';
import { deletRole } from '@pubUtils/roleUtil';
import { RScriptRecordModel } from '@db/RScriptRecord';
import { DicWar } from '@pubUtils/dictionary/DicWar';
@@ -23,6 +23,7 @@ import { TowerRecordModel } from '@db/TowerRecord';
import { nowSeconds } from '@pubUtils/timeUtil';
import { RoleCeModel, RoleCeType } from '@db/RoleCe';
import { HangUpRecordModel } from '@db/HangUpRecord';
const Excel = require('exceljs');
// import { resResult } from '@pubUtils/util';
@@ -530,21 +531,41 @@ export default class GMUsers extends Service {
return ctx.service.utils.resResult(STATUS.SUCCESS, giftCode);
}
public async getGiftCodeDetailFile(id: number) {
public async getGiftCodeDetailFile(id: number, fileType: string) {
const { ctx } = this;
let giftCode = await GiftCodeModel.findByGiftId(id);
if(!giftCode) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
let codes: string[] = [];
let giftCodeDetails = await GiftCodeDetailModel.findAllCodeByGiftId(giftCode.id, giftCode.generateCnt);
for(let {code} of giftCodeDetails) {
codes.push(code);
if(fileType == 'txt') {
let codes: string[] = [];
for(let {code} of giftCodeDetails) {
codes.push(code);
}
console.log(id, codes.join())
ctx.set('Content-Type', 'application/octet-stream');
return Buffer.from(codes.join('\n'));
} else if(fileType == 'xls'){
ctx.set('Content-Type', 'application/vnd.openxmlformats');
return await this.generateExcelFromGiftCode(giftCodeDetails);
}
console.log(id, codes.join())
}
ctx.set('Content-Type', 'application/octet-stream');
return Buffer.from(codes.join('\n'));
private async generateExcelFromGiftCode(giftCodeDetails: GiftCodeDetail[]) {
let workBook = new Excel.Workbook();
let worksheet = workBook.addWorksheet('sheet1');
let rows = giftCodeDetails.map(cur => [cur.code]);
worksheet.addTable({
name: 'table1',
ref: 'A1',
columns: [
{name: '礼包码', filterButton: false},
],
rows,
});
return await workBook.xlsx.writeBuffer();
}
public async getGiftCodeDetailList(page: number, pageSize: number, sortField: string, sortOrder: string, form: SearchGiftCodeDetailParam = {}) {