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)) }