api.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package payment
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "wails-app/internal/model/common/response"
  5. "wails-app/internal/model/vehicle/request"
  6. "wails-app/internal/modules/payment/repository"
  7. paymentService "wails-app/internal/modules/payment/service"
  8. utils "wails-app/internal/pkg"
  9. "wails-app/internal/service"
  10. )
  11. var vehicleSvc = service.ServiceGroupApp.VehicleServiceGroup.VehicleService
  12. var paymentSvc = paymentService.NewPaymentService()
  13. // ExitPreview 费用预览(只读,不修改数据库)
  14. func ExitPreview(c *gin.Context) {
  15. var req request.VehicleEntry
  16. if err := c.ShouldBindJSON(&req); err != nil {
  17. response.FailWithMessage(err.Error(), c)
  18. return
  19. }
  20. resp, err := vehicleSvc.ExitPreview(req)
  21. if err != nil {
  22. response.FailWithMessage(err.Error(), c)
  23. return
  24. }
  25. response.OkWithData(resp, c)
  26. }
  27. // ExitConfirm 确认出场 + 支付
  28. func ExitConfirm(c *gin.Context) {
  29. var req request.ExitConfirmRequest
  30. if err := c.ShouldBindJSON(&req); err != nil {
  31. response.FailWithMessage(err.Error(), c)
  32. return
  33. }
  34. resp, err := vehicleSvc.ExitConfirm(req, utils.GetUserID(c))
  35. if err != nil {
  36. response.FailWithMessage(err.Error(), c)
  37. return
  38. }
  39. response.OkWithData(resp, c)
  40. }
  41. // ListPayments 收费记录列表
  42. func ListPayments(c *gin.Context) {
  43. var q repository.PaymentListQuery
  44. if err := c.ShouldBindQuery(&q); err != nil {
  45. response.FailWithMessage(err.Error(), c)
  46. return
  47. }
  48. list, total, err := paymentSvc.QueryPayments(q)
  49. if err != nil {
  50. response.FailWithMessage(err.Error(), c)
  51. return
  52. }
  53. response.OkWithDetailed(response.PageResult{
  54. List: list,
  55. Total: total,
  56. Page: q.Page,
  57. PageSize: q.PageSize,
  58. }, "查询成功", c)
  59. }
  60. // TodaySummary 当日收费汇总
  61. func TodaySummary(c *gin.Context) {
  62. s, err := paymentSvc.GetTodaySummary()
  63. if err != nil {
  64. response.FailWithMessage(err.Error(), c)
  65. return
  66. }
  67. response.OkWithData(s, c)
  68. }
  69. // SetupPaymentRouter 注册支付相关路由
  70. func SetupPaymentRouter(router *gin.RouterGroup) {
  71. pg := router.Group("/payment")
  72. {
  73. pg.GET("/list", ListPayments)
  74. pg.GET("/today-summary", TodaySummary)
  75. }
  76. eg := router.Group("/vehicle")
  77. {
  78. eg.POST("/exit/preview", ExitPreview)
  79. eg.POST("/exit/confirm", ExitConfirm)
  80. }
  81. }