礼包码:导出excel
This commit is contained in:
@@ -142,8 +142,8 @@ export default class UserController extends Controller {
|
||||
|
||||
public async getGiftCodeDetailFile() {
|
||||
const { ctx } = this;
|
||||
const { id } = ctx.params;
|
||||
ctx.body = await ctx.service.users.getGiftCodeDetailFile(parseInt(id));
|
||||
const { id, fileType } = ctx.params;
|
||||
ctx.body = await ctx.service.users.getGiftCodeDetailFile(parseInt(id), fileType);
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,9 @@ module.exports = () => {
|
||||
throw e;
|
||||
}
|
||||
const resBody = ctx.body;
|
||||
ctx.service.utils.log('INFO', `[${ctx.request.url}] [${ctx.logcode}] res: ${JSON.stringify(resBody)}`)
|
||||
if(ctx.request.url.indexOf('/api/users/getgiftcodedetailfile') == -1 ) {
|
||||
ctx.service.utils.log('INFO', `[${ctx.request.url}] [${ctx.logcode}] res: ${JSON.stringify(resBody)}`)
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ export default (app: Application) => {
|
||||
router.post('/api/users/generategiftcode', tokenParser, controller.users.generateGiftCode);
|
||||
router.post('/api/users/cancelgiftCode', tokenParser, controller.users.cancelGiftCode);
|
||||
router.post('/api/users/getgiftcodedetaillist', tokenParser, controller.users.getGiftCodeDetailList);
|
||||
router.get('/api/users/getgiftcodedetailfile/:id/:filename', controller.users.getGiftCodeDetailFile);
|
||||
router.get('/api/users/getgiftcodedetailfile/:id/:fileType/:filename', controller.users.getGiftCodeDetailFile);
|
||||
|
||||
router.post('/api/game/getregions', tokenParser, controller.game.getRegions);
|
||||
router.post('/api/game/createregion', tokenParser, controller.game.createRegion);
|
||||
|
||||
@@ -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 = {}) {
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
"egg-cors": "^2.2.3",
|
||||
"egg-http-proxy-middleware": "^1.0.3",
|
||||
"egg-scripts": "^2.6.0",
|
||||
"exceljs": "^4.3.0",
|
||||
"form-data": "^4.0.0",
|
||||
"formstream": "^1.1.1",
|
||||
"moment": "^2.29.0",
|
||||
|
||||
Reference in New Issue
Block a user