From 99a609e66f5ffd7632bb17c5ecc2f2c07cf37155 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 24 Jun 2024 15:49:46 +0800 Subject: [PATCH] 1 --- server/marketserver/api/v1/market/market.go | 7 +++++ server/marketserver/middleware/jwtauth.go | 16 +++++++++++- server/marketserver/router/market/market.go | 5 +++- server/marketserver/service/shopcart.go | 29 +++++++++++++++++++++ 4 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 server/marketserver/service/shopcart.go diff --git a/server/marketserver/api/v1/market/market.go b/server/marketserver/api/v1/market/market.go index 1bd4b5e8..68cb0488 100644 --- a/server/marketserver/api/v1/market/market.go +++ b/server/marketserver/api/v1/market/market.go @@ -6,6 +6,7 @@ import ( "mt" "main/constant" "main/common" + "main/service" "jccommon" . "main/global" "fmt" @@ -19,6 +20,8 @@ type MarketApi struct { } func (this *MarketApi) ProductList(c *gin.Context) { + openId := c.MustGet("open_id").(string) + cartDb := service.GetShopCartByOpenId(openId) netId := q5.ToInt64(c.Param("net_id")) reqJson := struct { PageSize interface{} `json:"page_size"` @@ -137,6 +140,7 @@ SELECT * FROM t_order A WHERE idx > %d AND net_id = %d Rows []struct{ Event interface{} `json:"event"` Nft interface{} `json:"nft"` + InShopCart int32 `json:"in_shopcart"` } `json:"rows"` }{} q5.NewSlice(&rspObj.Rows, 0, 10) @@ -168,6 +172,9 @@ SELECT * FROM t_order A WHERE idx > %d AND net_id = %d p := q5.NewSliceElement(&rspObj.Rows) p.Event = val.Payload p.Nft = val.NftCache.GetJsonData() + if cartDb != nil && cartDb.GetGoods(val.NetId, val.ContractAddress, val.TokenId) != nil{ + p.InShopCart = 1 + } } } c.JSON(200, rspObj) diff --git a/server/marketserver/middleware/jwtauth.go b/server/marketserver/middleware/jwtauth.go index b330ef2a..1a15c00c 100644 --- a/server/marketserver/middleware/jwtauth.go +++ b/server/marketserver/middleware/jwtauth.go @@ -8,14 +8,28 @@ import ( "github.com/gin-gonic/gin" ) +func MaybeJwtAuth(c *gin.Context) { + internalJwtAuth(c, true) +} + +func JwtAuth(c *gin.Context) { + internalJwtAuth(c, false) +} + /* 'Authorization Bearer {JwtToken}' */ -func JwtAuth(c *gin.Context) { +func internalJwtAuth(c *gin.Context, maybe bool) { tokenHeader := c.Request.Header.Get("Authorization") jwtToken := "" if len(tokenHeader) > 8 { jwtToken = tokenHeader[7:len(tokenHeader)] + } else { + if maybe { + c.Set("open_id", "") + c.Next() + return + } } params := map[string]string{ diff --git a/server/marketserver/router/market/market.go b/server/marketserver/router/market/market.go index 7c297e26..055b1809 100644 --- a/server/marketserver/router/market/market.go +++ b/server/marketserver/router/market/market.go @@ -3,13 +3,16 @@ package market import ( "f5" "main/api/v1" + "main/middleware" ) type MarketRouter struct{} func (this *MarketRouter) InitRouter() { api := v1.ApiGroupApp.MarketApiGroup - f5.GetApp().GetGinEngine().POST("/api/market/product/list/:net_id", api.MarketApi.ProductList) + f5.GetApp().GetGinEngine().POST("/api/market/product/list/:net_id", + middleware.MaybeJwtAuth, + api.MarketApi.ProductList) f5.GetApp().GetGinEngine().GET("/api/market/transaction/history/:net_id/:account_address", api.MarketApi.TransactionHistory) f5.GetApp().GetGinEngine().GET("/api/market/product/category/:net_id", api.MarketApi.CategoryGoodsNum) diff --git a/server/marketserver/service/shopcart.go b/server/marketserver/service/shopcart.go new file mode 100644 index 00000000..c21683e3 --- /dev/null +++ b/server/marketserver/service/shopcart.go @@ -0,0 +1,29 @@ +package service + +import ( + "q5" + "f5" + "main/constant" + "main/common" +) + +func GetShopCartByOpenId(openId string) *common.ShopCart { + cartDb := common.NewShopCart() + f5.GetGoStyleDb().OrmSelectOne( + constant.BCNFT_DB, + "t_shopcart", + [][]string{ + {"open_id", openId}, + }, + func (err error, ds* f5.DataSet) { + if err != nil { + return + } + if ds.Next() { + cartDb := common.NewShopCart() + if q5.DecodeJson(ds.GetByName("data"), cartDb) == nil { + } + } + }) + return cartDb +}