xingzai 1 an în urmă
părinte
comite
8f7d467973
2 a modificat fișierele cu 121 adăugiri și 19 ștergeri
  1. 113 10
      controllers/banner.go
  2. 8 9
      models/banner.go

+ 113 - 10
controllers/banner.go

@@ -35,27 +35,130 @@ func (this *BaseBannerController) List() {
 		br.ErrMsg = "获取失败,Err:" + err.Error()
 		return
 	}
-	//var listA = []*models.CygxBannerListResp
-	//for _,v:= range list{
-	//	if  v.ListType =="A"{
-	//		listA = append(listA,v)
-	//	}
-	//}
+
 	bannerImgList, err := models.GetCygxBannerImgList()
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
 		return
 	}
-	mapImg := make(map[int]string)
+	mapImg := make(map[int]*models.CygxBannerImgResp)
 	for _, v := range bannerImgList {
-		mapImg[v.ImgId] = v.IndexImg
+		mapImg[v.ImgId] = v
 	}
+
+	var listA []*models.CygxBannerResp
+	var listB []*models.CygxBannerResp
+	var listC []*models.CygxBannerResp
 	for _, v := range list {
-		v.IndexImg = mapImg[v.ImgId]
 		v.BannerUrlResp = services.GetBannerUrlBody(v.Link)
+		if v.ListType == "A" {
+			listA = append(listA, v)
+		} else if v.ListType == "B" {
+			listB = append(listB, v)
+		} else if v.ListType == "C" {
+			listC = append(listC, v)
+		}
+	}
+
+	var listCount int
+	if len(listA) == 0 {
+		listA = make([]*models.CygxBannerResp, 0)
+	} else {
+		listCount++
+	}
+
+	if len(listB) == 0 {
+		listB = make([]*models.CygxBannerResp, 0)
+	} else {
+		listCount++
+	}
+
+	if len(listC) == 0 {
+		listC = make([]*models.CygxBannerResp, 0)
+	} else {
+		listCount++
+	}
+	//当有一列的时候过滤图片
+	if listCount == 1 {
+		if len(listA) > 0 {
+			for _, v := range listA {
+				if mapImg[v.ImgId] != nil {
+					v.IndexImg = mapImg[v.ImgId].Img1
+				}
+			}
+		}
+		if len(listB) > 0 {
+			for _, v := range listB {
+				if mapImg[v.ImgId] != nil {
+					v.IndexImg = mapImg[v.ImgId].Img1
+				}
+			}
+		}
+		if len(listC) > 0 {
+			for _, v := range listC {
+				if mapImg[v.ImgId] != nil {
+					v.IndexImg = mapImg[v.ImgId].Img1
+				}
+			}
+		}
+	}
+
+	//当有两列的时候过滤图片
+	if listCount == 2 {
+		if len(listA) > 0 {
+			for _, v := range listA {
+				if mapImg[v.ImgId] != nil {
+					v.IndexImg = mapImg[v.ImgId].Img2
+				}
+			}
+			if len(listB) > 0 {
+				for _, v := range listB {
+					if mapImg[v.ImgId] != nil {
+						v.IndexImg = mapImg[v.ImgId].Img3
+					}
+				}
+			}
+		} else {
+			if len(listB) > 0 {
+				for _, v := range listB {
+					if mapImg[v.ImgId] != nil {
+						v.IndexImg = mapImg[v.ImgId].Img2
+					}
+				}
+			}
+		}
+		if len(listC) > 0 {
+			for _, v := range listC {
+				if mapImg[v.ImgId] != nil {
+					v.IndexImg = mapImg[v.ImgId].Img3
+				}
+			}
+		}
 	}
-	resp.ListA = list
+
+	//当有三列的时候过滤图片
+	if listCount == 3 {
+		for _, v := range listA {
+			if mapImg[v.ImgId] != nil {
+				v.IndexImg = mapImg[v.ImgId].Img2
+			}
+		}
+		for _, v := range listB {
+			if mapImg[v.ImgId] != nil {
+				v.IndexImg = mapImg[v.ImgId].Img3
+			}
+		}
+		for _, v := range listC {
+			if mapImg[v.ImgId] != nil {
+				v.IndexImg = mapImg[v.ImgId].Img4
+			}
+		}
+	}
+
+	resp.ListA = listA
+	resp.ListB = listB
+	resp.ListC = listC
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"

+ 8 - 9
models/banner.go

@@ -5,15 +5,14 @@ import (
 )
 
 type CygxBannerResp struct {
-	BannerId       int            `description:"BannerId等于0新增,大于零修改"`
-	ImgId          int            `description:"cygx_banner_img主键ID"`
-	IndexImg       string         `description:"小程序封面图"`
-	ListType       string         `description:"ABC哪一列"`
-	BannerTypeName string         `description:"添加类型名称"`
-	Title          string         `description:"标题"`
-	Link           string         `description:"链接地址"`
-	Subtitle       string         `description:"副标题"`
-	BannerUrlResp  *BannerUrlResp `description:"跳转地址"`
+	BannerId      int            `description:"BannerId等于0新增,大于零修改"`
+	ImgId         int            `description:"cygx_banner_img主键ID"`
+	IndexImg      string         `description:"小程序封面图"`
+	ListType      string         `description:"ABC哪一列"`
+	Title         string         `description:"标题"`
+	Link          string         `description:"链接地址"`
+	Subtitle      string         `description:"副标题"`
+	BannerUrlResp *BannerUrlResp `description:"跳转地址"`
 }
 
 type CygxBannerIdReq struct {