Skip to content

Commit f35333d

Browse files
committed
Merge branch 'dev' of https://github.com/eeg1412/wikimoeCardByNodeJS into master
2 parents b609b62 + 59d957e commit f35333d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+1033
-364
lines changed

server/api/dailyCard.js

Lines changed: 151 additions & 164 deletions
Original file line numberDiff line numberDiff line change
@@ -8,182 +8,169 @@ var fs = require('fs');
88
var chalk = require('chalk');
99
module.exports = async function (req, res, next) {
1010
let IP = utils.getUserIp(req);
11+
let token = req.body.token;
12+
//解析token
13+
if (!token) {
14+
console.info(
15+
chalk.yellow(IP + '参数有误!')
16+
)
17+
res.send({
18+
code: 403,
19+
msg: 'token为空!'
20+
});
21+
return false;
22+
}
23+
let result = await utils.tokenCheckAndEmail(token).catch((err) => {
24+
throw err;
25+
});
26+
if (!result) {
27+
res.send({
28+
code: 403,
29+
msg: '账户信息已失效,请重新登录!'
30+
});
31+
console.info(
32+
chalk.yellow('查询结果token无效,IP为:' + IP)
33+
);
34+
return false;
35+
}
36+
let email = result.email;
37+
console.info(
38+
chalk.green(IP + '的邮箱解析结果为' + email)
39+
)
1140
console.info(
12-
chalk.green(req.body.email + '开始日常抽卡。IP为:' + IP)
41+
chalk.green(email + '开始日常抽卡。IP为:' + IP)
1342
);
14-
if (req.body.email) {
15-
var userEmail = req.body.email;
16-
var sel = Math.floor(req.body.sel);
17-
//判断选择的卡牌编号是否有误
18-
if (isNaN(sel) || sel < 0 || sel > 2) {
19-
res.send({
20-
code: 0,
21-
msg: '参数有误!'
22-
});
23-
console.info(
24-
chalk.yellow(req.body.email + '传参(sel)有误!IP为:' + IP)
25-
);
26-
return false;
27-
}
28-
//验证邮箱格式
29-
if (utils.emailCheck(userEmail)) {
30-
let params = { email: userEmail }
31-
// document查询
32-
let result = await userData.findUser(params).catch((err) => {
33-
res.send({
34-
code: 0,
35-
msg: '内部错误请联系管理员!'
36-
});
37-
console.error(
38-
chalk.red('数据库查询错误!')
39-
);
40-
throw err;
41-
})
42-
//判断是否有该用户
43-
if (result) {
44-
if (result.ban > 0) {
45-
res.send({
46-
code: 0,
47-
msg: '该账户已被封禁!'
48-
});
49-
console.info(
50-
chalk.yellow(req.body.email + '已被封禁!IP为:' + IP)
51-
);
52-
return false;
53-
}
54-
let dailyCard = result.dailyCard;
55-
// 取消竞技点抽卡加成
56-
let scoreChance = 0;//Math.floor(result.score/1000);
57-
if (isNaN(scoreChance)) {
58-
res.send({
59-
code: 0,
60-
msg: '内部错误请联系管理员!'
61-
});
62-
return false;
63-
}
64-
let dailyCardTime = Math.round(Number(result.dailyCardTime) * 1000);
65-
let timeNow = Math.round(new Date().getTime() / 1000);
66-
let myDailyChance = global.myAppConfig.dailyChance + scoreChance;
67-
if (new Date(timeNow * 1000).toDateString() === new Date(dailyCardTime).toDateString()) {//如果是同天
68-
if (dailyCard >= myDailyChance) {
69-
res.send({
70-
code: 3,
71-
msg: '已经超过今天的抽卡次数了!'
72-
});
73-
console.info(
74-
chalk.blue(req.body.email + '超过每日抽卡限制。IP为:' + IP)
75-
);
76-
return false;
77-
}
78-
} else {
79-
dailyCard = 0;
80-
}
81-
let packageId = req.body.packageId || 0;
82-
// 抽卡三次
83-
let cardIdArr = await cardUitls.chioseCard(packageId, 3);
84-
if (!cardIdArr) {
85-
res.send({
86-
code: 0,
87-
msg: '抽卡失败,请检查参数!'
88-
});
89-
return false;
90-
}
91-
// 获取卡牌ID
92-
let cardId = cardIdArr[sel].cardId;
93-
if (cardId === undefined || cardId === null) {
94-
res.send({
95-
code: 0,
96-
msg: '数据错误!'
97-
});
98-
return false;
99-
}
10043

101-
let cardDataBase = {};
102-
cardDataBase['card.' + packageId + '.' + cardId] = 1;
103-
let emailmd5 = result.md5;
104-
dailyCard = dailyCard + 1;
105-
let filters = {
106-
email: userEmail
107-
}
108-
let updataParams = {
109-
dailyCard: dailyCard,
110-
$inc: cardDataBase,
111-
ip: IP,
112-
dailyCardTime: timeNow
113-
}
114-
await userData.updataUser(filters, updataParams, true).catch((err) => {
115-
res.send({
116-
code: 0,
117-
msg: '内部错误请联系管理员!'
118-
});
119-
console.error(
120-
chalk.red('数据库更新错误!')
121-
);
122-
throw err;
123-
})
124-
console.info(
125-
chalk.green('邮箱:' + userEmail + ',抽到卡牌:【' + cardId + '】! IP为:' + IP)
126-
);
127-
let logObject = {
128-
email: userEmail,
129-
md5: md5(userEmail),
130-
nickName: result.nickName,
131-
type: 'dailyCard',
132-
time: timeNow,
133-
data: {
134-
cardId: cardId,
135-
title: cardIdArr[sel].title,
136-
name: cardIdArr[sel].name,
137-
star: cardIdArr[sel].star,
138-
packageId: packageId
139-
},
140-
ip: IP
141-
}
142-
utils.writeLog(logObject);
143-
let cardChoiseList = []
144-
for (let i = 0; i < cardIdArr.length; i++) {
145-
cardChoiseList.push(cardIdArr[i].cardId)
146-
}
147-
const userCard = result.card || {};
148-
const userPackageCard = userCard[packageId] || {};
149-
const userCardIdList = Object.keys(userPackageCard);
150-
const userCardIdIndex = userCardIdList.indexOf(cardId);
151-
res.send({
152-
code: 1,
153-
cardChoiseList: cardChoiseList,
154-
choiseIndex: sel,
155-
emailmd5: emailmd5,
156-
card: cardId,
157-
packageId: packageId,
158-
isNew: userCardIdIndex === -1,
159-
leftGetChance: myDailyChance - dailyCard,
160-
msg: 'ok'
161-
});
162-
} else {
163-
res.send({
164-
code: 2,
165-
msg: '该邮箱未注册!'
166-
});
167-
console.info(
168-
chalk.blue(req.body.email + '并未注册。IP为:' + IP)
169-
);
170-
}
171-
} else {
44+
var sel = Math.floor(req.body.sel);
45+
//判断选择的卡牌编号是否有误
46+
if (isNaN(sel) || sel < 0 || sel > 2) {
47+
res.send({
48+
code: 0,
49+
msg: '参数有误!'
50+
});
51+
console.info(
52+
chalk.yellow(req.body.email + '传参(sel)有误!IP为:' + IP)
53+
);
54+
return false;
55+
}
56+
57+
if (result.ban > 0) {
58+
res.send({
59+
code: 0,
60+
msg: '该账户已被封禁!'
61+
});
62+
console.info(
63+
chalk.yellow(req.body.email + '已被封禁!IP为:' + IP)
64+
);
65+
return false;
66+
}
67+
let dailyCard = result.dailyCard;
68+
// 取消竞技点抽卡加成
69+
let scoreChance = 0;//Math.floor(result.score/1000);
70+
if (isNaN(scoreChance)) {
71+
res.send({
72+
code: 0,
73+
msg: '内部错误请联系管理员!'
74+
});
75+
return false;
76+
}
77+
let dailyCardTime = Math.round(Number(result.dailyCardTime) * 1000);
78+
let timeNow = Math.round(new Date().getTime() / 1000);
79+
let myDailyChance = global.myAppConfig.dailyChance + scoreChance;
80+
if (new Date(timeNow * 1000).toDateString() === new Date(dailyCardTime).toDateString()) {//如果是同天
81+
if (dailyCard >= myDailyChance) {
17282
res.send({
173-
code: 0,
174-
msg: '邮箱地址格式有误!'
83+
code: 3,
84+
leftGetChance: 0,
85+
msg: '已经超过今天的抽卡次数了!'
17586
});
17687
console.info(
177-
chalk.yellow('邮箱格式有误,IP为:' + IP)
88+
chalk.blue(req.body.email + '超过每日抽卡限制。IP为:' + IP)
17889
);
90+
return false;
17991
}
18092
} else {
93+
dailyCard = 0;
94+
}
95+
let packageId = req.body.packageId || 0;
96+
// 抽卡三次
97+
let cardIdArr = await cardUitls.chioseCard(packageId, 3);
98+
if (!cardIdArr) {
18199
res.send({
182100
code: 0,
183-
msg: '邮箱地址不能为空!'
101+
msg: '抽卡失败,请检查参数!'
184102
});
185-
console.info(
186-
chalk.yellow('邮箱为空,IP为:' + IP)
103+
return false;
104+
}
105+
// 获取卡牌ID
106+
let cardId = cardIdArr[sel].cardId;
107+
if (cardId === undefined || cardId === null) {
108+
res.send({
109+
code: 0,
110+
msg: '数据错误!'
111+
});
112+
return false;
113+
}
114+
115+
let cardDataBase = {};
116+
cardDataBase['card.' + packageId + '.' + cardId] = 1;
117+
let emailmd5 = result.md5;
118+
dailyCard = dailyCard + 1;
119+
let filters = {
120+
email: email
121+
}
122+
let updataParams = {
123+
dailyCard: dailyCard,
124+
$inc: cardDataBase,
125+
ip: IP,
126+
dailyCardTime: timeNow
127+
}
128+
await userData.updataUser(filters, updataParams, true).catch((err) => {
129+
res.send({
130+
code: 0,
131+
msg: '内部错误请联系管理员!'
132+
});
133+
console.error(
134+
chalk.red('数据库更新错误!')
187135
);
136+
throw err;
137+
})
138+
console.info(
139+
chalk.green('邮箱:' + email + ',抽到卡牌:【' + cardId + '】! IP为:' + IP)
140+
);
141+
let logObject = {
142+
email: email,
143+
md5: md5(email),
144+
nickName: result.nickName,
145+
type: 'dailyCard',
146+
time: timeNow,
147+
data: {
148+
cardId: cardId,
149+
title: cardIdArr[sel].title,
150+
name: cardIdArr[sel].name,
151+
star: cardIdArr[sel].star,
152+
packageId: packageId
153+
},
154+
ip: IP
155+
}
156+
utils.writeLog(logObject);
157+
let cardChoiseList = []
158+
for (let i = 0; i < cardIdArr.length; i++) {
159+
cardChoiseList.push(cardIdArr[i].cardId)
188160
}
161+
const userCard = result.card || {};
162+
const userPackageCard = userCard[packageId] || {};
163+
const userCardIdList = Object.keys(userPackageCard);
164+
const userCardIdIndex = userCardIdList.indexOf(cardId);
165+
res.send({
166+
code: 1,
167+
cardChoiseList: cardChoiseList,
168+
choiseIndex: sel,
169+
emailmd5: emailmd5,
170+
card: cardId,
171+
packageId: packageId,
172+
isNew: userCardIdIndex === -1,
173+
leftGetChance: myDailyChance - dailyCard,
174+
msg: 'ok'
175+
});
189176
}

0 commit comments

Comments
 (0)