后台:设置玩家创建天数
This commit is contained in:
@@ -84,10 +84,10 @@ export class ActivityRemote {
|
|||||||
this.app.set('activities', this.activities);
|
this.app.set('activities', this.activities);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async updateActivities(activities: ActivityModelType[]) {
|
public async updateActivities(activities: ActivityInRemote[]) {
|
||||||
let activityIds: number[] = [];
|
let activityIds: number[] = [];
|
||||||
for(let activity of activities) {
|
for(let activity of activities) {
|
||||||
this.activities.set(activity.activityId, new ActivityInRemote(activity));
|
this.activities.set(activity.activityId, activity);
|
||||||
activityIds.push(activity.activityId);
|
activityIds.push(activity.activityId);
|
||||||
}
|
}
|
||||||
this.setActivityTypeAndServer();
|
this.setActivityTypeAndServer();
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import { getTimeFunM, nowSeconds } from '../../../pubUtils/timeUtil';
|
|||||||
import moment = require('moment');
|
import moment = require('moment');
|
||||||
import { sendUngotDividend } from '../../../services/auctionService';
|
import { sendUngotDividend } from '../../../services/auctionService';
|
||||||
import { taflush } from '../../../services/sdkService';
|
import { taflush } from '../../../services/sdkService';
|
||||||
|
import { ActivityInRemote } from '../../../domain/activityField/activityField';
|
||||||
let timer: NodeJS.Timer;
|
let timer: NodeJS.Timer;
|
||||||
export default function (app: Application) {
|
export default function (app: Application) {
|
||||||
return new GmHandler(app);
|
return new GmHandler(app);
|
||||||
@@ -180,7 +181,7 @@ export class GmHandler {
|
|||||||
|
|
||||||
let activityServers = pinus.app.getServersByType('activity');
|
let activityServers = pinus.app.getServersByType('activity');
|
||||||
for(let server of activityServers) {
|
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, {
|
return resResult(STATUS.SUCCESS, {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { STATUS } from '../../../consts/statusCode';
|
|||||||
import { getRoleOnlineInfo, updateUserInfo } from '../../../services/redisService';
|
import { getRoleOnlineInfo, updateUserInfo } from '../../../services/redisService';
|
||||||
import { addItems, createHeroes } from '../../../services/rewardService';
|
import { addItems, createHeroes } from '../../../services/rewardService';
|
||||||
import { RewardInter } from '../../../pubUtils/interface';
|
import { RewardInter } from '../../../pubUtils/interface';
|
||||||
import { getExpByLv } from '../../../pubUtils/data';
|
import { getExpByLv, getLvByExp } from '../../../pubUtils/data';
|
||||||
import { RoleModel, RoleType } from '../../../db/Role';
|
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 { 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';
|
import { GuildFormParam } from '../../../domain/backEndField/params';
|
||||||
@@ -27,10 +27,10 @@ export class GmRoleHandler {
|
|||||||
constructor(private app: Application) {
|
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 { roleId, roleName, serverId, values } = msg;
|
||||||
|
|
||||||
let { reward, heroes, lv } = values;
|
let { reward, heroes, lv, expInc = 0 } = values;
|
||||||
if (reward == undefined && heroes == undefined && lv == undefined) {
|
if (reward == undefined && heroes == undefined && lv == undefined) {
|
||||||
return resResult(STATUS.WRONG_PARMS);
|
return resResult(STATUS.WRONG_PARMS);
|
||||||
}
|
}
|
||||||
@@ -45,12 +45,14 @@ export class GmRoleHandler {
|
|||||||
}
|
}
|
||||||
if(lv && lv > 0) {
|
if(lv && lv > 0) {
|
||||||
let exp = getExpByLv(lv - 1)?.sum||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 });
|
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 }];
|
let uids = [{ uid: roleId, sid }];
|
||||||
pinus.app.get('channelService').pushMessageByUids('onPlayerExpChange', resResult(STATUS.SUCCESS, {
|
pinus.app.get('channelService').pushMessageByUids('onPlayerExpChange', resResult(STATUS.SUCCESS, {
|
||||||
isLvUp: false, lv, exp
|
isLvUp: false, lv: newLv, exp
|
||||||
}), uids);
|
}), uids);
|
||||||
}
|
}
|
||||||
return resResult(STATUS.SUCCESS);
|
return resResult(STATUS.SUCCESS);
|
||||||
|
|||||||
@@ -44,6 +44,12 @@ export default class UserController extends Controller {
|
|||||||
ctx.body = await ctx.service.users.setWarRecord(roleId, warId);
|
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() {
|
public async getHeroList() {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
const { page, pageSize, sortField, sortOrder, form } = ctx.request.body;
|
const { page, pageSize, sortField, sortOrder, form } = ctx.request.body;
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ export default (app: Application) => {
|
|||||||
router.post('/api/users/getrolelist', tokenParser,controller.users.getrolelist);
|
router.post('/api/users/getrolelist', tokenParser,controller.users.getrolelist);
|
||||||
router.post('/api/users/deleterole', tokenParser,controller.users.deleteRole);
|
router.post('/api/users/deleterole', tokenParser,controller.users.deleteRole);
|
||||||
router.post('/api/users/setwar', tokenParser, controller.users.setWar);
|
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/getherolist', tokenParser,controller.users.getHeroList);
|
||||||
router.post('/api/users/deletehero', tokenParser, controller.users.deleteHero);
|
router.post('/api/users/deletehero', tokenParser, controller.users.deleteHero);
|
||||||
router.post('/api/users/getequiplist', tokenParser, controller.users.getEquipList);
|
router.post('/api/users/getequiplist', tokenParser, controller.users.getEquipList);
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import { RedisClient } from 'redis';
|
|||||||
import { UserGuildModel } from '@db/UserGuild';
|
import { UserGuildModel } from '@db/UserGuild';
|
||||||
import { TowerRecordModel } from '@db/TowerRecord';
|
import { TowerRecordModel } from '@db/TowerRecord';
|
||||||
import { HangUpRecordModel } from '@db/HangUpRecord';
|
import { HangUpRecordModel } from '@db/HangUpRecord';
|
||||||
|
import { nowSeconds } from '@pubUtils/timeUtil';
|
||||||
|
|
||||||
// import { resResult } from '@pubUtils/util';
|
// import { resResult } from '@pubUtils/util';
|
||||||
|
|
||||||
@@ -693,6 +694,18 @@ export default class GMUsers extends Service {
|
|||||||
await HangUpRecordModel.updateRec(roleId, role.roleName, towerLv, new Date(), []);
|
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) {
|
private async setWarStarAndScript(roleId: string, dicWar: DicWar) {
|
||||||
let { warStar } = await RoleModel.findByRoleId(roleId);
|
let { warStar } = await RoleModel.findByRoleId(roleId);
|
||||||
let deleteIds: number[] = [], myMaxWarId = 0;
|
let deleteIds: number[] = [], myMaxWarId = 0;
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import { reduceCe, resResult } from "./util";
|
|||||||
import { calculatetopLineup, } from "./playerCe";
|
import { calculatetopLineup, } from "./playerCe";
|
||||||
import { GuildModel, GuildType } from "../db/Guild";
|
import { GuildModel, GuildType } from "../db/Guild";
|
||||||
import { PvpDefenseModel } from "../db/PvpDefense";
|
import { PvpDefenseModel } from "../db/PvpDefense";
|
||||||
import { ActivityModelType } from "../db/Activity";
|
|
||||||
import { EquipModel } from '../db/Equip';
|
import { EquipModel } from '../db/Equip';
|
||||||
import { ActionPointModel } from '../db/ActionPoint';
|
import { ActionPointModel } from '../db/ActionPoint';
|
||||||
import { BattleDropModel } from '../db/BattleDrop';
|
import { BattleDropModel } from '../db/BattleDrop';
|
||||||
|
|||||||
Reference in New Issue
Block a user