Browse Source

编写奖品增删改查接口v1

majun
majun 5 months ago
parent
commit
4cbc79f962
  1. 0
      api/v1/.gitkeep
  2. 13
      api/v1/prize/prize.go
  3. 8
      internal/cmd/cmd.go
  4. 0
      internal/controller/.gitkeep
  5. 43
      internal/controller/prize/prize.go
  6. 19
      internal/controller/record/record.go
  7. 34
      internal/logic/prize/prize.go
  8. 0
      internal/service/.gitkeep
  9. 3
      internal/service/prize.go

0
api/v1/.gitkeep

13
api/v1/prize/prize.go

@ -0,0 +1,13 @@
package prize
type EditPrizeReq struct {
Id int `dc:"奖品id"`
Name string `v:"required#奖品名称不能为空" dc:"奖品名称"`
ImgUrl string `v:"required#奖品图片不能为空" dc:"奖品图片"`
Level int `v:"required#奖品等级不能为空" dc:"奖品等级"`
Odds float64 `v:"required#奖品抽取概率不能为空" dc:"奖品抽取概率"`
}
type DeletePrizeReq struct {
Id int `v:"required#奖品id不能为空" dc:"奖品id"`
}

8
internal/cmd/cmd.go

@ -2,6 +2,7 @@ package cmd
import (
"MangheGo/internal/controller/prize"
"MangheGo/internal/controller/record"
"MangheGo/internal/logic/middleware"
"context"
@ -20,6 +21,13 @@ var (
s.Group("/api/prize_activity", func(group *ghttp.RouterGroup) {
group.Middleware(middleware.MiddlewareCORS)
group.POST("/get-prize-list", prize.Prize().GetPrizeList)
group.POST("/get-records-by-jwcode", record.Record().GetRecordsByJwcode)
group.POST("/get-top-prize-records", record.Record().GetTopPrizeRecords)
})
s.Group("/api/prize_backend", func(group *ghttp.RouterGroup) {
group.Middleware(middleware.MiddlewareCORS)
group.POST("/edit-prize", prize.Prize().EditPrize)
group.POST("/delete-prize", prize.Prize().DeletePrize)
})
s.Run()
return nil

0
internal/controller/.gitkeep

43
internal/controller/prize/prize.go

@ -1,6 +1,7 @@
package prize
import (
"MangheGo/api/v1/prize"
"MangheGo/internal/model/dto"
"MangheGo/internal/service"
"github.com/gogf/gf/v2/net/ghttp"
@ -26,3 +27,45 @@ func (c cPrize) GetPrizeList(r *ghttp.Request) {
Data: res,
})
}
func (c cPrize) EditPrize(r *ghttp.Request) {
var req *prize.EditPrizeReq
if err := r.Parse(&req); err != nil {
r.Response.WriteJsonExit(dto.Result{
Code: 400,
Message: err.Error(),
})
}
err := service.Prize().EditPrize(r.Context(), req)
if err != nil {
r.Response.WriteJsonExit(dto.Result{
Code: 400,
Message: err.Error(),
})
}
r.Response.WriteJsonExit(dto.Result{
Code: 200,
Message: "success",
})
}
func (c cPrize) DeletePrize(r *ghttp.Request) {
var req *prize.DeletePrizeReq
if err := r.Parse(&req); err != nil {
r.Response.WriteJsonExit(dto.Result{
Code: 400,
Message: err.Error(),
})
}
err := service.Prize().DeletePrize(r.Context(), req.Id)
if err != nil {
r.Response.WriteJsonExit(dto.Result{
Code: 400,
Message: err.Error(),
})
}
r.Response.WriteJsonExit(dto.Result{
Code: 200,
Message: "success",
})
}

19
internal/controller/record/record.go

@ -0,0 +1,19 @@
package record
import (
"github.com/gogf/gf/v2/net/ghttp"
)
type cRecord struct{}
func Record() *cRecord {
return &cRecord{}
}
func (c cRecord) GetRecordsByJwcode(r *ghttp.Request) {
}
func (c cRecord) GetTopPrizeRecords(r *ghttp.Request) {
}

34
internal/logic/prize/prize.go

@ -1,6 +1,9 @@
package prize
import (
"MangheGo/api/v1/prize"
"MangheGo/internal/dao"
"MangheGo/internal/model/do"
"MangheGo/internal/model/entity"
"MangheGo/internal/service"
"context"
@ -19,5 +22,36 @@ func New() service.IPrize {
}
func (s *sPrize) GetPrizeList(ctx context.Context) (prizeList []*entity.Prize, err error) {
err = dao.Prize.Ctx(ctx).OrderDesc("level").Scan(&prizeList)
return
}
func (s *sPrize) EditPrize(ctx context.Context, req *prize.EditPrizeReq) (err error) {
if req.Id == 0 {
_, err = dao.Prize.Ctx(ctx).Data(do.Prize{
Name: req.Name,
ImgUrl: req.ImgUrl,
Level: req.Level,
Odds: req.Odds,
}).Insert()
} else {
_, err = dao.Prize.Ctx(ctx).Data(do.Prize{
Name: req.Name,
ImgUrl: req.ImgUrl,
Level: req.Level,
Odds: req.Odds,
}).WherePri(req.Id).Update()
}
if err != nil {
return err
}
return
}
func (s *sPrize) DeletePrize(ctx context.Context, id int) (err error) {
_, err = dao.Prize.Ctx(ctx).WherePri(id).Delete()
if err != nil {
return err
}
return
}

0
internal/service/.gitkeep

3
internal/service/prize.go

@ -6,6 +6,7 @@
package service
import (
"MangheGo/api/v1/prize"
"MangheGo/internal/model/entity"
"context"
)
@ -13,6 +14,8 @@ import (
type (
IPrize interface {
GetPrizeList(ctx context.Context) (prizeList []*entity.Prize, err error)
EditPrize(ctx context.Context, req *prize.EditPrizeReq) (err error)
DeletePrize(ctx context.Context, id int) (err error)
}
)

Loading…
Cancel
Save