后台:添加举报页面
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user