package controller import ( "designs/app/common/request" "designs/app/common/response" "designs/global" "designs/model" "github.com/gin-gonic/gin" ) func GameList(c *gin.Context) { form := request.Check(c, &struct { Gid string `form:"gid" binding:""` Pid string `form:"pid" binding:""` }{}) query := global.App.DB.Table(model.TableGame) if form.Gid != "" { query = query.Where("gid", form.Gid) } if form.Pid != "" { query = query.Where("pid", form.Pid) } var data []model.Game err := query.Select("gid", "pid", "gameName").Scan(&data).Error if err != nil { response.Fail(c, 1001, err.Error()) return } type game struct { Pid string `json:"pid" gorm:"column:pid; "` Gid string `json:"gid" gorm:"column:gid; "` GameName string `json:"gameName" gorm:"column:gameName; "` } res := make(map[string][]game) for _, v := range data { res[v.Pid] = append(res[v.Pid], game{ Pid: v.Pid, Gid: v.Gid, GameName: v.GameName, }) } response.Success(c, gin.H{ "data": res, }) }