@@ -6,179 +6,184 @@ var cardUitls = require('../utils/card');
66var md5 = require ( 'md5-node' ) ;
77var fs = require ( 'fs' ) ;
88var chalk = require ( 'chalk' ) ;
9- module . exports = async function ( req , res , next ) {
9+ module . exports = async function ( req , res , next ) {
1010 let IP = utils . getUserIp ( req ) ;
1111 console . info (
12- chalk . green ( req . body . email + '开始日常抽卡。IP为:' + IP )
12+ chalk . green ( req . body . email + '开始日常抽卡。IP为:' + IP )
1313 ) ;
14- if ( req . body . email ) {
14+ if ( req . body . email ) {
1515 var userEmail = req . body . email ;
1616 var sel = Math . floor ( req . body . sel ) ;
1717 //判断选择的卡牌编号是否有误
18- if ( isNaN ( sel ) || sel < 0 || sel > 2 ) {
18+ if ( isNaN ( sel ) || sel < 0 || sel > 2 ) {
1919 res . send ( {
20- code :0 ,
21- msg :'参数有误!'
20+ code : 0 ,
21+ msg : '参数有误!'
2222 } ) ;
2323 console . info (
24- chalk . yellow ( req . body . email + '传参(sel)有误!IP为:' + IP )
24+ chalk . yellow ( req . body . email + '传参(sel)有误!IP为:' + IP )
2525 ) ;
2626 return false ;
2727 }
2828 //验证邮箱格式
29- if ( utils . emailCheck ( userEmail ) ) {
29+ if ( utils . emailCheck ( userEmail ) ) {
3030 let params = { email : userEmail }
3131 // document查询
32- let result = await userData . findUser ( params ) . catch ( ( err ) => {
32+ let result = await userData . findUser ( params ) . catch ( ( err ) => {
3333 res . send ( {
34- code :0 ,
35- msg :'内部错误请联系管理员!'
34+ code : 0 ,
35+ msg : '内部错误请联系管理员!'
3636 } ) ;
3737 console . error (
3838 chalk . red ( '数据库查询错误!' )
3939 ) ;
4040 throw err ;
4141 } )
4242 //判断是否有该用户
43- if ( result ) {
44- if ( result . ban > 0 ) {
43+ if ( result ) {
44+ if ( result . ban > 0 ) {
4545 res . send ( {
46- code :0 ,
47- msg :'该账户已被封禁!'
46+ code : 0 ,
47+ msg : '该账户已被封禁!'
4848 } ) ;
4949 console . info (
50- chalk . yellow ( req . body . email + '已被封禁!IP为:' + IP )
50+ chalk . yellow ( req . body . email + '已被封禁!IP为:' + IP )
5151 ) ;
5252 return false ;
5353 }
5454 let dailyCard = result . dailyCard ;
5555 // 取消竞技点抽卡加成
5656 let scoreChance = 0 ; //Math.floor(result.score/1000);
57- if ( isNaN ( scoreChance ) ) {
57+ if ( isNaN ( scoreChance ) ) {
5858 res . send ( {
59- code :0 ,
60- msg :'内部错误请联系管理员!'
59+ code : 0 ,
60+ msg : '内部错误请联系管理员!'
6161 } ) ;
6262 return false ;
6363 }
64- let dailyCardTime = Math . round ( Number ( result . dailyCardTime ) * 1000 ) ;
65- let timeNow = Math . round ( new Date ( ) . getTime ( ) / 1000 ) ;
64+ let dailyCardTime = Math . round ( Number ( result . dailyCardTime ) * 1000 ) ;
65+ let timeNow = Math . round ( new Date ( ) . getTime ( ) / 1000 ) ;
6666 let myDailyChance = global . myAppConfig . dailyChance + scoreChance ;
67- if ( new Date ( timeNow * 1000 ) . toDateString ( ) === new Date ( dailyCardTime ) . toDateString ( ) ) { //如果是同天
68- if ( dailyCard >= myDailyChance ) {
67+ if ( new Date ( timeNow * 1000 ) . toDateString ( ) === new Date ( dailyCardTime ) . toDateString ( ) ) { //如果是同天
68+ if ( dailyCard >= myDailyChance ) {
6969 res . send ( {
70- code :3 ,
71- msg :'已经超过今天的抽卡次数了!'
70+ code : 3 ,
71+ msg : '已经超过今天的抽卡次数了!'
7272 } ) ;
7373 console . info (
74- chalk . blue ( req . body . email + '超过每日抽卡限制。IP为:' + IP )
74+ chalk . blue ( req . body . email + '超过每日抽卡限制。IP为:' + IP )
7575 ) ;
7676 return false ;
7777 }
78- } else {
78+ } else {
7979 dailyCard = 0 ;
8080 }
8181 let packageId = req . body . packageId || 0 ;
8282 // 抽卡三次
83- let cardIdArr = await cardUitls . chioseCard ( packageId , 3 ) ;
84- if ( ! cardIdArr ) {
83+ let cardIdArr = await cardUitls . chioseCard ( packageId , 3 ) ;
84+ if ( ! cardIdArr ) {
8585 res . send ( {
86- code :0 ,
87- msg :'抽卡失败,请检查参数!'
86+ code : 0 ,
87+ msg : '抽卡失败,请检查参数!'
8888 } ) ;
8989 return false ;
9090 }
9191 // 获取卡牌ID
9292 let cardId = cardIdArr [ sel ] . cardId ;
93- if ( cardId === undefined || cardId === null ) {
93+ if ( cardId === undefined || cardId === null ) {
9494 res . send ( {
95- code :0 ,
96- msg :'数据错误!'
95+ code : 0 ,
96+ msg : '数据错误!'
9797 } ) ;
9898 return false ;
9999 }
100100
101101 let cardDataBase = { } ;
102- cardDataBase [ 'card.' + packageId + '.' + cardId ] = 1 ;
102+ cardDataBase [ 'card.' + packageId + '.' + cardId ] = 1 ;
103103 let emailmd5 = result . md5 ;
104- dailyCard = dailyCard + 1 ;
104+ dailyCard = dailyCard + 1 ;
105105 let filters = {
106106 email : userEmail
107107 }
108108 let updataParams = {
109- dailyCard :dailyCard ,
110- $inc :cardDataBase ,
111- ip :IP ,
112- dailyCardTime :timeNow
109+ dailyCard : dailyCard ,
110+ $inc : cardDataBase ,
111+ ip : IP ,
112+ dailyCardTime : timeNow
113113 }
114- await userData . updataUser ( filters , updataParams , true ) . catch ( ( err ) => {
114+ await userData . updataUser ( filters , updataParams , true ) . catch ( ( err ) => {
115115 res . send ( {
116- code :0 ,
117- msg :'内部错误请联系管理员!'
116+ code : 0 ,
117+ msg : '内部错误请联系管理员!'
118118 } ) ;
119119 console . error (
120120 chalk . red ( '数据库更新错误!' )
121121 ) ;
122122 throw err ;
123123 } )
124124 console . info (
125- chalk . green ( '邮箱:' + userEmail + ',抽到卡牌:【' + cardId + '】! IP为:' + IP )
125+ chalk . green ( '邮箱:' + userEmail + ',抽到卡牌:【' + cardId + '】! IP为:' + IP )
126126 ) ;
127127 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
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
139139 } ,
140- ip :IP
140+ ip : IP
141141 }
142142 utils . writeLog ( logObject ) ;
143143 let cardChoiseList = [ ]
144- for ( let i = 0 ; i < cardIdArr . length ; i ++ ) {
144+ for ( let i = 0 ; i < cardIdArr . length ; i ++ ) {
145145 cardChoiseList . push ( cardIdArr [ i ] . cardId )
146146 }
147+ const userCard = result . card || { } ;
148+ const userPackageCard = userCard [ packageId ] || { } ;
149+ const userCardIdList = Object . keys ( userPackageCard ) ;
150+ const userCardIdIndex = userCardIdList . indexOf ( cardId ) ;
147151 res . send ( {
148- code :1 ,
149- cardChoiseList :cardChoiseList ,
150- choiseIndex :sel ,
151- emailmd5 :emailmd5 ,
152- card :cardId ,
153- packageId :packageId ,
154- leftGetChance :myDailyChance - dailyCard ,
155- msg :'ok'
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'
156161 } ) ;
157- } else {
162+ } else {
158163 res . send ( {
159- code :2 ,
160- msg :'该邮箱未注册!'
164+ code : 2 ,
165+ msg : '该邮箱未注册!'
161166 } ) ;
162167 console . info (
163- chalk . blue ( req . body . email + '并未注册。IP为:' + IP )
168+ chalk . blue ( req . body . email + '并未注册。IP为:' + IP )
164169 ) ;
165170 }
166- } else {
171+ } else {
167172 res . send ( {
168- code :0 ,
169- msg :'邮箱地址格式有误!'
173+ code : 0 ,
174+ msg : '邮箱地址格式有误!'
170175 } ) ;
171176 console . info (
172- chalk . yellow ( '邮箱格式有误,IP为:' + IP )
177+ chalk . yellow ( '邮箱格式有误,IP为:' + IP )
173178 ) ;
174179 }
175- } else {
180+ } else {
176181 res . send ( {
177- code :0 ,
178- msg :'邮箱地址不能为空!'
182+ code : 0 ,
183+ msg : '邮箱地址不能为空!'
179184 } ) ;
180185 console . info (
181- chalk . yellow ( '邮箱为空,IP为:' + IP )
186+ chalk . yellow ( '邮箱为空,IP为:' + IP )
182187 ) ;
183188 }
184189}
0 commit comments