# Conflicts:
#	shared/resource/jsons/dic_goods.json
This commit is contained in:
jingyushiwo
2021-07-16 20:13:26 +08:00
12 changed files with 83 additions and 16 deletions

View File

@@ -205,7 +205,7 @@ export class ExpeditionBattleHandler {
}
let role = await RoleModel.findByRoleId(roleId, 'lv');
let apJson = await setAp(roleId, role.lv, -1 * warInfo.cost, sid, funcs); // 扣除体力
let apJson = await setAp(roleId, role.lv, isSuccess?-1 * warInfo.cost: 0, sid, funcs); // 扣除体力
if (!apJson) {
return resResult(STATUS.BATTLE_ACTION_POINT_LACK);
}

View File

@@ -156,7 +156,7 @@ export class NormalBattleHandler {
}
let role = await RoleModel.findByRoleId(roleId, 'lv');
let apJson = await setAp(roleId, role.lv, -1 * warInfo.cost, sid, funcs); // 扣除体力
let apJson = await setAp(roleId, role.lv, isSuccess? -1 * warInfo.cost: 0, sid, funcs); // 扣除体力
if (!apJson) {
return resResult(STATUS.BATTLE_ACTION_POINT_LACK);
}

View File

@@ -203,7 +203,7 @@ export class GmHandler {
const uid = session.get('uid');
const maintenance = await MaintenanceModel.updateStatusByCode(code, false, uid);
if(!maintenance) return resResult(STATUS.WRONG_PARMS);
await stopMaintenance(maintenance);
await stopMaintenance(maintenance, uid);
return resResult(STATUS.SUCCESS,);
}

View File

@@ -9,6 +9,8 @@ import { pinus } from "pinus";
import { getWorldChannelSid } from "./chatChannelService";
import { ServerlistModel } from "../db/Serverlist";
import { NoticeModel, NoticeType } from "../db/Notice";
import { SendMailFun } from "./mailService";
import { GMMailType } from '../db/GMMail';
// —————————————— 跑马灯 —————————————— //
// 初始
@@ -146,8 +148,8 @@ async function startMaintenance(maintenance: MaintenanceType, startJob?: Job) {
}
// 停止维护
export async function stopMaintenance(maintenance: MaintenanceType) {
let { serverIds, notice, marquee } = maintenance;
export async function stopMaintenance(maintenance: MaintenanceType, uid: number) {
let { serverIds, notice, marquee, mail } = maintenance;
// 更新serverlist上的status
await ServerlistModel.updateByServerIds(serverIds, { serverStatus: SERVER_STATUS.HOT });
// 更新notice的isEnable
@@ -164,4 +166,11 @@ export async function stopMaintenance(maintenance: MaintenanceType) {
if(marquee) {
await cancelMarquee((<MarqueeType>marquee).code);
}
console.log('*****', JSON.stringify(mail));
if(mail) {
let f = new SendMailFun();
await f.setWithGmMail((<GMMailType>mail)._id);
await f.sendToServer(serverIds);
await f.saveRecord(uid);
}
}

View File

@@ -156,10 +156,10 @@ describe('活动测试', function () {
it('大富翁-移动', function (done) {
if (activityId) {
requestActivity(pinusClient, 'role.heroHandler.addItem', { id: CURRENCY_BY_TYPE.get(CURRENCY_TYPE.SPECIAL_DICE), count: 1 })
requestActivity(pinusClient, 'role.heroHandler.addItem', { id: CURRENCY_BY_TYPE.get(CURRENCY_TYPE.NORMAL_DICE), count: 1 })
.then((data: any) => {
checkSuccessResponse(data);
return requestActivity(pinusClient, 'activity.activityMonopolyHandler.move', { activityId: activityId, step: 1 })
return requestActivity(pinusClient, 'activity.activityMonopolyHandler.move', { activityId: activityId, step: 0 })
})
.then((data: any) => {
checkSuccessResponse(data);

View File

@@ -255,8 +255,6 @@ describe('聊天测试', function () {
pinusClient.request('role.heroHandler.starUp', { hid: XIAHOUQINGYI_HID, star: i, starStage: j }, (starUpRes) => {
if (starUpRes.code === STATUS.ROLE_STAR_REACH_MAX.code) {
expect(msgReceiveCnt).to.be.equal(2);
pinusClientT.off(ON_GROUP_MSG_ROUTE);
pinusClient.off(ON_GROUP_MSG_ROUTE);
done();
} else {
checkSuccessResponse(starUpRes);
@@ -299,8 +297,6 @@ describe('聊天测试', function () {
checkSuccessResponse(qualityUpRes);
setTimeout(() => {
expect(msgReceiveCnt).to.be.equal(2);
pinusClientT.off(ON_GROUP_MSG_ROUTE);
pinusClient.off(ON_GROUP_MSG_ROUTE);
done();
}, 1000);
});

View File

@@ -42,7 +42,6 @@ export default class GameController extends Controller {
ctx.body = ctx.service.utils.resResult(STATUS.GM_JSON_FORMAT_ERR);
return
}
console.log(goods)
ctx.body = await ctx.service.game.updateMaintenance(
{...values, startTime: new Date(values.startTime)},

View File

@@ -86,6 +86,18 @@ export default class UserController extends Controller {
ctx.body = await ctx.service.users.setHeroLv(roleIdAndHids, lv);
}
public async setHeroParam() {
const { ctx } = this;
const { selectedRowKeys: roleIdAndHids, star, colorStar, quality } = ctx.request.body;
ctx.body = await ctx.service.users.setHeroParam(roleIdAndHids, star, colorStar, quality);
}
public async setHeroJob() {
const { ctx } = this;
const { selectedRowKeys: roleIdAndHids, job } = ctx.request.body;
ctx.body = await ctx.service.users.setHeroJob(roleIdAndHids, job);
}
public async saveHeroToDefense() {
const { ctx } = this;
const { roleId, roleName, hid } = ctx.request.body;

View File

@@ -35,6 +35,8 @@ export default (app: Application) => {
router.post('/api/users/getherolist',tokenParser, controller.users.getHeroList);
router.post('/api/users/deletehero', tokenParser, controller.users.deleteHero);
router.post('/api/users/setherolv', tokenParser, controller.users.setHeroLv);
router.post('/api/users/setheroparam', controller.users.setHeroParam);
router.post('/api/users/setherojob', controller.users.setHeroJob);
router.post('/api/users/saveherotodefense',tokenParser, controller.users.saveHeroToDefense);
router.post('/api/users/removeherofromdefense',tokenParser, controller.users.removeHeroFromDefense);
router.post('/api/users/getequiplist', tokenParser, controller.users.getEquipList);

View File

@@ -81,7 +81,7 @@ export default class Game extends Service {
let curEnv = serverEnv.find(cur => cur.env == this.app.config.env);
let marqueeResult = await MarqueeModel.createData({ ...marquee, serverIds: values.serverIds, type: MARQUEE_TYPE.SCHEDULE, isRunning: false }, ctx.user?.uid);
let noticeResult = await NoticeModel.updateNotice('new', { ...notice, type: 1, sort: 1000, serverType: curEnv?.serverType, isEnable: true }, ctx.user?.uid);
let noticeResult = await NoticeModel.updateNotice('new', { ...notice, type: 1, sort: 1000, serverType: curEnv?.serverType, isEnable: false }, ctx.user?.uid);
let mailResult = await GMMailModel.addMail({ ...mail, useTempTime: true }, ctx.user?.uid);
await MaintenanceModel.createData(values, marqueeResult, noticeResult, mailResult);
} else {

View File

@@ -35,6 +35,7 @@ import { FriendRelationModel } from '@db/FriendRelation';
import { createHero as pubCreateHero, addSkin } from '@pubUtils/itemUtils';
import { GiftCodeModel } from '@db/GiftCode';
import { GiftCodeDetailModel } from '@db/GiftCodeDetail';
// import { resResult } from '@pubUtils/util';
// import * as fs from 'fs';
@@ -627,6 +628,53 @@ export default class GMUsers extends Service {
}
}
public async setHeroParam(roleIdAndHids: string[], star: number, colorStar: number, quality: number) {
try {
const ctx = this.ctx;
if (typeof star != 'number'||typeof colorStar != 'number'||typeof quality != 'number') return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
for (let roleIdAndHid of roleIdAndHids) {
let [roleId, hidStr] = roleIdAndHid.split('|');
if (isNaN(parseInt(hidStr))) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
let hid = parseInt(hidStr);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
console.log(hid, roleId, !!hero);
if (!hero) continue;
await calPlayerCeAndSave(HERO_SYSTEM_TYPE.LVUP, roleId, hero, { star, colorStar, quality });
}
return ctx.service.utils.resResult(STATUS.SUCCESS);
} catch (e) {
console.error(e.stack)
}
}
public async setHeroJob(roleIdAndHids: string[], job: number) {
try {
const ctx = this.ctx;
if(!gameData.job.has(job)) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
for (let roleIdAndHid of roleIdAndHids) {
let [roleId, hidStr] = roleIdAndHid.split('|');
if (isNaN(parseInt(hidStr))) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
let hid = parseInt(hidStr);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
console.log(hid, roleId, !!hero);
if (!hero) continue;
await calPlayerCeAndSave(HERO_SYSTEM_TYPE.STAGEUP, roleId, hero, { job });
}
return ctx.service.utils.resResult(STATUS.SUCCESS);
} catch (e) {
console.error(e.stack)
}
}
/**
* 根据类型等搜索装备
*/

View File

@@ -12,11 +12,12 @@ export default class GameController extends Controller {
public async checkVersion() {
const { ctx } = this;
const { version } = ctx.request.body;
if (version < CLIENT_VERSION) {//版本号太低
ctx.body = ctx.service.utils.resResult(STATUS.VERSION_ERR, { version: CLIENT_VERSION });
if (version >= CLIENT_VERSION) {
ctx.body = ctx.service.utils.resResult(STATUS.SUCCESS);
return;
}
ctx.body = ctx.service.utils.resResult(STATUS.SUCCESS);
//版本号太低
ctx.body = ctx.service.utils.resResult(STATUS.VERSION_ERR, { version: CLIENT_VERSION });
return;
}