Bläddra i källkod

修改部分接口

Administrator 2 år sedan
förälder
incheckning
bb89f52fba

+ 57 - 0
data/dao/DetailDao.go

@@ -143,3 +143,60 @@ B:
 
 	return detailVo, nil
 }
+func GetSkuByKey(key string, pageNum, pageSize int) (vo.BaseListVo, string, error) {
+	var sqlKey = "%" + key + "%"
+	var vo = vo.BaseListVo{}
+	var sku domain.GoodsSku
+	//查询tag
+	var tag domain.GoodsTag
+	var goods domain.Goods
+	r1, err := configs.Engine.Cols("id").Where("name like ?", sqlKey).Or("tag like ?", sqlKey).
+		//去重
+		Distinct("id").Rows(&tag)
+	var inTags = make([]int, 0)
+	for r1.Next() {
+		r1.Scan(&tag)
+		inTags = append(inTags, tag.Id)
+	}
+
+	sess := configs.Engine.Cols("id").Distinct("id").Where("goods_name like ?", sqlKey)
+	for i := range inTags {
+		sess.Or("FIND_IN_SET(?,tag_ids)", inTags[i])
+	}
+	r2, err := sess.Rows(&goods)
+	if err != nil {
+		return vo, "商品查询错误", err
+	}
+	var goodsInTags = make([]int, 0)
+	for r2.Next() {
+		r2.Scan(&goods)
+		goodsInTags = append(goodsInTags, goods.Id)
+	}
+
+	sess = configs.Engine.Where("sku_name like ?", sqlKey)
+	for i := range goodsInTags {
+		sess.Or("goods_id = ?", goodsInTags[i])
+	}
+	r3, err := sess.Desc("id").Limit(pageSize, (pageNum-1)*pageSize).Rows(&sku)
+
+	if err != nil {
+		return vo, "商品sku查询错误", err
+	}
+
+	var skus = make([]any, 0)
+	for r3.Next() {
+		r3.Scan(&sku)
+		skus = append(skus, sku)
+	}
+	cs := configs.Engine.Where("sku_name like ?", sqlKey)
+	for i := range goodsInTags {
+		cs.Or("goods_id = ?", goodsInTags[i])
+	}
+	count, err := cs.Distinct("id").Count("id")
+
+	vo.Total = int(count)
+	vo.List = skus
+	vo.PageNum = pageNum
+	vo.PageSize = pageSize
+	return vo, "", nil
+}

BIN
file/resources/earnMoney.png


BIN
file/resources/ticket.png


BIN
file/resources/wallet.png


+ 30 - 0
router/DetailRouter.go

@@ -2,13 +2,18 @@ package router
 
 import (
 	"demo/data/dao"
+	"demo/data/dao/manage"
+	"demo/data/domain"
+	"fmt"
 	"github.com/gin-gonic/gin"
+	"github.com/spf13/cast"
 	"strconv"
 )
 
 func DetailRouter(engine *gin.RouterGroup) {
 	user := engine.Group("/detail")
 	{
+		user.GET("/search", GetSearchByKey)
 		//获取文章详情
 		user.GET("/:id", GetDetailData)
 	}
@@ -29,3 +34,28 @@ func GetDetailData(c *gin.Context) {
 	}
 	c.JSON(200, CreateResultData(vo))
 }
+
+func GetSearchByKey(c *gin.Context) {
+	key := c.Query("key")
+	pageNum := c.Query("pageNum")
+	pageSize := c.Query("pageSize")
+
+	if key == "" {
+		var sku domain.GoodsSku
+		goodsSku, err := manage.GetListGoodsSku(sku, cast.ToInt(pageNum), cast.ToInt(pageSize))
+		if err != nil {
+			c.JSON(200, CreateResultError(400, "查询失败"))
+			return
+		}
+		c.JSON(200, CreateResultData(goodsSku))
+		return
+	}
+	vo, s, err := dao.GetSkuByKey(key, cast.ToInt(pageNum), cast.ToInt(pageSize))
+	if err != nil {
+		fmt.Println("查询异常:", s)
+		c.JSON(200, CreateResultError(400, "查询失败"))
+		return
+	}
+	c.JSON(200, CreateResultData(vo))
+	return
+}