From 15bc87fc5d60270d2e4bc700d3e03dc8da1f9ee5 Mon Sep 17 00:00:00 2001 From: yangduo Date: Wed, 31 Jul 2024 16:56:10 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/marketserver/api/v1/enter.go | 2 + server/marketserver/api/v1/event/event.go | 132 --------------- server/marketserver/api/v1/recharge/enter.go | 5 + .../marketserver/api/v1/recharge/recharge.go | 150 ++++++++++++++++++ server/marketserver/router/event/event.go | 2 - server/marketserver/router/recharge/enter.go | 5 + .../marketserver/router/recharge/recharge.go | 14 ++ server/marketserver/router/routermgr.go | 5 +- 8 files changed, 180 insertions(+), 135 deletions(-) create mode 100644 server/marketserver/api/v1/recharge/enter.go create mode 100644 server/marketserver/api/v1/recharge/recharge.go create mode 100644 server/marketserver/router/recharge/enter.go create mode 100644 server/marketserver/router/recharge/recharge.go diff --git a/server/marketserver/api/v1/enter.go b/server/marketserver/api/v1/enter.go index 7a569858..47db03d5 100644 --- a/server/marketserver/api/v1/enter.go +++ b/server/marketserver/api/v1/enter.go @@ -9,6 +9,7 @@ import ( "main/api/v1/ingame" "main/api/v1/market" "main/api/v1/nft" + "main/api/v1/recharge" "main/api/v1/shopcart" "main/api/v1/user" ) @@ -24,6 +25,7 @@ type ApiGroup struct { UserApiGroup user.ApiGroup ActivityApiGroup activity.ApiGroup EventApiGroup event.ApiGroup + RechargeApiGroup recharge.ApiGroup } var ApiGroupApp = new(ApiGroup) diff --git a/server/marketserver/api/v1/event/event.go b/server/marketserver/api/v1/event/event.go index 9bb70325..41b0aaa6 100644 --- a/server/marketserver/api/v1/event/event.go +++ b/server/marketserver/api/v1/event/event.go @@ -196,135 +196,3 @@ func (ea *EventApi) ActivityQuery(c *gin.Context) { } c.JSON(200, rspObj) } - -func (ea *EventApi) RechargeList(c *gin.Context) { - rspObj := struct { - ErrCode int32 `json:"errcode"` - ErrMsg string `json:"errmsg"` - Rows []interface{} `json:"rows"` - }{} - - mt.Table.Recharge.RawMetaTable.Traverse(func(tb *mt.Recharge) bool { - tmpmap := map[string]interface{}{} - tmpmap["id"] = tb.GetId() - tmpmap["recharge_cost_num"] = tb.GetRechargeCostNum() - tmpmap["recharge_icon"] = tb.GetRechargeIcon() - tmpmap["recharge_item"] = tb.GetRechargeItem() - tmpmap["recharge_type"] = tb.GetRechargeType() - tmpmap["recharge_item_num"] = tb.GetRechargeItemNum() - - rspObj.Rows = append(rspObj.Rows, tmpmap) - - return true - }) - - c.JSON(200, rspObj) -} - -func (ea *EventApi) RechargeQuery(c *gin.Context) { - account := strings.ToLower(c.Param("account_address")) - reqJson := struct { - PageSize interface{} `json:"page_size"` - Cursor interface{} `json:"cursor"` - Search struct { - Name string `json:"name"` - } `json:"search"` - Filter struct { - ItemIds []interface{} `json:"item_ids"` - } `json:"filter"` - Sort struct { - Fields []struct { - Name string `json:"name"` - Type interface{} `json:"type"` - } `json:"fields"` - } `json:"sort"` - }{} - if err := c.ShouldBindJSON(&reqJson); err != nil { - c.JSON(http.StatusOK, gin.H{ - "errcode": 1, - "errmsg": err.Error(), - }) - return - } - - pageSize := q5.AdjustRangeValue(q5.SafeToInt32(reqJson.PageSize), 1, 20) - cursor := q5.SafeToInt64(reqJson.Cursor) - - sql := fmt.Sprintf(` - SELECT * FROM t_recharge - WHERE idx > %d AND buyer = ?`, - cursor) - - params := []string{account} - subFilters := []f5.DbQueryFilter{} - - { - itemIds := map[int32]int32{} - if reqJson.Search.Name != "" { - mt.Table.Item.Search(reqJson.Search.Name, itemIds) - } - for _, val := range reqJson.Filter.ItemIds { - itemId := q5.SafeToInt32(val) - itemIds[itemId] = 1 - } - if len(itemIds) > 0 { - inSub := `item_id IN (` - i := 0 - for key, _ := range itemIds { - if i == 0 { - inSub += q5.ToString(key) - } else { - inSub += "," + q5.ToString(key) - } - i += 1 - } - inSub += ")" - q5.AppendSlice(&subFilters, f5.GetDbFilter().Custom(inSub).And()) - } - } - orderBy := " ORDER BY createtime DESC " - - rspObj := struct { - ErrCode int32 `json:"errcode"` - ErrMsg string `json:"errmsg"` - Page common.StreamPagination `json:"page"` - Rows []struct { - TxHash string `json:"txhash"` - NetID int64 `json:"net_id"` - ContractAddress string `json:"contact_address"` - Passport string `json:"passport"` - OrderID string `json:"order_id"` - Currency string `json:"currency"` - Amount string `json:"amount"` - Status int32 `json:"status"` - Date int32 `json:"date"` - } `json:"rows"` - }{} - q5.NewSlice(&rspObj.Rows, 0, 10) - - f5.GetGoStyleDb().StreamPageQuery( - constant.BCEVENT_DB, - pageSize, - cursor, - sql, - params, - f5.GetDbFilter().Comp(subFilters...), - orderBy, - func(err error, pagination *f5.StreamPagination) { - rspObj.Page.FillPage(pagination) - }, - func(ds *f5.DataSet) { - p := q5.NewSliceElement(&rspObj.Rows) - - p.TxHash = ds.GetByName("txhash") - p.NetID = q5.SafeToInt64(ds.GetByName("net_id")) - p.ContractAddress = ds.GetByName("contact_address") - p.Passport = ds.GetByName("passport") - p.OrderID = ds.GetByName("order_id") - p.Currency = ds.GetByName("currency") - p.Amount = ds.GetByName("amount") - p.Status = q5.SafeToInt32(ds.GetByName("status")) - p.Date = q5.SafeToInt32(ds.GetByName("date")) - }) - c.JSON(200, rspObj) -} diff --git a/server/marketserver/api/v1/recharge/enter.go b/server/marketserver/api/v1/recharge/enter.go new file mode 100644 index 00000000..b1dede3b --- /dev/null +++ b/server/marketserver/api/v1/recharge/enter.go @@ -0,0 +1,5 @@ +package recharge + +type ApiGroup struct { + RechargeApi +} diff --git a/server/marketserver/api/v1/recharge/recharge.go b/server/marketserver/api/v1/recharge/recharge.go new file mode 100644 index 00000000..ba5f29a9 --- /dev/null +++ b/server/marketserver/api/v1/recharge/recharge.go @@ -0,0 +1,150 @@ +package recharge + +import ( + "f5" + "fmt" + "main/common" + "main/constant" + + "mt" + "net/http" + "q5" + "strings" + + "github.com/gin-gonic/gin" +) + +type RechargeApi struct { +} + +func (ea *RechargeApi) RechargeList(c *gin.Context) { + rspObj := struct { + ErrCode int32 `json:"errcode"` + ErrMsg string `json:"errmsg"` + Rows []interface{} `json:"rows"` + }{} + + mt.Table.Recharge.RawMetaTable.Traverse(func(tb *mt.Recharge) bool { + tmpmap := map[string]interface{}{} + tmpmap["id"] = tb.GetId() + tmpmap["recharge_cost_num"] = tb.GetRechargeCostNum() + tmpmap["recharge_icon"] = tb.GetRechargeIcon() + tmpmap["recharge_item"] = tb.GetRechargeItem() + tmpmap["recharge_type"] = tb.GetRechargeType() + tmpmap["recharge_item_num"] = tb.GetRechargeItemNum() + + rspObj.Rows = append(rspObj.Rows, tmpmap) + + return true + }) + + c.JSON(200, rspObj) +} + +func (ea *RechargeApi) RechargeQuery(c *gin.Context) { + account := strings.ToLower(c.Param("account_address")) + reqJson := struct { + PageSize interface{} `json:"page_size"` + Cursor interface{} `json:"cursor"` + Search struct { + Name string `json:"name"` + } `json:"search"` + Filter struct { + ItemIds []interface{} `json:"item_ids"` + } `json:"filter"` + Sort struct { + Fields []struct { + Name string `json:"name"` + Type interface{} `json:"type"` + } `json:"fields"` + } `json:"sort"` + }{} + if err := c.ShouldBindJSON(&reqJson); err != nil { + c.JSON(http.StatusOK, gin.H{ + "errcode": 1, + "errmsg": err.Error(), + }) + return + } + + pageSize := q5.AdjustRangeValue(q5.SafeToInt32(reqJson.PageSize), 1, 20) + cursor := q5.SafeToInt64(reqJson.Cursor) + + sql := fmt.Sprintf(` + SELECT * FROM t_recharge + WHERE idx > %d AND buyer = ?`, + cursor) + + params := []string{account} + subFilters := []f5.DbQueryFilter{} + + { + itemIds := map[int32]int32{} + if reqJson.Search.Name != "" { + mt.Table.Item.Search(reqJson.Search.Name, itemIds) + } + for _, val := range reqJson.Filter.ItemIds { + itemId := q5.SafeToInt32(val) + itemIds[itemId] = 1 + } + if len(itemIds) > 0 { + inSub := `item_id IN (` + i := 0 + for key, _ := range itemIds { + if i == 0 { + inSub += q5.ToString(key) + } else { + inSub += "," + q5.ToString(key) + } + i += 1 + } + inSub += ")" + q5.AppendSlice(&subFilters, f5.GetDbFilter().Custom(inSub).And()) + } + } + orderBy := " ORDER BY createtime DESC " + + rspObj := struct { + ErrCode int32 `json:"errcode"` + ErrMsg string `json:"errmsg"` + Page common.StreamPagination `json:"page"` + Rows []struct { + TxHash string `json:"txhash"` + NetID int64 `json:"net_id"` + ContractAddress string `json:"contact_address"` + Passport string `json:"passport"` + OrderID string `json:"order_id"` + Currency string `json:"currency"` + Amount string `json:"amount"` + Status int32 `json:"status"` + Date int32 `json:"date"` + } `json:"rows"` + }{} + q5.NewSlice(&rspObj.Rows, 0, 10) + + f5.GetGoStyleDb().StreamPageQuery( + constant.BCEVENT_DB, + pageSize, + cursor, + sql, + params, + f5.GetDbFilter().Comp(subFilters...), + orderBy, + func(err error, pagination *f5.StreamPagination) { + rspObj.Page.FillPage(pagination) + }, + func(ds *f5.DataSet) { + p := q5.NewSliceElement(&rspObj.Rows) + + p.TxHash = ds.GetByName("txhash") + p.NetID = q5.SafeToInt64(ds.GetByName("net_id")) + p.ContractAddress = ds.GetByName("contact_address") + p.Passport = ds.GetByName("passport") + p.OrderID = ds.GetByName("order_id") + p.Currency = ds.GetByName("currency") + p.Amount = ds.GetByName("amount") + p.Status = q5.SafeToInt32(ds.GetByName("status")) + p.Date = q5.SafeToInt32(ds.GetByName("date")) + }) + c.JSON(200, rspObj) +} diff --git a/server/marketserver/router/event/event.go b/server/marketserver/router/event/event.go index 6e68ad87..036d607e 100644 --- a/server/marketserver/router/event/event.go +++ b/server/marketserver/router/event/event.go @@ -11,6 +11,4 @@ func (er *EventRouter) InitRouter() { api := v1.ApiGroupApp.EventApiGroup f5.GetApp().GetGinEngine().GET("/api/chain/txhash/:net_id/:txhash", api.EventApi.TxQuery) f5.GetApp().GetGinEngine().POST("/api/chain/event/activity/:account_address", api.EventApi.ActivityQuery) - f5.GetApp().GetGinEngine().GET("/api/chain/event/recharge/:account_address", api.EventApi.RechargeQuery) - f5.GetApp().GetGinEngine().GET("/api/chain/event/rechargelist", api.EventApi.RechargeList) } diff --git a/server/marketserver/router/recharge/enter.go b/server/marketserver/router/recharge/enter.go new file mode 100644 index 00000000..226b457f --- /dev/null +++ b/server/marketserver/router/recharge/enter.go @@ -0,0 +1,5 @@ +package recharge + +type RouterGroup struct { + RechargeRouter +} diff --git a/server/marketserver/router/recharge/recharge.go b/server/marketserver/router/recharge/recharge.go new file mode 100644 index 00000000..bcf7d344 --- /dev/null +++ b/server/marketserver/router/recharge/recharge.go @@ -0,0 +1,14 @@ +package recharge + +import ( + "f5" + v1 "main/api/v1" +) + +type RechargeRouter struct{} + +func (er *RechargeRouter) InitRouter() { + api := v1.ApiGroupApp.RechargeApiGroup + f5.GetApp().GetGinEngine().GET("/api/recharge/history/:account_address", api.RechargeApi.RechargeQuery) + f5.GetApp().GetGinEngine().GET("/api/recharge/list", api.RechargeApi.RechargeList) +} diff --git a/server/marketserver/router/routermgr.go b/server/marketserver/router/routermgr.go index cbb43402..b55f7d03 100644 --- a/server/marketserver/router/routermgr.go +++ b/server/marketserver/router/routermgr.go @@ -5,14 +5,15 @@ import ( "main/middleware" "main/router/activity" "main/router/asset" + "main/router/event" "main/router/gold_bullion" "main/router/hero" "main/router/ingame" "main/router/market" "main/router/nft" + "main/router/recharge" "main/router/shopcart" "main/router/user" - "marketserver/router/event" ) type routerMgr struct { @@ -26,6 +27,7 @@ type routerMgr struct { user user.RouterGroup activity activity.RouterGroup event event.RouterGroup + recharge recharge.RouterGroup } func (this *routerMgr) Init() { @@ -40,6 +42,7 @@ func (this *routerMgr) Init() { this.user.UserRouter.InitRouter() this.activity.StackingRouter.InitRouter() this.event.EventRouter.InitRouter() + this.recharge.RechargeRouter.InitRouter() f5.GetSysLog().Info("routerMgr.init")