/*function :找到整个树并找到已购的课程
* @param:
*
*/
private void treeBuy(Integer cid, Integer level,boolean[] aryIsLastNode, boolean isBuyFlag) {
int index = 0;
List<Course> list = (List<Course>) coursedao.findByPid(cid);
for (Course t : list) {
/*
* System.out.println("-----list:" + list.toString());
* System.out.println("-----t:" + t);
* System.out.println("-----list.size():" + list.size());
*/
String symbol = "";
String symbolf = "";
index++;
// System.out.println("-----index:" + index);
// 先画上级节点延续下来的"|"+空格,空格具体数目由层数决定
//System.out.println("-----level:" + level);
for (int lev = 0; lev < level; lev++) {
if(aryIsLastNode[lev]==false)
symbolf += "│";
else
symbolf += " ";
}
// 是否为最后一个节点
if (index == list.size()) {
symbol = "└";
} else {
symbol = "├";
} String cname = symbolf + symbol + t.getCname();
t.setCname(cname);
// System.out.println("-----t:" + t.getCname());
boolean bIsBuy = false;
if (t.getLeaf() == 0) {
//判断一下他的上级是否已经是被购买了
if (!isBuyFlag)
{
bIsBuy = stdCsd.findStdCourseByScId(mStdId, t.getCid());
CreateCourseBuyRec(t, bIsBuy, bIsBuy);
}
else
{
CreateCourseBuyRec(t,true, false);
}
} else {
//判断一下他的上级是否已经是被购买了
if (!isBuyFlag)
{
bIsBuy = stdCsd.findStdCourseByScId(mStdId, t.getCid());
CreateCourseBuyRec(t, bIsBuy, bIsBuy);
}
else
{
CreateCourseBuyRec(t,true, false);
}
t.setLevel(level + 1);
if(index==list.size()){
aryIsLastNode[level]=true;
}
else{
aryIsLastNode[level]=false;
}
treeBuy(t.getCid(), t.getLevel(),aryIsLastNode,bIsBuy);
}
}
}
public void CreateCourseBuyRec(Course cs, boolean isBuy, boolean isRoot)
{
CourseIsBuy ss = new CourseIsBuy();
ss.setCs(cs);
ss.setBuy(isBuy);
ss.setIsRootCourse(isRoot);
ListBuyTree.add(ss);
}
public List<CourseIsBuy> findTreeForBuy(int stdId)
{
mStdId = stdId;
l.clear();
List<Course> list = (List<Course>) coursedao.findByPid(0);
for (Course t : list) {
if (t.getLeaf() != 0) {
boolean bIsBuy = stdCsd.findStdCourseByScId(stdId, t.getCid());
CreateCourseBuyRec(t, bIsBuy, bIsBuy);
aryNodeStatus[0]=true;
this.treeBuy(t.getCid(), 0, aryNodeStatus, bIsBuy);
} else {
boolean bIsBuy = stdCsd.findStdCourseByScId(stdId, t.getCid());
CreateCourseBuyRec(t, bIsBuy, false);
}
}
return ListBuyTree;
}