package com.hyrt.cei.db; import java.io.ByteArrayOutputStream; import java.util.ArrayList; import java.util.List; import com.hyrt.cei.vo.ClassType; import com.hyrt.cei.vo.Courseware; import com.hyrt.cei.vo.ImageResourse; import com.hyrt.cei.vo.Preload; import com.hyrt.cei.vo.Report; import com.hyrt.cei.vo.WitSea; import com.hyrt.cei.webservice.service.Service; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; public class DataHelper { // 数据库名称 private static String DB_NAME = "cei.db"; // 数据库版本 private static int DB_VERSION = 2; private SQLiteDatabase db; public SqliteHelper dbHelper; public DataHelper(Context context) { dbHelper = new SqliteHelper(context, DB_NAME, null, DB_VERSION); db = dbHelper.getWritableDatabase(); } public void Close() { db.close(); dbHelper.close(); } /** * 保存下载列表 */ public void savePreload(final Preload preload) { new Thread(new Runnable() { @Override public void run() { Service.updatedownsum(preload.getLoadPlayId(), "kj"); } }).start(); ContentValues contentvalues = new ContentValues(); contentvalues.put(Preload.LOAD_PLAYID, preload.getLoadPlayId()); contentvalues.put(Preload.LOAD_PLAYTITLE, preload.getLoadPlayTitle()); contentvalues.put(Preload.LOAD_PLAYTITLE_BELOW, preload.getLoadPlayTitleBelow()); contentvalues.put(Preload.LOAD_CURRENTBYTE, preload.getLoadCurrentByte()); contentvalues.put(Preload.LOAD_SUMBYTE, preload.getLoadSumByte()); contentvalues.put(Preload.LOAD_URL, preload.getLoadUrl()); contentvalues.put(Preload.LOAD_LOCALPATH, preload.getLoadLocalPath()); contentvalues.put(Preload.LOAD_FINISH, preload.getLoadFinish()); contentvalues.put(Preload.LOADING, preload.getLoading()); contentvalues.put( Preload.LOAD_PARENTID, preload.getLoadParentId() == null ? "" : preload .getLoadParentId()); contentvalues.put(Preload.PASS_KEY, preload.getPassKey() == null ? "" : preload.getPassKey()); contentvalues.put( Preload.CLASS_LENGTH, preload.getClassLength() == null ? "0" : preload .getClassLength()); contentvalues .put(Preload.CLASS_LEVEL, preload.getClassLevel() == null ? "1" : preload.getClassLevel()); db.insert(SqliteHelper.TB_PRELOAD_NAME, Preload.ID, contentvalues); contentvalues.clear(); } /** * 保存图片离线资源 */ public boolean saveImageResource(ImageResourse imageResource) { ContentValues contentvalues = new ContentValues(); contentvalues.put(ImageResourse.ICONID, imageResource.getIconId()); final ByteArrayOutputStream os = new ByteArrayOutputStream(); ((BitmapDrawable) imageResource.getIcon()).getBitmap().compress( Bitmap.CompressFormat.PNG, 100, os); contentvalues.put(ImageResourse.ICON, os.toByteArray()); contentvalues.put( ImageResourse.ICONTIME, imageResource.getIconTime() == null ? "" : imageResource .getIconTime()); contentvalues.put(ImageResourse.ICONTYPE, imageResource.getType() == null ? "" : imageResource.getType()); if (os.toByteArray().length > 100) { db.insert(SqliteHelper.TB_IMAGERESOURCE_NAME, "", contentvalues);// ImageResourse.ID return true; } contentvalues.clear(); return false; } /** * 保存课件类别 */ public void saveClassType(List<ClassType> classTypes) { if (classTypes.size() != 0) db.delete(SqliteHelper.TB_CLASSTYPE_NAME, null, null); ContentValues values = new ContentValues(); for (int i = 0; i < classTypes.size(); i++) { ClassType classType = classTypes.get(i); values.put(ClassType.CLASSID, classType.getClassId()); values.put(ClassType.PARENTID, classType.getParentId() == null ? "" : classType.getParentId()); values.put(ClassType.CONTENT, classType.getContent()); db.insert(SqliteHelper.TB_CLASSTYPE_NAME, ClassType.ID, values); values.clear(); } } /** * 获取课件类别列表 */ public List<ClassType> getClassTypes() { List<ClassType> classTypes = new ArrayList<ClassType>(); Cursor cursor = db.query(SqliteHelper.TB_CLASSTYPE_NAME, null, null, null, null, null, ClassType.ID + " ASC"); cursor.moveToFirst(); while (!cursor.isAfterLast() && (cursor.getString(1) != null)) { ClassType classType = new ClassType(); classType.setClassId(cursor.getString(1)); classType.setParentId(cursor.getString(2)); classType.setContent(cursor.getString(3)); classTypes.add(classType); cursor.moveToNext(); } cursor.close(); return classTypes; } /** * 缓存课件 * * @param courseware */ public void saveCourseware(Courseware courseware) { ContentValues contentvalues = new ContentValues(); contentvalues.put(Courseware.CLASSID, courseware.getClassId() == null ? "" : courseware.getClassId()); contentvalues.put(Courseware.NAME, courseware.getName() == null ? "" : courseware.getName()); contentvalues.put(Courseware.INTRO, courseware.getIntro() == null ? "" : courseware.getIntro()); contentvalues.put( Courseware.TEACHERNAME, courseware.getTeacherName() == null ? "" : courseware .getTeacherName()); contentvalues.put( Courseware.CLASSLENGTH, courseware.getClassLength() == null ? "" : courseware .getClassLength()); contentvalues.put(Courseware.PROTIME, courseware.getProTime() == null ? "" : courseware.getProTime()); contentvalues.put( Courseware.CLASSLEVEL, courseware.getClassLevel() == null ? "" : courseware .getClassLevel()); contentvalues.put(Courseware.ISSELFCOURSE, courseware.isSelfCourse() == true ? "1" : "0"); contentvalues.put(Courseware.ISSAYCOURSE, courseware.isSay() == true ? "1" : "0"); contentvalues.put( Courseware.PARENTID, courseware.getParentId() == null ? "" : courseware .getParentId()); List<Courseware> coursewares = getCoursewares(courseware); if (coursewares.size() == 0) db.insert(SqliteHelper.TB_COURSEWARE_NAME, Courseware.ID, contentvalues); else { courseware .setParentId(coursewares.get(0).getParentId() == null ? "" : coursewares.get(0).getParentId() + courseware.getParentId() == null ? "" : courseware.getParentId()); courseware.setId(coursewares.get(0).getId()); updateCourseware(courseware); } contentvalues.clear(); } /** * 根据参数的值,获取指定id、类别、谈论组、自选课下的课件列表。 * * @return */ public List<Courseware> getCoursewares(Courseware cw) { Cursor cursor = null; if (cw.getClassId() != null && !cw.getClassId().equals("")) { cursor = db.query(SqliteHelper.TB_COURSEWARE_NAME, null, Courseware.CLASSID + "=?", new String[] { cw.getClassId() }, null, null, null); } else if (cw.getParentId() != null && !cw.getParentId().equals("")) { String parentId = "%%%%" + cw.getParentId() + "%%%%"; cursor = db.query(SqliteHelper.TB_COURSEWARE_NAME, null, Courseware.PARENTID + " like ? ", new String[] { parentId }, null, null, null); } else if (cw.getName() != null) { String name = "%%%%" + cw.getName() + "%%%%"; cursor = db.query(SqliteHelper.TB_COURSEWARE_NAME, null, Courseware.NAME + " like ?", new String[] { name }, null, null, null); } else if (cw.isSelfCourse()) { cursor = db.query(SqliteHelper.TB_COURSEWARE_NAME, null, Courseware.ISSELFCOURSE + "=?", new String[] { "1" }, null, null, null); } else if (cw.isSay()) { cursor = db.query(SqliteHelper.TB_COURSEWARE_NAME, null, Courseware.ISSAYCOURSE + "=?", new String[] { "1" }, null, null, null); } if (cursor == null) return new ArrayList<Courseware>(); cursor.moveToFirst(); List<Courseware> coursewareList = new ArrayList<Courseware>(); while (!cursor.isAfterLast() && (cursor.getString(1) != null)) { Courseware courseware = new Courseware(); courseware.setId(cursor.getInt(0)); courseware.setClassId(cursor.getString(1)); courseware.setName(cursor.getString(2)); courseware.setIntro(cursor.getString(3)); courseware.setTeacherName(cursor.getString(4)); courseware.setClassLength(cursor.getString(5)); courseware.setProTime(cursor.getString(6)); courseware.setClassLevel(cursor.getString(7)); courseware.setSelfCourse(cursor.getInt(8) == 1 ? true : false); courseware.setParentId(cursor.getString(10)); coursewareList.add(courseware); cursor.moveToNext(); } cursor.close(); return coursewareList; } /** * 更新指定课件的值 * * @param courseware */ public void updateCourseware(Courseware courseware) { ContentValues contentvalues = new ContentValues(); contentvalues.put(Courseware.ISSELFCOURSE, courseware.isSelfCourse() == true ? "1" : "0"); contentvalues.put(Courseware.PARENTID, courseware.getParentId()); contentvalues.put(Courseware.ISSAYCOURSE, courseware.isSay() == true ? "1" : "0"); db.update(SqliteHelper.TB_COURSEWARE_NAME, contentvalues, Courseware.ID + "=?", new String[] { courseware.getId() + "" }); } /** * 获取指定的图片资源 * * @param iconId * 图片资源id * @param type * 1为大图,其他为小图。 * @return */ public ImageResourse getImageResource(String iconId, String type) { Cursor cursor = db.query(SqliteHelper.TB_IMAGERESOURCE_NAME, null, ImageResourse.ICONID + "=? and " + ImageResourse.ICONTYPE + "=?", new String[] { iconId == null ? "" : iconId, type == null ? "" : type }, null, null, ImageResourse.ID + " DESC"); cursor.moveToFirst(); ImageResourse imageResource = null; while (!cursor.isAfterLast() && (cursor.getString(2) != null)) { byte[] bytes = cursor.getBlob(1); imageResource = new ImageResourse(); imageResource.setId(cursor.getInt(0)); BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeByteArray(bytes, 0, bytes.length, options); options.inJustDecodeBounds = false; int be = (int) (options.outHeight / (float) 200); if (be <= 0) be = 1; options.inSampleSize = be; Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length, options); Drawable icon = new BitmapDrawable(bitmap); imageResource.setIcon(icon); imageResource.setIconId(cursor.getString(2)); imageResource.setIconTime(cursor.getString(3)); cursor.moveToNext(); } cursor.close(); return imageResource; } /** * 更新过期图片 * * @param imageResource */ public void updateImageResource(ImageResourse imageResource) { ContentValues contentvalues = new ContentValues(); ByteArrayOutputStream os = new ByteArrayOutputStream(); ((BitmapDrawable) imageResource.getIcon()).getBitmap().compress( Bitmap.CompressFormat.PNG, 100, os); contentvalues.put(ImageResourse.ICON, os.toByteArray()); contentvalues.put( ImageResourse.ICONTIME, imageResource.getIconTime() == null ? "" : imageResource .getIconTime()); if (os.toByteArray().length > 100) { db.update(SqliteHelper.TB_IMAGERESOURCE_NAME, contentvalues, ImageResourse.ID + "=?", new String[] { imageResource.getId() + "" }); } } /** * 获取课件视频缓存列表 * * @return */ public List<Preload> getPreloadList() { List<Preload> preloadList = new ArrayList<Preload>(); Cursor cursor = db.query(SqliteHelper.TB_PRELOAD_NAME, null, null, null, null, null, Preload.ID + " DESC"); cursor.moveToFirst(); while (!cursor.isAfterLast() && (cursor.getString(1) != null)) { Preload preload = new Preload(); preload.set_id(Long.valueOf(cursor.getLong(0))); preload.setLoadPlayId(cursor.getString(1)); preload.setLoadPlayTitle(cursor.getString(2)); preload.setLoadCurrentByte(Integer.valueOf(cursor.getInt(3))); preload.setLoadSumByte(Integer.valueOf(cursor.getInt(4))); preload.setLoadUrl(cursor.getString(5)); preload.setLoadLocalPath(cursor.getString(6)); preload.setLoadFinish(Integer.valueOf(cursor.getInt(7))); preload.setLoading(Integer.valueOf(cursor.getInt(8))); preload.setNewPostion(Integer.valueOf(cursor.getInt(9))); preload.setLoadPlayTitleBelow(cursor.getString(10)); preload.setLoadParentId(cursor.getString(11)); preload.setPassKey(cursor.getString(12)); preload.setClassLength(cursor.getString(13)); preload.setClassLevel(cursor.getString(14)); preloadList.add(preload); cursor.moveToNext(); } cursor.close(); return preloadList; } /** * 更新课件视频缓存条目 * * @param preload * @return */ public int updatePreload(Preload preload) { ContentValues values = new ContentValues(); if (preload.getLoadCurrentByte() != -1) values.put(Preload.LOAD_CURRENTBYTE, preload.getLoadCurrentByte()); if (preload.getLoadSumByte() != -1) values.put(Preload.LOAD_SUMBYTE, preload.getLoadSumByte()); if (preload.getLoadFinish() != -1) values.put(Preload.LOAD_FINISH, preload.getLoadFinish()); if (preload.getLoading() != -1) values.put(Preload.LOADING, preload.getLoading()); if (preload.getNewPostion() != -1) values.put(Preload.NEW_POSTION, preload.getNewPostion()); int id = db.update(SqliteHelper.TB_PRELOAD_NAME, values, Preload.LOAD_PLAYID + "=?", new String[] { preload.getLoadPlayId() }); return id; } /** * 判断该课件是否已经缓存 * * @param playId * @return */ public Boolean hasPreload(String playId) { Boolean b = false; Cursor cursor = db.query(SqliteHelper.TB_PRELOAD_NAME, null, Preload.LOAD_PLAYID + "=?", new String[] { playId }, null, null, null); b = cursor.moveToFirst(); cursor.close(); return b; } /** * 根据课件id获取课件信息 * * @param playId * @return */ public Preload getPreload(String playId) { Preload preload = null; Cursor cursor = db.query(SqliteHelper.TB_PRELOAD_NAME, null, Preload.LOAD_PLAYID + "=?", new String[] { playId }, null, null, null); cursor.moveToFirst(); if (!cursor.isAfterLast() && (cursor.getString(1) != null)) { preload = new Preload(); preload.setLoadLocalPath(cursor.getString(6)); preload.setLoadFinish(Integer.valueOf(cursor.getInt(7))); preload.setPassKey(cursor.getString(12)); cursor.close(); } return preload; } /** * 删除指定缓存列表 * * @param playId * @return */ public int deletePreload(String playId) { int id = -1; id = db.delete(SqliteHelper.TB_PRELOAD_NAME, Preload.LOAD_PLAYID + "=?", new String[] { playId }); return id; } public Long saveWitSeaInfo(WitSea witSea) { ContentValues values = new ContentValues(); values.put(WitSea.ID, witSea.getFunid()); values.put(WitSea.NAME, witSea.getName()); values.put(WitSea.IMAGE, witSea.getOperationimage()); values.put(WitSea.ISORDER, witSea.getIsCustom()); Long uid = db.insert(SqliteHelper.TB_WITSEA_NAME, "", values); return uid; } /** * 保存已下载报告 * * @param Report * @return */ // nullpointE public Long saveReport(Report report) { ContentValues values = new ContentValues(); // values.put(Report.ID, report.getId()); values.put(Report.REPORT_ID, report.getId()); values.put(Report.REPORT_AUTHOR, report.getAuthor()); values.put(Report.REPORT_NAME, report.getName()); values.put(Report.REPORT_TIME, report.getProtime()); values.put(Report.REPORT_READ_TIME, report.getReadtime()); values.put(Report.REPORTPRICE, report.getPrice()); values.put(Report.REPORTPATH, report.getDatapath()); values.put(Report.REPORT_IMGPATH, report.getPpath()); values.put(Report.REPORT_MULU, report.getMulu()); values.put(Report.REPORT_KEY, report.getKey()); values.put(Report.REPORT_DOWNLOAD, report.getDownpath()); values.put(Report.REPORT_PARTITION_ID, report.getPartitiontID()); values.put(Report.REPORT_INTRO, report.getIntro()); values.put(Report.REPORT_FILENAME, report.getFileName()); Long uid = db.insert(SqliteHelper.TB_REPORT_NAME, "", values); return uid; } /** * 保存分类下所有报告 * * @param report * @return */ public Long saveAllReport(Report report) { ContentValues values = new ContentValues(); // values.put(Report.ID, report.getId()); values.put(Report.REPORT_ID, report.getId()); values.put(Report.REPORT_AUTHOR, report.getAuthor()); values.put(Report.REPORT_NAME, report.getName()); values.put(Report.REPORT_TIME, report.getProtime()); values.put(Report.REPORT_READ_TIME, report.getReadtime()); values.put(Report.REPORTPRICE, report.getPrice()); values.put(Report.REPORTPATH, report.getDatapath()); values.put(Report.REPORT_IMGPATH, report.getPpath()); values.put(Report.REPORT_MULU, report.getMulu()); values.put(Report.REPORT_KEY, report.getKey()); values.put(Report.REPORT_DOWNLOAD, report.getDownpath()); values.put(Report.REPORT_PARTITION_ID, report.getPartitiontID()); values.put(Report.REPORT_INTRO, report.getIntro()); Long uid = db.insert(SqliteHelper.TB_ALLREPORT_NAME, "", values); return uid; } /** * 已下载报告类表 * * @return */ public List<Report> getReportList() { List<Report> reportList = new ArrayList<Report>(); Cursor cursor = db.query(SqliteHelper.TB_REPORT_NAME, null, null, null, null, null, null); cursor.moveToFirst(); while (!cursor.isAfterLast() && (cursor.getString(1) != null)) { Report report = new Report(); report.setId(cursor.getString(1)); report.setAuthor(cursor.getString(2)); report.setName(cursor.getString(3)); report.setProtime(cursor.getString(4)); report.setReadtime(cursor.getString(5)); report.setPrice(cursor.getString(6)); report.setDatapath(cursor.getString(7)); report.setPpath(cursor.getString(8)); report.setMulu(cursor.getString(9)); report.setKey(cursor.getString(10)); report.setDownpath(cursor.getString(11)); report.setReportSize(cursor.getString(12)); report.setIsLoad(cursor.getString(13)); report.setPartitiontID(cursor.getString(14)); report.setIntro(cursor.getString(15)); report.setFileName(cursor.getString(16)); reportList.add(report); cursor.moveToNext(); } cursor.close(); return reportList; } public List<Report> getAllReportListByID(String id) { List<Report> reportList = new ArrayList<Report>(); Cursor cursor = db.query(SqliteHelper.TB_ALLREPORT_NAME, null, null, null, null, null, null); cursor.moveToFirst(); while (!cursor.isAfterLast() && (cursor.getString(1) != null)) { if (cursor.getString(14).equals(id)) { Report report = new Report(); report.setId(cursor.getString(1)); report.setAuthor(cursor.getString(2)); report.setName(cursor.getString(3)); report.setProtime(cursor.getString(4)); report.setReadtime(cursor.getString(5)); report.setPrice(cursor.getString(6)); report.setDatapath(cursor.getString(7)); report.setPpath(cursor.getString(8)); report.setMulu(cursor.getString(9)); report.setKey(cursor.getString(10)); report.setDownpath(cursor.getString(11)); report.setReportSize(cursor.getString(12)); report.setIsLoad(cursor.getString(13)); report.setPartitiontID(cursor.getString(14)); report.setIntro(cursor.getString(15)); reportList.add(report); } cursor.moveToNext(); } cursor.close(); return reportList; } /** * 根据名称查报告 * * @return */ public List<Report> getReportListById(String name) { List<Report> reportList = new ArrayList<Report>(); Cursor cursor = db.query(SqliteHelper.TB_REPORT_NAME, null, null, null, null, null, null); cursor.moveToFirst(); while (!cursor.isAfterLast() && (cursor.getString(1) != null)) { if (cursor.getString(3).contains(name)) { Report report = new Report(); report.setId(cursor.getString(1)); report.setAuthor(cursor.getString(2)); report.setName(cursor.getString(3)); report.setProtime(cursor.getString(4)); report.setReadtime(cursor.getString(5)); report.setPrice(cursor.getString(6)); report.setDatapath(cursor.getString(7)); report.setPpath(cursor.getString(8)); report.setMulu(cursor.getString(9)); report.setKey(cursor.getString(10)); report.setDownpath(cursor.getString(11)); report.setReportSize(cursor.getString(12)); report.setIsLoad(cursor.getString(13)); report.setPartitiontID(cursor.getString(14)); report.setIntro(cursor.getString(15)); report.setFileName(cursor.getString(16)); reportList.add(report); } cursor.moveToNext(); } cursor.close(); return reportList; } /** * 增加报告状态 * * @param report * @return */ public int UpdateReportZT(Report report) { ContentValues values = new ContentValues(); values.put(Report.REPORT_ISLOAD, report.getIsLoad()); int id = db.update(SqliteHelper.TB_REPORT_NAME, values, Report.REPORT_ID + "=?", new String[] { report.getId() }); return id; } public int delWitSeaInfo(String witSeaId) { int id = db.delete(SqliteHelper.TB_WITSEA_NAME, WitSea.ID + "=?", new String[] { witSeaId }); return id; } public int UpdateWitSeaInfo(WitSea witSea) { ContentValues values = new ContentValues(); values.put(WitSea.ISORDER, witSea.getIsCustom()); int id = db.update(SqliteHelper.TB_WITSEA_NAME, values, WitSea.ID + "=?", new String[] { witSea.getFunid() }); return id; } public List<WitSea> getWitSeaList() { List<WitSea> witSeaList = new ArrayList<WitSea>(); Cursor cursor = db.query(SqliteHelper.TB_WITSEA_NAME, null, null, null, null, null, null); cursor.moveToFirst(); while (!cursor.isAfterLast() && (cursor.getString(1) != null)) { WitSea witSea = new WitSea(); witSea.setFunid(cursor.getString(0)); witSea.setName(cursor.getString(1)); witSea.setOperationimage(cursor.getString(2)); witSea.setIsCustom(cursor.getString(3)); witSeaList.add(witSea); cursor.moveToNext(); } cursor.close(); return witSeaList; } public Boolean haveWitSeaInfo(String id) { Boolean b = false; Cursor cursor = db.query(SqliteHelper.TB_WITSEA_NAME, null, WitSea.ID + "=?", new String[] { id }, null, null, null); b = cursor.moveToFirst(); cursor.close(); return b; } /** * 删除书架中的记录 */ public int delReport(String reportid) { int id = db.delete(SqliteHelper.TB_REPORT_NAME, Report.REPORT_ID + "=?", new String[] { reportid }); return id; } /** * 插入学习记录数据列表 */ public void savePlayRecords(List<Courseware> coursewares) { for (int i = 0; i < coursewares.size(); i++) { Courseware courseware = coursewares.get(i); Courseware newCourseware = new Courseware(); newCourseware.setClassId(courseware.getClassId()); // 根据课件id,查出学习时间点和需要上传的学习时长 if (getStudyRecord(newCourseware)) { courseware.setTimePoint(newCourseware.getTimePoint()); courseware.setUploadTime(newCourseware.getUploadTime()); if(!"1".equals(courseware.getIscompleted())) courseware.setIscompleted(newCourseware.getIscompleted()); } courseware.setOrderTime(i + 1); insertOrUpdateStudyRecord(courseware); } } /** * 插入学习记录 */ private void savePlayRecord(Courseware courseware) { ContentValues contentvalues = new ContentValues(); contentvalues.put(Courseware.CLASSID, courseware.getClassId() == null ? "" : courseware.getClassId()); contentvalues.put(Courseware.NAME, courseware.getName() == null ? "" : courseware.getName()); contentvalues.put(Courseware.INTRO, courseware.getIntro() == null ? "" : courseware.getIntro()); contentvalues.put( Courseware.TEACHERNAME, courseware.getTeacherName() == null ? "" : courseware .getTeacherName()); contentvalues.put( Courseware.CLASSLENGTH, courseware.getClassLength() == null ? "0" : courseware .getClassLength()); contentvalues.put(Courseware.PROTIME, courseware.getProTime() == null ? "" : courseware.getProTime()); contentvalues.put( Courseware.STUTIME, courseware.getStudyTime() == null ? "0" : courseware .getStudyTime()); contentvalues.put( Courseware.TIMEPOINT, courseware.getTimePoint() == null ? "0" : courseware .getTimePoint()); contentvalues.put( Courseware.ISCOMPLETED, courseware.getIscompleted() == null ? "0" : courseware .getIscompleted()); contentvalues.put(Courseware.UPLOADTIME, courseware.getUploadTime()); contentvalues.put(Courseware.CLASSLEVEL, courseware.getClassLevel()); contentvalues.put( Courseware.FULLNAME, courseware.getFullName() == null ? "" : courseware .getFullName()); contentvalues.put(Courseware.ORDERTIME, courseware.getOrderTime()); db.insert(SqliteHelper.TB_STUDYRECORD_NAME, Courseware.ID, contentvalues); contentvalues.clear(); } /** * 获取学习记录的列表 * * @return */ public List<Courseware> getStudyRecord() { List<Courseware> studyRecords = new ArrayList<Courseware>(); Cursor cursor = db.query(SqliteHelper.TB_STUDYRECORD_NAME, null, null, null, null, null, Courseware.ORDERTIME + " ASC"); cursor.moveToFirst(); while (!cursor.isAfterLast() && (cursor.getString(1) != null)) { Courseware studyRecord = new Courseware(); studyRecord.setClassId(cursor.getString(1)); studyRecord.setName(cursor.getString(2)); studyRecord.setIntro(cursor.getString(3)); studyRecord.setTeacherName(cursor.getString(4)); studyRecord.setClassLength(cursor.getString(5)); studyRecord.setProTime(cursor.getString(6)); studyRecord.setStudyTime(cursor.getString(7)); studyRecord.setTimePoint(cursor.getString(8)); studyRecord.setUploadTime(cursor.getInt(9)); studyRecord.setIscompleted(cursor.getString(10)); studyRecord.setClassLevel(cursor.getString(11)); studyRecord.setFullName(cursor.getString(12)); studyRecord.setOrderTime(cursor.getLong(13)); studyRecords.add(studyRecord); cursor.moveToNext(); } cursor.close(); return studyRecords; } /** * 更新指定课件的值 * * @param courseware */ public void updatePlayRecord(Courseware courseware) { ContentValues contentvalues = new ContentValues(); contentvalues.put( Courseware.STUTIME, courseware.getStudyTime() == null ? "0" : courseware .getStudyTime()); contentvalues.put( Courseware.TIMEPOINT, courseware.getTimePoint() == null ? "0" : courseware .getTimePoint()); contentvalues.put(Courseware.UPLOADTIME, courseware.getUploadTime()); //离线未上传的排序不变 if (courseware.getOrderTime() != 500) contentvalues.put(Courseware.ORDERTIME, courseware.getOrderTime()); //只在学习完毕后更新此状态 if ("1".equals(courseware.getIscompleted())) contentvalues.put(Courseware.ISCOMPLETED, "1"); db.update(SqliteHelper.TB_STUDYRECORD_NAME, contentvalues, Courseware.CLASSID + "=?", new String[] { courseware.getClassId() + "" }); } /** * 判断是否存在该条记录 * * @param classId * @return */ public Boolean haveStudyRecord(String classId) { Boolean b = false; Cursor cursor = db.query(SqliteHelper.TB_STUDYRECORD_NAME, null, Courseware.CLASSID + "=?", new String[] { classId }, null, null, null); b = cursor.moveToFirst(); cursor.close(); return b; } /** * 根据课件id该条记录 * * @param classId * @return */ public Boolean getStudyRecord(Courseware courseware) { Boolean b = false; Cursor cursor = db.query(SqliteHelper.TB_STUDYRECORD_NAME, null, Courseware.CLASSID + "=?", new String[] { courseware.getClassId() }, null, null, null); b = cursor.moveToFirst(); while (!cursor.isAfterLast() && (cursor.getString(1) != null)) { courseware.setClassId(cursor.getString(1)); courseware.setName(cursor.getString(2)); courseware.setIntro(cursor.getString(3)); courseware.setTeacherName(cursor.getString(4)); courseware.setClassLength(cursor.getString(5)); courseware.setProTime(cursor.getString(6)); courseware.setStudyTime(cursor.getString(7)); courseware.setTimePoint(cursor.getString(8)); courseware.setUploadTime(cursor.getInt(9)); courseware.setIscompleted(cursor.getString(10)); cursor.moveToNext(); } cursor.close(); return b; } /** * 向数据库中插入或更新学习记录 * * @param playRecord */ public void insertOrUpdateStudyRecord(Courseware playRecord) { if (haveStudyRecord(playRecord.getClassId())) { updatePlayRecord(playRecord); } else { savePlayRecord(playRecord); } } }