后台:添加举报页面

This commit is contained in:
luying
2021-09-14 19:08:27 +08:00
parent 6afd704bdf
commit ae64b5d277
6 changed files with 53 additions and 3 deletions

View File

@@ -5,6 +5,7 @@ import { DEFAULT_MSG_PER_PAGE, STATUS, TASK_TYPE } from '../../../consts';
import { createAccuseData, createGroupMsg, createPrivateMsg, getPrivateMessages, pushGroupMsgToRoom, pushMsgToRole, updatePrivateMsgReadInfo, recentPrivateChatInfos, recentWorldMsgs, recentSysMsgs, recentGuildMsgs, updatePrivateMsgIsTop, delPrivateMsg } from '../../../services/chatService';
import { getSimpleRoleInfo } from '../../../services/roleService';
import { checkActivityTask, checkTaskWithArgs } from '../../../services/taskService';
import { RoleModel } from '../../../db/Role';
export default function (app: Application) {
@@ -246,8 +247,11 @@ export class ChatHandler {
*/
async accuse(msg: { targetRoleId: string, targetMsgCode: string; reason: number }, session: BackendSession) {
const roleId = session.get('roleId');
const roleName = session.get('roleName');
const { targetRoleId, targetMsgCode, reason } = msg;
const accuseRec = await createAccuseData(roleId, targetRoleId, targetMsgCode, reason);
let targetRole = await RoleModel.findByRoleId(targetRoleId);
if(!targetRoleId) return resResult(STATUS.ROLE_NOT_FOUND);
const accuseRec = await createAccuseData(roleId, roleName, targetRoleId, targetRole.roleName, targetMsgCode, reason);
if (!accuseRec) return resResult(STATUS.WRONG_PARMS);
return resResult(STATUS.SUCCESS, accuseRec);
}

View File

@@ -369,9 +369,9 @@ export async function pushTeamInviteMsg(roleId: string, roleName: string, server
}
export async function createAccuseData(roleId: string, targetRoleId: string, targetMsgCode: string, reason: number) {
export async function createAccuseData(roleId: string, roleName: string, targetRoleId: string, targetRoleName: string, targetMsgCode: string, reason: number) {
const data: AccueseParam = {
roleId, targetRoleId, targetMsgCode, reason
roleId, roleName, targetRoleId, targetRoleName, targetMsgCode, reason
};
const result = await AccuseRecModel.createRec(data);
return result;

View File

@@ -116,6 +116,13 @@ export default class GameController extends Controller {
return
}
public async getAccuse() {
const { ctx } = this;
const { page, pageSize, sortField, sortOrder, form } = ctx.request.body;
ctx.body = await ctx.service.game.getAccuse(page, pageSize, sortField, sortOrder, form);
return
}
public async getDicHero() {
const { ctx } = this;
ctx.body = await ctx.service.game.getDicHero();

View File

@@ -72,6 +72,7 @@ export default (app: Application) => {
router.post('/api/game/delnotice', controller.game.delNotice);
router.post('/api/game/getmarqueelist', controller.game.getMarqueeList);
router.post('/api/game/updatemarquee', controller.game.updateMarquee);
router.post('/api/game/getaccuse', controller.game.getAccuse);
router.post('/api/activity/getactivitylist', tokenParser, controller.activity.getActivityList);
router.post('/api/activity/updateactivity', tokenParser, controller.activity.updateActivity);

View File

@@ -12,6 +12,7 @@ import { NoticeModel, NoticeTypeParam, NoticeType } from '@db/Notice';
import { MarqueeModel, MarqueeParam, MarqueeType } from '@db/Marquee';
import { MaintenanceModel, MaintenanceTypeParam } from '@db/Maintenance';
import { GMMailTypeParam, GMMailModel, GMMailType } from '@db/GMMail';
import { AccuseRecModel } from '@db/AccuseRec';
/**
* Test Service
@@ -259,4 +260,13 @@ export default class Game extends Service {
if(!result) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
return ctx.service.utils.resResult(STATUS.SUCCESS);
}
public async getAccuse(page: number, pageSize: number, sortField: string, sortOrder: string, form: {}) {
const { ctx } = this;
const list = await AccuseRecModel.findByCondition(page, pageSize, sortField, sortOrder, form);
const total = await AccuseRecModel.countByCondition( form )
return ctx.service.utils.resResult(STATUS.SUCCESS, {
list, total
});
}
}

View File

@@ -35,6 +35,34 @@ export default class AccuseRec extends BaseModel {
const result: AccuseRecType = await AccuseRecModel.findOneAndUpdate({ code }, { ...docData.toJSON(), ...data, code }, { upsert: true, new: true }).select('-_id').lean();
return result;
}
private static getSearchObj(form: {}) {
let searchObj = form;
return searchObj
}
public static async findByCondition(page: number, pageSize: number, sortField: string, sortOrder: string, form: {} = {}) {
let searchObj = this.getSearchObj(form);
let sort = {};
if(sortField && sortOrder) {
if(sortOrder == 'ascend') {
sort[sortField] = 1;
} else if (sortOrder == 'descend') {
sort[sortField] = -1;
}
}
const result: AccuseRecType[] = await AccuseRecModel.find(searchObj).limit(pageSize).skip((page - 1) * pageSize).sort(sort).lean({ getters: true, virtuals: true });
return result;
}
public static async countByCondition(form: {_id?: string, content?: string} = {}) {
let searchObj = this.getSearchObj(form);
const result = await AccuseRecModel.count(searchObj);
return result;
}
}
export const AccuseRecModel = getModelForClass(AccuseRec);