$crystalMeta['id'], 'pending' => 0, 'total' => array(), 'claimed' => 0, 'state' => self::NONE_STATE, ); $hashRateMeta = HashRate::findHash($crystalMeta['id']); $ownedNum = CrystalRecord::getCrystalNum($crystalMeta['id']); $crystalDto['claimed'] = intval($ownedNum); switch ($crystalMeta['sub_type']){ case 1 : { $killsNum = myself()->_getV(TN_TOTAL_KILLS_NUM,0); $starNum = myself()->_getV(TN_TOTAL_STAR_NUM,0); // $rankNum = myself()->_getV(TN_TOTAL_RANK_NUM,0); $crystalDto['total'] = array( 'param1' => intval($killsNum), 'param2' => intval($starNum), // 'param3' => intval($rankNum), ); $param = explode('|',$hashRateMeta['parameter']); $totalNum = max(0,floor($killsNum/$param[0]) + floor($starNum/$param[1]) ); // $crystalDto['pending'] = intval(max(0,$totalNum - $ownedNum)); $crystalDto['pending'] = intval($totalNum); $crystalDto['state'] = $crystalDto['pending'] > 0 ? self::RECEIVED_STATE : self::NONE_STATE; } break; case 2 : { // 游戏内消费总价值 $consumeCost = myself()->_getV(TN_TOTAL_DIAMOND_CONSUME,0); $crystalDto['total'] = array( 'param1' => intval($consumeCost), ); $totalNum = max(0,floor($consumeCost/$hashRateMeta['parameter'])); $crystalDto['pending'] = intval($totalNum); $crystalDto['state'] = $crystalDto['pending'] > 0 ? self::RECEIVED_STATE : self::NONE_STATE; } break; case 3 : { // Market交易总价值 $consumeCost = myself()->_getV(TN_TOTAL_CEG_CONSUME,0); $crystalDto['total'] = array( 'param1' => intval($consumeCost), ); $totalNum = max(0,floor($consumeCost/$hashRateMeta['parameter'])); $crystalDto['pending'] = intval($totalNum); $crystalDto['state'] = $crystalDto['pending'] > 0 ? self::RECEIVED_STATE : self::NONE_STATE; } break; case 4 : { // 质压总价值 $crystalDto['total'] = array( 'param1' => 0, ); } break; } } }