Skip to content

Instantly share code, notes, and snippets.

@mesmacosta
Created August 8, 2018 18:32
Show Gist options
  • Save mesmacosta/c0e4c0861c8ec060af37f0bbb308cc59 to your computer and use it in GitHub Desktop.
Save mesmacosta/c0e4c0861c8ec060af37f0bbb308cc59 to your computer and use it in GitHub Desktop.
Classes Services
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;
}
}
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