+ IMultipleStoresHandler.GetAllCategories

This commit is contained in:
gazebo
2019-08-28 15:36:51 +08:00
parent cf4202a41b
commit 538b3162a2
5 changed files with 52 additions and 24 deletions

View File

@@ -68,22 +68,44 @@ func (p *PurchaseHandler) CreateCategory(db *dao.DaoDB, cat *model.SkuCategory,
return err
}
func (p *PurchaseHandler) ReadCategories() (cats []*model.SkuCategory, err error) {
result, err := getAPI("").QueryCategoriesByOrgCode()
if err == nil {
cats = make([]*model.SkuCategory, len(result))
for k, v := range result {
cats[k] = &model.SkuCategory{
ParentID: int(v.ParentId), // 这里是暂存传递数据用正确的值应该是本地的ID
Name: v.Name,
Level: int8(v.Level),
Seq: v.Sort,
JdID: v.Id,
}
}
return cats, nil
func jdCat2Jx(jdCat *jdapi.CategoryInfo) (jxCat *partner.BareCategoryInfo) {
return &partner.BareCategoryInfo{
VendorCatID: utils.Int64ToStr(jdCat.Id),
Level: jdCat.Level,
Name: jdCat.Name,
Seq: jdCat.Sort,
}
return nil, err
}
func (p *PurchaseHandler) GetAllCategories(ctx *jxcontext.Context, vendorOrgCode string) (cats []*partner.BareCategoryInfo, err error) {
result, err := getAPI(vendorOrgCode).QueryCategoriesByOrgCode()
if err == nil {
catMap := make(map[int64]*partner.BareCategoryInfo)
level := 1
for {
processedCount := 0
for _, jdCat := range result {
if jdCat.Level == level {
processedCount++
jxCat := jdCat2Jx(jdCat)
if level == 1 {
cats = append(cats, jxCat)
} else {
parentCat := catMap[jdCat.ParentId]
if parentCat != nil {
parentCat.Children = append(parentCat.Children, jxCat)
}
}
catMap[jdCat.Id] = jxCat
}
}
if processedCount == 0 {
break
}
level++
}
}
return cats, err
}
func (p *PurchaseHandler) UpdateCategory(db *dao.DaoDB, cat *model.SkuCategory, userName string) error {