|
|
@@ -7,6 +7,7 @@
|
|
|
package app
|
|
|
|
|
|
import (
|
|
|
+ "github.com/gin-gonic/gin"
|
|
|
"mtp2_if/global/e"
|
|
|
"mtp2_if/logger"
|
|
|
"net/http"
|
|
|
@@ -14,12 +15,12 @@ import (
|
|
|
|
|
|
// 获取数据接口
|
|
|
type IGetData interface {
|
|
|
- GetData()([]interface{}, error)
|
|
|
+ GetData() ([]interface{}, error)
|
|
|
}
|
|
|
|
|
|
// 获取数据接口
|
|
|
type IGetDataEx interface {
|
|
|
- GetDataEx()(interface{}, error)
|
|
|
+ GetDataEx() (interface{}, error)
|
|
|
}
|
|
|
|
|
|
// 数据处理接口
|
|
|
@@ -35,7 +36,7 @@ type GinUtils struct {
|
|
|
|
|
|
// 处理参数绑定
|
|
|
func (r *GinUtils) DoBindReq(req interface{}) {
|
|
|
- if r.err = r.C.ShouldBind(req); r.err != nil{
|
|
|
+ if r.err = r.C.ShouldBind(req); r.err != nil {
|
|
|
r.Gin.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
|
|
|
}
|
|
|
}
|
|
|
@@ -43,21 +44,21 @@ func (r *GinUtils) DoBindReq(req interface{}) {
|
|
|
// 处理数据获取, 参数obj为models结构体
|
|
|
func (r *GinUtils) DoGetData(obj interface{}) {
|
|
|
// 如果在参数绑定阶段有错误, 则不执行数据获取
|
|
|
- if r.err != nil{
|
|
|
+ if r.err != nil {
|
|
|
return
|
|
|
}
|
|
|
- if v, ok := obj.(IGetData); ok{
|
|
|
- if d, err := v.GetData(); err == nil{
|
|
|
+ if v, ok := obj.(IGetData); ok {
|
|
|
+ if d, err := v.GetData(); err == nil {
|
|
|
// 执行数据处理
|
|
|
for i := range d {
|
|
|
- if val, ok := d[i].(ICalc); ok{
|
|
|
+ if val, ok := d[i].(ICalc); ok {
|
|
|
val.Calc()
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
r.Gin.Response(http.StatusOK, e.SUCCESS, d)
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
logger.GetLogger().Errorf("query fail, %v", err)
|
|
|
r.Gin.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
|
|
|
}
|
|
|
@@ -65,17 +66,22 @@ func (r *GinUtils) DoGetData(obj interface{}) {
|
|
|
}
|
|
|
|
|
|
// 处理数据获取, 参数obj为models结构体
|
|
|
-func (r *GinUtils) DoGetDataEx(modelObj interface{}) {
|
|
|
+func (r *GinUtils) DoGetDataEx(modelObj interface{}) {
|
|
|
// 如果在参数绑定阶段有错误, 则不执行数据获取
|
|
|
- if r.err != nil{
|
|
|
+ if r.err != nil {
|
|
|
return
|
|
|
}
|
|
|
- if v, ok := modelObj.(IGetDataEx); ok{
|
|
|
- if d, err := v.GetDataEx(); err == nil{
|
|
|
+ if v, ok := modelObj.(IGetDataEx); ok {
|
|
|
+ if d, err := v.GetDataEx(); err == nil {
|
|
|
r.Gin.Response(http.StatusOK, e.SUCCESS, d)
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
logger.GetLogger().Errorf("query fail, %v", err)
|
|
|
r.Gin.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
+}
|
|
|
+
|
|
|
+// 生成处理GinUtils实例
|
|
|
+func NewGinUtils(c *gin.Context) *GinUtils {
|
|
|
+ return &GinUtils{Gin: Gin{C: c}}
|
|
|
+}
|