后台:添加玩家日志
This commit is contained in:
@@ -8,4 +8,9 @@ export default class LogController extends Controller {
|
|||||||
ctx.body = await ctx.service.log.getGmLog(page, pageSize, form);
|
ctx.body = await ctx.service.log.getGmLog(page, pageSize, form);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async getUserLog() {
|
||||||
|
const { ctx } = this;
|
||||||
|
const { pageSize, page, form } = ctx.request.body;
|
||||||
|
ctx.body = await ctx.service.log.getUserLog(page, pageSize, form);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -97,4 +97,5 @@ export default (app: Application) => {
|
|||||||
router.post('/api/mail/updateservermailtxt', tokenParser, controller.mail.updateGMMail);
|
router.post('/api/mail/updateservermailtxt', tokenParser, controller.mail.updateGMMail);
|
||||||
|
|
||||||
router.post('/api/log/getgmlog', controller.log.getGmLog);
|
router.post('/api/log/getgmlog', controller.log.getGmLog);
|
||||||
|
router.post('/api/log/getuserlog', controller.log.getUserLog);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
import { Service } from 'egg';
|
import { Service } from 'egg';
|
||||||
import { STATUS } from '@consts';
|
import { STATUS } from '@consts';
|
||||||
import { SearchLogParam } from '@domain/backEndField/search';
|
import { SearchLogParam, SearchUserLogParam } from '@domain/backEndField/search';
|
||||||
import { GMRecordModel } from '@db/GMRecord';
|
import { GMRecordModel } from '@db/GMRecord';
|
||||||
|
import { UserLogModel } from '@db/UserLog';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test Service
|
* Test Service
|
||||||
@@ -9,7 +10,7 @@ import { GMRecordModel } from '@db/GMRecord';
|
|||||||
export default class Log extends Service {
|
export default class Log extends Service {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改用户组
|
* 获取后台操作日志
|
||||||
*/
|
*/
|
||||||
public async getGmLog(page: number, pageSize: number, form: SearchLogParam) {
|
public async getGmLog(page: number, pageSize: number, form: SearchLogParam) {
|
||||||
const {ctx} = this;
|
const {ctx} = this;
|
||||||
@@ -18,4 +19,13 @@ export default class Log extends Service {
|
|||||||
return ctx.service.utils.resResult(STATUS.SUCCESS, { list });
|
return ctx.service.utils.resResult(STATUS.SUCCESS, { list });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取玩家日志
|
||||||
|
*/
|
||||||
|
public async getUserLog(page: number, pageSize: number, form: SearchUserLogParam) {
|
||||||
|
const {ctx} = this;
|
||||||
|
|
||||||
|
let list = await UserLogModel.findByCondition(page, pageSize, form);
|
||||||
|
return ctx.service.utils.resResult(STATUS.SUCCESS, { list: list.map(cur => ({...cur, env: ctx.app.config.realEnv})) });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import BaseModel from './BaseModel';
|
import BaseModel from './BaseModel';
|
||||||
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
|
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
|
||||||
|
import { SearchUserLogParam } from '../domain/backEndField/search';
|
||||||
|
|
||||||
class Reward {
|
class Reward {
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
@@ -105,6 +106,26 @@ export default class UserLog extends BaseModel {
|
|||||||
const r = await UserLogModel.insertMany(params);
|
const r = await UserLogModel.insertMany(params);
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static getSearchObj(form: SearchUserLogParam) {
|
||||||
|
let searchObj = {};
|
||||||
|
if (form.type) searchObj['type'] = form.type;
|
||||||
|
if (form.serverId) searchObj['serverId'] = form.serverId;
|
||||||
|
if (form.uid) searchObj['uid'] = form.uid;
|
||||||
|
if (form.roleId) searchObj['roleId'] = form.roleId;
|
||||||
|
if(form.roleName) searchObj['roleName'] = { $regex: new RegExp(form.roleName.toString(), 'i') };
|
||||||
|
if (form.createTimeStart && form.createTimeEnd) {
|
||||||
|
searchObj['createdAt'] = { $lte: new Date(form.createTimeEnd * 1000), $gte: new Date(form.createTimeStart * 100) };
|
||||||
|
}
|
||||||
|
return searchObj
|
||||||
|
}
|
||||||
|
|
||||||
|
public static async findByCondition(page: number, pageSize: number, form: SearchUserLogParam = {}) {
|
||||||
|
let searchObj = UserLogModel.getSearchObj(form);
|
||||||
|
const result: UserLogModelType[] = await UserLogModel.find(searchObj).limit(pageSize).skip((page - 1) * pageSize).sort({ createdAt: -1 }).select('-_id').lean({ getters: true, virtuals: true });
|
||||||
|
return result;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export let UserLogModel = getModelForClass(UserLog);
|
export let UserLogModel = getModelForClass(UserLog);
|
||||||
|
|||||||
@@ -80,4 +80,15 @@ export interface SearchLogParam {
|
|||||||
createTimeStart?: number;
|
createTimeStart?: number;
|
||||||
createTimeEnd?: number;
|
createTimeEnd?: number;
|
||||||
uid?: number;
|
uid?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export interface SearchUserLogParam {
|
||||||
|
type?: string;
|
||||||
|
serverId?: number;
|
||||||
|
uid?: number;
|
||||||
|
roleId?: string;
|
||||||
|
roleName?: string;
|
||||||
|
createTimeStart?: number;
|
||||||
|
createTimeEnd?: number;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user