enterprise/server/controller/payment.go

64 lines
1.7 KiB
Go

package controller
import (
"enterprise/common/config"
"enterprise/common/dao"
"enterprise/server/api"
"enterprise/server/service"
"enterprise/server/session"
"github.com/gin-gonic/gin"
"net/http"
)
type Payment struct {
}
func NewPayment() *Payment {
return &Payment{}
}
func (q *Payment) AlipayAuth(ctx *gin.Context) {
sess := ctx.Keys[session.ContextSession].(*session.AdminSession)
authCode := ctx.Query("auth_code")
state := ctx.Query("state")
data := service.NewPay().AlipayAuth(sess, authCode, state)
ctx.JSON(http.StatusOK, session.NewRsp(data))
}
func (q *Payment) Pay(ctx *gin.Context) {
sess := ctx.Keys[session.ContextSession].(*session.AdminSession)
corp, err := dao.NewCorpDao().GetByHost(sess.GetHeader().Host)
session.CheckDBError(err)
session.CheckNilError(corp, "域名未绑定")
var req api.PayReq
session.CheckParamError(ctx.ShouldBindJSON(&req))
ctx.Keys[session.ContextRequest] = req
if req.Password != corp.GetConfig().Password {
panic(config.ErrParam.New().Append("密码错误"))
}
service.NewPay().Pay(corp, &req)
ctx.JSON(http.StatusOK, session.NewRspOk())
}
func (q *Payment) List(ctx *gin.Context) {
sess := ctx.Keys[session.ContextSession].(*session.AdminSession)
var req api.ListPaymentReq
session.CheckParamError(ctx.ShouldBind(&req))
req.Default()
ctx.Keys[session.ContextRequest] = req
total, totalAmount, items := service.NewPayment().List(sess, &req)
ctx.JSON(http.StatusOK, session.NewListAmountRsp(total, totalAmount, items))
}
func (q *Payment) Suggest(ctx *gin.Context) {
sess := ctx.Keys[session.ContextSession].(*session.AdminSession)
field := ctx.Query("field")
data := service.NewPayment().Suggest(sess, field)
ctx.JSON(http.StatusOK, session.NewRsp(data))
}