Skip to content

Commit 2eb7467

Browse files
committed
Merge branch 'dev' of https://github.com/eeg1412/wikimoeCardByNodeJS into master
2 parents fdd89ea + 7951030 commit 2eb7467

File tree

22 files changed

+213
-179
lines changed

22 files changed

+213
-179
lines changed

README.md

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -45,31 +45,7 @@ by 广树 [维基萌](https://www.wikimoe.com/)
4545
3.[releases](https://github.com/eeg1412/wikimoeCardByNodeJS/releases)下载最新的版本。
4646
4. 除非特殊说明,请不要覆盖【server/config】下的文件以及【server/bin/nodejs.wikimoe.com-chain.pem】和【server/bin/nodejs.wikimoe.com-key.pem】两个文件。
4747
5. 如果遇到无法启动的情况请尝试删除【node_modules】文件夹重新执行【使用方法】中的2-3步。
48-
49-
注意:v1.2.1~v2.2.1 的猜卡有一个无法兑换的BUG,请及时更新至最新版本!
50-
51-
### v1.2.1更新至v2.0.0的方法
52-
53-
1. 更新前请务必备份原先的文件和数据库!!!!
54-
2.[releases](https://github.com/eeg1412/wikimoeCardByNodeJS/releases)下载更新包。
55-
3. 解压更新包覆盖项目文件。
56-
4. 如果当前路径不在服务端则`cd server`切换至服务端。
57-
5. `npm install`更新依赖。
58-
6. `npm run update1to2`对1.x版本的数据库更新。
59-
7. 将原先填入default.js的默认服务器配置重新写入新的server\config\default.js里。
60-
8. 关闭窗口,执行`npm start`启动服务器。
61-
9. 浏览器进入/cardinstall,对网站进行配置。
62-
63-
注意:必须是v1.2.1版本才能使用上面的升级方法!如果低于v1.2.1的话请先更新至该版本!
64-
65-
### 修复卡牌2055的名称问题
66-
67-
0. 本手顺仅针对2.3.1版本之前,默认卡牌编号2055信息有误的处理,如果直接是2.3.1版本的话无需作此处理。
68-
1. 更新前请务必备份原先的文件和数据库!!!!
69-
2. 确保当前版本是2.3.1。
70-
3. 如果当前路径不在服务端则`cd server`切换至服务端。
71-
4. `npm install`更新依赖。
72-
5. `npm run fixcard2055`对卡牌2055进行更改。
48+
6. 特殊更新步骤会在版本更新说明中说明,请仔细阅读版本更新说明。
7349

7450
### 使用方法
7551

server/api/admin/ban.js

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,68 +2,74 @@ var chalk = require('chalk');
22
var utils = require('../../utils/utils');
33
var userData = require('../../utils/database/user');
44
var adminUtils = require('../../utils/admin/adminUtils');
5-
module.exports = async function(req, res, next){
5+
const logModel = require('../../models/log');
6+
module.exports = async function (req, res, next) {
67
let IP = utils.getUserIp(req);
78
let token = req.body.token;
89
let _id = req.body.id;
910
let type = req.body.type;
1011
console.info(
11-
chalk.green('开始封禁或者解封用户,IP为:'+IP)
12+
chalk.green('开始封禁或者解封用户,IP为:' + IP)
1213
)
13-
if(!token){
14+
if (!token) {
1415
res.send({
15-
code:402,
16-
msg:'验证已失效'
16+
code: 402,
17+
msg: '验证已失效'
1718
});
1819
console.info(
19-
chalk.yellow('token为空,IP为:'+IP)
20+
chalk.yellow('token为空,IP为:' + IP)
2021
)
2122
return false;
2223
}
23-
let result = await adminUtils.checkAdmin(token,IP);
24-
if(!result){
24+
let result = await adminUtils.checkAdmin(token, IP);
25+
if (!result) {
2526
res.send({
26-
code:402,
27-
msg:'账户信息已失效,请重新登录!'
27+
code: 402,
28+
msg: '账户信息已失效,请重新登录!'
2829
});
2930
console.info(
30-
chalk.yellow('token解析失败,IP为:'+IP)
31+
chalk.yellow('token解析失败,IP为:' + IP)
3132
)
3233
return false;
3334
}
3435
let banType = 0;
35-
if(type=='ban'){
36+
if (type == 'ban') {
3637
banType = 1;
3738
}
38-
let filters = {_id:_id};
39+
let filters = { _id: _id };
3940
let parmas = {
40-
ban:banType,
41-
token:''
41+
ban: banType,
42+
token: ''
4243
};
43-
userData.updataUser(filters,parmas).catch ((err)=>{
44+
userData.updataUser(filters, parmas).catch((err) => {
4445
res.send({
45-
code:0,
46-
msg:'内部错误,更新失败!'
46+
code: 0,
47+
msg: '内部错误,更新失败!'
4748
});
4849
console.error(
4950
chalk.red('数据库更新错误!')
5051
);
5152
throw err;
5253
})
5354
let text = '解封成功!';
54-
if(type=='ban'){
55-
text = '封号成功!'
55+
if (type == 'ban') {
56+
text = '封号成功!';
57+
const playerData = await userData.findUser(filters);
58+
if (playerData) {
59+
const playerMD5 = playerData.md5;
60+
const logUpdate = await logModel.updateMany({ md5: playerMD5 }, { show: false });
61+
}
5662
}
5763
let logObj = {
58-
text:'管理员'+result.account+'对id:'+_id+text,
59-
ip:IP
64+
text: '管理员' + result.account + '对id:' + _id + text,
65+
ip: IP
6066
}
6167
adminUtils.adminWriteLog(logObj);
6268
console.info(
63-
chalk.green(text+'操作IP:'+IP)
69+
chalk.green(text + '操作IP:' + IP)
6470
);
6571
res.send({
66-
code:1,
67-
msg:text
72+
code: 1,
73+
msg: text
6874
});
6975
}

server/api/battle.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -803,6 +803,7 @@ module.exports = async function (req, res, next) {
803803
if (AiP > seeAiP) {//50%概率遇见AI
804804
if (advanced) {//如果是进阶匹配
805805
let emScore = {
806+
ban: 0,
806807
score: { $gte: myScore + 500 },
807808
email: { $ne: email },
808809
battleHitStamp: { $lte: hitTime },
@@ -814,6 +815,7 @@ module.exports = async function (req, res, next) {
814815
let emMinScore = myScore - 500 < 0 ? 0 : myScore - 500;
815816
let emMaxScore = myScore + 500;
816817
let emScore = {
818+
ban: 0,
817819
score: { $gte: emMinScore, $lte: emMaxScore },
818820
email: { $ne: email },
819821
battleHitStamp: { $lte: hitTime },

server/api/searchBattleLogs.js

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,68 +2,68 @@ var utils = require('../utils/utils');
22
var chalk = require('chalk');
33
var battleLogsData = require('../utils/database/battleLogs');
44

5-
module.exports = async function(req, res, next){
5+
module.exports = async function (req, res, next) {
66
let IP = utils.getUserIp(req);
77
let token = req.body.token;
8-
let page = isNaN(Math.round(req.body.page))?1:Math.round(req.body.page);
8+
let page = isNaN(Math.round(req.body.page)) ? 1 : Math.round(req.body.page);
99
console.info(
10-
chalk.green('开始查询战战斗信息,IP为:'+IP)
10+
chalk.green('开始查询战战斗信息,IP为:' + IP)
1111
)
1212
//解析token
13-
if(!token){
13+
if (!token) {
1414
console.info(
15-
chalk.yellow(IP+'参数有误!')
15+
chalk.yellow(IP + '参数有误!')
1616
)
1717
res.send({
18-
code:403,
19-
msg:'token为空!'
18+
code: 403,
19+
msg: 'token为空!'
2020
});
2121
return false;
2222
}
23-
let result = await utils.tokenCheckAndEmail(token).catch ((err)=>{
23+
let result = await utils.tokenCheckAndEmail(token).catch((err) => {
2424
throw err;
2525
});
26-
if(!result){
26+
if (!result) {
2727
res.send({
28-
code:403,
29-
msg:'账户信息已失效,请重新登录!'
28+
code: 403,
29+
msg: '账户信息已失效,请重新登录!'
3030
});
3131
console.info(
32-
chalk.yellow('查询结果无该用户,IP为:'+IP)
32+
chalk.yellow('查询结果无该用户,IP为:' + IP)
3333
);
3434
return false;
3535
}
3636
let email = result.email;
37-
let time = Math.round(new Date().getTime()/1000);
37+
// let time = Math.round(new Date().getTime() / 1000);
3838
console.info(
39-
chalk.green(IP+'的邮箱解析结果为'+email)
39+
chalk.green(IP + '的邮箱解析结果为' + email)
4040
)
4141
let parmas = {
42-
time:{$gte:time-2592000},
42+
// time: { $gte: time - 2592000 },
4343
$or: [
44-
{aEmail: email}, {dEmail:email}
44+
{ aEmail: email }, { dEmail: email }
4545
]
46-
};
47-
let battleLogs = await battleLogsData.findBattleLogs(8,'time data -_id',page,parmas).catch((err)=>{
46+
};
47+
let battleLogs = await battleLogsData.findBattleLogs(8, 'time data -_id', page, parmas).catch((err) => {
4848
res.send({
49-
code:0,
50-
msg:'内部错误请联系管理员!'
49+
code: 0,
50+
msg: '内部错误请联系管理员!'
5151
});
5252
console.error(
5353
chalk.red('数据库查询错误!')
5454
);
5555
throw err;
5656
});
57-
let delParmas = {
58-
time:{$lt:time-604800},
59-
}
57+
// let delParmas = {
58+
// time: { $lt: time - 604800 },
59+
// }
6060
// 删除一周前的数据
61-
await battleLogsData.deletBattleLogs(delParmas).catch ((err)=>{
62-
throw err;
63-
});
61+
// await battleLogsData.deletBattleLogs(delParmas).catch ((err)=>{
62+
// throw err;
63+
// });
6464
res.send({
65-
code:1,
66-
data:battleLogs[0],
67-
total:battleLogs[1],
65+
code: 1,
66+
data: battleLogs[0],
67+
total: battleLogs[1],
6868
});
6969
}

server/api/searchCard.js

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,42 @@ var utils = require('../utils/utils');
22
var cardData = require('../utils/database/cardData');
33
var userData = require('../utils/database/user');
44
var chalk = require('chalk');
5-
module.exports = async function(req, res, next){
5+
module.exports = async function (req, res, next) {
66
console.info(
7-
chalk.green('查询'+req.body.md5+'的卡牌。')
7+
chalk.green('查询' + req.body.md5 + '的卡牌。')
88
);
99
let userMD5 = req.body.md5;
1010
let packageId = req.body.packageId || 0;
11-
if(!utils.md5Check(userMD5)){
11+
if (!utils.md5Check(userMD5)) {
1212
res.send({
13-
code:0,
14-
msg:'参数有误!'
13+
code: 0,
14+
msg: '参数有误!'
1515
});
1616
return false;
1717
}
18-
let params = { md5: userMD5 };
19-
let result = await userData.findUser(params).catch ((err)=>{
18+
let params = { md5: userMD5, ban: 0 };
19+
let result = await userData.findUser(params).catch((err) => {
2020
res.send({
21-
code:0,
22-
msg:'内部错误请联系管理员!'
21+
code: 0,
22+
msg: '内部错误请联系管理员!'
2323
});
2424
console.error(
2525
chalk.red('数据库查询错误!')
2626
);
2727
throw err;
2828
})
29-
if(result){
29+
if (result) {
3030
let myCard = result.card || {};
3131
let card = myCard[packageId];
32-
if(card){
32+
if (card) {
3333
let haveCardId = Object.keys(card).map(Number);
3434
let params = {
35-
cardId:{$in:haveCardId}
35+
cardId: { $in: haveCardId }
3636
}
37-
let myCardData = await cardData.findCardDataMany(params,'-__v -_id').catch ((err)=>{
37+
let myCardData = await cardData.findCardDataMany(params, '-__v -_id').catch((err) => {
3838
res.send({
39-
code:0,
40-
msg:'内部错误请联系管理员!'
39+
code: 0,
40+
msg: '内部错误请联系管理员!'
4141
});
4242
console.error(
4343
chalk.red('数据库查询错误!')
@@ -48,19 +48,19 @@ module.exports = async function(req, res, next){
4848
}
4949
card = card || [];
5050
res.send({
51-
code:1,
52-
card:card,
53-
cardCount:myCard[packageId] || {},
54-
md5:result.md5,
55-
nickName:result.nickName,
56-
score:result.score,
57-
level:result.level,
58-
cardIndexCount:result.cardIndexCount
51+
code: 1,
52+
card: card,
53+
cardCount: myCard[packageId] || {},
54+
md5: result.md5,
55+
nickName: result.nickName,
56+
score: result.score,
57+
level: result.level,
58+
cardIndexCount: result.cardIndexCount
5959
});
60-
}else{
60+
} else {
6161
res.send({
62-
code:0,
63-
msg:'无该用户信息!'
62+
code: 0,
63+
msg: '无该用户信息!'
6464
});
6565
}
6666
}

server/api/searchLog.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
var logModel = require('../models/log');
2-
module.exports = async function(req, res, next){
2+
module.exports = async function (req, res, next) {
33
let pageSize = 5;
4-
let page = isNaN(Math.round(req.body.page))?1:Math.round(req.body.page);
5-
let query = logModel.find({},"type time nickName md5 data -_id").sort({'_id':-1});
4+
let page = isNaN(Math.round(req.body.page)) ? 1 : Math.round(req.body.page);
5+
let query = logModel.find({ show: true }, "type time nickName md5 data -_id").sort({ '_id': -1 });
66
let total = await query.countDocuments();
77
let data = await query
88
.find()
9-
.skip(5*(page-1))
9+
.skip(5 * (page - 1))
1010
.limit(pageSize);
1111
res.send({
12-
code:1,
13-
total:total,
14-
data:data,
15-
msg:'ok!'
12+
code: 1,
13+
total: total,
14+
data: data,
15+
msg: 'ok!'
1616
});
1717
}

server/models/battleLogs.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ var Schema = mongoose.Schema;
44
var SchemaTypes = mongoose.Schema.Types;
55
// Schema
66
var battlelogs = new Schema({
7-
aEmail:String,
8-
dEmail:String,
9-
time:{type: SchemaTypes.Long, default: 0},
10-
data:{}
11-
});
7+
aEmail: String,
8+
dEmail: String,
9+
time: { type: SchemaTypes.Long, default: 0 },
10+
data: {}
11+
}, { capped: 15728640 });
1212

1313
module.exports = mongoose.model('battlelogs', battlelogs);

server/models/log.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ var log = new Schema({
1010
type: { type: String, default: '' },
1111
time: { type: SchemaTypes.Long, default: 0 },
1212
data: {},
13+
show: { type: Boolean, default: true },
1314
ip: String
14-
}, { capped: { size: 5242880, max: 1000 } });
15+
}, { capped: 15728640 });
1516

1617
module.exports = mongoose.model('log', log);

0 commit comments

Comments
 (0)