| 
					
				 | 
			
			
				@@ -101,15 +101,37 @@ func Redis_Company_DelK(key string) (err error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // ---------------- 特殊方法 ------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 添加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-func Add_Company(m Company) (id int64, err error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func Add_Company(var_ Company) (id int64, err error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	o := orm.NewOrm() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	id, err = o.Insert(&m) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	o.Begin() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	id, err = o.Insert(&var_) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		fmt.Println(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		o.Rollback() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return id, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	m.Id = int(id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	Redis_Company_Set(m) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	T_Path := "/0/" + strconv.Itoa(int(id)) + "/" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if var_.T_mid != 0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Company_r, err := Read_Company_ById(var_.T_mid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			o.Rollback() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return id, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		T_Path = Company_r.T_path + strconv.Itoa(int(id)) + "/" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var_.Id = int(id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var_.T_path = T_Path 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	_, err = o.Update(&var_, "T_path") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		o.Rollback() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return id, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	o.Commit() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Redis_Company_Set(var_) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	return id, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 修改 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -152,7 +174,7 @@ func Read_Company_ById(Id int) (r Company, e error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 获取列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-func Read_Company_Tree(admin_r Admin, Company_name string) (CompanyList []Company_R, cnt int64) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func Read_Company_Tree(admin_r Admin, T_name string) (CompanyList []Company_R, cnt int64) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	// 内部用户未绑定公司 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if admin_r.T_pid > 0 || len(admin_r.T_pids) == 0 { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -178,8 +200,8 @@ func Read_Company_Tree(admin_r Admin, Company_name string) (CompanyList []Compan 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		cond1 = cond1.And("Id__in", ReadCompanyIds_T_pids(T_pids)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if len(Company_name) > 0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		cond1 = cond1.And("T_name__icontains", Company_name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if len(T_name) > 0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		cond1 = cond1.And("T_name__icontains", T_name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	qs.SetCond((*orm2.Condition)(cond1)).OrderBy("-Id").All(&maps) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -243,14 +265,8 @@ func ReadCompanyIds_T_path(T_path string) (companyIds []int) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	return companyIds 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-func Read_Company_List(page, page_z int) (CompanyList []Company_R, cnt int64) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func Read_Company_List(T_name string) (CompanyList []Company_R, cnt int64) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	var offset int64 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if page <= 1 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		offset = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		offset = int64((page - 1) * page_z) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	o := orm.NewOrm() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	// 也可以直接使用 Model 结构体作为表名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -260,12 +276,41 @@ func Read_Company_List(page, page_z int) (CompanyList []Company_R, cnt int64) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	cond := orm.NewCondition() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	cond1 := cond.And("T_State", 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	qs.Limit(page_z, offset).SetCond((*orm2.Condition)(cond1)).OrderBy("-Id").All(&maps) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if len(T_name) > 0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		cond1 = cond1.And("T_name__icontains", T_name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	qs.SetCond((*orm2.Condition)(cond1)).OrderBy("-Id").All(&maps) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	cnt, _ = qs.SetCond((*orm2.Condition)(cond1)).Count() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	for _, v := range maps { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		CompanyList = append(CompanyList, CompanyToCompany_R(v)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	parentMap, flag := getCompanyParent(maps) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if flag { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for i := 0; i < len(maps); i++ { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if parentMap[maps[i].T_mid] { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			r := Company_R{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				Id:       maps[i].Id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				T_mid:    maps[i].T_mid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				T_name:   maps[i].T_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				Children: nil, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			info := CompanyCall(maps, r) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			CompanyList = append(CompanyList, info) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for i := 0; i < len(maps); i++ { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			r := Company_R{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				Id:       maps[i].Id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				T_mid:    maps[i].T_mid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				T_name:   maps[i].T_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				Children: nil, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			info := CompanyCall(maps, r) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			CompanyList = append(CompanyList, info) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	return CompanyList, cnt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -329,7 +374,7 @@ func Read_Company_List_All_ByT_name(T_name string) (maps []Company) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	qs := o.QueryTable(new(Company)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if len(T_name) > 0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		qs.Filter("T_name", T_name).All(&maps) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		qs.Filter("T_name__icontains", T_name).All(&maps) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return maps 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	qs.All(&maps) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -337,20 +382,13 @@ func Read_Company_List_All_ByT_name(T_name string) (maps []Company) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 获取铜壶绑定的公司列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-func Read_Company_List_ByT_pids(T_pids string, page int, page_z int) (Company_r []Company_R, cnt int64) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func Read_Company_List_ByT_pids(T_pids string) (CompanyList []Company_R) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	o := orm.NewOrm() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	// 也可以直接使用 Model 结构体作为表名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	qs := o.QueryTable(new(Company)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	var offset int64 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if page <= 1 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		offset = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		offset = int64((page - 1) * page_z) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	var r []Company 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var maps []Company 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	cond := orm.NewCondition() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	cond1 := cond.And("T_State", 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if len(T_pids) >= 0 { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -358,11 +396,35 @@ func Read_Company_List_ByT_pids(T_pids string, page int, page_z int) (Company_r 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		cond1 = cond1.And("Id__in", list) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	qs.Limit(page_z, offset).SetCond((*orm2.Condition)(cond1)).OrderBy("Id").All(&r) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	cnt, _ = qs.SetCond((*orm2.Condition)(cond1)).Count() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	qs.SetCond((*orm2.Condition)(cond1)).OrderBy("Id").All(&maps) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	for _, v := range r { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		Company_r = append(Company_r, CompanyToCompany_R(v)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	parentMap, flag := getCompanyParent(maps) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if flag { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for i := 0; i < len(maps); i++ { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if parentMap[maps[i].T_mid] { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			r := Company_R{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				Id:       maps[i].Id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				T_mid:    maps[i].T_mid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				T_name:   maps[i].T_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				Children: nil, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			info := CompanyCall(maps, r) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			CompanyList = append(CompanyList, info) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for i := 0; i < len(maps); i++ { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			r := Company_R{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				Id:       maps[i].Id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				T_mid:    maps[i].T_mid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				T_name:   maps[i].T_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				Children: nil, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			info := CompanyCall(maps, r) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			CompanyList = append(CompanyList, info) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	return Company_r, cnt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return CompanyList 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |