渠道协议后台
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
import { UpdateChannelParam } from '@domain/backEndField/params';
|
||||||
import { Controller } from 'egg';
|
import { Controller } from 'egg';
|
||||||
|
|
||||||
export default class GameController extends Controller {
|
export default class GameController extends Controller {
|
||||||
@@ -56,6 +57,21 @@ export default class GameController extends Controller {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async getChannelInfo() {
|
||||||
|
const { ctx } = this;
|
||||||
|
|
||||||
|
ctx.body = await ctx.service.game.getChannelInfo();
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
public async updateChannel() {
|
||||||
|
const { ctx } = this;
|
||||||
|
const obj = ctx.request.body;
|
||||||
|
let param = new UpdateChannelParam(obj?.values||{});
|
||||||
|
ctx.body = await ctx.service.game.updateChannel(param);
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
public async getOnlineUsersByServer() {
|
public async getOnlineUsersByServer() {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
ctx.body = await ctx.service.game.getOnlineUsersByServer();
|
ctx.body = await ctx.service.game.getOnlineUsersByServer();
|
||||||
|
|||||||
@@ -54,6 +54,8 @@ export default (app: Application) => {
|
|||||||
router.post('/api/game/switchserverreview', tokenParser, controller.game.switchServerReview);
|
router.post('/api/game/switchserverreview', tokenParser, controller.game.switchServerReview);
|
||||||
router.post('/api/game/getorderlist', tokenParser, controller.game.getOrderlist);
|
router.post('/api/game/getorderlist', tokenParser, controller.game.getOrderlist);
|
||||||
router.post('/api/game/getsurveylist', tokenParser, controller.game.getSurveylist);
|
router.post('/api/game/getsurveylist', tokenParser, controller.game.getSurveylist);
|
||||||
|
router.post('/api/game/getchannelinfo', controller.game.getChannelInfo);
|
||||||
|
router.post('/api/game/updatechannel', controller.game.updateChannel);
|
||||||
|
|
||||||
router.post('/api/dic/getdicgoods', tokenParser, controller.game.getDicGoods);
|
router.post('/api/dic/getdicgoods', tokenParser, controller.game.getDicGoods);
|
||||||
router.post('/api/dic/getdichero', tokenParser, controller.game.getDicHero);
|
router.post('/api/dic/getdichero', tokenParser, controller.game.getDicHero);
|
||||||
|
|||||||
@@ -16,10 +16,11 @@ import { WhiteListModel } from '@db/RegionWhiteList';
|
|||||||
import { RoleModel } from '@db/Role';
|
import { RoleModel } from '@db/Role';
|
||||||
import { SearchMarqueeParam, SearchOrderParam, SearchSurveyParam } from '@domain/backEndField/search';
|
import { SearchMarqueeParam, SearchOrderParam, SearchSurveyParam } from '@domain/backEndField/search';
|
||||||
import { DicServerName } from '@pubUtils/dictionary/DicServerName';
|
import { DicServerName } from '@pubUtils/dictionary/DicServerName';
|
||||||
import { CreateRegionParam } from '@domain/backEndField/params';
|
import { CreateRegionParam, UpdateChannelParam } from '@domain/backEndField/params';
|
||||||
import { UserOrderModel } from '@db/UserOrder';
|
import { UserOrderModel } from '@db/UserOrder';
|
||||||
import { SurveyModel } from '@db/Survery';
|
import { SurveyModel } from '@db/Survery';
|
||||||
import { RedisClient } from 'redis';
|
import { RedisClient } from 'redis';
|
||||||
|
import { ChannelInfoModel } from '@db/ChannelInfo';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test Service
|
* Test Service
|
||||||
@@ -61,6 +62,24 @@ export default class Game extends Service {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async getChannelInfo() {
|
||||||
|
const { ctx } = this;
|
||||||
|
|
||||||
|
const list = await ChannelInfoModel.findAll();
|
||||||
|
return ctx.service.utils.resResult(STATUS.SUCCESS, {
|
||||||
|
list
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public async updateChannel(param: UpdateChannelParam) {
|
||||||
|
const { ctx } = this;
|
||||||
|
if(!param.checkParams()) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||||
|
|
||||||
|
await ChannelInfoModel.updateChannel(param.code, param);
|
||||||
|
return ctx.service.utils.resResult(STATUS.SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public async getOnlineUsersByServer() {
|
public async getOnlineUsersByServer() {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
let redisClient: RedisClient = ctx.app.context.redisClient;
|
let redisClient: RedisClient = ctx.app.context.redisClient;
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
import BaseModel from './BaseModel';
|
import BaseModel from './BaseModel';
|
||||||
import { index, getModelForClass, prop, DocumentType, modelOptions, ReturnModelType, mongoose } from '@typegoose/typegoose';
|
import { index, getModelForClass, prop, DocumentType, modelOptions, ReturnModelType, mongoose } from '@typegoose/typegoose';
|
||||||
|
import { UpdateChannelParam } from '../domain/backEndField/params';
|
||||||
|
import { genCode } from '@pubUtils/util';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 私聊信息
|
* 私聊信息
|
||||||
@@ -28,7 +30,7 @@ export default class ChannelInfo extends BaseModel {
|
|||||||
privacyPolicyLink: string; // 隐私协议
|
privacyPolicyLink: string; // 隐私协议
|
||||||
|
|
||||||
public static async findAll() {
|
public static async findAll() {
|
||||||
const result: ChannelInfoType[] = await ChannelInfoModel.find().lean();
|
const result: ChannelInfoType[] = await ChannelInfoModel.find({}).select({ _id: false }).lean();
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,6 +38,15 @@ export default class ChannelInfo extends BaseModel {
|
|||||||
const result: ChannelInfoType = await ChannelInfoModel.findOne({ platform }).lean();
|
const result: ChannelInfoType = await ChannelInfoModel.findOne({ platform }).lean();
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static async updateChannel(code: string, values: UpdateChannelParam) {
|
||||||
|
if(code == 'new') {
|
||||||
|
code = genCode(6);
|
||||||
|
}
|
||||||
|
delete values.code;
|
||||||
|
const result: ChannelInfoType = await ChannelInfoModel.findOneAndUpdate({ code }, values, { new: true, upsert: true }).lean();
|
||||||
|
return result
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export let ChannelInfoModel: ReturnModelType<typeof ChannelInfo, {}>;
|
export let ChannelInfoModel: ReturnModelType<typeof ChannelInfo, {}>;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import ServerStategy, { GMMail } from "../../db/ServerStategy";
|
|||||||
import { RegionType } from "../../db/Region";
|
import { RegionType } from "../../db/Region";
|
||||||
import { RewardInter } from "../../pubUtils/interface";
|
import { RewardInter } from "../../pubUtils/interface";
|
||||||
import { isTimestamp } from '../../pubUtils/util';
|
import { isTimestamp } from '../../pubUtils/util';
|
||||||
import { isDate } from "util";
|
import { isBoolean, isDate } from "util";
|
||||||
|
|
||||||
export class UpdateMailParams {
|
export class UpdateMailParams {
|
||||||
hasGoods: boolean = false; // 是否有道具
|
hasGoods: boolean = false; // 是否有道具
|
||||||
@@ -404,4 +404,34 @@ export class UpdateActivityParam {
|
|||||||
if(this.effectDay && !isNumber(this.effectDay)) return false;
|
if(this.effectDay && !isNumber(this.effectDay)) return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export class UpdateChannelParam {
|
||||||
|
code: string; // 渠道标识
|
||||||
|
platform: string; // 渠道标识
|
||||||
|
desc: string; // 渠道描述
|
||||||
|
isDefaultPolicy: boolean; // 是否使用默认协议
|
||||||
|
userPolicyLink: string; // 用户协议
|
||||||
|
privacyPolicyLink: string; // 隐私协议
|
||||||
|
|
||||||
|
constructor(obj?: any) {
|
||||||
|
if(!obj) return;
|
||||||
|
this.code = obj.code;
|
||||||
|
this.platform = obj.platform;
|
||||||
|
this.desc = obj.desc;
|
||||||
|
this.isDefaultPolicy = obj.isDefaultPolicy;
|
||||||
|
this.userPolicyLink = obj.userPolicyLink;
|
||||||
|
this.privacyPolicyLink = obj.privacyPolicyLink;
|
||||||
|
}
|
||||||
|
|
||||||
|
checkParams() {
|
||||||
|
if(!this.code || !isString(this.code)) return false;
|
||||||
|
if(!this.platform || !isString(this.platform)) return false;
|
||||||
|
if(this.desc && !isString(this.desc)) return false;
|
||||||
|
if(!isBoolean(this.isDefaultPolicy)) return false;
|
||||||
|
if(this.userPolicyLink && !isString(this.userPolicyLink)) return false;
|
||||||
|
if(this.privacyPolicyLink && !isString(this.privacyPolicyLink)) return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user