RIceWqy 2 years ago
parent a392c4502a
commit b229f3df56

@ -10,37 +10,51 @@ func (Category) TableName() string {
type Category struct {
Id int64 `json:"id"`
Type int64 `json:"type"`
Image string `json:"image"`
Description string `json:"description"`
Name string `json:"name"`
ParentId int64 `json:"parent_id"`
Type string `json:"type"`
Pid int64 `json:"pid"`
Weigh int64 `json:"weigh"`
Children []Category `json:"children" xorm:"-"`
}
func (c *Category) AfterQuery(session basedboperat.DbTransactionSession) {
c.getChildens(session)
if len(c.Children) > 0 {
}
var cs []Category
cs = append(cs, Category{
Id: c.Id,
Image: c.Image,
Description: c.Description,
Name: c.Name,
Type: c.Type,
Pid: c.Pid,
Weigh: c.Weigh,
Children: c.Children,
})
c.Children = findChildren(cs, session)
}
func (c *Category) getChildens(session basedboperat.DbTransactionSession) {
var children []Category
var list basedboperat.List
list.Limit = -1
session.ListScan(&list, c, &children)
c.Children = children
}
// 递归查询子集方法
func findChildren(categories []Category, parentId int64, session basedboperat.DbTransactionSession) []Category {
func findChildren(categories []Category, session basedboperat.DbTransactionSession) []Category {
var result []Category
for _, category := range categories {
if category.ParentId == parentId {
children := findChildren(categories, category.Id)
category.Children = children
var children []Category
var list basedboperat.List
list.Limit = -1
list.Where = append(list.Where, basedboperat.Condition{
Field: "pid",
Operator: "=",
Value: category.Id,
})
session.ListScan(&list, category, children)
category.Children = findChildren(children, session)
result = append(result, category)
}
}
return result
}
func (c *Category) TreeList(session basedboperat.DbTransactionSession) {
}

@ -8,5 +8,8 @@ import (
func init() {
xormDriver.Sync2(new(Category))
towgo.NewCRUDJsonrpcAPI("/category", Category{}, []Category{}).RegAPI()
towgo.SetFunc("/category/treeList", TreeList)
}
func TreeList(rpcConn towgo.JsonRpcConnection) {
}

Loading…
Cancel
Save