This commit is contained in:
suyl
2021-07-22 18:56:18 +08:00
parent 08cdbe84cf
commit b903db0c13
6 changed files with 156 additions and 0 deletions

View File

@@ -5,6 +5,7 @@ import (
"fmt"
"git.rosy.net.cn/jx-print/globals"
"git.rosy.net.cn/jx-print/model"
"git.rosy.net.cn/jx-print/services"
"git.rosy.net.cn/jx-print/utils"
"github.com/dchest/captcha"
"github.com/gin-gonic/gin"
@@ -135,3 +136,23 @@ func buildErrJson(c *gin.Context, err error) {
})
globals.SugarLogger.Debugf("End API :%s error:%v:", c.Request.URL, err)
}
func GetConfig(c *gin.Context) {
var (
err error
param = &struct {
Type string `json:"type" form:"type" binding:"required"`
Key string `json:"key" form:"key" binding:"required"`
}{}
)
if err = c.ShouldBind(&param); err != nil {
buildErrJson(c, err)
return
}
if !callFunc(c, func() (retVal interface{}, errCode string, err error) {
retVal, err = services.GetConfig(c, param.Type, param.Key)
return retVal, "", err
}) {
return
}
}

View File

@@ -0,0 +1,55 @@
package controllers
import (
"git.rosy.net.cn/jx-print/model"
"github.com/gin-gonic/gin"
)
func CreateOrder(c *gin.Context) {
var (
err error
tokenInfo *model.TokenInfo
param = &struct {
OrderType string `json:"order_type" form:"order_type" binding:"required"` //订单类型,流量充值等
Origin string `json:"origin" form:"origin" binding:"required"` //订单来源,小程序,开放后台
ThingID string `json:"thing_id" form:"thing_id" binding:"required"` //订单充值项目ID,充流量就是iccid
TypeID string `json:"type_id" form:"type_id" binding:"required"` //类型ID充流量就是套餐对应的id
}{}
)
if err = c.ShouldBind(&param); err != nil {
buildErrJson(c, err)
return
}
if tokenInfo = checkToken(c); tokenInfo == nil {
return
}
if !callFunc(c, func() (retVal interface{}, errCode string, err error) {
return retVal, "", err
}) {
return
}
}
func Pay(c *gin.Context) {
var (
err error
tokenInfo *model.TokenInfo
param = &struct {
OrderID string `json:"order_id" form:"order_id" binding:"required"` //订单号
PayType string `json:"pay_type" form:"pay_type" binding:"required"` //支付类型
VendorPayType string `json:"vendor_pay_type" form:"vendor_pay_type" binding:"required"` //支付方式
}{}
)
if err = c.ShouldBind(&param); err != nil {
buildErrJson(c, err)
return
}
if tokenInfo = checkToken(c); tokenInfo == nil {
return
}
if !callFunc(c, func() (retVal interface{}, errCode string, err error) {
return retVal, "", err
}) {
return
}
}

20
dao/config_dao.go Normal file
View File

@@ -0,0 +1,20 @@
package dao
import (
"git.rosy.net.cn/jx-print/model"
"github.com/jmoiron/sqlx"
)
func GetConfig(db *sqlx.DB, configType, key string) (config *model.NewConfig, err error) {
var (
configs []*model.NewConfig
)
sql := `
SELECT * FROM new_config WHERE type = ? AND key = ?
`
sqlParams := []interface{}{configType, key}
if err = db.Select(&configs, sql, sqlParams...); err == nil && len(configs) > 0 {
return configs[0], err
}
return config, err
}

View File

@@ -36,6 +36,17 @@ const (
FieldID = "id"
)
const (
OrderTypeFlow = "flow"
OrderOriginWxMini = "weixinmini"
OrderOriginOpenAPI = "openAPI"
)
const (
ConfigTypeSys = "Sys"
)
var (
FieldNormalMap = map[string]string{
FieldDeletedAt: "删除时间",
@@ -180,3 +191,32 @@ type SimFlowIncome struct {
FlowUnit string `json:"flow_unit" db:"flow_unit"` //流量单位
IncomeType int `json:"income_type" db:"income_type"` //1 表示系统每月自动划转2 表示商户自己冲的
}
type PayOrder struct {
ID int `json:"id" db:"id"`
CreatedAt *time.Time `json:"created_at" db:"created_at"`
OrderID string `json:"order_id" db:"order_id"` //订单号
UserID string `json:"user_id" db:"user_id"` //用户ID
OrderType string `json:"order_type" db:"order_type"` //订单类型,流量充值等
Origin string `json:"origin"` //订单来源,小程序,开放后台
Status int `json:"status"` //订单状态,待支付2已支付5支付成功110支付失败115
PayPrice int `json:"pay_price" db:"pay_price"` //支付金额
TransactionID string `json:"transaction_id" db:"transaction_id"` // 支付成功后支付方生成的事务ID
PayFinishedAt *time.Time `json:"pay_finished_at" db:"pay_finished_at"`
PrepayID string `json:"prepay_id" db:"prepay_id"` // 下单后支付前支付方生成的事务ID
OriginalData string `json:"original_data" db:"original_data"`
Comment string `json:"comment"` //备注
ThingID string `json:"thing_id" db:"thing_id"` //订单充值项目ID
TypeID string `json:"type_id" db:"type_id"` //类型ID充流量就是套餐对应的id
}
type NewConfig struct {
ID int `json:"id" db:"id"`
CreatedAt *time.Time `json:"created_at" db:"created_at"`
UpdatedAt *time.Time `json:"updated_at" db:"updated_at"`
LastOperator string `json:"last_operator" db:"last_operator"`
DeletedAt *time.Time `json:"deleted_at" db:"deleted_at"`
Type string `json:"type"`
Key string `json:"key"`
Value string `json:"value"`
}

View File

@@ -26,6 +26,10 @@ func Init(r *gin.Engine) {
print.POST("/updatePrinter", controllers.UpdatePrinter)
print.POST("/testPrint", controllers.TestPrint)
print.GET("/getPrintMessages", controllers.GetPrintMessages)
//order
order := v2.Group("/order")
order.POST("/createOrder", controllers.CreateOrder)
order.POST("/pay", controllers.Pay)
//v1是不需要token的
v1 := r.Group("v1")
@@ -36,6 +40,10 @@ func Init(r *gin.Engine) {
userw.GET("/getMenus", controllers.GetMenus)
userw.GET("/getMenuDetail", controllers.GetMenuDetail)
//config
config := v1.Group("/config")
config.GET("/getConfig", controllers.GetConfig)
//自动路由
r.Any("/callback/*path", router.AutoRoute(&controllers.CallbackController{}))
}

12
services/config.go Normal file
View File

@@ -0,0 +1,12 @@
package services
import (
"git.rosy.net.cn/jx-print/dao"
"git.rosy.net.cn/jx-print/globals"
"git.rosy.net.cn/jx-print/model"
"github.com/gin-gonic/gin"
)
func GetConfig(c *gin.Context, configType, key string) (config *model.NewConfig, err error) {
return dao.GetConfig(globals.GetDB(), configType, key)
}