diff --git a/src/controllers/voucher.controller.ts b/src/controllers/voucher.controller.ts index f6c2d9b..7df696e 100644 --- a/src/controllers/voucher.controller.ts +++ b/src/controllers/voucher.controller.ts @@ -9,7 +9,46 @@ import { BASE52_ALPHABET } from 'common/Constants' /** * 礼品券相关接口 */ +const adminAddress = ['0x7d60b9e6c836214b836a7e26a104c7937a6859e7', '0x50a7e4f330f948888d174caa063a6aa655555555'] class VoucherController extends BaseController { + @router('get /api/admin/generate/:batch/:num') + async generateTestVoucher2(req) { + logger.db('admin generate_test_voucher', req) + const user = req.user + if (!adminAddress.includes(user.address.toLowerCase())) { + throw new ZError(10, 'no access') + } + let { num, batch } = req.params + if (!num || num <= 1) { + num = 1 + } + let results = [] + const nanoid = customAlphabet(BASE52_ALPHABET, 8) + for (let i = 0; i < num; i++) { + let code = batch + nanoid() + // check if code exists + let record = await VoucherRecord.findOne({ code }) + if (record) { + i-- + continue + } + let voucher = new VoucherRecord({ + batch, + code, + scoreInit: 0, + chestLevel: 1, + chestNum: 1, + deliverTime: Date.now(), + activity: user.activity, + status: VoucherStatusEnum.NORMAL, + source: SourceEnum.TEST, + creator: user.id, + }) + await voucher.save() + results.push(voucher.code) + } + return results + } @router('post /api/voucher/generate') async generateTestVoucher(req) { logger.db('generate_test_voucher', req)