✨ feat(活动): 添加关注豪礼
This commit is contained in:
@@ -251,4 +251,25 @@ export default class GameController extends Controller {
|
||||
ctx.body = await ctx.service.game.getGVGConfig();
|
||||
return
|
||||
}
|
||||
|
||||
public async getLinks() {
|
||||
const { ctx } = this;
|
||||
const { types } = ctx.request.body;
|
||||
ctx.body = await ctx.service.game.getLinks(types);
|
||||
return
|
||||
}
|
||||
|
||||
public async updateWXLink() {
|
||||
const { ctx } = this;
|
||||
const { serverId, link, qrCodeLink } = ctx.request.body;
|
||||
ctx.body = await ctx.service.game.updateWXLink(serverId, link, qrCodeLink);
|
||||
return
|
||||
}
|
||||
|
||||
public async updateOtherLink() {
|
||||
const { ctx } = this;
|
||||
const { wxPublicAccountQrCode, bbsLink, customerLink } = ctx.request.body;
|
||||
ctx.body = await ctx.service.game.updateOtherLink(wxPublicAccountQrCode, bbsLink, customerLink);
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ const publishPath = '/root/hot_update_backup';
|
||||
import {exec} from 'child_process'
|
||||
import { reloadResources } from '@pubUtils/data';
|
||||
import { decodeArrayStr } from '@pubUtils/util';
|
||||
import { getLocalQrCodeUrl, getRemoteQrCodeUrl } from '@pubUtils/battleUtils';
|
||||
const sendToWormhole = require('stream-wormhole');
|
||||
|
||||
export default class UploadController extends Controller {
|
||||
@@ -276,6 +277,49 @@ export default class UploadController extends Controller {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
public async uploadQrCode() {
|
||||
const { ctx } = this;
|
||||
|
||||
try {
|
||||
const { ctx } = this;
|
||||
const parts = ctx.multipart();
|
||||
let part, env = ctx.request.headers.env, fileName = '';
|
||||
while ((part = await parts()) != null) {
|
||||
if (part.length) {
|
||||
console.log('kv: ', `${part[0]}: ${part[1]}`);
|
||||
} else {
|
||||
if (!part.filename) continue;
|
||||
|
||||
let filenames = part.filename.split('.');
|
||||
let ext = filenames[filenames.length - 1];
|
||||
let writePath = getLocalQrCodeUrl(this.app.config.realEnv, env);
|
||||
fileName = `QR${moment().valueOf()}.${ext}`;
|
||||
let fullPath = `${writePath}/${fileName}`;
|
||||
try {
|
||||
fs.accessSync(writePath);
|
||||
} catch (err) {
|
||||
if (err) {
|
||||
fs.mkdirSync(writePath, { recursive: true });
|
||||
}
|
||||
}
|
||||
if (!fs.existsSync(fullPath)) {
|
||||
fs.writeFileSync(fullPath, '');
|
||||
}
|
||||
const writeStream = fs.createWriteStream(fullPath);
|
||||
await pump(part, writeStream);
|
||||
|
||||
// remoteUrl = `${getRemoteRplUrl(ctx.app.config.realEnv, roleId, warType, battleCode)}/${battleCode}.bin`;
|
||||
}
|
||||
await sendToWormhole(part);
|
||||
}
|
||||
ctx.body = ctx.service.utils.resResult(STATUS.SUCCESS, { isOK: true, url: getRemoteQrCodeUrl(env, fileName) });
|
||||
return;
|
||||
} catch(e) {
|
||||
ctx.body = ctx.service.utils.resResult(STATUS.SUCCESS, { isOK: false, err: e.stack });
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export function childExec(commond: string) {
|
||||
|
||||
@@ -12,6 +12,7 @@ export default (app: Application) => {
|
||||
router.post('/api/upload/hotupdate', tokenParser, controller.upload.upload);
|
||||
router.post('/api/upload/uploadjson', tokenParser, controller.upload.uploadJson);
|
||||
router.post('/api/upload/reloadresource', tokenParser, controller.upload.reloadResource);
|
||||
router.post('/api/upload/uploadqrcode', tokenParser, controller.upload.uploadQrCode);
|
||||
|
||||
router.post('/api/gmaccount/getgmlist', tokenParser, controller.gmaccount.getGmList);
|
||||
router.post('/api/gmaccount/createaccount', tokenParser,controller.gmaccount.createGmAccount);
|
||||
@@ -65,6 +66,9 @@ export default (app: Application) => {
|
||||
router.post('/api/game/getexisthiddendata', controller.game.getExistHiddenData);
|
||||
router.post('/api/game/getgvgservergroup', controller.game.getGVGServerGroup);
|
||||
router.post('/api/game/getgvgconfig', controller.game.getGVGConfig);
|
||||
router.post('/api/game/getlinks', tokenParser, controller.game.getLinks);
|
||||
router.post('/api/game/updatewxlink', tokenParser, controller.game.updateWXLink);
|
||||
router.post('/api/game/updateotherlink', tokenParser, controller.game.updateOtherLink);
|
||||
|
||||
router.post('/api/dic/getdicgoods', tokenParser, controller.game.getDicGoods);
|
||||
router.post('/api/dic/getdichero', tokenParser, controller.game.getDicHero);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { PackageModel } from '@db/Package';
|
||||
import { Service } from 'egg';
|
||||
import { REDIS_KEY, STATUS } from '@consts';
|
||||
import { REDIS_KEY, SNS_LINK_TYPE, STATUS } from '@consts';
|
||||
import { ServerlistModel } from '@db/Serverlist';
|
||||
import { gameData } from '@pubUtils/data';
|
||||
import { DicHero } from '@pubUtils/dictionary/DicHero';
|
||||
@@ -26,6 +26,7 @@ import { HiddenDataByIdModel } from '@db/HiddenDataById';
|
||||
import { isNumber } from 'util';
|
||||
import { ServerGroupModel } from '@db/ServerGroup';
|
||||
import { GVGConfigModel } from '@db/GVGConfig';
|
||||
import { LinkModel } from '@db/Link';
|
||||
|
||||
/**
|
||||
* Test Service
|
||||
@@ -420,4 +421,31 @@ export default class Game extends Service {
|
||||
list: gvgconfig?[{...gvgconfig, env: this.app.config.realEnv }]: []
|
||||
});
|
||||
}
|
||||
|
||||
public async getLinks(types: number[]) {
|
||||
const { ctx } = this;
|
||||
const links = await LinkModel.findByTypes(types);
|
||||
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS, {
|
||||
list: links.map(cur => ({...cur, env: this.app.config.realEnv }))
|
||||
});
|
||||
}
|
||||
|
||||
public async updateWXLink(serverId: number, link: string, qrCodeLink: string ) {
|
||||
const { ctx } = this;
|
||||
await LinkModel.updateByServerAndType(serverId, SNS_LINK_TYPE.WX_GROUP, { link, qrCodeLink }, ctx.user?.uid);
|
||||
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS);
|
||||
}
|
||||
|
||||
public async updateOtherLink(wxPublicAccountQrCode: string, bbsLink: string, customerLink: string ) {
|
||||
const { ctx } = this;
|
||||
let updateArr: { type: number, link?: string, qrCodeLink?: string }[] = [];
|
||||
if(wxPublicAccountQrCode) updateArr.push({ type: SNS_LINK_TYPE.WX_PUBLIC_ACCOUNT, qrCodeLink: wxPublicAccountQrCode });
|
||||
if(bbsLink) updateArr.push({ type: SNS_LINK_TYPE.BBS, link: bbsLink });
|
||||
if(customerLink) updateArr.push({ type: SNS_LINK_TYPE.CUSTOMER, link: customerLink });
|
||||
await LinkModel.updateLinks(updateArr, ctx.user?.uid);
|
||||
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ export default (appInfo: EggAppInfo) => {
|
||||
fileSize: '100mb',
|
||||
mode: 'stream',
|
||||
whitelist: [
|
||||
'.json', '.ts', '.zip'
|
||||
'.json', '.ts', '.zip', '.jpg', '.png', '.jpeg'
|
||||
],
|
||||
fileExtensions: ['.json', '.ts', '.zip', '.tar.gz'], // 扩展几种上传的文件格式
|
||||
autoFields: true
|
||||
|
||||
Reference in New Issue
Block a user