增加admin生成箱子码的功能

This commit is contained in:
CounterFire2023 2024-04-18 19:30:44 +08:00
parent afe8c4ed90
commit afb3317e05

View File

@ -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)