diff --git a/webapp/models/HashRate.php b/webapp/models/HashRate.php index f038ae92..1ed8d793 100644 --- a/webapp/models/HashRate.php +++ b/webapp/models/HashRate.php @@ -3,6 +3,9 @@ namespace models; +require_once('mt/AchievementsPower.php'); + +use mt\AchievementsPower; use phpcommon\SqlHelper; class HashRate extends BaseModel { @@ -32,6 +35,7 @@ class HashRate extends BaseModel } public static function getCount($period){ + $count = 0; $rows = SqlHelper::ormSelect( myself()->_getSelfMysql(), 't_hash_rate', @@ -40,7 +44,13 @@ class HashRate extends BaseModel 'period' => $period, ) ); - return count($rows); + foreach ($rows as $row){ + $hashMeta = AchievementsPower::find($row['task_id']); + if ($hashMeta['task_type'] != AchievementsPower::TYPE5){ + $count += 1; + } + } + return $count; } diff --git a/webapp/mt/BattleRandAttribute.php b/webapp/mt/BattleRandAttribute.php index d8d79ae7..14f4602a 100644 --- a/webapp/mt/BattleRandAttribute.php +++ b/webapp/mt/BattleRandAttribute.php @@ -39,12 +39,13 @@ class BattleRandAttribute { $strs = explode('|', $randMeta['attributeRange']); foreach ($strs as $str){ $attrStr = explode(':', $str); - $rnd = rand($attrStr[1]*100000 , $attrStr[2]*100000) / 100000; -// $val = $attrStr[1] + ($attrStr[2] - $attrStr[1]) * $rnd; - array_push($attrArray,array( - "attr_id" => $attrStr[0], - "val" => $rnd, - )); + if (count($attrStr) == 3){ + $rnd = rand($attrStr[1]*100000 , $attrStr[2]*100000) / 100000; + array_push($attrArray,array( + "attr_id" => $attrStr[0], + "val" => $rnd, + )); + } } return $attrArray; } diff --git a/webapp/services/HashRateService.php b/webapp/services/HashRateService.php index 4c849017..c3743b6f 100644 --- a/webapp/services/HashRateService.php +++ b/webapp/services/HashRateService.php @@ -344,7 +344,8 @@ class HashRateService extends BaseService private function randHashRateTaskList($type){ $metas = AchievementsPower::getListByType($type); $this->hashRateTask['task'.$type] = array(); - foreach (array_rand($metas, 4) as $key) { + $count = count($metas) >= 4 ? 4 : count($metas) ; + foreach (array_rand($metas, $count) as $key) { $meta = $metas[$key]; if (count($this->hashRateTask['task'.$type]) >= 4) {