|
@@ -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
|
|
|
}
|