You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.1 KiB

6 months ago
6 months ago
6 months ago
  1. package prize
  2. import (
  3. "MangheGo/api/v1/prize"
  4. "MangheGo/internal/dao"
  5. "MangheGo/internal/model/do"
  6. "MangheGo/internal/model/entity"
  7. "MangheGo/internal/service"
  8. "context"
  9. )
  10. type (
  11. sPrize struct{}
  12. )
  13. func init() {
  14. service.RegisterPrize(New())
  15. }
  16. func New() service.IPrize {
  17. return &sPrize{}
  18. }
  19. func (s *sPrize) GetPrizeList(ctx context.Context) (prizeList []*entity.Prize, err error) {
  20. err = dao.Prize.Ctx(ctx).OrderDesc("level").Scan(&prizeList)
  21. return
  22. }
  23. func (s *sPrize) EditPrize(ctx context.Context, req *prize.EditPrizeReq) (err error) {
  24. if req.Id == 0 {
  25. _, err = dao.Prize.Ctx(ctx).Data(do.Prize{
  26. Name: req.Name,
  27. ImgUrl: req.ImgUrl,
  28. Level: req.Level,
  29. Odds: req.Odds,
  30. }).Insert()
  31. } else {
  32. _, err = dao.Prize.Ctx(ctx).Data(do.Prize{
  33. Name: req.Name,
  34. ImgUrl: req.ImgUrl,
  35. Level: req.Level,
  36. Odds: req.Odds,
  37. }).WherePri(req.Id).Update()
  38. }
  39. if err != nil {
  40. return err
  41. }
  42. return
  43. }
  44. func (s *sPrize) DeletePrize(ctx context.Context, id int) (err error) {
  45. _, err = dao.Prize.Ctx(ctx).WherePri(id).Delete()
  46. if err != nil {
  47. return err
  48. }
  49. return
  50. }