api.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package monthly
  2. import (
  3. "strconv"
  4. "github.com/gin-gonic/gin"
  5. "wails-app/internal/model/common/response"
  6. "wails-app/internal/modules/monthly/repository"
  7. "wails-app/internal/modules/monthly/service"
  8. utils "wails-app/internal/pkg"
  9. )
  10. var monthlySvc = service.NewMonthlyCardService()
  11. type createReq struct {
  12. VehicleID uint `json:"vehicle_id"`
  13. CardType string `json:"card_type"`
  14. Fee float64 `json:"fee"`
  15. Remark string `json:"remark"`
  16. }
  17. func CreateCard(c *gin.Context) {
  18. var req createReq
  19. if err := c.ShouldBindJSON(&req); err != nil {
  20. response.FailWithMessage(err.Error(), c)
  21. return
  22. }
  23. card, err := monthlySvc.Create(req.VehicleID, req.CardType, req.Fee, utils.GetUserID(c), req.Remark)
  24. if err != nil {
  25. response.FailWithMessage(err.Error(), c)
  26. return
  27. }
  28. response.OkWithData(card, c)
  29. }
  30. type renewReq struct {
  31. CardID uint `json:"card_id"`
  32. CardType string `json:"card_type"`
  33. Fee float64 `json:"fee"`
  34. }
  35. func RenewCard(c *gin.Context) {
  36. var req renewReq
  37. if err := c.ShouldBindJSON(&req); err != nil {
  38. response.FailWithMessage(err.Error(), c)
  39. return
  40. }
  41. if err := monthlySvc.Renew(req.CardID, req.CardType, req.Fee, utils.GetUserID(c)); err != nil {
  42. response.FailWithMessage(err.Error(), c)
  43. return
  44. }
  45. response.OkWithMessage("续费成功", c)
  46. }
  47. func RefundCard(c *gin.Context) {
  48. id, _ := strconv.Atoi(c.Query("id"))
  49. if err := monthlySvc.Refund(uint(id)); err != nil {
  50. response.FailWithMessage(err.Error(), c)
  51. return
  52. }
  53. response.OkWithMessage("退卡成功", c)
  54. }
  55. func ListCards(c *gin.Context) {
  56. var q repository.MonthlyCardQuery
  57. if err := c.ShouldBindQuery(&q); err != nil {
  58. response.FailWithMessage(err.Error(), c)
  59. return
  60. }
  61. list, total, err := monthlySvc.List(q)
  62. if err != nil {
  63. response.FailWithMessage(err.Error(), c)
  64. return
  65. }
  66. response.OkWithDetailed(response.PageResult{List: list, Total: total, Page: q.Page, PageSize: q.PageSize}, "查询成功", c)
  67. }
  68. func SetupMonthlyCardRouter(router *gin.RouterGroup) {
  69. mc := router.Group("/monthly-card")
  70. {
  71. mc.POST("/create", CreateCard)
  72. mc.POST("/renew", RenewCard)
  73. mc.DELETE("/refund", RefundCard)
  74. mc.GET("/list", ListCards)
  75. }
  76. }