package com.hyrt.ceiphone.phonestudy.data;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Environment;
import android.os.Message;
import com.hyrt.cei.application.CeiApplication;
import com.hyrt.cei.util.MyTools;
import com.hyrt.cei.util.WriteOrRead;
import com.hyrt.cei.util.XmlUtil;
import com.hyrt.cei.vo.ColumnEntry;
import com.hyrt.cei.vo.Courseware;
import com.hyrt.cei.webservice.service.Service;
import com.hyrt.ceiphone.phonestudy.FoundationActivity;
import com.hyrt.ceiphone.phonestudy.KindsActivity;
import com.hyrt.ceiphone.phonestudy.NominateActivity;
import com.hyrt.ceiphone.phonestudy.PhoneStudyActivity;
public class DataHelper {
private FoundationActivity activity;
private String currentFunctionId;
public DataHelper(FoundationActivity activity) {
this.activity = activity;
}
/**
* 加载免费课件的数据
*/
public void loadFreeData() {
// 检查sd卡是否存在不存在的话,则退出
if (!Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
MyTools.exitShow(activity, ((Activity) activity).getWindow()
.getDecorView(), "sd卡不存在!");
activity.finish();
return;
}
new Thread(new Runnable() {
@Override
public void run() {
ColumnEntry columnEntry = ((CeiApplication) (activity
.getApplication())).columnEntry;
if(columnEntry.getColByName(FoundationActivity.FREE_NAME,columnEntry.getColByName(FoundationActivity.MODEL_NAME).getId())==null)
return;
// 获取数据
if (((CeiApplication) activity.getApplication()).isNet()) {
String result = Service.queryPhoneFunctionTree(
columnEntry.getColByName(
FoundationActivity.FREE_NAME,columnEntry.getColByName(FoundationActivity.MODEL_NAME).getId()).getId(),
"kj", "androidpad");
if (XmlUtil.parseReturnCode(result).equals("")) {
activity.courses.clear();
activity.coursewares.clear();
XmlUtil.parseCoursewares(result, activity.courses);
Message message = activity.dataHandler.obtainMessage();
for (int i = 0; i < activity.courses.size(); i++) {
Courseware courseware = activity.courses.get(i);
courseware.setParentId(columnEntry.getColByName(
FoundationActivity.FREE_NAME).getId());
courseware.setFree(true);
((CeiApplication) (activity.getApplication())).dataHelper
.saveCourseware(courseware);
}
message.arg1 = FoundationActivity.LVDATA_KEY;
activity.dataHandler.sendMessage(message);
} else {
Message message = activity.dataHandler.obtainMessage();
message.arg1 = FoundationActivity.NO_NET;
activity.dataHandler.sendMessage(message);
}
} else {
try {
Courseware courseware = new Courseware();
courseware.setParentId(columnEntry.getColByName(
FoundationActivity.FREE_NAME,columnEntry.getColByName(FoundationActivity.MODEL_NAME).getId()).getId());
activity.courses = ((CeiApplication) (activity
.getApplication())).dataHelper
.getCoursewares(courseware);
Message message = activity.dataHandler.obtainMessage();
message.arg1 = FoundationActivity.LVDATA_KEY;
activity.dataHandler.sendMessage(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}).start();
}
/**
* 获取某一业务下的课件列表
*
* @param functionId
*/
public void loadDataByServiceId(final String functionId) {
if (functionId.equals(currentFunctionId))
return;
currentFunctionId = functionId;
// 检查sd卡是否存在不存在的话,则退出
if (!Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
MyTools.exitShow(activity, ((Activity) activity).getWindow()
.getDecorView(), "sd卡不存在!");
activity.finish();
return;
}
new Thread(new Runnable() {
@Override
public void run() {
try {
// 获取数据
if (((CeiApplication) activity.getApplication()).isNet()) {
String result = Service.queryPhoneFunctionTree(
functionId, "kj");
if (XmlUtil.parseReturnCode(result).equals("")) {
List<Courseware> interimCoursewares = new ArrayList<Courseware>();
XmlUtil.parseCoursewares(result, interimCoursewares);
result = Service
.queryCourse(((CeiApplication) (activity
.getApplication())).columnEntry
.getUserId());
List<Courseware> selfselCoursewares = new ArrayList<Courseware>();
XmlUtil.parseCoursewares(result, selfselCoursewares);
for (int i = 0; i < interimCoursewares.size(); i++) {
for (int j = 0; j < selfselCoursewares.size(); j++) {
if (interimCoursewares
.get(i)
.getClassId()
.equals(selfselCoursewares.get(j)
.getClassId())) {
interimCoursewares.get(i)
.setSelfCourse(true);
}
}
}
Message message = activity.dataHandler
.obtainMessage();
WriteOrRead.write(result, MyTools.nativeData,
NominateActivity.SERVICE_DATA + functionId);
message.arg1 = FoundationActivity.LVDATA_KEY;
if (!currentFunctionId.equals(functionId))
return;
activity.courses.clear();
activity.courses.addAll(interimCoursewares);
activity.dataHandler.sendMessage(message);
} else {
Message message = activity.dataHandler
.obtainMessage();
message.arg1 = FoundationActivity.NO_NET;
activity.dataHandler.sendMessage(message);
}
} else {
String result = WriteOrRead.read(MyTools.nativeData,
NominateActivity.SERVICE_DATA + functionId);
if (XmlUtil.parseReturnCode(result).equals("")) {
XmlUtil.parseCoursewares(result, activity.courses);
Message msg = activity.dataHandler.obtainMessage();
msg.arg1 = FoundationActivity.LVDATA_KEY;
activity.dataHandler.sendMessage(msg);
} else {
Message msg = activity.dataHandler.obtainMessage();
msg.arg1 = FoundationActivity.NO_NET;
activity.dataHandler.sendMessage(msg);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
// 根据课件种类获取课件列表
public void loadClassesByKind(final String functionId) {
if (functionId.equals(currentFunctionId))
return;
currentFunctionId = functionId;
new Thread(new Runnable() {
public void run() {
List<Courseware> selfselCourseware = new ArrayList<Courseware>();
List<Courseware> interimCoursewares = new ArrayList<Courseware>();
if (((CeiApplication) activity.getApplication()).isNet()) {
String result = Service.queryClassTypeByClass(functionId, 1);
if (XmlUtil.parseReturnCode(result).equals("")) {
XmlUtil.parseCoursewares(result, interimCoursewares);
result = Service
.queryCourse(((CeiApplication) (activity
.getApplication())).columnEntry
.getUserId());
XmlUtil.parseCoursewares(result, selfselCourseware);
for (int i = 0; i < interimCoursewares.size(); i++) {
for (int j = 0; j < selfselCourseware.size(); j++) {
if (interimCoursewares
.get(i)
.getClassId()
.equals(selfselCourseware.get(j)
.getClassId())) {
interimCoursewares.get(i).setSelfCourse(true);
}
}
}
Message msg = activity.dataHandler.obtainMessage();
WriteOrRead.write(result, MyTools.nativeData,
KindsActivity.KIND_DATA + functionId);
msg.arg1 = FoundationActivity.LVDATA_KEY;
if (!currentFunctionId.equals(functionId))
return;
activity.courses.clear();
activity.courses.addAll(interimCoursewares);
activity.dataHandler.sendMessage(msg);
} else {
Message msg = activity.dataHandler.obtainMessage();
msg.arg1 = FoundationActivity.NO_NET;
activity.dataHandler.sendMessage(msg);
}
} else {
String result = WriteOrRead.read(MyTools.nativeData,
KindsActivity.KIND_DATA + functionId);
if (XmlUtil.parseReturnCode(result).equals("")) {
XmlUtil.parseCoursewares(result, activity.courses);
Message msg = activity.dataHandler.obtainMessage();
msg.arg1 = FoundationActivity.LVDATA_KEY;
activity.dataHandler.sendMessage(msg);
} else {
Message msg = activity.dataHandler.obtainMessage();
msg.arg1 = FoundationActivity.NO_NET;
activity.dataHandler.sendMessage(msg);
}
}
}
}).start();
}
// 搜索课件列表
public void loadClassesBySearch(final String className) {
new Thread(new Runnable() {
private StringBuilder functionIds;
List<Courseware> selfselCoursewares;
// 初始化请求数据
private void initSendData() {
ColumnEntry columnEntry = ((CeiApplication) (activity
.getApplication())).columnEntry;
ColumnEntry phoneStudyCol = columnEntry
.getColByName(FoundationActivity.MODEL_NAME);
functionIds = new StringBuilder(phoneStudyCol.getId());
selfselCoursewares = new ArrayList<Courseware>();
for (int i = 0; i < columnEntry.getColumnEntryChilds().size(); i++) {
ColumnEntry entryChild = columnEntry.getColumnEntryChilds()
.get(i);
if (entryChild.getPath() != null
&& entryChild.getPath().contains(
phoneStudyCol.getId())) {
functionIds.append("," + entryChild.getId());
}
}
activity.coursewares.clear();
}
public void run() {
initSendData();
if (((CeiApplication) activity.getApplication()).isNet()) {
String result = Service.queryClassName(className,
functionIds.toString());
XmlUtil.parseCoursewares(result, activity.courses);
result = Service.queryCourse(((CeiApplication) (activity
.getApplication())).columnEntry.getUserId());
XmlUtil.parseCoursewares(result, selfselCoursewares);
for (int i = 0; i < activity.courses.size(); i++) {
for (int j = 0; j < selfselCoursewares.size(); j++) {
if (activity.courses
.get(i)
.getClassId()
.equals(selfselCoursewares.get(j)
.getClassId())) {
activity.courses.get(i).setSelfCourse(true);
}
}
((CeiApplication) activity.getApplication()).dataHelper
.saveCourseware(activity.courses.get(i));
}
} else {
Courseware courseware = new Courseware();
courseware.setName(className);
activity.courses = ((CeiApplication) activity
.getApplication()).dataHelper
.getCoursewares(courseware);
}
Message msg = activity.dataHandler.obtainMessage();
msg.arg1 = FoundationActivity.LVDATA_KEY;
activity.dataHandler.sendMessage(msg);
}
}).start();
}
/**
* 获取最新课件排序的列表
*/
public void getNewData() {
new Thread(new Runnable() {
private StringBuilder functionIds;
private ColumnEntry columnEntry;
// 初始化请求数据
private void initSendData() {
columnEntry = ((CeiApplication) (activity.getApplication())).columnEntry;
ColumnEntry phoneStudyCol = columnEntry
.getColByName(FoundationActivity.MODEL_NAME);
functionIds = new StringBuilder(phoneStudyCol.getId());
for (int i = 0; i < columnEntry.getColumnEntryChilds().size(); i++) {
ColumnEntry entryChild = columnEntry.getColumnEntryChilds()
.get(i);
if (entryChild.getPath() != null
&& entryChild.getPath().contains(
phoneStudyCol.getId())) {
functionIds.append("," + entryChild.getId());
}
}
}
public void run() {
activity.courses.clear();
activity.coursewares.clear();
if (((CeiApplication) activity.getApplication()).isNet()) {
initSendData();
String result = "";
if (columnEntry.getColumnEntryChilds().size() > 0) {
result = Service.queryClassByTime(columnEntry
.getColumnEntryChilds().get(0).getId(),
functionIds.toString());
WriteOrRead.write(result, MyTools.nativeData,
PhoneStudyActivity.NEWCLASS_FILENAME);
}
if (XmlUtil.parseReturnCode(result).equals("")) {
XmlUtil.parseCoursewares(result, activity.courses);
result = Service
.queryCourse(((CeiApplication) (activity
.getApplication())).columnEntry
.getUserId());
List<Courseware> selfselCoursewares = new ArrayList<Courseware>();
XmlUtil.parseCoursewares(result, selfselCoursewares);
for (int i = 0; i < activity.courses.size(); i++) {
for (int j = 0; j < selfselCoursewares.size(); j++) {
if (activity.courses
.get(i)
.getClassId()
.equals(selfselCoursewares.get(j)
.getClassId())) {
activity.courses.get(i).setSelfCourse(true);
}
}
}
Message msg = activity.dataHandler.obtainMessage();
msg.arg1 = FoundationActivity.LVDATA_KEY;
activity.dataHandler.sendMessage(msg);
} else {
Message msg = activity.dataHandler.obtainMessage();
msg.arg1 = FoundationActivity.NO_NET;
activity.dataHandler.sendMessage(msg);
}
} else {
String result = WriteOrRead.read(MyTools.nativeData,
PhoneStudyActivity.NEWCLASS_FILENAME);
if (XmlUtil.parseReturnCode(result).equals("")) {
XmlUtil.parseCoursewares(result, activity.courses);
Message msg = activity.dataHandler.obtainMessage();
msg.arg1 = FoundationActivity.LVDATA_KEY;
;
activity.dataHandler.sendMessage(msg);
} else {
Message msg = activity.dataHandler.obtainMessage();
msg.arg1 = FoundationActivity.NO_NET;
activity.dataHandler.sendMessage(msg);
}
}
}
}).start();
}
// 获取自选课课程列表
public void getSelCourseData() {
new Thread(new Runnable() {
@Override
public void run() {
activity.courses.clear();
activity.coursewares.clear();
if (((CeiApplication) activity.getApplication()).isNet()) {
String result = Service.queryCourse(((CeiApplication) (activity
.getApplication())).columnEntry.getUserId());
XmlUtil.parseErrorCoursewares(result, activity.courses);
for (int i = 0; i < activity.courses.size(); i++) {
activity.courses.get(i).setSelfCourse(true);
activity.courses.get(i).setSelfPage(true);
((CeiApplication) (activity.getApplication())).dataHelper
.saveCourseware(activity.courses.get(i));
}
} else {
Courseware couseware = new Courseware();
couseware.setSelfCourse(true);
activity.courses = ((CeiApplication) (activity
.getApplication())).dataHelper
.getCoursewares(couseware);
}
activity.allCoursewares.addAll(activity.courses);
Message msg = activity.dataHandler.obtainMessage();
msg.arg1 = FoundationActivity.LVDATA_KEY;
activity.dataHandler.sendMessage(msg);
}
}).start();
}
// 获取讨论组列表
public void getSayListData() {
new Thread(new Runnable() {
public void run() {
String result = Service
.querySchoolForumInfo(((CeiApplication) activity
.getApplication()).columnEntry.getUserId());
Message message = activity.dataHandler.obtainMessage();
activity.courses.clear();
activity.coursewares.clear();
if (((CeiApplication) activity.getApplication()).isNet()) {
if (XmlUtil.parseReturnCode(result).equals("-1")) {
message.arg1 = FoundationActivity.NO_NET;
} else {
message.arg1 = FoundationActivity.LVDATA_KEY;
XmlUtil.parseErrorCoursewares(result, activity.courses);
for (int i = 0; i < activity.courses.size(); i++) {
Courseware courseware = activity.courses.get(i);
courseware.setSay(true);
((CeiApplication) (activity.getApplication())).dataHelper
.saveCourseware(courseware);
}
}
} else {
Courseware courseware = new Courseware();
courseware.setSay(true);
activity.courses = ((CeiApplication) (activity
.getApplication())).dataHelper
.getCoursewares(courseware);
}
activity.dataHandler.sendMessage(message);
}
}).start();
}
// 获取个人学习记录
public void getStudyRecords() {
new Thread(new Runnable() {
public void run() {
activity.courses.clear();
activity.coursewares.clear();
activity.allCoursewares.clear();
CeiApplication ceiApplication = (CeiApplication) (activity
.getApplication());
String userId = ((CeiApplication) (activity.getApplication())).columnEntry
.getUserId();
if (userId == null || userId.equals(""))
return;
if (((CeiApplication) activity.getApplication()).isNet()) {
String result = Service.queryUserClassTime(userId);
XmlUtil.parseCoursewareTimes(result, activity.courses);
ceiApplication.dataHelper.savePlayRecords(activity.courses);
List<Courseware> beforeCoursewares = new ArrayList<Courseware>();
beforeCoursewares.addAll(activity.courses);
activity.courses.clear();
List<Courseware> coursewares = ceiApplication.dataHelper
.getStudyRecord();
activity.courses.addAll(coursewares);
for (int i = 0; i < activity.courses.size(); i++) {
for (int j = 0; j < beforeCoursewares.size(); j++) {
if (activity.courses
.get(i)
.getClassId()
.equals(beforeCoursewares.get(j)
.getClassId())) {
activity.courses.get(i).setDownPath(
beforeCoursewares.get(j).getDownPath());
activity.courses.get(i).setLookPath(
beforeCoursewares.get(j).getLookPath());
activity.courses.get(i).setFullName(
beforeCoursewares.get(j).getFullName());
activity.courses.get(i).setPath(
beforeCoursewares.get(j).getPath());
activity.courses.get(i).setClassLevel(
beforeCoursewares.get(j).getClassLevel());
activity.courses.get(i).setKey(
beforeCoursewares.get(j).getKey());
activity.courses.get(i).setIscompleted(
beforeCoursewares.get(j).getIscompleted() == null?"0":beforeCoursewares.get(j).getIscompleted());
}
}
activity.courses.get(i).setFree(true);
}
} else {
activity.courses = ceiApplication.dataHelper
.getStudyRecord();
}
activity.allCoursewares.addAll(activity.courses);
Message msg = activity.dataHandler.obtainMessage();
msg.arg1 = FoundationActivity.LVDATA_KEY;
activity.dataHandler.sendMessage(msg);
}
}).start();
}
}