From 6c3cafb8e134685137c8a37f123f6aee18d63006 Mon Sep 17 00:00:00 2001
From: wangpengfei <274878379@qq.com>
Date: 星期五, 21 七月 2023 11:06:05 +0800
Subject: [PATCH] add

---
 api/v1/index.go            |    2 
 api/v1/orderType.go        |  113 ++++++++
 model/request/orderType.go |   15 +
 service/dataServer.go      |    5 
 router/orderType.go        |   20 +
 pkg/ecode/code.go          |   17 
 docs/swagger.yaml          |  118 ++++++++
 docs/docs.go               |  188 +++++++++++++
 docs/swagger.json          |  188 +++++++++++++
 model/response/response.go |    8 
 service/index.go           |    1 
 model/orderType.go         |   85 ++++++
 service/orderType.go       |   69 ++++
 model/index.go             |    1 
 router/index.go            |    2 
 15 files changed, 826 insertions(+), 6 deletions(-)

diff --git a/api/v1/index.go b/api/v1/index.go
index 885e94f..a2f82eb 100644
--- a/api/v1/index.go
+++ b/api/v1/index.go
@@ -5,6 +5,7 @@
 )
 
 type Group struct {
+    OrderTypeApi
     ReportSourceApi
 	IsVisitApi
 	SolveRateApi
@@ -108,4 +109,5 @@
 	solveRateService            = service.ServiceGroup.SolveRateService
 	isVisitService              = service.ServiceGroup.IsVisitService
    reportSourceService    = service.ServiceGroup.ReportSourceService
+   orderTypeService    = service.ServiceGroup.OrderTypeService
 )
\ No newline at end of file
diff --git a/api/v1/orderType.go b/api/v1/orderType.go
new file mode 100644
index 0000000..657482f
--- /dev/null
+++ b/api/v1/orderType.go
@@ -0,0 +1,113 @@
+
+package v1
+
+import (
+	"aps_crm/model"
+	"aps_crm/model/request"
+	"aps_crm/model/response"
+	"aps_crm/pkg/contextx"
+	"aps_crm/pkg/ecode"
+	"github.com/gin-gonic/gin"
+	"strconv"
+)
+
+type OrderTypeApi struct{}
+
+// Add
+//
+//	@Tags		OrderType
+//	@Summary	娣诲姞宸ュ崟绫诲瀷
+//	@Produce	application/json
+//	@Param		object	body		request.AddOrderType	true	"鏌ヨ鍙傛暟"
+//	@Success	200		{object}	contextx.Response{}
+//	@Router		/api/orderType/add [post]
+func (s *OrderTypeApi) Add(c *gin.Context) {
+	var params request.AddOrderType
+	ctx, ok := contextx.NewContext(c, &params)
+	if !ok {
+		return
+	}
+
+	orderType := new(model.OrderType)
+	orderType.Name = params.Name
+
+	errCode := orderTypeService.AddOrderType(orderType)
+	if errCode != ecode.OK {
+		ctx.Fail(errCode)
+		return
+	}
+
+	ctx.Ok()
+}
+
+// Delete
+//
+//	@Tags		OrderType
+//	@Summary	鍒犻櫎宸ュ崟绫诲瀷
+//	@Produce	application/json
+//	@Param		id	path		int	true	"鏌ヨ鍙傛暟"
+//	@Success	200	{object}	contextx.Response{}
+//	@Router		/api/orderType/delete/{id} [delete]
+func (s *OrderTypeApi) Delete(c *gin.Context) {
+	ctx, ok := contextx.NewContext(c, nil)
+	if !ok {
+		return
+	}
+
+	id, _ := strconv.Atoi(c.Param("id"))
+	errCode := orderTypeService.DeleteOrderType(id)
+	if errCode != ecode.OK {
+		ctx.Fail(errCode)
+		return
+	}
+
+	ctx.Ok()
+}
+
+// Update
+//
+//	@Tags		OrderType
+//	@Summary	鏇存柊宸ュ崟绫诲瀷
+//	@Produce	application/json
+//	@Param		object	body		request.UpdateOrderTypes	true	"鏌ヨ鍙傛暟"
+//	@Success	200		{object}	contextx.Response{}
+//	@Router		/api/orderType/update [put]
+func (s *OrderTypeApi) Update(c *gin.Context) {
+	var params request.UpdateOrderTypes
+	ctx, ok := contextx.NewContext(c, &params)
+	if !ok {
+		return
+	}
+
+	errCode := orderTypeService.UpdateOrderType(params.OrderTypes)
+	if errCode != ecode.OK {
+		ctx.Fail(errCode)
+		return
+	}
+
+	ctx.Ok()
+}
+
+// List
+//
+//	@Tags		OrderType
+//	@Summary	鑾峰彇宸ュ崟绫诲瀷鍒楄〃
+//	@Produce	application/json
+//	@Success	200	{object}	contextx.Response{data=response.OrderTypeResponse}
+//	@Router		/api/orderType/list [get]
+func (s *OrderTypeApi) List(c *gin.Context) {
+	ctx, ok := contextx.NewContext(c, nil)
+	if !ok {
+		return
+	}
+
+	orderTypes, errCode := orderTypeService.GetOrderTypeList()
+	if errCode != ecode.OK {
+		ctx.Fail(errCode)
+		return
+	}
+
+	ctx.OkWithDetailed(response.OrderTypeResponse{
+		List: orderTypes,
+	})
+}
diff --git a/docs/docs.go b/docs/docs.go
index 351d582..c4b1657 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -2430,6 +2430,125 @@
                 }
             }
         },
+        "/api/orderType/add": {
+            "post": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "OrderType"
+                ],
+                "summary": "娣诲姞宸ュ崟绫诲瀷",
+                "parameters": [
+                    {
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.AddOrderType"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
+        "/api/orderType/delete/{id}": {
+            "delete": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "OrderType"
+                ],
+                "summary": "鍒犻櫎宸ュ崟绫诲瀷",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "id",
+                        "in": "path",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
+        "/api/orderType/list": {
+            "get": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "OrderType"
+                ],
+                "summary": "鑾峰彇宸ュ崟绫诲瀷鍒楄〃",
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "allOf": [
+                                {
+                                    "$ref": "#/definitions/contextx.Response"
+                                },
+                                {
+                                    "type": "object",
+                                    "properties": {
+                                        "data": {
+                                            "$ref": "#/definitions/response.OrderTypeResponse"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                }
+            }
+        },
+        "/api/orderType/update": {
+            "put": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "OrderType"
+                ],
+                "summary": "鏇存柊宸ュ崟绫诲瀷",
+                "parameters": [
+                    {
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.UpdateOrderTypes"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/api/plan/add": {
             "post": {
                 "produces": [
@@ -6289,6 +6408,17 @@
                 }
             }
         },
+        "model.OrderType": {
+            "type": "object",
+            "properties": {
+                "id": {
+                    "type": "integer"
+                },
+                "name": {
+                    "type": "string"
+                }
+            }
+        },
         "model.Plan": {
             "type": "object",
             "properties": {
@@ -7467,6 +7597,17 @@
                 },
                 "sourceSheet": {
                     "type": "integer"
+                }
+            }
+        },
+        "request.AddOrderType": {
+            "type": "object",
+            "required": [
+                "name"
+            ],
+            "properties": {
+                "name": {
+                    "type": "string"
                 }
             }
         },
@@ -9141,6 +9282,35 @@
                 }
             }
         },
+        "request.UpdateOrderType": {
+            "type": "object",
+            "required": [
+                "id",
+                "name"
+            ],
+            "properties": {
+                "id": {
+                    "type": "integer"
+                },
+                "name": {
+                    "type": "string"
+                }
+            }
+        },
+        "request.UpdateOrderTypes": {
+            "type": "object",
+            "required": [
+                "order_type"
+            ],
+            "properties": {
+                "order_type": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/request.UpdateOrderType"
+                    }
+                }
+            }
+        },
         "request.UpdatePlan": {
             "type": "object",
             "properties": {
@@ -10166,6 +10336,13 @@
                         "$ref": "#/definitions/model.User"
                     }
                 },
+                "orderType": {
+                    "description": "宸ュ崟绫诲瀷",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/model.OrderType"
+                    }
+                },
                 "province": {
                     "description": "鐪佷唤鏁版嵁",
                     "type": "array",
@@ -10347,6 +10524,17 @@
                 }
             }
         },
+        "response.OrderTypeResponse": {
+            "type": "object",
+            "properties": {
+                "list": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/model.OrderType"
+                    }
+                }
+            }
+        },
         "response.PageResult": {
             "type": "object",
             "properties": {
diff --git a/docs/swagger.json b/docs/swagger.json
index 708e402..8775d73 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -2418,6 +2418,125 @@
                 }
             }
         },
+        "/api/orderType/add": {
+            "post": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "OrderType"
+                ],
+                "summary": "娣诲姞宸ュ崟绫诲瀷",
+                "parameters": [
+                    {
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.AddOrderType"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
+        "/api/orderType/delete/{id}": {
+            "delete": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "OrderType"
+                ],
+                "summary": "鍒犻櫎宸ュ崟绫诲瀷",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "id",
+                        "in": "path",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
+        "/api/orderType/list": {
+            "get": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "OrderType"
+                ],
+                "summary": "鑾峰彇宸ュ崟绫诲瀷鍒楄〃",
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "allOf": [
+                                {
+                                    "$ref": "#/definitions/contextx.Response"
+                                },
+                                {
+                                    "type": "object",
+                                    "properties": {
+                                        "data": {
+                                            "$ref": "#/definitions/response.OrderTypeResponse"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                }
+            }
+        },
+        "/api/orderType/update": {
+            "put": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "OrderType"
+                ],
+                "summary": "鏇存柊宸ュ崟绫诲瀷",
+                "parameters": [
+                    {
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.UpdateOrderTypes"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/api/plan/add": {
             "post": {
                 "produces": [
@@ -6277,6 +6396,17 @@
                 }
             }
         },
+        "model.OrderType": {
+            "type": "object",
+            "properties": {
+                "id": {
+                    "type": "integer"
+                },
+                "name": {
+                    "type": "string"
+                }
+            }
+        },
         "model.Plan": {
             "type": "object",
             "properties": {
@@ -7455,6 +7585,17 @@
                 },
                 "sourceSheet": {
                     "type": "integer"
+                }
+            }
+        },
+        "request.AddOrderType": {
+            "type": "object",
+            "required": [
+                "name"
+            ],
+            "properties": {
+                "name": {
+                    "type": "string"
                 }
             }
         },
@@ -9129,6 +9270,35 @@
                 }
             }
         },
+        "request.UpdateOrderType": {
+            "type": "object",
+            "required": [
+                "id",
+                "name"
+            ],
+            "properties": {
+                "id": {
+                    "type": "integer"
+                },
+                "name": {
+                    "type": "string"
+                }
+            }
+        },
+        "request.UpdateOrderTypes": {
+            "type": "object",
+            "required": [
+                "order_type"
+            ],
+            "properties": {
+                "order_type": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/request.UpdateOrderType"
+                    }
+                }
+            }
+        },
         "request.UpdatePlan": {
             "type": "object",
             "properties": {
@@ -10154,6 +10324,13 @@
                         "$ref": "#/definitions/model.User"
                     }
                 },
+                "orderType": {
+                    "description": "宸ュ崟绫诲瀷",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/model.OrderType"
+                    }
+                },
                 "province": {
                     "description": "鐪佷唤鏁版嵁",
                     "type": "array",
@@ -10335,6 +10512,17 @@
                 }
             }
         },
+        "response.OrderTypeResponse": {
+            "type": "object",
+            "properties": {
+                "list": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/model.OrderType"
+                    }
+                }
+            }
+        },
         "response.PageResult": {
             "type": "object",
             "properties": {
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index 4040537..44987a4 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -446,6 +446,13 @@
       title:
         type: string
     type: object
+  model.OrderType:
+    properties:
+      id:
+        type: integer
+      name:
+        type: string
+    type: object
   model.Plan:
     properties:
       clientId:
@@ -1231,6 +1238,13 @@
         type: integer
       sourceSheet:
         type: integer
+    type: object
+  request.AddOrderType:
+    properties:
+      name:
+        type: string
+    required:
+    - name
     type: object
   request.AddPlan:
     properties:
@@ -2364,6 +2378,25 @@
       sourceSheet:
         type: integer
     type: object
+  request.UpdateOrderType:
+    properties:
+      id:
+        type: integer
+      name:
+        type: string
+    required:
+    - id
+    - name
+    type: object
+  request.UpdateOrderTypes:
+    properties:
+      order_type:
+        items:
+          $ref: '#/definitions/request.UpdateOrderType'
+        type: array
+    required:
+    - order_type
+    type: object
   request.UpdatePlan:
     properties:
       id:
@@ -3050,6 +3083,11 @@
         items:
           $ref: '#/definitions/model.User'
         type: array
+      orderType:
+        description: 宸ュ崟绫诲瀷
+        items:
+          $ref: '#/definitions/model.OrderType'
+        type: array
       province:
         description: 鐪佷唤鏁版嵁
         items:
@@ -3169,6 +3207,13 @@
       list:
         items:
           $ref: '#/definitions/model.Menu'
+        type: array
+    type: object
+  response.OrderTypeResponse:
+    properties:
+      list:
+        items:
+          $ref: '#/definitions/model.OrderType'
         type: array
     type: object
   response.PageResult:
@@ -4818,6 +4863,79 @@
       summary: 鏇存柊宸ュ崟
       tags:
       - OrderManage
+  /api/orderType/add:
+    post:
+      parameters:
+      - description: 鏌ヨ鍙傛暟
+        in: body
+        name: object
+        required: true
+        schema:
+          $ref: '#/definitions/request.AddOrderType'
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/contextx.Response'
+      summary: 娣诲姞宸ュ崟绫诲瀷
+      tags:
+      - OrderType
+  /api/orderType/delete/{id}:
+    delete:
+      parameters:
+      - description: 鏌ヨ鍙傛暟
+        in: path
+        name: id
+        required: true
+        type: integer
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/contextx.Response'
+      summary: 鍒犻櫎宸ュ崟绫诲瀷
+      tags:
+      - OrderType
+  /api/orderType/list:
+    get:
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            allOf:
+            - $ref: '#/definitions/contextx.Response'
+            - properties:
+                data:
+                  $ref: '#/definitions/response.OrderTypeResponse'
+              type: object
+      summary: 鑾峰彇宸ュ崟绫诲瀷鍒楄〃
+      tags:
+      - OrderType
+  /api/orderType/update:
+    put:
+      parameters:
+      - description: 鏌ヨ鍙傛暟
+        in: body
+        name: object
+        required: true
+        schema:
+          $ref: '#/definitions/request.UpdateOrderTypes'
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/contextx.Response'
+      summary: 鏇存柊宸ュ崟绫诲瀷
+      tags:
+      - OrderType
   /api/plan/add:
     post:
       parameters:
diff --git a/model/index.go b/model/index.go
index 83e3377..bb92b2e 100644
--- a/model/index.go
+++ b/model/index.go
@@ -69,6 +69,7 @@
         IsVisit{},
         IsVisit{},
         ReportSource{},
+        OrderType{},
 	)
 	return err
 }
\ No newline at end of file
diff --git a/model/orderType.go b/model/orderType.go
new file mode 100644
index 0000000..1dd56d2
--- /dev/null
+++ b/model/orderType.go
@@ -0,0 +1,85 @@
+package model
+
+import (
+	"aps_crm/pkg/mysqlx"
+	"gorm.io/gorm"
+)
+
+type (
+	// OrderType 鍟嗘満闃舵
+	OrderType struct {
+		Id   int    `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
+		Name string `json:"name" gorm:"column:name;type:varchar(255);comment:鍟嗘満闃舵鍚嶇О"`
+	}
+   
+	OrderTypeSearch struct {
+		OrderType
+		Orm *gorm.DB
+	}
+)
+
+func (OrderType) TableName() string {
+	return "order_type"
+}
+
+func NewOrderTypeSearch() *OrderTypeSearch {
+	return &OrderTypeSearch{
+		Orm: mysqlx.GetDB(),
+	}
+}
+
+func (slf *OrderTypeSearch) build() *gorm.DB {
+	var db = slf.Orm.Model(&OrderType{})
+	if slf.Id != 0 {
+		db = db.Where("id = ?", slf.Id)
+	}
+	if slf.Name != "" {
+		db = db.Where("name = ?", slf.Name)
+	}
+
+	return db
+}
+
+func (slf *OrderTypeSearch) Create(record *OrderType) error {
+	var db = slf.build()
+	return db.Create(record).Error
+}
+
+func (slf *OrderTypeSearch) Delete() error {
+	var db = slf.build()
+	return db.Delete(&OrderType{}).Error
+}
+
+func (slf *OrderTypeSearch) Update(record *OrderType) error {
+	var db = slf.build()
+	return db.Updates(record).Error
+}
+
+func (slf *OrderTypeSearch) Find() (*OrderType, error) {
+	var db = slf.build()
+	var record = new(OrderType)
+	err := db.First(record).Error
+	return record, err
+}
+
+func (slf *OrderTypeSearch) FindAll() ([]*OrderType, error) {
+	var db = slf.build()
+	var records = make([]*OrderType, 0)
+	err := db.Find(&records).Error
+	return records, err
+}
+
+func (slf *OrderTypeSearch) SetId(id int) *OrderTypeSearch {
+	slf.Id = id
+	return slf
+}
+
+func (slf *OrderTypeSearch) SetName(name string) *OrderTypeSearch {
+	slf.Name = name
+	return slf
+}
+
+func (slf *OrderTypeSearch) Updates(data map[string]interface{}) error {
+	var db = slf.build()
+	return db.Updates(data).Error
+}
diff --git a/model/request/orderType.go b/model/request/orderType.go
new file mode 100644
index 0000000..418c383
--- /dev/null
+++ b/model/request/orderType.go
@@ -0,0 +1,15 @@
+
+package request
+
+type AddOrderType struct {
+	Name string `  json:"name" binding:"required"`
+}
+
+type UpdateOrderType struct {
+	Id   int    `json:"id" binding:"required"`
+	Name string `json:"name" binding:"required"`
+}
+
+type UpdateOrderTypes struct {
+	OrderTypes []*UpdateOrderType `json:"order_type" binding:"required"`
+}
diff --git a/model/response/response.go b/model/response/response.go
index 1831323..d24bd16 100644
--- a/model/response/response.go
+++ b/model/response/response.go
@@ -180,6 +180,10 @@
 
 	DataResponse struct {
 
+		// 宸ュ崟绫诲瀷
+		OrderType []*model.OrderType `json:"orderType"`
+
+
 		// 鎶ヨ〃鏉ユ簮
 		ReportSource []*model.ReportSource `json:"reportSource"`
 
@@ -254,4 +258,8 @@
 	ReportSourceResponse struct {
 		List []*model.ReportSource `json:"list"`
 	}
+
+	OrderTypeResponse struct {
+		List []*model.OrderType `json:"list"`
+	}
 )
\ No newline at end of file
diff --git a/pkg/ecode/code.go b/pkg/ecode/code.go
index a59546c..a8ac5d0 100644
--- a/pkg/ecode/code.go
+++ b/pkg/ecode/code.go
@@ -316,11 +316,16 @@
 	IsVisitSetErr    = 4500004 // 璁剧疆鏈嶅姟浜哄憳鏄惁鏉ヨ繃澶辫触
 	IsVisitUpdateErr = 4500005 // 鏇存柊鏈嶅姟浜哄憳鏄惁鏉ヨ繃澶辫触
 
+	ReportSourceExist     = 4600001 // 鎶ヨ〃鏉ユ簮宸插瓨鍦�
+	ReportSourceNotExist  = 4600002 // 鎶ヨ〃鏉ユ簮涓嶅瓨鍦�
+	ReportSourceListErr   = 4600003 // 鑾峰彇鎶ヨ〃鏉ユ簮鍒楄〃澶辫触
+	ReportSourceSetErr    = 4600004 // 璁剧疆鎶ヨ〃鏉ユ簮澶辫触
+	ReportSourceUpdateErr = 4600005 // 鏇存柊鎶ヨ〃鏉ユ簮澶辫触
 
-	ReportSourceExist     = 4400001 // 鎶ヨ〃鏉ユ簮宸插瓨鍦�
-	ReportSourceNotExist  = 4400002 // 鎶ヨ〃鏉ユ簮涓嶅瓨鍦�
-	ReportSourceListErr   = 4400003 // 鑾峰彇鎶ヨ〃鏉ユ簮鍒楄〃澶辫触
-	ReportSourceSetErr    = 4400004 // 璁剧疆鎶ヨ〃鏉ユ簮澶辫触
-	ReportSourceUpdateErr = 4400005 // 鏇存柊鎶ヨ〃鏉ユ簮澶辫触
+	OrderTypeExist     = 4700001 // 宸ュ崟绫诲瀷宸插瓨鍦�
+	OrderTypeNotExist  = 4700002 // 宸ュ崟绫诲瀷涓嶅瓨鍦�
+	OrderTypeListErr   = 4700003 // 鑾峰彇宸ュ崟绫诲瀷鍒楄〃澶辫触
+	OrderTypeSetErr    = 4700004 // 璁剧疆宸ュ崟绫诲瀷澶辫触
+	OrderTypeUpdateErr = 4700005 // 鏇存柊宸ュ崟绫诲瀷澶辫触
 
-)
\ No newline at end of file
+)
diff --git a/router/index.go b/router/index.go
index 34d7365..b69c936 100644
--- a/router/index.go
+++ b/router/index.go
@@ -11,6 +11,7 @@
 )
 
 type Group struct {
+    OrderTypeRouter
     ReportSourceRouter
 	IsVisitRouter
 	SolveRateRouter
@@ -137,6 +138,7 @@
 		routerGroup.InitSolveRateRouter(PrivateGroup)
 		routerGroup.InitIsVisitRouter(PrivateGroup)
         routerGroup.InitReportSourceRouter(PrivateGroup)
+        routerGroup.InitOrderTypeRouter(PrivateGroup)
 	}
 	return Router
 }
\ No newline at end of file
diff --git a/router/orderType.go b/router/orderType.go
new file mode 100644
index 0000000..3ff7ed1
--- /dev/null
+++ b/router/orderType.go
@@ -0,0 +1,20 @@
+
+package router
+
+import (
+	v1 "aps_crm/api/v1"
+	"github.com/gin-gonic/gin"
+)
+
+type OrderTypeRouter struct{}
+
+func (s *OrderTypeRouter) InitOrderTypeRouter(router *gin.RouterGroup) {
+	orderTypeRouter := router.Group("orderType")
+	orderTypeApi := v1.ApiGroup.OrderTypeApi
+	{
+		orderTypeRouter.POST("add", orderTypeApi.Add)             // 娣诲姞$CName$
+		orderTypeRouter.DELETE("delete/:id", orderTypeApi.Delete) // 鍒犻櫎$CName$
+		orderTypeRouter.PUT("update", orderTypeApi.Update)        // 鏇存柊$CName$
+		orderTypeRouter.GET("list", orderTypeApi.List)            // 鑾峰彇$CName$鍒楄〃
+	}
+}
\ No newline at end of file
diff --git a/service/dataServer.go b/service/dataServer.go
index 9043420..14ca846 100644
--- a/service/dataServer.go
+++ b/service/dataServer.go
@@ -101,6 +101,11 @@
 	data.ReportSource = reportSourceList
 
 
+	// get OrderType list
+	orderTypeList, _ := ServiceGroup.GetOrderTypeList()
+	data.OrderType = orderTypeList
+
+
 	errCode = ecode.OK
 
 	return
diff --git a/service/index.go b/service/index.go
index 45468dc..e0434f8 100644
--- a/service/index.go
+++ b/service/index.go
@@ -50,6 +50,7 @@
 	SolveRateService
 	IsVisitService
     ReportSourceService
+    OrderTypeService
 }
 
 var ServiceGroup = new(Group)
\ No newline at end of file
diff --git a/service/orderType.go b/service/orderType.go
new file mode 100644
index 0000000..ae3a3d4
--- /dev/null
+++ b/service/orderType.go
@@ -0,0 +1,69 @@
+
+package service
+
+import (
+	"aps_crm/model"
+	"aps_crm/model/request"
+	"aps_crm/pkg/ecode"
+)
+
+type OrderTypeService struct{}
+
+func (OrderTypeService) AddOrderType(orderType *model.OrderType) int {
+	err := model.NewOrderTypeSearch().Create(orderType)
+	if err != nil {
+		return ecode.OrderTypeExist
+	}
+
+	return ecode.OK
+}
+
+func (OrderTypeService) DeleteOrderType(id int) int {
+	_, err := model.NewOrderTypeSearch().SetId(id).Find()
+	if err != nil {
+		return ecode.OrderTypeNotExist
+	}
+
+	err = model.NewOrderTypeSearch().SetId(id).Delete()
+	if err != nil {
+		return ecode.OrderTypeNotExist
+	}
+	return ecode.OK
+}
+
+func (OrderTypeService) GetOrderTypeList() ([]*model.OrderType, int) {
+	list, err := model.NewOrderTypeSearch().FindAll()
+	if err != nil {
+		return nil, ecode.OrderTypeListErr
+	}
+
+	return list, ecode.OK
+}
+
+func (OrderTypeService) UpdateOrderType(orderTypes []*request.UpdateOrderType) int {
+	for _, v := range orderTypes {
+		// check orderType exist
+		_, err := model.NewOrderTypeSearch().SetId(v.Id).Find()
+		if err != nil {
+			return ecode.OrderTypeNotExist
+		}
+
+		err = model.NewOrderTypeSearch().SetId(v.Id).Updates(map[string]interface{}{
+			"name": v.Name,
+		})
+		if err != nil {
+			return ecode.OrderTypeSetErr
+		}
+	}
+
+	return ecode.OK
+}
+
+func (OrderTypeService) GetOrderTypeDetail(id int) (*model.OrderType, int) {
+	orderType, err := model.NewOrderTypeSearch().SetId(id).Find()
+	if err != nil {
+		return nil, ecode.OrderTypeNotExist
+	}
+
+	return orderType, ecode.OK
+}

--
Gitblit v1.8.0