Created
August 8, 2018 18:32
-
-
Save mesmacosta/c0e4c0861c8ec060af37f0bbb308cc59 to your computer and use it in GitHub Desktop.
Classes Services
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.dojo.musicas.service.impl; | |
import java.util.ArrayList; | |
import java.util.List; | |
import org.springframework.beans.factory.annotation.Autowired; | |
import org.springframework.stereotype.Component; | |
import org.springframework.transaction.annotation.Transactional; | |
import com.dojo.musicas.dao.PlaylistDao; | |
import com.dojo.musicas.entity.Musica; | |
import com.dojo.musicas.entity.Playlist; | |
import com.dojo.musicas.entity.Usuario; | |
import com.dojo.musicas.model.PlaylistModel; | |
import com.dojo.musicas.model.PlaylistMusicasModel; | |
import com.dojo.musicas.model.UsuarioModel; | |
import com.dojo.musicas.service.PlaylistService; | |
@Component | |
public class PlaylistServiceImpl implements PlaylistService { | |
@Autowired | |
private PlaylistDao dao; | |
@Override | |
@Transactional(readOnly = true) | |
public PlaylistModel getByUsuarioNome(String nome) { | |
Playlist playlist = dao.findPlaylistByUsuarioNome(nome); | |
if (playlist != null) { | |
return buildModel(playlist); | |
} | |
return null; | |
} | |
private PlaylistModel buildModel(Playlist playlist) { | |
PlaylistModel model = new PlaylistModel(); | |
model.setId(playlist.getId()); | |
model.setPlaylistMusicas(buildPlaylistMusicas(playlist.getMusicas(), playlist)); | |
model.setUsuario(buildUsuario(playlist.getUsuario())); | |
return model; | |
} | |
private List<PlaylistMusicasModel> buildPlaylistMusicas(List<Musica> musicas, Playlist playlist) { | |
List<PlaylistMusicasModel> playlistMusicas = new ArrayList<PlaylistMusicasModel>(); | |
if (musicas != null) { | |
for (Musica musica : musicas) { | |
playlistMusicas.add(buildPlaylistMusica(musica, playlist)); | |
} | |
} | |
return playlistMusicas; | |
} | |
private PlaylistMusicasModel buildPlaylistMusica(Musica musica, Playlist playlist) { | |
PlaylistMusicasModel playlistMusica = new PlaylistMusicasModel(); | |
playlistMusica.setMusicaId(musica.getId()); | |
playlistMusica.setMusica(musica); | |
playlistMusica.setPlaylistId(playlist.getId()); | |
return playlistMusica; | |
} | |
private UsuarioModel buildUsuario(Usuario usuario) { | |
UsuarioModel model = new UsuarioModel(); | |
model.setId(usuario.getId()); | |
model.setNome(usuario.getNome()); | |
model.setPlaylistId(usuario.getPlaylistId()); | |
return model; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.dojo.musicas.service.impl; | |
import java.util.List; | |
import org.springframework.beans.factory.annotation.Autowired; | |
import org.springframework.stereotype.Component; | |
import com.dojo.musicas.dao.MusicaDao; | |
import com.dojo.musicas.entity.Musica; | |
import com.dojo.musicas.service.CacheService; | |
import com.dojo.musicas.service.MusicaService; | |
@Component | |
public class MusicaServiceImpl implements MusicaService { | |
@Autowired | |
private MusicaDao dao; | |
@Autowired | |
private CacheService cache; | |
@Override | |
public List<Musica> getMusicas() { | |
return dao.findAll(); | |
} | |
@Override | |
public List<Musica> getMusicasByNomeMusicaOrArtista(String nome) { | |
List<Musica> musicas = cache.getList(nome, Musica.class); | |
if (musicas == null) { | |
musicas = dao.findMusicaByNomeContainingOrArtistaNomeContainingOrderByArtistaNomeAscNomeAsc(nome, nome); | |
cache.set(nome, musicas); | |
} | |
return musicas; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment