54 lines
1.4 KiB
Go
54 lines
1.4 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) 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))
|
||
|
}
|