UNPKG

qrcode-framework

Version:

123 lines 7.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const sequelize_1 = require("sequelize"); const ErrorCode_1 = require("../common/ErrorCode"); const BaseService_1 = require("../core/BaseService"); const model_1 = require("../model"); const eKey_1 = require("../model/eKey"); class EKeyService extends BaseService_1.default { async applyEKey(key, uid, meta) { const user = await model_1.User.findByPk(uid); if (!user) { throw new ErrorCode_1.HttpError({ errorCode: ErrorCode_1.ERROR_CODE.USER.NOT_FOUND, status: 403, message: '当前用户不存在', }); } const now = Date.now(); const where = { key, deleted: false, status: 1, startAt: { [sequelize_1.Op.or]: [ { [sequelize_1.Op.is]: null, }, { [sequelize_1.Op.lte]: now, }, ], }, endAt: { [sequelize_1.Op.or]: [ { [sequelize_1.Op.is]: null, }, { [sequelize_1.Op.gte]: now, }, ], }, }; const eKey = await eKey_1.EKey.findOne({ where, }); if (!eKey) { throw new ErrorCode_1.HttpError({ errorCode: ErrorCode_1.ERROR_CODE.COMMON.NOT_FOUND, status: 404, message: '兑换码有误或已经过期', }); } const eKeyRecord = await eKey_1.EKeyRecord.findOne({ where: { eid: eKey.id, uid, }, }); if (eKeyRecord) { throw new ErrorCode_1.HttpError({ errorCode: ErrorCode_1.ERROR_CODE.E_KEY.HAS_GOT, status: 400, message: '您已兑换,不能重复参', }); } return await global.sequelize.transaction(async (t) => { // 添加兑换记录 await eKey_1.EKeyRecord.bulkCreate([{ eid: eKey.id, uid, meta, }], { transaction: t, ignoreDuplicates: true, }); let message = '该兑换码没有兑换物品关联!'; if (Array.isArray(eKey.reward) && eKey.reward.length > 0) { message = '您已领取'; for (const r of eKey.reward) { if (r.type === 1) { // 奖励积分 await this.addIntegral(uid, eKey, r.value, t); message += ` [积分:${r.value}]`; } } } return { reword: eKey.reward, message, }; }); } async addIntegral(uid, eKey, value, t) { const integral = await model_1.UserIntegral.findOne({ where: { uid, }, }); // 添加积分 await integral.increment({ value }, { transaction: t, }); // 添加积分记录 await model_1.UserIntegralRecord.create({ uid, value, latestValue: integral.value, type: model_1.INTEGRAL_TYPE.E_KEY, description: `使用兑换码【${eKey.key}】`, meta: { uid, value, type: model_1.INTEGRAL_TYPE.E_KEY, des: '使用兑换码', eKey: eKey.key, }, }, { transaction: t, }); } } exports.default = EKeyService; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRUtleVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJFS2V5U2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlDQUE2QjtBQUM3QixtREFBMEQ7QUFDMUQscURBQThDO0FBQzlDLG9DQUErRTtBQUMvRSx3Q0FBK0M7QUFFL0MsTUFBcUIsV0FBWSxTQUFRLHFCQUFXO0lBQ3pDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJO1FBQ2pDLE1BQU0sSUFBSSxHQUFHLE1BQU0sWUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1AsTUFBTSxJQUFJLHFCQUFTLENBQUM7Z0JBQ2hCLFNBQVMsRUFBRSxzQkFBVSxDQUFDLElBQUksQ0FBQyxTQUFTO2dCQUNwQyxNQUFNLEVBQUUsR0FBRztnQkFDWCxPQUFPLEVBQUUsU0FBUzthQUNyQixDQUFDLENBQUM7U0FDTjtRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN2QixNQUFNLEtBQUssR0FBRztZQUNWLEdBQUc7WUFDSCxPQUFPLEVBQUUsS0FBSztZQUNkLE1BQU0sRUFBRSxDQUFDO1lBQ1QsT0FBTyxFQUFFO2dCQUNMLENBQUMsY0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO29CQUNMO3dCQUNJLENBQUMsY0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUk7cUJBQ2hCO29CQUNEO3dCQUNJLENBQUMsY0FBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUc7cUJBQ2hCO2lCQUNKO2FBQ0o7WUFDRCxLQUFLLEVBQUU7Z0JBQ0gsQ0FBQyxjQUFFLENBQUMsRUFBRSxDQUFDLEVBQUU7b0JBQ0w7d0JBQ0ksQ0FBQyxjQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSTtxQkFDaEI7b0JBQ0Q7d0JBQ0ksQ0FBQyxjQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRztxQkFDaEI7aUJBQ0o7YUFDSjtTQUNKLENBQUM7UUFDRixNQUFNLElBQUksR0FBRyxNQUFNLFdBQUksQ0FBQyxPQUFPLENBQUM7WUFDNUIsS0FBSztTQUNSLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxNQUFNLElBQUkscUJBQVMsQ0FBQztnQkFDaEIsU0FBUyxFQUFFLHNCQUFVLENBQUMsTUFBTSxDQUFDLFNBQVM7Z0JBQ3RDLE1BQU0sRUFBRSxHQUFHO2dCQUNYLE9BQU8sRUFBRSxZQUFZO2FBQ3hCLENBQUMsQ0FBQztTQUNOO1FBQ0QsTUFBTSxVQUFVLEdBQUcsTUFBTSxpQkFBVSxDQUFDLE9BQU8sQ0FBQztZQUN4QyxLQUFLLEVBQUU7Z0JBQ0gsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNaLEdBQUc7YUFDTjtTQUNKLENBQUMsQ0FBQztRQUNILElBQUksVUFBVSxFQUFFO1lBQ1osTUFBTSxJQUFJLHFCQUFTLENBQUM7Z0JBQ2hCLFNBQVMsRUFBRSxzQkFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPO2dCQUNuQyxNQUFNLEVBQUUsR0FBRztnQkFDWCxPQUFPLEVBQUUsWUFBWTthQUN4QixDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sTUFBTSxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbEQsU0FBUztZQUNULE1BQU0saUJBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDekIsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFO29CQUNaLEdBQUc7b0JBQ0gsSUFBSTtpQkFDUCxDQUFDLEVBQUU7Z0JBQ0EsV0FBVyxFQUFFLENBQUM7Z0JBQ2QsZ0JBQWdCLEVBQUUsSUFBSTthQUN6QixDQUFDLENBQUM7WUFDSCxJQUFJLE9BQU8sR0FBRyxlQUFlLENBQUM7WUFFOUIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3RELE9BQU8sR0FBRyxNQUFNLENBQUM7Z0JBQ2pCLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtvQkFDekIsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU87d0JBQ3ZCLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7d0JBQzlDLE9BQU8sSUFBSSxRQUFRLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQztxQkFDakM7aUJBQ0o7YUFDSjtZQUVELE9BQU87Z0JBQ0gsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixPQUFPO2FBQ1YsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFhLEVBQUUsQ0FBQztRQUNqRCxNQUFNLFFBQVEsR0FBRyxNQUFNLG9CQUFZLENBQUMsT0FBTyxDQUFDO1lBQ3hDLEtBQUssRUFBRTtnQkFDSCxHQUFHO2FBQ047U0FDSixDQUFDLENBQUM7UUFDSCxPQUFPO1FBQ1AsTUFBTSxRQUFTLENBQUMsU0FBUyxDQUFDLEVBQUMsS0FBSyxFQUFDLEVBQUU7WUFDL0IsV0FBVyxFQUFFLENBQUM7U0FDakIsQ0FBQyxDQUFDO1FBQ0gsU0FBUztRQUNULE1BQU0sMEJBQWtCLENBQUMsTUFBTSxDQUFDO1lBQ3hCLEdBQUc7WUFDSCxLQUFLO1lBQ0wsV0FBVyxFQUFFLFFBQVMsQ0FBQyxLQUFLO1lBQzVCLElBQUksRUFBRSxxQkFBYSxDQUFDLEtBQUs7WUFDekIsV0FBVyxFQUFFLFNBQVMsSUFBSSxDQUFDLEdBQUcsR0FBRztZQUNqQyxJQUFJLEVBQUU7Z0JBQ0YsR0FBRztnQkFDSCxLQUFLO2dCQUNMLElBQUksRUFBRSxxQkFBYSxDQUFDLEtBQUs7Z0JBQ3pCLEdBQUcsRUFBRSxPQUFPO2dCQUNaLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRzthQUNqQjtTQUNKLEVBQUU7WUFDQyxXQUFXLEVBQUUsQ0FBQztTQUNqQixDQUFDLENBQUM7SUFDWCxDQUFDO0NBQ0o7QUF0SEQsOEJBc0hDIn0=