diff --git a/game-server/app/servers/connector/filter/global.ts b/game-server/app/servers/connector/filter/global.ts index 3e9526827..b808190b5 100644 --- a/game-server/app/servers/connector/filter/global.ts +++ b/game-server/app/servers/connector/filter/global.ts @@ -2,9 +2,8 @@ import {Application, RouteRecord, FrontendOrBackendSession, HandlerCallback, pin // import { checkEvent } from '../../../services/eventSercive'; import { refresh } from '../../../services/refreshService'; import { checkPrivateChat, checkGuildChat, checkOtherChat, checkRoleName, checkGuildName } from "../../../services/sdkService"; -import { resResult, checkWhiteList, genCode } from "../../../pubUtils/util"; +import { resResult, checkWhiteList, genCode, isCheckWord } from "../../../pubUtils/util"; import { BLOCK_TYPE, CHANNEL_PREFIX, MSG_TYPE, PUSH_ROUTE, STATUS } from "../../../consts"; -import { SERVER_DEBUG_MODE } from "../../../pubUtils/dicParam"; import { nowSeconds } from "../../../pubUtils/timeUtil"; import { getServerMainten } from "../../../services/gmService"; import { errlogger } from "../../../util/logger"; @@ -105,7 +104,7 @@ Filter.prototype.before = async function (routeRecord: RouteRecord, msg: any, se } let hasBlockWords = false; - if(SERVER_DEBUG_MODE.CHECK_WORD == 1) { + if(isCheckWord()) { switch(routeRecord.route) { case 'chat.chatHandler.sendPrivateMessage': { diff --git a/game-server/app/servers/guild/handler/cityActivityHandler.ts b/game-server/app/servers/guild/handler/cityActivityHandler.ts index 5dfaf9c55..5d80bab4d 100644 --- a/game-server/app/servers/guild/handler/cityActivityHandler.ts +++ b/game-server/app/servers/guild/handler/cityActivityHandler.ts @@ -1,15 +1,14 @@ import { Application, ChannelService, BackendSession, pinus, HandlerService, } from "pinus"; import { GUILD_ACTIVITY_TYPE, STATUS, REDIS_KEY, GUILD_POINT_WAYS, CITY_STATUS, TASK_TYPE, ITEM_CHANGE_REASON, PUSH_ROUTE } from "../../../consts"; -import { resResult } from "../../../pubUtils/util"; +import { isDebugTime, resResult } from "../../../pubUtils/util"; import { getGuildActivityStatus, getCityActivityObj, getCityStatus as pubGetCityStatus, getCities, getCityActivityRank, sendSingleCityActEndMsg, getPreDayActiveData, sendGuildCityDeclare } from "../../../services/guildActivity/guildActivityService"; import { GuildActivityCityModel } from "../../../db/GuildActivityCity"; import { gameData } from "../../../pubUtils/data"; import { UserGuildActivityRecModel } from "../../../db/UserGuildActivityRec"; import { leaveCityChannel, addRoleToCityChannel, getCityChannelSid } from "../../../services/chatService"; -import { UserGuildModel } from "../../../db/UserGuild"; import { GuildActivityRecordModel } from "../../../db/GuildActivityRec"; import { nowSeconds, getTimeFun } from "../../../pubUtils/timeUtil"; -import { GUILDACTIVITY, SERVER_DEBUG_MODE } from "../../../pubUtils/dicParam"; +import { GUILDACTIVITY } from "../../../pubUtils/dicParam"; import { getGoldObject, handleCost } from "../../../services/role/rewardService"; import { addActive } from "../../../services/guildService"; import { Rank } from "../../../services/rankService"; @@ -17,7 +16,7 @@ import { checkTask } from "../../../services/task/taskService"; import { guildInter } from "../../../pubUtils/interface"; import { dispatch } from "../../../pubUtils/dispatcher"; import { ServerRecordModel } from "../../../db/ServerRecords"; -import { sendMessageToCityWithSuc, sendMessageToGuildWithSuc } from "../../../services/pushService"; +import { sendMessageToCityWithSuc } from "../../../services/pushService"; export default function (app: Application) { new HandlerService(app, {}); @@ -307,7 +306,7 @@ export class CityActivityHandler { // 更新userGuildActivityRecord let challengeTime = nowSeconds() + GUILDACTIVITY.CITYACTIVITY_CHALLENGE_CD; - if(SERVER_DEBUG_MODE.CURRENT_TIME == 1) { + if(isDebugTime()) { let guilds = pinus.app.getServersByType('guild'); let guild = dispatch(roleId, guilds, 'guild'); let currentTime = await pinus.app.rpc.guild.guildActivityRemote.getCurrentTime.toServer(guild.id); diff --git a/game-server/app/servers/order/handler/orderHandler.ts b/game-server/app/servers/order/handler/orderHandler.ts index 290ac380d..f812f9db7 100644 --- a/game-server/app/servers/order/handler/orderHandler.ts +++ b/game-server/app/servers/order/handler/orderHandler.ts @@ -1,18 +1,15 @@ import { Application, BackendSession, HandlerService, } from 'pinus'; -import { genCode, resResult } from '../../../pubUtils/util'; +import { genCode, isDebugPay, resResult } from '../../../pubUtils/util'; import { ACTIVITY_TYPE, DEBUG_MAGIC_WORD, DEBUG_PRICE, ORDER_STATE, PAY_TYPE, STATUS, TASK_TYPE, TA_EVENT } from '../../../consts'; import { dicRMB } from '../../../pubUtils/dictionary/DicRMB'; import { UserOrderModel } from '../../../db/UserOrder'; import _ = require('underscore'); -import { applyOrderWX, checkOrderWX } from '../../../services/pay/weixinPay'; -import { applyOrderALI, checkOrderALI } from '../../../services/pay/aliPay'; +import { applyOrderWX } from '../../../services/pay/weixinPay'; +import { applyOrderALI } from '../../../services/pay/aliPay'; import { applyOrder37 } from '../../../services/pay/37Pay'; import { checkOrderCanBuy, settleOrder, settleOrderAli, settleOrderWx } from '../../../services/orderService'; -import { addRechargeMoney } from '../../../services/activity/rechargeMoneyService'; -import { addVipRechargeMoney } from '../../../services/activity/vipRechargeMoneyService'; import { getActivityById } from '../../../services/activity/activityService'; import { reportTAEvent } from '../../../services/sdkService'; -import { gameData } from '../../../pubUtils/data'; export default function (app: Application) { new HandlerService(app, {}); @@ -113,7 +110,7 @@ export class orderHandler { reportTAEvent(roleId, TA_EVENT.RECHARGE, { pay_id: localOrderID, chargeId: productID, pay_name: message, pay_amount: price, pay_channel: payType }, ip) - if(gameData.serverConst.DEBUG_PAY == 1) { + if(isDebugPay()) { productInfo = {...productInfo, price: DEBUG_PRICE} } return resResult(STATUS.SUCCESS, { orderInfo: sdkOrderInfo, productInfo, localOrderID }); diff --git a/game-server/app/services/auctionService.ts b/game-server/app/services/auctionService.ts index 9181103e5..11649b30e 100644 --- a/game-server/app/services/auctionService.ts +++ b/game-server/app/services/auctionService.ts @@ -1,7 +1,7 @@ import { DividendModel } from './../db/Dividend'; -import { LOT_CODE_LEN, AUCTION_STAGE, AUCTION_TIME, DIVIDEND_CODE_LEN, DIVIDEND_STATUS, LOT_STATUS, MAIL_TYPE, CURRENCY_BY_TYPE, CURRENCY_TYPE, DIVIDENDMAXRATIO, DIVIDENDPOSITIONMAXRATIO, ROLE_RECEIVE_STATUS, AUCTION_BID_STATUS, DEBUG_MAGIC_WORD, AUCTION_SOURCE, TA_EVENT, getAuctionSourceTypeName, PUSH_ROUTE, GUILD_JOB } from './../consts'; -import { DividendRec, ItemReward } from "../domain/dbGeneral"; -import { genCode, getRandSingleEelm } from '../pubUtils/util'; +import { LOT_CODE_LEN, AUCTION_STAGE, AUCTION_TIME, DIVIDEND_CODE_LEN, DIVIDEND_STATUS, LOT_STATUS, MAIL_TYPE, CURRENCY_BY_TYPE, CURRENCY_TYPE, ROLE_RECEIVE_STATUS, AUCTION_BID_STATUS, DEBUG_MAGIC_WORD, AUCTION_SOURCE, TA_EVENT, getAuctionSourceTypeName, PUSH_ROUTE, GUILD_JOB } from './../consts'; +import { DividendRec, } from "../domain/dbGeneral"; +import { genCode, getRandSingleEelm, isDebugTime } from '../pubUtils/util'; import { LotModel, LotParam, LotType } from '../db/Lot'; import { getCurDay, getTimeFunD, getTimeFunM, nowSeconds } from '../pubUtils/timeUtil'; import { gameData, getGoodById } from '../pubUtils/data'; @@ -66,7 +66,7 @@ export async function treatLotsTime(lots: LotType[]) { } export async function treatSingleLotTime(lot: LotType) { - if(dicParam.SERVER_DEBUG_MODE.CURRENT_TIME == 1) { + if(isDebugTime()) { let current = await getCurrentTime(); if(Math.floor(current/1000) != nowSeconds()) { lot.begin.setHours(20, 20, 0, 0); @@ -107,7 +107,7 @@ export async function todayGuildBegin() { async function getCurrentTime() { let now = Date.now(); - if(dicParam.SERVER_DEBUG_MODE.CURRENT_TIME == 1) { + if(isDebugTime()) { let guilds = pinus.app.getServersByType('guild'); let guild = getRandSingleEelm(guilds); now = await pinus.app.rpc.guild.guildActivityRemote.getCurrentTime.toServer(guild.id); @@ -117,7 +117,7 @@ async function getCurrentTime() { async function getCurrentTimeWithSetDay() { let now = new Date(); - if(dicParam.SERVER_DEBUG_MODE.CURRENT_TIME == 1) { + if(isDebugTime()) { let guilds = pinus.app.getServersByType('guild'); let guild = getRandSingleEelm(guilds); let currentTime = await pinus.app.rpc.guild.guildActivityRemote.getCurrentTime.toServer(guild.id); @@ -302,7 +302,7 @@ export async function startGuildAuction() { let lots = await LotModel.updateLotsStageByBegin(begin, AUCTION_STAGE.GUILD); let dividends = await DividendModel.updateDividendsStatus(begin, DIVIDEND_STATUS.ING); - if(dicParam.SERVER_DEBUG_MODE.CURRENT_TIME == 1) { + if(isDebugTime()) { let day = getCurDay(); let time = getTimeFunM().getTimeWithWeek(day, 20, 20, 0); pinus.app.rpc.guild.guildActivityRemote.setCurrentTime.broadcast(time); @@ -343,7 +343,7 @@ export async function startWorldAuction() { lots = await LotModel.updateUnSoldLotsStageByBegin(begin, AUCTION_STAGE.WORLD); let dividends = await DividendModel.updateDividendsStatus(begin, DIVIDEND_STATUS.END); - if(dicParam.SERVER_DEBUG_MODE.CURRENT_TIME == 1) { + if(isDebugTime()) { let day = getCurDay(); let time = getTimeFunM().getTimeWithWeek(day, 20, 40, 0); pinus.app.rpc.guild.guildActivityRemote.setCurrentTime.broadcast(time); @@ -365,7 +365,7 @@ export async function stopAuction() { await sendLotsRewardToMlail(lots); lots = await LotModel.updateLotsStageByBegin(begin, AUCTION_STAGE.END); - if(dicParam.SERVER_DEBUG_MODE.CURRENT_TIME == 1) { + if(isDebugTime()) { let day = getCurDay(); let time = getTimeFunM().getTimeWithWeek(day, 22, 0, 0); pinus.app.rpc.guild.guildActivityRemote.setCurrentTime.broadcast(time); diff --git a/game-server/app/services/orderService.ts b/game-server/app/services/orderService.ts index e9103f966..85d086921 100644 --- a/game-server/app/services/orderService.ts +++ b/game-server/app/services/orderService.ts @@ -18,7 +18,7 @@ import { makeRefreshShopReward } from './activity/refreshShopService'; import { ActivityMonopolyModel, ActivityMonopolyModelType } from '../db/ActivityMonopoly'; import { ActivityMonopolyLandModel, ActivityMonopolyLandModelType } from '../db/ActivityMonopolyLand'; import { pinus } from 'pinus'; -import { resResult } from '../pubUtils/util'; +import { isDebugPay, resResult } from '../pubUtils/util'; import { checkOrderWX } from './pay/weixinPay'; import { addRechargeMoney } from './activity/rechargeMoneyService'; import { addVipRechargeMoney } from './activity/vipRechargeMoneyService'; @@ -33,6 +33,7 @@ import { makeTaskPass } from './activity/taskPassService'; import { addGuildPay } from './activity/guildPayService'; import { sendMessageToUserWithSuc } from './pushService'; import { gameData } from '../pubUtils/data'; +import { checkParamPrice } from '../pubUtils/sdkUtil'; export async function checkOrderCanBuy(roleId: string, serverId: number, activityData: ActivityModelType, productID: string, paramStr: string) { let activityId = activityData.activityId; @@ -278,7 +279,7 @@ export async function settleOrderFromRedisPub(message: string) { console.log('订单玩家错误'); return false; } - if((gameData.serverConst.DEBUG_PAY != 1 && order.price != parseFloat(params.money))||(gameData.serverConst.DEBUG_PAY == 1 && parseFloat(params.money) != DEBUG_PRICE)) { + if((!checkParamPrice(order.price, params.money))) { console.log('订单金额错误'); return false; } @@ -291,7 +292,6 @@ export async function settleOrderFromRedisPub(message: string) { return true } - export async function refundOrderFromRedisPub(message: string) { console.log('**********refundOrderFromRedisPub*******') console.log('message: ', message); diff --git a/game-server/app/services/pay/37Pay.ts b/game-server/app/services/pay/37Pay.ts index 5a2694e1c..07b45d4d5 100644 --- a/game-server/app/services/pay/37Pay.ts +++ b/game-server/app/services/pay/37Pay.ts @@ -4,7 +4,7 @@ import { UserModel } from "../../db/User"; import { LoginValidateData37 } from "../../domain/sdk"; import { DicRMB } from "../../pubUtils/dictionary/DicRMB"; import { nowSeconds } from "../../pubUtils/timeUtil"; -import { resResult } from "../../pubUtils/util"; +import { isDebugPay, resResult } from "../../pubUtils/util"; import { get37Md5SignA } from "../../pubUtils/sdkUtil"; import { pinus } from "pinus"; import { gameData } from "../../pubUtils/data"; @@ -39,7 +39,7 @@ export async function applyOrder37(localOrderID: string, roleId: string, product time: nowSeconds(), ext } - if(gameData.serverConst.DEBUG_PAY == 1) { + if(isDebugPay()) { body = {...body, money: DEBUG_PRICE} } diff --git a/game-server/app/services/refreshService.ts b/game-server/app/services/refreshService.ts index 64084130b..1822bdb40 100644 --- a/game-server/app/services/refreshService.ts +++ b/game-server/app/services/refreshService.ts @@ -1,6 +1,6 @@ import { FrontendOrBackendSession, pinus } from "pinus"; import { STATUS } from '../consts/statusCode'; -import { resResult, shouldRefresh, shouldRefreshWeek } from '../pubUtils/util'; +import { isDebugTime, resResult, shouldRefresh, shouldRefreshWeek } from '../pubUtils/util'; import { nowSeconds } from "../pubUtils/timeUtil"; // import { RoleModel } from '../db/Role'; import { refDailyTask, refDailyTaskBox } from './task/taskService' @@ -19,7 +19,7 @@ export async function refresh(session: FrontendOrBackendSession) { const roleId = session.get('roleId')||'test'; const sid = session.get('sid'); - if(dicParam.SERVER_DEBUG_MODE.CURRENT_TIME != 1) { + if(isDebugTime()) { sendMessageToUserWithSuc(roleId, PUSH_ROUTE.PUSH_CURRENT_TIME, { time: Date.now() }, sid); } else { let guilds = pinus.app.getServersByType('guild'); diff --git a/shared/pubUtils/dictionary/DicServerConst.ts b/shared/pubUtils/dictionary/DicServerConst.ts index f804c1b93..fc6207b2d 100644 --- a/shared/pubUtils/dictionary/DicServerConst.ts +++ b/shared/pubUtils/dictionary/DicServerConst.ts @@ -27,8 +27,12 @@ export interface DicServerConst { readonly CLOSE_LOGIN_WHEN_ONLINE_MAX: number; // 最大在线人数 readonly MAX_ONLINE_USER_COUNT: number; - // debug模式 + // 是否开启支付0.01元 readonly DEBUG_PAY: number; + // 是否开启时间修改 + readonly DEBUG_TIME: number; + // 是否检查屏蔽词 + readonly CHECK_WORD: number; } export const dicServerConst: DicServerConst = {} as DicServerConst; diff --git a/shared/pubUtils/sdkUtil.ts b/shared/pubUtils/sdkUtil.ts index 7718cf89c..96da22281 100644 --- a/shared/pubUtils/sdkUtil.ts +++ b/shared/pubUtils/sdkUtil.ts @@ -1,8 +1,9 @@ -import { REDIS_KEY, SDK_37_ADDR, SDK_37_CONST, WJX_KEY } from '../consts'; +import { DEBUG_PRICE, REDIS_KEY, SDK_37_ADDR, SDK_37_CONST, WJX_KEY } from '../consts'; import { request37 } from './httpUtil'; import { nowSeconds } from './timeUtil'; import { LoginValidataReturn37, Chat37Params, GetServerListParam } from '../domain/sdk'; import * as crypto from 'crypto' +import { isDebugPay } from './util'; // 通用加密方法 @@ -138,4 +139,10 @@ export function checkWjxSign(activity: string, index: string, sign: string) { console.log('##### checkWjxSign', str, signResult, sign); if(signResult != sign) return false; return true; +} + +export function checkParamPrice(orderPrice: number, paramPrice: string) { + if(!isDebugPay() && orderPrice != parseFloat(paramPrice)) return false; + if(isDebugPay() && parseFloat(paramPrice) != DEBUG_PRICE) return false; + return true } \ No newline at end of file diff --git a/shared/pubUtils/util.ts b/shared/pubUtils/util.ts index 44d322d0d..247d23f31 100644 --- a/shared/pubUtils/util.ts +++ b/shared/pubUtils/util.ts @@ -12,6 +12,7 @@ import { getTimeFunM } from './timeUtil'; import { Floor } from '../domain/activityField/gachaField'; import { WhiteListModel } from '../db/RegionWhiteList'; import { RewardInter } from './interface'; +import { gameData } from './data'; const randomName = require("chinese-random-name"); const moment = require('moment'); const crypto = require('crypto'); @@ -821,3 +822,14 @@ export function addToMap(map: Map, id: T, value: number) { // return { topLineup, topLineupCe }; // } +export function isDebugTime() { + return gameData.serverConst.DEBUG_TIME === 1; +} + +export function isDebugPay() { + return gameData.serverConst.DEBUG_PAY === 1; +} + +export function isCheckWord() { + return gameData.serverConst.CHECK_WORD === 1; +} \ No newline at end of file diff --git a/shared/resource/jsons/server_const.json b/shared/resource/jsons/server_const.json index c79a8bd0d..d7483e18b 100644 --- a/shared/resource/jsons/server_const.json +++ b/shared/resource/jsons/server_const.json @@ -16,5 +16,7 @@ { "id": 8, "desc": "捐赠", "route": "guild.donateHandler.donate", "param": {}, "interval": 200 }, { "id": 9, "desc": "碾压镇念塔", "route": "battle.towerBattleHandler.skipTower", "param": {}, "interval": 200 } ], - "DEBUG_PAY": 0 + "DEBUG_PAY": 0, + "DEBUG_TIME": 0, + "CHECK_WORD": 1 } \ No newline at end of file diff --git a/web-server/app/service/Sdk.ts b/web-server/app/service/Sdk.ts index 92dd8a276..4dee94c08 100644 --- a/web-server/app/service/Sdk.ts +++ b/web-server/app/service/Sdk.ts @@ -1,9 +1,9 @@ import { Service } from 'egg'; -import { REDIS_KEY, PAY_37_CALLBACK_CODE, SDK_37_CONST, ORDER_STATE, SDK_37_TREAT_CODE, SERVER_STATUS, SDK_37_REFUND_CODE, DEBUG_PRICE } from '@consts'; +import { REDIS_KEY, PAY_37_CALLBACK_CODE, SDK_37_CONST, ORDER_STATE, SDK_37_TREAT_CODE, SERVER_STATUS, SDK_37_REFUND_CODE } from '@consts'; import { GetGuildInfoByUserParam, GetServerListParam, GuildNameCallBackParam, IOSRefundParam, PayCallback37Data, RoleNameCallBackParam } from '../domain/sdk'; import { RedisClient } from 'redis'; -import { get37GetServerMd5Sign, get37Md5SignA, get37Md5SignB, getChannelId, getRedisSubChannel } from '../pubUtils/sdkUtil'; +import { checkParamPrice, get37GetServerMd5Sign, get37Md5SignA, get37Md5SignB, getChannelId, getRedisSubChannel } from '../pubUtils/sdkUtil'; import { UserOrderModel } from '@db/UserOrder'; import { nowSeconds } from 'app/pubUtils/timeUtil'; import { RoleModel } from '@db/Role'; @@ -53,7 +53,7 @@ export default class Sdk extends Service { return ctx.service.utils.resResult(PAY_37_CALLBACK_CODE.SUCCESS, ''); } ctx.service.utils.log('DEBUG', `[${ctx.request.url}] [${ctx.logcode}] pay37Callback check order status ok ${params.money} ${typeof params.money}`); - if((gameData.serverConst.DEBUG_PAY != 1 && order.price != parseFloat(params.money)) || (gameData.serverConst.DEBUG_PAY == 1 && parseFloat(params.money) != DEBUG_PRICE)) { + if(!checkParamPrice(order.price, params.money)) { return ctx.service.utils.resResult(PAY_37_CALLBACK_CODE.PAY_ERR, ''); } ctx.service.utils.log('DEBUG', `[${ctx.request.url}] [${ctx.logcode}] pay37Callback check money ok ${order.price} ${params.money}`);