后台:设置玩家创建天数

This commit is contained in:
luying
2021-12-24 16:01:52 +08:00
parent dc00431010
commit 45b62b2e2c
7 changed files with 32 additions and 10 deletions

View File

@@ -84,10 +84,10 @@ export class ActivityRemote {
this.app.set('activities', this.activities);
}
public async updateActivities(activities: ActivityModelType[]) {
public async updateActivities(activities: ActivityInRemote[]) {
let activityIds: number[] = [];
for(let activity of activities) {
this.activities.set(activity.activityId, new ActivityInRemote(activity));
this.activities.set(activity.activityId, activity);
activityIds.push(activity.activityId);
}
this.setActivityTypeAndServer();

View File

@@ -22,6 +22,7 @@ import { getTimeFunM, nowSeconds } from '../../../pubUtils/timeUtil';
import moment = require('moment');
import { sendUngotDividend } from '../../../services/auctionService';
import { taflush } from '../../../services/sdkService';
import { ActivityInRemote } from '../../../domain/activityField/activityField';
let timer: NodeJS.Timer;
export default function (app: Application) {
return new GmHandler(app);
@@ -180,7 +181,7 @@ export class GmHandler {
let activityServers = pinus.app.getServersByType('activity');
for(let server of activityServers) {
pinus.app.rpc.activity.activityRemote.updateActivities.toServer(server.id, activities);
pinus.app.rpc.activity.activityRemote.updateActivities.toServer(server.id, activities.map(activity => new ActivityInRemote(activity)));
}
return resResult(STATUS.SUCCESS, {

View File

@@ -4,7 +4,7 @@ import { STATUS } from '../../../consts/statusCode';
import { getRoleOnlineInfo, updateUserInfo } from '../../../services/redisService';
import { addItems, createHeroes } from '../../../services/rewardService';
import { RewardInter } from '../../../pubUtils/interface';
import { getExpByLv } from '../../../pubUtils/data';
import { getExpByLv, getLvByExp } from '../../../pubUtils/data';
import { RoleModel, RoleType } from '../../../db/Role';
import { BLOCK_TYPE, GUILD_AUTH, GUILD_DISMISS_WAY, GUILD_JOB, GUILD_MASTER_CHANGE_WAY, GUILD_STATUS, GUILD_STRUCTURE, ITEM_CHANGE_REASON, MAIL_TYPE, REDIS_KEY, TA_EVENT } from '../../../consts';
import { GuildFormParam } from '../../../domain/backEndField/params';
@@ -27,10 +27,10 @@ export class GmRoleHandler {
constructor(private app: Application) {
}
async addItems(msg: { roleId: string, roleName: string, serverId: number, values: { reward: RewardInter[], heroes: number[], lv: number }}, session: BackendSession) {
async addItems(msg: { roleId: string, roleName: string, serverId: number, values: { reward: RewardInter[], heroes: number[], lv: number, expInc: number }}, session: BackendSession) {
let { roleId, roleName, serverId, values } = msg;
let { reward, heroes, lv } = values;
let { reward, heroes, lv, expInc = 0 } = values;
if (reward == undefined && heroes == undefined && lv == undefined) {
return resResult(STATUS.WRONG_PARMS);
}
@@ -45,12 +45,14 @@ export class GmRoleHandler {
}
if(lv && lv > 0) {
let exp = getExpByLv(lv - 1)?.sum||0;
let role = await RoleModel.updateRoleInfo(roleId, { lv, exp })
exp += expInc;
let newLv = getLvByExp(exp);
let role = await RoleModel.updateRoleInfo(roleId, { lv: newLv, exp })
let r = new Rank(REDIS_KEY.USER_LV, { serverId: serverId });
await r.setRankWithRoleInfo(roleId, lv, Date.now(), role);
await r.setRankWithRoleInfo(roleId, newLv, Date.now(), role);
let uids = [{ uid: roleId, sid }];
pinus.app.get('channelService').pushMessageByUids('onPlayerExpChange', resResult(STATUS.SUCCESS, {
isLvUp: false, lv, exp
isLvUp: false, lv: newLv, exp
}), uids);
}
return resResult(STATUS.SUCCESS);

View File

@@ -44,6 +44,12 @@ export default class UserController extends Controller {
ctx.body = await ctx.service.users.setWarRecord(roleId, warId);
}
public async setCreateTime() {
const { ctx } = this;
const { roleId, day } = ctx.request.body;
ctx.body = await ctx.service.users.setCreateTime(roleId, day);
}
public async getHeroList() {
const { ctx } = this;
const { page, pageSize, sortField, sortOrder, form } = ctx.request.body;

View File

@@ -27,6 +27,7 @@ export default (app: Application) => {
router.post('/api/users/getrolelist', tokenParser,controller.users.getrolelist);
router.post('/api/users/deleterole', tokenParser,controller.users.deleteRole);
router.post('/api/users/setwar', tokenParser, controller.users.setWar);
router.post('/api/users/setcreatetime', controller.users.setCreateTime);
router.post('/api/users/getherolist', tokenParser,controller.users.getHeroList);
router.post('/api/users/deletehero', tokenParser, controller.users.deleteHero);
router.post('/api/users/getequiplist', tokenParser, controller.users.getEquipList);

View File

@@ -28,6 +28,7 @@ import { RedisClient } from 'redis';
import { UserGuildModel } from '@db/UserGuild';
import { TowerRecordModel } from '@db/TowerRecord';
import { HangUpRecordModel } from '@db/HangUpRecord';
import { nowSeconds } from '@pubUtils/timeUtil';
// import { resResult } from '@pubUtils/util';
@@ -693,6 +694,18 @@ export default class GMUsers extends Service {
await HangUpRecordModel.updateRec(roleId, role.roleName, towerLv, new Date(), []);
}
public async setCreateTime(roleId: string, day: number) {
const { ctx } = this;
if(!isNumber(day) || day < 0) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
let createTime = nowSeconds() - (day - 1) * 86400;
let role = await RoleModel.updateRoleInfo(roleId, { createTime });
if(!role) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
return ctx.service.utils.resResult(STATUS.SUCCESS);
}
private async setWarStarAndScript(roleId: string, dicWar: DicWar) {
let { warStar } = await RoleModel.findByRoleId(roleId);
let deleteIds: number[] = [], myMaxWarId = 0;

View File

@@ -15,7 +15,6 @@ import { reduceCe, resResult } from "./util";
import { calculatetopLineup, } from "./playerCe";
import { GuildModel, GuildType } from "../db/Guild";
import { PvpDefenseModel } from "../db/PvpDefense";
import { ActivityModelType } from "../db/Activity";
import { EquipModel } from '../db/Equip';
import { ActionPointModel } from '../db/ActionPoint';
import { BattleDropModel } from '../db/BattleDrop';