Переглянути джерело

增加获取现货分类信息接口

zhou.xiaoning 4 роки тому
батько
коміт
2e06a2a35e
6 змінених файлів з 269 додано та 1 видалено
  1. 36 0
      controllers/wr/wr.go
  2. 68 0
      docs/docs.go
  3. 68 0
      docs/swagger.json
  4. 47 0
      docs/swagger.yaml
  5. 42 1
      models/wr.go
  6. 8 0
      routers/router.go

+ 36 - 0
controllers/wr/wr.go

@@ -0,0 +1,36 @@
+package wr
+
+import (
+	"mtp2_if/global/app"
+	"mtp2_if/global/e"
+	"mtp2_if/logger"
+	"mtp2_if/models"
+	"net/http"
+
+	"github.com/gin-gonic/gin"
+)
+
+// 仓单服务
+
+// GetWRCategoryInfo 获取现货分类信息
+// @Summary 获取现货分类信息
+// @Produce json
+// @Success 200 {object} models.WRCategoryTree
+// @Failure 500 {object} app.Response
+// @Router /WR/GetWRCategoryInfo [get]
+// @Tags 仓单服务
+func GetWRCategoryInfo(c *gin.Context) {
+	appG := app.Gin{C: c}
+
+	categories, err := models.CreateCategoryTree(0)
+	if err != nil {
+		// 查询失败
+		logger.GetLogger().Errorf("GetWRCategoryInfo failed: %s", err.Error())
+		appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
+		return
+	}
+
+	// 查询成功返回
+	logger.GetLogger().Debugln("GetWRCategoryInfo successed: %v", categories)
+	appG.Response(http.StatusOK, e.SUCCESS, categories)
+}

+ 68 - 0
docs/docs.go

@@ -3616,6 +3616,31 @@ var doc = `{
                 }
             }
         },
+        "/WR/GetWRCategoryInfo": {
+            "get": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "仓单服务"
+                ],
+                "summary": "获取现货分类信息",
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/models.WRCategoryTree"
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/WRTrade/GetAllDeliveryGoods": {
             "get": {
                 "security": [
@@ -8616,6 +8641,49 @@ var doc = `{
                 }
             }
         },
+        "models.WRCategoryTree": {
+            "type": "object",
+            "required": [
+                "categoryid"
+            ],
+            "properties": {
+                "areauserid": {
+                    "description": "所属机构",
+                    "type": "integer"
+                },
+                "categorydesc": {
+                    "description": "类别描述",
+                    "type": "string"
+                },
+                "categoryid": {
+                    "description": "类别ID(SEQ_WRCATEGORY)",
+                    "type": "integer"
+                },
+                "categoryname": {
+                    "description": "类别名称",
+                    "type": "string"
+                },
+                "iconurl": {
+                    "description": "图标地址",
+                    "type": "string"
+                },
+                "orderindex": {
+                    "description": "顺序",
+                    "type": "integer"
+                },
+                "parentcategoryid": {
+                    "description": "父类别ID",
+                    "type": "integer"
+                },
+                "subCategory": {
+                    "description": "子分类",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/models.WRCategoryTree"
+                    }
+                }
+            }
+        },
         "models.WRStandardInfo": {
             "type": "object",
             "required": [

+ 68 - 0
docs/swagger.json

@@ -3600,6 +3600,31 @@
                 }
             }
         },
+        "/WR/GetWRCategoryInfo": {
+            "get": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "仓单服务"
+                ],
+                "summary": "获取现货分类信息",
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/models.WRCategoryTree"
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/WRTrade/GetAllDeliveryGoods": {
             "get": {
                 "security": [
@@ -8600,6 +8625,49 @@
                 }
             }
         },
+        "models.WRCategoryTree": {
+            "type": "object",
+            "required": [
+                "categoryid"
+            ],
+            "properties": {
+                "areauserid": {
+                    "description": "所属机构",
+                    "type": "integer"
+                },
+                "categorydesc": {
+                    "description": "类别描述",
+                    "type": "string"
+                },
+                "categoryid": {
+                    "description": "类别ID(SEQ_WRCATEGORY)",
+                    "type": "integer"
+                },
+                "categoryname": {
+                    "description": "类别名称",
+                    "type": "string"
+                },
+                "iconurl": {
+                    "description": "图标地址",
+                    "type": "string"
+                },
+                "orderindex": {
+                    "description": "顺序",
+                    "type": "integer"
+                },
+                "parentcategoryid": {
+                    "description": "父类别ID",
+                    "type": "integer"
+                },
+                "subCategory": {
+                    "description": "子分类",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/models.WRCategoryTree"
+                    }
+                }
+            }
+        },
         "models.WRStandardInfo": {
             "type": "object",
             "required": [

+ 47 - 0
docs/swagger.yaml

@@ -3714,6 +3714,37 @@ definitions:
     required:
     - userid
     type: object
+  models.WRCategoryTree:
+    properties:
+      areauserid:
+        description: 所属机构
+        type: integer
+      categorydesc:
+        description: 类别描述
+        type: string
+      categoryid:
+        description: 类别ID(SEQ_WRCATEGORY)
+        type: integer
+      categoryname:
+        description: 类别名称
+        type: string
+      iconurl:
+        description: 图标地址
+        type: string
+      orderindex:
+        description: 顺序
+        type: integer
+      parentcategoryid:
+        description: 父类别ID
+        type: integer
+      subCategory:
+        description: 子分类
+        items:
+          $ref: '#/definitions/models.WRCategoryTree'
+        type: array
+    required:
+    - categoryid
+    type: object
   models.WRStandardInfo:
     properties:
       createtime:
@@ -7471,6 +7502,22 @@ paths:
       summary: 移除用户商品收藏信息
       tags:
       - 用户信息
+  /WR/GetWRCategoryInfo:
+    get:
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/models.WRCategoryTree'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/app.Response'
+      summary: 获取现货分类信息
+      tags:
+      - 仓单服务
   /WRTrade/GetAllDeliveryGoods:
     get:
       produces:

+ 42 - 1
models/wr.go

@@ -2,7 +2,10 @@ package models
 
 // 仓单服务
 
-import "time"
+import (
+	"mtp2_if/db"
+	"time"
+)
 
 // Wrcategory 现货分类表
 type Wrcategory struct {
@@ -24,3 +27,41 @@ type Wrcategory struct {
 func (Wrcategory) TableName() string {
 	return "WRCATEGORY"
 }
+
+// WRCategoryTree 现货分类
+type WRCategoryTree struct {
+	Categoryid       int32  `json:"categoryid"  xorm:"'CATEGORYID'" binding:"required"` // 类别ID(SEQ_WRCATEGORY)
+	Categoryname     string `json:"categoryname"  xorm:"'CATEGORYNAME'"`                // 类别名称
+	Parentcategoryid int32  `json:"parentcategoryid"  xorm:"'PARENTCATEGORYID'"`        // 父类别ID
+	Categorydesc     string `json:"categorydesc"  xorm:"'CATEGORYDESC'"`                // 类别描述
+	Iconurl          string `json:"iconurl"  xorm:"'ICONURL'"`                          // 图标地址
+	Orderindex       int32  `json:"orderindex"  xorm:"'ORDERINDEX'"`                    // 顺序
+	Areauserid       int64  `json:"areauserid"  xorm:"'AREAUSERID'"`                    // 所属机构
+
+	SubCategory []WRCategoryTree // 子分类
+}
+
+// CreateCategoryTree 生成现货分类信息
+func CreateCategoryTree(parentCategoryID int) ([]WRCategoryTree, error) {
+	engine := db.GetEngine()
+
+	wrCategoryTrees := make([]WRCategoryTree, 0)
+	if err := engine.Table("WRCATEGORY WR").
+		Where("WR.PARENTCATEGORYID = ?", parentCategoryID).
+		Asc("WR.ORDERINDEX").
+		Find(&wrCategoryTrees); err != nil {
+		return nil, err
+	}
+	for i := range wrCategoryTrees {
+		category := &wrCategoryTrees[i]
+
+		// 递归生成子分类
+		subs, err := CreateCategoryTree(int(category.Parentcategoryid))
+		if err != nil {
+			return nil, err
+		}
+		category.SubCategory = subs
+	}
+
+	return wrCategoryTrees, nil
+}

+ 8 - 0
routers/router.go

@@ -16,6 +16,7 @@ import (
 	"mtp2_if/controllers/taaccount"
 	"mtp2_if/controllers/trade"
 	"mtp2_if/controllers/user"
+	"mtp2_if/controllers/wr"
 	"mtp2_if/controllers/wrtrade"
 	"mtp2_if/logger"
 	"mtp2_if/token"
@@ -166,6 +167,13 @@ func InitRouter() *gin.Engine {
 		// 查询产能预售委托单信息
 		cpTradeR.GET("/QueryCPTradeOrderDetail", cptrade.QueryCPTradeOrderDetail)
 	}
+	// ************************ 仓单服务 ************************
+	wrR := apiR.Group("WR")
+	wrR.Use()
+	{
+		// 获取现货分类信息
+		wrR.GET("/GetWRCategoryInfo", wr.GetWRCategoryInfo)
+	}
 	// ************************ 交割服务 ************************
 	deliveryR := apiR.Group("Delivery")
 	deliveryR.Use(token.Auth())