@@ -185,6 +185,10 @@ var JSONResponse = {
185185 KEY_MSG : 'msg' ,
186186 KEY_THROW : 'throw' ,
187187 CODE_SUCCESS : 200 ,
188+ IGNORE_KEYS : [ 'traceId' , 'trace:stack' , 'debug:info|help' ] ,
189+ UPGRADE_KEYS : [ 'price' , 'amount' , 'money' , 'cash' , 'spend' , 'cost' , 'income' , 'outgoing' , 'borrow' , 'lend' , 'gold' , 'coin' , 'diamond' , 'credit' , 'budget' , 'quantity' , 'balance' ] ,
190+ DOWNGRADE_KEYS : [ 'id' , 'ID' , 'traceId' , 'trace_id' , 'date' , 'time' , 'datetime' , 'date_time' , 'dateTime' , 'timestamp' , 'create_time' , 'update_time' , 'created_at' , 'updated_at' , 'createTime' , 'updateTime' , 'createdAt' , 'updatedAt' ] ,
191+
188192 /**是否成功
189193 * @param code
190194 * @return
@@ -917,7 +921,9 @@ var JSONResponse = {
917921 } ;
918922 }
919923
920- if ( notEmpty == true && typeof real != 'boolean' && typeof real != 'number' && StringUtil . isEmpty ( real , true ) ) { // 空
924+ var realType = JSONResponse . getType ( real ) ;
925+
926+ if ( notEmpty == true && ( real === 0 || ( typeof real != 'boolean' && CodeUtil . isTypeMatch ( 'number' , realType ) && StringUtil . isEmpty ( real , true ) ) ) ) { // 空
921927 log ( 'compareWithStandard notEmpty == true && StringUtil.isEmpty(real, true) >> return COMPARE_VALUE_EMPTY' ) ;
922928 return {
923929 code : JSONResponse . COMPARE_VALUE_EMPTY ,
@@ -934,7 +940,6 @@ var JSONResponse = {
934940 value : null //导致正确时也显示 real
935941 } ;
936942
937- var realType = JSONResponse . getType ( real ) ;
938943 if ( StringUtil . isEmpty ( realType ) || [ 'null' , 'undefined' ] . indexOf ( realType ) >= 0 ) {
939944 realType = null ;
940945 }
@@ -1067,13 +1072,31 @@ var JSONResponse = {
10671072 var valueCompare = max . code >= JSONResponse . COMPARE_VALUE_CHANGE
10681073 ? 0 : JSONResponse . compareValue ( valueLevel , values , real , target . trend , target . repeat ) ;
10691074
1075+ var isNum = CodeUtil . isTypeMatch ( 'number' , type )
1076+
1077+ if ( isNum ) {
1078+ if ( JSONResponse . UPGRADE_KEYS . includes ( folder ) ) {
1079+ valueCompare ++ ;
1080+ } else if ( JSONResponse . DOWNGRADE_KEYS . includes ( folder ) ) {
1081+ valueCompare -- ;
1082+ } else if ( folder . includes ( '/' ) ) {
1083+ var keys = StringUtil . splitPath ( folder ) ;
1084+ var key = keys == null || keys . length <= 0 ? null : keys [ keys . length - 1 ] ;
1085+ if ( StringUtil . isNotEmpty ( key ) && ! StringUtil . isNumber ( key ) ) {
1086+ if ( JSONResponse . UPGRADE_KEYS . includes ( key ) ) {
1087+ valueCompare ++ ;
1088+ } else if ( JSONResponse . DOWNGRADE_KEYS . includes ( key ) ) {
1089+ valueCompare -- ;
1090+ }
1091+ }
1092+ }
1093+ }
1094+
10701095 if ( valueCompare > 0 ) {
10711096 max . code = valueCompare ;
10721097 max . path = folder ;
10731098 max . value = real ;
10741099
1075- var isNum = CodeUtil . isTypeMatch ( 'number' , type )
1076-
10771100 if ( isNum && valueCompare == JSONResponse . COMPARE_VALUE_REPEAT && ( target . repeat == null || target . repeat <= 0 )
10781101 && values != null && values . indexOf ( real ) >= 0 ) {
10791102 max . msg = '值与历史值重复:' + real ;
@@ -1377,16 +1400,21 @@ var JSONResponse = {
13771400
13781401 var notEmpty = target . notEmpty ;
13791402 log ( 'updateStandard notEmpty = target.notEmpty = ' + notEmpty + ' >>' ) ;
1380- if ( notEmpty !== false && real != null && typeof real != 'boolean' && typeof real != 'number' ) {
1381- notEmpty = target . notEmpty = StringUtil . isNotEmpty ( real , true ) ;
1403+ var rtype = JSONResponse . getType ( real ) ;
1404+
1405+ if ( notEmpty !== false ) {
1406+ if ( CodeUtil . isTypeMatch ( 'number' , rtype ) ) { // real === 0) {
1407+ notEmpty = target . notEmpty = real === 0 ? false : ( real < - 1 || real > 1 ? true : notEmpty ) ;
1408+ } else if ( real != null && typeof real != 'boolean' ) {
1409+ notEmpty = target . notEmpty = StringUtil . isNotEmpty ( real , true ) ;
1410+ }
13821411 }
13831412
13841413 var type = target . type ;
13851414 if ( type == null || type == 'undefined' ) {
13861415 target . type = type = null ;
13871416 }
13881417
1389- var rtype = JSONResponse . getType ( real ) ;
13901418 if ( ( rtype == null || real == null ) && StringUtil . isEmpty ( type , true ) && StringUtil . isNotEmpty ( key , true ) ) {
13911419 target . guess = true ;
13921420 if ( StringUtil . isBoolKey ( key ) ) {
@@ -1490,7 +1518,6 @@ var JSONResponse = {
14901518 }
14911519 log ( 'updateStandard type = target.type = getType(real) = ' + type + ' >>' ) ;
14921520
1493-
14941521 var lengthLevel = target . lengthLevel ;
14951522 var lengths = target . lengths ;
14961523 log ( 'updateStandard lengthLevel = target.lengthLevel = ' + lengthLevel + ' >>' ) ;
@@ -1629,16 +1656,18 @@ var JSONResponse = {
16291656 }
16301657 }
16311658
1632- if ( values == null ) {
1633- values = [ ] ;
1634- }
1635- if ( valueLevel < 1 && type == 'number' && ! Number . isSafeInteger ( real ) ) { //double 1.23
1636- valueLevel = 1 ;
1637- }
1638- target . values = values ;
1659+ if ( ! [ null , 0 , '' ] . includes ( real ) ) {
1660+ if ( values == null ) {
1661+ values = [ ] ;
1662+ }
1663+ if ( valueLevel < 1 && CodeUtil . isTypeMatch ( 'number' , type ) && ! Number . isSafeInteger ( real ) ) { //double 1.23
1664+ valueLevel = 1 ;
1665+ }
1666+ target . values = values ;
16391667
1640- target = JSONResponse . setValue ( target , JSONResponse . getLength ( real ) , lengthLevel == null ? 1 : lengthLevel , lengths , true , true ) ;
1641- target = JSONResponse . setValue ( target , real , valueLevel , values , false , ignoreTrend ) ;
1668+ target = JSONResponse . setValue ( target , JSONResponse . getLength ( real ) , lengthLevel == null ? 1 : lengthLevel , lengths , true , true ) ;
1669+ target = JSONResponse . setValue ( target , real , valueLevel , values , false , ignoreTrend ) ;
1670+ }
16421671 }
16431672
16441673 log ( '\nupdateStandard >> return target = ' + JSON . stringify ( target , null , ' ' ) + '\n >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> \n\n\n\n\n' ) ;
0 commit comments