diff --git a/game-server/app/servers/chat/handler/chatHandler.ts b/game-server/app/servers/chat/handler/chatHandler.ts index 8305f19c4..69140c9a9 100644 --- a/game-server/app/servers/chat/handler/chatHandler.ts +++ b/game-server/app/servers/chat/handler/chatHandler.ts @@ -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); } diff --git a/game-server/app/services/chatService.ts b/game-server/app/services/chatService.ts index 08af2802b..829e4144e 100644 --- a/game-server/app/services/chatService.ts +++ b/game-server/app/services/chatService.ts @@ -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; diff --git a/gm-server/app/controller/game.ts b/gm-server/app/controller/game.ts index ece2331ea..5dac5bc6a 100644 --- a/gm-server/app/controller/game.ts +++ b/gm-server/app/controller/game.ts @@ -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(); diff --git a/gm-server/app/router.ts b/gm-server/app/router.ts index 4403fc434..05c6f96f7 100644 --- a/gm-server/app/router.ts +++ b/gm-server/app/router.ts @@ -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); diff --git a/gm-server/app/service/Game.ts b/gm-server/app/service/Game.ts index 1282422a3..182c66c68 100644 --- a/gm-server/app/service/Game.ts +++ b/gm-server/app/service/Game.ts @@ -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 + }); + } } diff --git a/shared/db/AccuseRec.ts b/shared/db/AccuseRec.ts index 1046e3398..d22d9abad 100644 --- a/shared/db/AccuseRec.ts +++ b/shared/db/AccuseRec.ts @@ -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);