You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.4 KiB

4 years ago
package brand
import (
"recook/internal/back"
"recook/internal/dbc"
"recook/internal/model/goods"
"recook/internal/model/manage"
"recook/internal/model/vend"
"strings"
"github.com/gin-gonic/gin"
)
// 获取品牌列表
func QueryBrandList(c *gin.Context) {
var list []goods.Brand
// 采购根据权限获取品牌列表
var userId = c.MustGet("Manager_ID").(uint)
var user manage.UserInfo
var brandNameArr []string
var enter []vend.GysEnterpriseBrand
user.ID = userId
if err := dbc.DB.Find(&user).Error; err != nil {
back.Fail(c, "数据错误:"+err.Error())
return
}
if user.RoleID == 92 {
categoryIDSArr := strings.Split(user.GoodsType, ",")
//根据Category_id获取对应brand名
dbc.DB.Find(&enter, "category_id in (?)", categoryIDSArr)
for _, item := range enter {
brandNameArr = append(brandNameArr, item.Name)
}
dbc.DB.Find(&list, "name in (?)", brandNameArr)
} else {
dbc.DB.Find(&list)
}
brandIds := []uint{}
for _, item := range list {
3 years ago
if item.InfoId > 0 {
brandIds = append(brandIds, item.InfoId)
}
4 years ago
}
var ppimg []vend.GysEnterpriseImg
3 years ago
if len(brandIds) > 0 {
dbc.DB.Where("brand_id in (?) and type = 2", brandIds).Find(&ppimg)
}
4 years ago
ppimgMap := map[uint][]string{}
for _, img := range ppimg {
ppimgMap[img.BrandID] = append(ppimgMap[img.BrandID], img.Url)
}
for index, brand := range list {
list[index].InfoUrl = ppimgMap[brand.InfoId]
}
back.Suc(c, "操作成功", list)
}