后台:礼包码
This commit is contained in:
@@ -127,4 +127,44 @@ export default class UserController extends Controller {
|
||||
const { selectedRowKeys: roleIdAndIds, count } = ctx.request.body;
|
||||
ctx.body = await ctx.service.users.setItemCount(roleIdAndIds, count);
|
||||
}
|
||||
|
||||
public async getGiftCodeList() {
|
||||
const { ctx } = this;
|
||||
const { page, pageSize, sortField, sortOrder, form } = ctx.request.body;
|
||||
ctx.body = await ctx.service.users.getGiftCodeList(page, pageSize, sortField, sortOrder, form);
|
||||
}
|
||||
|
||||
public async updateGiftCode() {
|
||||
const { ctx } = this;
|
||||
const { id, values } = ctx.request.body;
|
||||
ctx.body = await ctx.service.users.updateGiftCode(id, values);
|
||||
}
|
||||
|
||||
public async generateGiftCode() {
|
||||
const { ctx } = this;
|
||||
const { id, generateType, code, generateNum, codeLen } = ctx.request.body;
|
||||
if(generateType == 1) {
|
||||
if(!generateNum) {
|
||||
ctx.body = ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
return
|
||||
}
|
||||
} else if (generateType == 2) {
|
||||
if(!code) {
|
||||
ctx.body = ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
return
|
||||
}
|
||||
} else {
|
||||
ctx.body = ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
return
|
||||
}
|
||||
|
||||
ctx.body = await ctx.service.users.generateGiftCode(id, generateType, code, generateNum, codeLen);
|
||||
}
|
||||
|
||||
public async getGiftCodeDetails() {
|
||||
const { ctx } = this;
|
||||
const { id } = ctx.params;
|
||||
ctx.body = await ctx.service.users.getGiftCodeDetails(parseInt(id));
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,6 +42,11 @@ export default (app: Application) => {
|
||||
router.post('/api/users/deleteequip', tokenParser, controller.users.deleteEquip);
|
||||
router.post('/api/users/deleteitem', tokenParser, controller.users.deleteItem);
|
||||
router.post('/api/users/setitemcount', tokenParser, controller.users.setItemCount);
|
||||
router.post('/api/users/getgiftcodelist', controller.users.getGiftCodeList);
|
||||
router.post('/api/users/updategiftcode', controller.users.updateGiftCode);
|
||||
router.post('/api/users/generategiftcode', controller.users.generateGiftCode);
|
||||
// router.post('/api/users/delgiftCode', controller.users.delGiftCode);
|
||||
router.get('/api/users/getgiftcodedetails/:id/:filename', controller.users.getGiftCodeDetails);
|
||||
|
||||
router.post('/api/game/getserverenv', tokenParser, controller.game.getServerEnv);
|
||||
router.post('/api/game/getserverlistbyenv', tokenParser, controller.game.getServerListByEnv);
|
||||
|
||||
@@ -33,6 +33,10 @@ import { FriendShipModel } from '@db/FriendShip';
|
||||
import { FriendApplyModel } from '@db/FriendApply';
|
||||
import { FriendRelationModel } from '@db/FriendRelation';
|
||||
import { createHero as pubCreateHero, addSkin } from '@pubUtils/itemUtils';
|
||||
import { GiftCodeModel } from '@db/GiftCode';
|
||||
import { GiftCodeDetailModel } from '@db/GiftCodeDetail';
|
||||
|
||||
// import * as fs from 'fs';
|
||||
|
||||
/**
|
||||
* Test Service
|
||||
@@ -657,4 +661,76 @@ export default class GMUsers extends Service {
|
||||
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR);
|
||||
}
|
||||
}
|
||||
|
||||
public async getGiftCodeList(page: number, pageSize: number, sortField: string, sortOrder: string, form: { name?: string, current?: boolean, } = {}) {
|
||||
const { ctx } = this;
|
||||
|
||||
const list = await GiftCodeModel.findByCondition(page, pageSize, sortField, sortOrder, form);
|
||||
const total = await GiftCodeModel.countByCondition( form )
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS, {
|
||||
list: list.map(cur => {
|
||||
return { ...cur, beginTime: cur.beginTime.getTime(), endTime: cur.endTime.getTime() }
|
||||
}), total
|
||||
});
|
||||
}
|
||||
|
||||
public async updateGiftCode(id: string|number, params: any) {
|
||||
const { ctx } = this;
|
||||
if(params.beginTime) params.beginTime = new Date(params.beginTime);
|
||||
if(params.endTime) params.endTime = new Date(params.endTime);
|
||||
|
||||
try{
|
||||
params.goods = JSON.parse(params.goods);
|
||||
} catch(e) {
|
||||
console.error(e);
|
||||
return ctx.body = ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
}
|
||||
const result = await GiftCodeModel.updateData(id, params, ctx.user?.uid);
|
||||
if(!result) return ctx.service.utils.resResult(STATUS.INTERNAL_ERR);
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS);
|
||||
}
|
||||
|
||||
public async generateGiftCode(id: number, generateType: 1|2, code: string, generateNum: number, codeLen: number = 8) {
|
||||
const { ctx } = this;
|
||||
|
||||
let giftCode = await GiftCodeModel.findData(id);
|
||||
if(!giftCode) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
|
||||
let length = 0, isLimit = false, count = 0, generateCode = '';
|
||||
if(generateType == 1) {
|
||||
let generateResult = await GiftCodeDetailModel.generateMany(giftCode, generateNum, codeLen, ctx.user?.uid);
|
||||
length = generateResult.length;
|
||||
isLimit = true;
|
||||
count = 1;
|
||||
} else if (generateType == 2) {
|
||||
let generateResult = await GiftCodeDetailModel.generateOne(giftCode, code, ctx.user?.uid);
|
||||
length = generateResult.length;
|
||||
generateCode = code;
|
||||
}
|
||||
if(length <= 0) return ctx.service.utils.resResult(STATUS.INTERNAL_ERR);
|
||||
giftCode = await GiftCodeModel.updateData(id, { generateCnt: giftCode.generateCnt + length, generateType, isLimit, count, generateCode }, ctx.user?.uid);
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS, { giftCode })
|
||||
}
|
||||
|
||||
public async getGiftCodeDetails(id: number) {
|
||||
const { ctx } = this;
|
||||
|
||||
let giftCode = await GiftCodeModel.findData(id);
|
||||
if(!giftCode) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
let { generateCnt } = giftCode;
|
||||
let limit = 1000;
|
||||
let n = Math.ceil(generateCnt / limit);
|
||||
let codes: string[] = [];
|
||||
for(let i = 0; i < n; i++) {
|
||||
let giftCodeDetails = await GiftCodeDetailModel.findByGiftCode(giftCode);
|
||||
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'));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user