package com.kitty.poclient.dao;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import com.kitty.poclient.db.DBHelper;
import com.kitty.poclient.domain.Album;
import com.kitty.poclient.domain.AlbumDetail;
import com.kitty.poclient.domain.Artist;
import com.kitty.poclient.domain.Disk;
import com.kitty.poclient.domain.Music;
public class AlbumDao {
public static final String TAG="AlbumDao:";
/**
* 检查专辑是否存在
*/
public boolean checkAlbum(Album album) {
if (album != null) {
Cursor cur = DBHelper.getSqLitedatabase().rawQuery("select id from db_album where id = " + album.getId(), null);
if (cur.getCount() > 0) {
return true;
}
if (cur != null) {
cur.close();
}
}
return false;
}
/**
* 根据id获取专辑
*/
public Album getAlbumById(Long id) {
if (id == null) {
return null;
}
Album album = null;
SQLiteDatabase mdb = DBHelper.getSqLitedatabase();
Cursor cur = mdb.rawQuery("select dba.id albumId,dba.name albumName,dba.img_url albumImgurl,group_concat(dbr.id) artistId,group_concat(dbr.name) artistname " + "from db_album dba inner join product_artist pa on dba.id=pa.product_id left join db_artist dbr on dbr.id=pa.artist_id where dba.id =" + id + " group by albumId order by dba.buytime desc", null);
// String temp="";
List<Album> li = new ArrayList<Album>();
if (cur != null) {
if (cur.getCount() == 0) {
// temp="";
return null;
}
String[] artistId;
String[] artistName;
List<Artist> artistLi;
Artist artist = null;
try {
while (cur.moveToNext()) {// 知道返回false说明表到了数据末尾
album = new Album();
album.setId(cur.getLong(0));
album.setName(cur.getString(1));
album.setImgUrl(cur.getString(2));
artistId = cur.getString(3) != null ? cur.getString(3).split(",") : null;
artistName = cur.getString(4) != null ? cur.getString(4).split(",") : null;
artistLi = new ArrayList<Artist>();
if (artistId != null && artistName != null && artistId.length > 0 && artistName.length > 0) {
for (int i = 0; i < artistId.length; i++) {
artist = new Artist();
artist.setId(Long.parseLong(artistId[i]));
artist.setName(artistName[i]);
artistLi.add(artist);
}
album.setArtistli(artistLi);
}
}
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
if (cur != null)
cur.close();
}
}
return album;
}
/**
* 插入专辑
*/
public void insertAlbum(Album album) {
if (!checkAlbum(album)) {
ContentValues addcv = new ContentValues();
addcv.put("id", album.getId());
addcv.put("name", album.getName());
addcv.put("img_url", album.getImgUrl());
// addcv.put("buytime", album.getBuytime());
// addcv.put("orderType", album.getOrderType());
// addcv.put("isclearcache", album.getIsCloud());
DBHelper.getSqLitedatabase().insert("db_album", null, addcv);
} else {
DBHelper.getSqLitedatabase().execSQL("update db_album set isclearcache =" + album.getIsCloud() + " where id =" + album.getId());
}
}
/**
* 根据id获得专辑下的所有单曲id
*/
public List<Long> getMusicIdListByAlbumId(Long id) {
SQLiteDatabase mdb = DBHelper.getSqLitedatabase();
List<Long> musicIdList = null;
Cursor cur = mdb.rawQuery("select d.id from db_music d inner join db_disk dbd on d.disk_id =dbd.id inner join db_album dba on dba.id=dbd.album_id where dba.id =" + id, null);
if (cur != null) {
if (cur.getCount() == 0) {
return null;
}
musicIdList = new ArrayList();
while (cur.moveToNext()) {
musicIdList.add(cur.getLong(0));
}
cur.close();
}
return musicIdList;
}
/**
* 根据专辑id获得专辑下所有单曲
*/
public List<Music> getMusicListByAlbumId(Long id) {
List<Music> musicli = null;
Music music = null;
Cursor cur = DBHelper.getSqLitedatabase().rawQuery("select dbm.id,dbm.name,dbm.play_time,dbm.file_size,dbm.first_char,dbm.track_no,dbm.media_url,group_concat(dba.name) artitname,dba.id,db_album.img_url,dbm.isclearcache from db_album inner join db_disk on db_disk.album_id =db_album.id inner join db_music dbm on dbm.disk_id=db_disk.id inner join product_artist pa on pa.product_id =dbm.id inner join db_artist dba on dba.id= pa.artist_id where dbm.isclearcache = 5 and db_album.id=" + id + " group by dbm.id order by dbm.buytime", null);
if (cur.getCount() > 0) {
musicli = new ArrayList<Music>();
while (cur.moveToNext()) {
music = new Music();
music.setId(cur.getLong(0));
music.setName(cur.getString(1));
music.setPlay_time(cur.getString(2));
music.setFile_size(cur.getString(3));
music.setFirstChar(cur.getString(4));
music.setTrack_no(cur.getString(5));
music.setMediaurl(cur.getString(6));
music.setArtistName(cur.getString(7));
music.setArtistId(cur.getString(8));
music.setImgUrl(cur.getString(9));
music.setIscloud(cur.getInt(10));
// music.set
musicli.add(music);
}
}
if (cur != null) {
cur.close();
}
return musicli;
}
/**
* 获得多有专辑列表
*
*/
public List<Album> albumlist() {
SQLiteDatabase mdb = DBHelper.getSqLitedatabase();
Cursor cur = mdb.rawQuery("select dba.id albumId,dba.name albumName,dba.img_url albumImgurl,group_concat(dbr.id) artistId,group_concat(dbr.name) artistname " + "from db_album dba inner join product_artist pa on dba.id=pa.product_id left join db_artist dbr on dbr.id=pa.artist_id where dba.isclearcache = 5 group by albumId order by dba.buytime desc", null);
// String temp="";
List<Album> li = new ArrayList<Album>();
if (cur != null) {
if (cur.getCount() == 0) {
// temp="";
return null;
}
Album album = null;
String[] artistId;
String[] artistName;
List<Artist> artistLi;
Artist artist = null;
try {
while (cur.moveToNext()) {// 知道返回false说明表到了数据末尾
album = new Album();
album.setId(cur.getLong(0));
album.setName(cur.getString(1));
album.setImgUrl(cur.getString(2));
artistId = cur.getString(3) != null ? cur.getString(3).split(",") : null;
artistName = cur.getString(4) != null ? cur.getString(4).split(",") : null;
artistLi = new ArrayList<Artist>();
if (artistId != null && artistName != null && artistId.length > 0 && artistName.length > 0) {
for (int i = 0; i < artistId.length; i++) {
artist = new Artist();
artist.setId(Long.parseLong(artistId[i]));
artist.setName(artistName[i]);
artistLi.add(artist);
}
album.setArtistli(artistLi);
album.setIsCloud(5);
}
li.add(album);
}
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
if (cur != null)
cur.close();
}
}
return li;
}
/**
* 根据专辑的id查询某张专辑
*/
public AlbumDetail getAlbumDetailData(Long id) {
SQLiteDatabase mdb = DBHelper.getSqLitedatabase();
String sql = "select alb.id albumid,alb.name albumname,dbd.id diskid ,dbd.name diskname,group_concat(tempmusic.musicid ,'&&%') musicId ,group_concat(tempmusic.musicname,'&&%') musicname,count(tempmusic.musicid) musicCount,group_concat(tempmusic.artistid ,'&&%') artistId,group_concat(tempmusic.artistname,'&&%') artistname ,alb.img_url" + " , group_concat(tempmusic.track_no,'&&%') track_no from (select dbm.id musicid ,dbm.name musicname,dbm.track_no ,dbm.disk_id,group_concat(dba.id) artistid ,group_concat(dba.name) artistname " + " from db_music dbm inner join product_artist pa on pa.product_id = dbm.id left join db_artist dba on dba.id=pa.artist_id where dbm.isclearcache = 5 group by musicid order by track_no) tempmusic "
+ " inner join db_disk dbd on dbd.id= tempmusic.disk_id inner join db_album alb on alb.id=dbd.album_id where alb.id=" + id + " group by diskid order by dbd.disk_no";
Cursor cur = mdb.rawQuery(sql, null);
AlbumDetail albumdetail = new AlbumDetail();
List<Disk> diskLi = new ArrayList<Disk>();
String imgUrl = "";
int musicCount = 0;
if (cur != null) {
if (cur.getCount() == 0) {
return null;
}
String[] arraymusicid = null;
String[] arraymusicname = null;
String[] arrayartistname = null;
String[] arrayartistId = null;
String[] arraymusictrackno = null;
Music music = null;
Disk disk = null;
while (cur.moveToNext()) {// 每条数据是一张碟
List<Music> musicLi = new ArrayList<Music>();
albumdetail.setAlbumId(cur.getLong(0));
albumdetail.setAlbumname(cur.getString(1));
imgUrl = cur.getString(9);
disk = new Disk();
disk.setId(cur.getLong(2));
disk.setName(cur.getString(3));
arraymusicid = cur.getString(4).split("&&%");
arraymusicname = cur.getString(5) != null ? cur.getString(5).split("&&%") : null;
arrayartistname = cur.getString(8) != null ? cur.getString(8).split("&&%") : null;
arrayartistId = cur.getString(7) != null ? cur.getString(7).split("&&%") : null;
arraymusictrackno = cur.getString(10) != null ? cur.getString(10).split("&&%") : null;
if (arraymusicid != null) {
for (int i = 0; i < arraymusicid.length; i++) {
music = new Music();
music.setId(Long.parseLong(arraymusicid[i]));
music.setName(arraymusicname[i]);
music.setIscloud(5);
if (arrayartistId != null) {
if (i < arrayartistId.length) {
music.setArtistId(arrayartistId[i] == null ? "0" : arrayartistId[i]);
}
} else {
music.setArtistId("0");
}
if (arrayartistname != null) {
if (i < arrayartistname.length) {
music.setArtistName(arrayartistname[i].equals("未知") ? "未知演出者" : arrayartistname[i]);
}
} else {
music.setArtistName("");
}
if (arraymusictrackno != null) {
music.setTrack_no(arraymusictrackno[i] == null ? "0" : arraymusictrackno[i]);
}
music.setImgUrl(imgUrl);
musicLi.add(music);
}
}
disk.setMusicList(musicLi);
diskLi.add(disk);
musicCount += cur.getInt(6);
}
albumdetail.setDisklist(diskLi);
albumdetail.setMusicCount(musicCount);
}
if (cur != null) {
cur.close();
}
return albumdetail;
}
/**
* 更新清楚缓存状态信息
*
* @param map
*/
public boolean updateCloudStates(Map<String, List<Long>> map) {
List<Long> li = map.get("albums");
ContentValues addv = new ContentValues();
boolean flag = true;
try {
// addv.put("isclearcache", 5);//5表示需要显示的
DBHelper.getSqLitedatabase().beginTransaction();
String ids = "";
String sqlall = "update db_album set isclearcache = 0";
DBHelper.getSqLitedatabase().execSQL(sqlall); // 全部显示
for (Long l : li) {
ids = ids + l + ",";
}
if(!ids.equals("")){
ids = ids.substring(0, ids.length() - 1);
String updateisclear = "update db_album set isclearcache = 5 where id in ( " + ids + " )";
DBHelper.getSqLitedatabase().execSQL(updateisclear);
}
DBHelper.getSqLitedatabase().setTransactionSuccessful();
} catch (Exception e) {
e.printStackTrace();
flag = false;
} finally {
DBHelper.getSqLitedatabase().endTransaction();
}
return flag;
}
/**
* 查询在云端的音乐
*
* @return
*/
public List<Album> getAlbumListForCloud(long pageIndex, int pageSize) {
SQLiteDatabase mdb = DBHelper.getSqLitedatabase();
Cursor cur = mdb.rawQuery("select dba.id albumId,dba.name albumName,dba.img_url albumImgurl,group_concat(dbr.id) artistId,group_concat(dbr.name) artistname ,dba.isclearcache " + "from db_album dba inner join product_artist pa on dba.id=pa.product_id left join db_artist dbr on dbr.id=pa.artist_id where dba.isclearcache != 5 group by albumId order by dba.buytime desc limit " + pageIndex + " , " + pageSize, null);
// String temp="";
List<Album> li = new ArrayList<Album>();
if (cur != null) {
if (cur.getCount() == 0) {
// temp="";
return null;
}
Album album = null;
String[] artistId;
String[] artistName;
List<Artist> artistLi;
Artist artist = null;
try {
while (cur.moveToNext()) {// 知道返回false说明表到了数据末尾
album = new Album();
album.setId(cur.getLong(0));
album.setName(cur.getString(1));
album.setImgUrl(cur.getString(2));
album.setIsCloud(cur.getInt(5));
artistId = cur.getString(3) != null ? cur.getString(3).split(",") : null;
artistName = cur.getString(4) != null ? cur.getString(4).split(",") : null;
artistLi = new ArrayList<Artist>();
if (artistId != null && artistName != null && artistId.length > 0 && artistName.length > 0) {
for (int i = 0; i < artistId.length; i++) {
artist = new Artist();
artist.setId(Long.parseLong(artistId[i]));
artist.setName(artistName[i]);
artistLi.add(artist);
}
album.setArtistli(artistLi);
}
li.add(album);
}
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
if (cur != null)
cur.close();
}
}
return li;
}
/**
* 根据专辑id查询所有
*/
public AlbumDetail getAlbumDetailForPurchased(Long id) {
SQLiteDatabase mdb = DBHelper.getSqLitedatabase();
String sql = "select alb.id albumid,alb.name albumname,dbd.id diskid ,dbd.name diskname,group_concat(tempmusic.musicid ,'&&%') musicId ,group_concat(tempmusic.musicname,'&&%') musicname,count(tempmusic.musicid) musicCount,group_concat(tempmusic.artistid ,'&&%') artistId,group_concat(tempmusic.artistname,'&&%') artistname ,alb.img_url" + " , group_concat(tempmusic.track_no,'&&%') track_no ,group_concat(tempmusic.isclearcache,'&&%') isclearcache ,group_concat(tempmusic.media_url,'&&%') media_url from (select dbm.id musicid ,dbm.name musicname,dbm.track_no ,dbm.disk_id,group_concat(dba.id) artistid ,group_concat(dba.name) artistname ,dbm.isclearcache ,dbm.media_url "
+ " from db_music dbm inner join product_artist pa on pa.product_id = dbm.id left join db_artist dba on dba.id=pa.artist_id group by musicid order by track_no) tempmusic " + " inner join db_disk dbd on dbd.id= tempmusic.disk_id inner join db_album alb on alb.id=dbd.album_id where alb.id=" + id + " group by diskid order by dbd.disk_no";
Cursor cur = mdb.rawQuery(sql, null);
AlbumDetail albumdetail = new AlbumDetail();
List<Disk> diskLi = new ArrayList<Disk>();
String imgUrl = "";
int musicCount = 0;
if (cur != null) {
if (cur.getCount() == 0) {
return null;
}
String[] arraymusicid = null;
String[] arraymusicname = null;
String[] arrayartistname = null;
String[] arrayartistId = null;
String[] arraymusictrackno = null;
String[] arraymusicIsCloud = null;
String[] arraymusicMediaUrl = null;
Music music = null;
Disk disk = null;
while (cur.moveToNext()) {// 每条数据是一张碟
List<Music> musicLi = new ArrayList<Music>();
albumdetail.setAlbumId(cur.getLong(0));
albumdetail.setAlbumname(cur.getString(1));
imgUrl = cur.getString(9);
disk = new Disk();
disk.setId(cur.getLong(2));
disk.setName(cur.getString(3));
arraymusicid = cur.getString(4).split("&&%");
arraymusicname = cur.getString(5) != null ? cur.getString(5).split("&&%") : null;
arrayartistname = cur.getString(8) != null ? cur.getString(8).split("&&%") : null;
arrayartistId = cur.getString(7) != null ? cur.getString(7).split("&&%") : null;
arraymusictrackno = cur.getString(10) != null ? cur.getString(10).split("&&%") : null;
arraymusicIsCloud = cur.getString(11) != null ? cur.getString(11).split("&&%") : null;
arraymusicMediaUrl = cur.getString(12) != null ? cur.getString(12).split("&&%") : null;
if (arraymusicid != null) {
for (int i = 0; i < arraymusicid.length; i++) {
music = new Music();
music.setId(Long.parseLong(arraymusicid[i]));
music.setName(arraymusicname[i]);
music.setIscloud(Integer.parseInt(arraymusicIsCloud[i]));
if (arrayartistId != null) {
if (i < arrayartistId.length) {
music.setArtistId(arrayartistId[i] == null ? "0" : arrayartistId[i]);
}
} else {
music.setArtistId("0");
}
if (arraymusicMediaUrl != null) {
music.setMediaurl(arraymusicMediaUrl[i] == null ? "0" : arraymusicMediaUrl[i]);
}
if (arrayartistname != null) {
if (i < arrayartistname.length) {
music.setArtistName(arrayartistname[i]);
}
} else {
music.setArtistName("");
}
if (arraymusictrackno != null) {
music.setTrack_no(arraymusictrackno[i] == null ? "0" : arraymusictrackno[i]);
}
music.setImgUrl(imgUrl);
musicLi.add(music);
}
}
disk.setMusicList(musicLi);
diskLi.add(disk);
musicCount += cur.getInt(6);
}
albumdetail.setDisklist(diskLi);
albumdetail.setMusicCount(musicCount);
}
if (cur != null) {
cur.close();
}
return albumdetail;
}
/**
* 查询全部数据,云端和本地
*/
public List<Album> getAllAlbumList(long pageIndex, int pageSize) {
SQLiteDatabase mdb = DBHelper.getSqLitedatabase();
Cursor cur = mdb.rawQuery("select dba.id albumId,dba.name albumName,dba.img_url albumImgurl,group_concat(dbr.id) artistId,group_concat(dbr.name) artistname ,dba.isclearcache " + "from db_album dba inner join product_artist pa on dba.id=pa.product_id left join db_artist dbr on dbr.id=pa.artist_id group by albumId order by dba.buytime desc limit " + pageIndex + " , " + pageSize, null);
// String temp="";
List<Album> li = new ArrayList<Album>();
if (cur != null) {
if (cur.getCount() == 0) {
// temp="";
return null;
}
Album album = null;
String[] artistId;
String[] artistName;
List<Artist> artistLi;
Artist artist = null;
try {
while (cur.moveToNext()) {// 知道返回false说明表到了数据末尾
album = new Album();
album.setId(cur.getLong(0));
album.setName(cur.getString(1));
album.setImgUrl(cur.getString(2));
artistId = cur.getString(3) != null ? cur.getString(3).split(",") : null;
artistName = cur.getString(4) != null ? cur.getString(4).split(",") : null;
album.setIsCloud(cur.getInt(5));
artistLi = new ArrayList<Artist>();
if (artistId != null && artistName != null && artistId.length > 0 && artistName.length > 0) {
for (int i = 0; i < artistId.length; i++) {
artist = new Artist();
artist.setId(Long.parseLong(artistId[i]));
artist.setName(artistName[i]);
artistLi.add(artist);
}
album.setArtistli(artistLi);
}
li.add(album);
}
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
if (cur != null)
cur.close();
}
}
return li;
}
public List<Album> getAllAlbumList() {
SQLiteDatabase mdb = DBHelper.getSqLitedatabase();
Cursor cur = mdb.rawQuery("select * from db_album", null);
List<Album> li = new ArrayList<Album>();
if (cur != null) {
if (cur.getCount() == 0) {
System.out.println("getAllAlbumList return null");
return null;
}
Album album = null;
String[] artistId;
String[] artistName;
List<Artist> artistLi;
Artist artist = null;
try {
while (cur.moveToNext()) {// 知道返回false说明表到了数据末尾
album = new Album();
album.setId(cur.getLong(0));
album.setName(cur.getString(1));
album.setImgUrl(cur.getString(2));
artistId = cur.getString(3) != null ? cur.getString(3).split(",") : null;
artistName = cur.getString(4) != null ? cur.getString(4).split(",") : null;
album.setIsCloud(cur.getInt(5));
artistLi = new ArrayList<Artist>();
if (artistId != null && artistName != null && artistId.length > 0 && artistName.length > 0) {
for (int i = 0; i < artistId.length; i++) {
artist = new Artist();
artist.setId(Long.parseLong(artistId[i]));
artist.setName(artistName[i]);
artistLi.add(artist);
}
album.setArtistli(artistLi);
}
li.add(album);
}
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
if (cur != null)
cur.close();
}
}
return li;
}
/**
* 获得本地专辑列表
*
*/
public List<Album> albumlist(long pageIndex, int pageSize) {
SQLiteDatabase mdb = DBHelper.getSqLitedatabase();
Cursor cur = mdb.rawQuery("select dba.id albumId,dba.name albumName,dba.img_url albumImgurl,group_concat(dbr.id) artistId,group_concat(dbr.name) artistname,dba.isclearcache " + "from db_album dba inner join product_artist pa on dba.id=pa.product_id left join db_artist dbr on dbr.id=pa.artist_id where dba.isclearcache = 5 group by albumId order by dba.buytime desc limit " + pageIndex + " , " + pageSize, null);
// String temp="";
List<Album> li = new ArrayList<Album>();
if (cur != null) {
if (cur.getCount() == 0) {
// temp="";
return null;
}
Album album = null;
String[] artistId;
String[] artistName;
List<Artist> artistLi;
Artist artist = null;
try {
while (cur.moveToNext()) {// 知道返回false说明表到了数据末尾
album = new Album();
album.setId(cur.getLong(0));
album.setName(cur.getString(1));
album.setImgUrl(cur.getString(2));
artistId = cur.getString(3) != null ? cur.getString(3).split(",") : null;
artistName = cur.getString(4) != null ? cur.getString(4).split(",") : null;
album.setIsCloud(cur.getInt(5));
artistLi = new ArrayList<Artist>();
if (artistId != null && artistName != null && artistId.length > 0 && artistName.length > 0) {
for (int i = 0; i < artistId.length; i++) {
artist = new Artist();
artist.setId(Long.parseLong(artistId[i]));
artist.setName(artistName[i]);
artistLi.add(artist);
}
album.setArtistli(artistLi);
}
li.add(album);
}
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
if (cur != null)
cur.close();
}
}
return li;
}
/**
* @see 更新专辑云状态;如果是设置为在云端,其下所有单曲将一并被置为在云端
* @param state 0=在云端 5=在本地
*/
public void updateCloudState(long id, int state) {
Log.e("BUG975", "11>>"+TAG+"updateCloudState("+id+","+state+")");
try {
// addv.put("isclearcache", 5);//5表示同步云端 0表示清除本地缓存
DBHelper.getSqLitedatabase().beginTransaction();
String sqlall = "update db_album set isclearcache =" + state + " where id =" + id;
String sqlupdate = "update db_music set isclearcache = " + state + " where db_music.id in (select d.id from db_music d inner join db_disk dbd on d.disk_id =dbd.id inner join db_album dba on dba.id=dbd.album_id where dba.id =" + id + " )";
DBHelper.getSqLitedatabase().execSQL(sqlall);
DBHelper.getSqLitedatabase().execSQL(sqlupdate);
DBHelper.getSqLitedatabase().setTransactionSuccessful();
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.getSqLitedatabase().endTransaction();
}
}
/**
* @description get state of album by id
* @return int -1未购买,0在云端,5在本地
*/
public int getAlbumStateById(long id, int musiccount) {
SQLiteDatabase mdb = DBHelper.getSqLitedatabase();
int state = -1;
Cursor curs = mdb.rawQuery("select count(dbm.id) from db_album inner join db_disk on db_disk.album_id =db_album.id inner join db_music dbm on dbm.disk_id=db_disk.id where db_album.id =" + id, null);
if (curs != null) {
if (curs.getCount() > 0) {
while (curs.moveToNext()) {
if (musiccount > curs.getInt(0)) {
return state;
}
}
} else {
return state;
}
curs.close();
}
Cursor cur = mdb.rawQuery("select isclearcache from db_album where id=" + id, null);
if (cur != null) {
if (cur.getCount() == 0) {
return state;
}
try {
while (cur.moveToNext()) {// 知道返回false说明表到了数据末尾
state = cur.getInt(0);
}
} catch (Exception e) {
e.printStackTrace();
return -1;
} finally {
if (cur != null)
cur.close();
}
}
return state;
}
/**
* @description get musiclist of album by id
* @return List<Music>
*/
public List<Music> getAllMusicListById(long id) {
List<Music> musicli = null;
Music music = null;
Cursor cur = DBHelper.getSqLitedatabase().rawQuery("select dbm.id,dbm.name,dbm.play_time,dbm.file_size,dbm.first_char,dbm.track_no,dbm.media_url,group_concat(dba.name) artitname,dba.id,db_album.img_url,dbm.isclearcache from db_album inner join db_disk on db_disk.album_id =db_album.id inner join db_music dbm on dbm.disk_id=db_disk.id inner join product_artist pa on pa.product_id =dbm.id inner join db_artist dba on dba.id= pa.artist_id where db_album.id=" + id + " group by dbm.id order by dbm.buytime", null);
if (cur.getCount() > 0) {
musicli = new ArrayList<Music>();
while (cur.moveToNext()) {
music = new Music();
music.setId(cur.getLong(0));
music.setName(cur.getString(1));
music.setPlay_time(cur.getString(2));
music.setFile_size(cur.getString(3));
music.setFirstChar(cur.getString(4));
music.setTrack_no(cur.getString(5));
music.setMediaurl(cur.getString(6));
music.setArtistName(cur.getString(7));
music.setArtistId(cur.getString(8));
music.setImgUrl(cur.getString(9));
music.setIscloud(cur.getInt(10));
// music.set
musicli.add(music);
}
}
if (cur != null) {
cur.close();
}
return musicli;
}
/**
* @author: ouyang
* @description: 修改数据库中单个专辑的云状态
*/
public void updateAlbumLocationState(long albumId, int locationState) {
String updateSql = "update db_album set isclearcache=" + locationState + " where id=" + albumId;
DBHelper.getSqLitedatabase().execSQL(updateSql);
}
}