From 0354b44ea0548b573997557cec536555b0b69520 Mon Sep 17 00:00:00 2001
From: wangpengfei <274878379@qq.com>
Date: 星期四, 13 七月 2023 11:37:04 +0800
Subject: [PATCH] add

---
 api/v1/index.go              |    2 
 api/v1/serviceContracts.go   |    6 
 pkg/ecode/code.go            |    8 
 docs/swagger.yaml            |  112 ++++++++
 docs/docs.go                 |  174 ++++++++++++
 docs/swagger.json            |  174 ++++++++++++
 model/response/response.go   |    4 
 model/orderManage.go         |   79 +++++
 service/orderManage.go       |   54 +++
 service/index.go             |    1 
 model/request/orderManage.go |   22 +
 model/index.go               |    1 
 router/index.go              |    2 
 router/orderManage.go        |   19 +
 api/v1/orderManage.go        |  153 ++++++++++
 15 files changed, 808 insertions(+), 3 deletions(-)

diff --git a/api/v1/index.go b/api/v1/index.go
index 98aa66f..bdc1117 100644
--- a/api/v1/index.go
+++ b/api/v1/index.go
@@ -40,6 +40,7 @@
 	ContractApi
 	PlanApi
 	ServiceContractApi
+	OrderManageApi
 }
 
 var ApiGroup = new(Group)
@@ -79,4 +80,5 @@
 	contractService          = service.ServiceGroup.ContractService
 	planService              = service.ServiceGroup.PlanService
 	serviceContractService   = service.ServiceGroup.SContractService
+	orderManageService       = service.ServiceGroup.OrderManageService
 )
diff --git a/api/v1/orderManage.go b/api/v1/orderManage.go
new file mode 100644
index 0000000..148076c
--- /dev/null
+++ b/api/v1/orderManage.go
@@ -0,0 +1,153 @@
+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 OrderManageApi struct{}
+
+// Add
+//
+//	@Tags		OrderManage
+//	@Summary	娣诲姞璁㈠崟
+//	@Produce	application/json
+//	@Param		object	body		request.AddOrderManage	true	"鏌ヨ鍙傛暟"
+//	@Success	200		{object}	contextx.Response{}
+//	@Router		/api/orderManage/add [post]
+func (o *OrderManageApi) Add(c *gin.Context) {
+	var params request.AddOrderManage
+	ctx, ok := contextx.NewContext(c, &params)
+	if !ok {
+		return
+	}
+
+	errCode, orderManage := checkOrderManageParams(params.OrderManage)
+	if errCode != ecode.OK {
+		ctx.Fail(errCode)
+		return
+	}
+
+	errCode = orderManageService.AddOrderManage(&orderManage)
+	if errCode != ecode.OK {
+		ctx.Fail(errCode)
+		return
+	}
+
+	ctx.Ok()
+}
+
+// Delete
+//
+//	@Tags		OrderManage
+//	@Summary	鍒犻櫎璁㈠崟
+//	@Produce	application/json
+//	@Param		id	path		int	true	"鏌ヨ鍙傛暟"
+//	@Success	200	{object}	contextx.Response{}
+//	@Router		/api/orderManage/delete/{id} [delete]
+func (o *OrderManageApi) Delete(c *gin.Context) {
+	ctx, ok := contextx.NewContext(c, nil)
+	if !ok {
+		return
+	}
+
+	id, _ := strconv.Atoi(c.Param("id"))
+	errCode := orderManageService.DeleteOrderManage(id)
+	if errCode != ecode.OK {
+		ctx.Fail(errCode)
+		return
+	}
+
+	ctx.Ok()
+}
+
+// Update
+//
+//	@Tags		OrderManage
+//	@Summary	鏇存柊璁㈠崟
+//	@Produce	application/json
+//	@Param		object	body		request.UpdateOrderManage	true	"鏌ヨ鍙傛暟"
+//	@Success	200		{object}	contextx.Response{}
+//	@Router		/api/orderManage/update [put]
+func (o *OrderManageApi) Update(c *gin.Context) {
+	var params request.UpdateOrderManage
+	ctx, ok := contextx.NewContext(c, &params)
+	if !ok {
+		return
+	}
+
+	errCode, orderManage := checkOrderManageParams(params.OrderManage)
+	if errCode != ecode.OK {
+		ctx.Fail(errCode)
+		return
+	}
+
+	errCode = orderManageService.UpdateOrderManage(&orderManage)
+	if errCode != ecode.OK {
+		ctx.Fail(errCode)
+		return
+	}
+
+	ctx.Ok()
+}
+
+// List
+//
+//	@Tags		OrderManage
+//	@Summary	璁㈠崟鍒楄〃
+//	@Produce	application/json
+//	@Success	200	{object}	contextx.Response{}
+//	@Router		/api/orderManage/list [get]
+func (o *OrderManageApi) List(c *gin.Context) {
+	ctx, ok := contextx.NewContext(c, nil)
+	if !ok {
+		return
+	}
+
+	list, errCode := orderManageService.GetOrderManageList()
+	if errCode != ecode.OK {
+		ctx.Fail(errCode)
+		return
+	}
+
+	ctx.OkWithDetailed(response.OrderManageResponse{
+		List: list,
+	})
+}
+
+// checkOrderManageParams
+func checkOrderManageParams(orderManage request.OrderManage) (int, model.OrderManage) {
+	// check orderManage exist
+	if orderManage.ClientId == 0 {
+		return ecode.InvalidParams, model.OrderManage{}
+	}
+
+	if orderManage.Number == "" {
+		return ecode.InvalidParams, model.OrderManage{}
+	}
+
+	if orderManage.ProblemDescription == "" {
+		return ecode.InvalidParams, model.OrderManage{}
+	}
+
+	if orderManage.OrderType == 0 {
+		return ecode.InvalidParams, model.OrderManage{}
+	}
+
+	return ecode.OK, model.OrderManage{
+		Name:               orderManage.Name,
+		ClientId:           orderManage.ClientId,
+		Number:             orderManage.Number,
+		OrderType:          orderManage.OrderType,
+		ContactId:          orderManage.ContactId,
+		ReportSourceId:     orderManage.ReportSourceId,
+		SourceSheet:        orderManage.SourceSheet,
+		ProblemDescription: orderManage.ProblemDescription,
+		File:               orderManage.File,
+	}
+}
diff --git a/api/v1/serviceContracts.go b/api/v1/serviceContracts.go
index a4ad8c5..5fb3329 100644
--- a/api/v1/serviceContracts.go
+++ b/api/v1/serviceContracts.go
@@ -17,7 +17,7 @@
 //	@Tags		ServiceContract
 //	@Summary	娣诲姞鏈嶅姟鍚堝悓
 //	@Produce	application/json
-//	@Param		object	body		request.AddServiceContract true	"鏌ヨ鍙傛暟"
+//	@Param		object	body		request.AddServiceContract	true	"鏌ヨ鍙傛暟"
 //	@Success	200		{object}	contextx.Response{}
 //	@Router		/api/serviceContract/add [post]
 func (s *ServiceContractApi) Add(c *gin.Context) {
@@ -71,7 +71,7 @@
 //	@Tags		ServiceContract
 //	@Summary	鏇存柊鏈嶅姟鍚堝悓
 //	@Produce	application/json
-//	@Param		object	body		request.UpdateServiceContract true	"鏌ヨ鍙傛暟"
+//	@Param		object	body		request.UpdateServiceContract	true	"鏌ヨ鍙傛暟"
 //	@Success	200		{object}	contextx.Response{}
 //	@Router		/api/serviceContract/update [put]
 func (s *ServiceContractApi) Update(c *gin.Context) {
@@ -103,7 +103,7 @@
 //	@Tags		ServiceContract
 //	@Summary	鏈嶅姟鍚堝悓鍒楄〃
 //	@Produce	application/json
-//	@Success	200		{object}	contextx.Response{data=response.ServiceContractsResponse}
+//	@Success	200	{object}	contextx.Response{data=response.ServiceContractsResponse}
 //	@Router		/api/serviceContract/list [get]
 func (s *ServiceContractApi) List(c *gin.Context) {
 	ctx, ok := contextx.NewContext(c, nil)
diff --git a/docs/docs.go b/docs/docs.go
index d8a6f92..dea128f 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -1818,6 +1818,113 @@
                 }
             }
         },
+        "/api/orderManage/add": {
+            "post": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "OrderManage"
+                ],
+                "summary": "娣诲姞璁㈠崟",
+                "parameters": [
+                    {
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.AddOrderManage"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
+        "/api/orderManage/delete/{id}": {
+            "delete": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "OrderManage"
+                ],
+                "summary": "鍒犻櫎璁㈠崟",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "id",
+                        "in": "path",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
+        "/api/orderManage/list": {
+            "get": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "OrderManage"
+                ],
+                "summary": "璁㈠崟鍒楄〃",
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
+        "/api/orderManage/update": {
+            "put": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "OrderManage"
+                ],
+                "summary": "鏇存柊璁㈠崟",
+                "parameters": [
+                    {
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.UpdateOrderManage"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/api/plan/add": {
             "post": {
                 "produces": [
@@ -5723,6 +5830,38 @@
                 }
             }
         },
+        "request.AddOrderManage": {
+            "type": "object",
+            "properties": {
+                "clientId": {
+                    "type": "integer"
+                },
+                "contactId": {
+                    "type": "integer"
+                },
+                "file": {
+                    "type": "string"
+                },
+                "name": {
+                    "type": "string"
+                },
+                "number": {
+                    "type": "string"
+                },
+                "orderType": {
+                    "type": "integer"
+                },
+                "problemDescription": {
+                    "type": "string"
+                },
+                "reportSourceId": {
+                    "type": "integer"
+                },
+                "sourceSheet": {
+                    "type": "integer"
+                }
+            }
+        },
         "request.AddPlan": {
             "type": "object",
             "properties": {
@@ -7019,6 +7158,41 @@
                 }
             }
         },
+        "request.UpdateOrderManage": {
+            "type": "object",
+            "properties": {
+                "clientId": {
+                    "type": "integer"
+                },
+                "contactId": {
+                    "type": "integer"
+                },
+                "file": {
+                    "type": "string"
+                },
+                "id": {
+                    "type": "integer"
+                },
+                "name": {
+                    "type": "string"
+                },
+                "number": {
+                    "type": "string"
+                },
+                "orderType": {
+                    "type": "integer"
+                },
+                "problemDescription": {
+                    "type": "string"
+                },
+                "reportSourceId": {
+                    "type": "integer"
+                },
+                "sourceSheet": {
+                    "type": "integer"
+                }
+            }
+        },
         "request.UpdatePlan": {
             "type": "object",
             "properties": {
diff --git a/docs/swagger.json b/docs/swagger.json
index 6a007ec..fe36c36 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -1806,6 +1806,113 @@
                 }
             }
         },
+        "/api/orderManage/add": {
+            "post": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "OrderManage"
+                ],
+                "summary": "娣诲姞璁㈠崟",
+                "parameters": [
+                    {
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.AddOrderManage"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
+        "/api/orderManage/delete/{id}": {
+            "delete": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "OrderManage"
+                ],
+                "summary": "鍒犻櫎璁㈠崟",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "id",
+                        "in": "path",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
+        "/api/orderManage/list": {
+            "get": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "OrderManage"
+                ],
+                "summary": "璁㈠崟鍒楄〃",
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
+        "/api/orderManage/update": {
+            "put": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "OrderManage"
+                ],
+                "summary": "鏇存柊璁㈠崟",
+                "parameters": [
+                    {
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.UpdateOrderManage"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/api/plan/add": {
             "post": {
                 "produces": [
@@ -5711,6 +5818,38 @@
                 }
             }
         },
+        "request.AddOrderManage": {
+            "type": "object",
+            "properties": {
+                "clientId": {
+                    "type": "integer"
+                },
+                "contactId": {
+                    "type": "integer"
+                },
+                "file": {
+                    "type": "string"
+                },
+                "name": {
+                    "type": "string"
+                },
+                "number": {
+                    "type": "string"
+                },
+                "orderType": {
+                    "type": "integer"
+                },
+                "problemDescription": {
+                    "type": "string"
+                },
+                "reportSourceId": {
+                    "type": "integer"
+                },
+                "sourceSheet": {
+                    "type": "integer"
+                }
+            }
+        },
         "request.AddPlan": {
             "type": "object",
             "properties": {
@@ -7007,6 +7146,41 @@
                 }
             }
         },
+        "request.UpdateOrderManage": {
+            "type": "object",
+            "properties": {
+                "clientId": {
+                    "type": "integer"
+                },
+                "contactId": {
+                    "type": "integer"
+                },
+                "file": {
+                    "type": "string"
+                },
+                "id": {
+                    "type": "integer"
+                },
+                "name": {
+                    "type": "string"
+                },
+                "number": {
+                    "type": "string"
+                },
+                "orderType": {
+                    "type": "integer"
+                },
+                "problemDescription": {
+                    "type": "string"
+                },
+                "reportSourceId": {
+                    "type": "integer"
+                },
+                "sourceSheet": {
+                    "type": "integer"
+                }
+            }
+        },
         "request.UpdatePlan": {
             "type": "object",
             "properties": {
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index 9e073d8..490ca68 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -996,6 +996,27 @@
       start_time:
         type: string
     type: object
+  request.AddOrderManage:
+    properties:
+      clientId:
+        type: integer
+      contactId:
+        type: integer
+      file:
+        type: string
+      name:
+        type: string
+      number:
+        type: string
+      orderType:
+        type: integer
+      problemDescription:
+        type: string
+      reportSourceId:
+        type: integer
+      sourceSheet:
+        type: integer
+    type: object
   request.AddPlan:
     properties:
       plan:
@@ -1874,6 +1895,29 @@
         type: string
       start_time:
         type: string
+    type: object
+  request.UpdateOrderManage:
+    properties:
+      clientId:
+        type: integer
+      contactId:
+        type: integer
+      file:
+        type: string
+      id:
+        type: integer
+      name:
+        type: string
+      number:
+        type: string
+      orderType:
+        type: integer
+      problemDescription:
+        type: string
+      reportSourceId:
+        type: integer
+      sourceSheet:
+        type: integer
     type: object
   request.UpdatePlan:
     properties:
@@ -3597,6 +3641,74 @@
       summary: 鏇存柊涓昏鍗�
       tags:
       - MasterOrder
+  /api/orderManage/add:
+    post:
+      parameters:
+      - description: 鏌ヨ鍙傛暟
+        in: body
+        name: object
+        required: true
+        schema:
+          $ref: '#/definitions/request.AddOrderManage'
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/contextx.Response'
+      summary: 娣诲姞璁㈠崟
+      tags:
+      - OrderManage
+  /api/orderManage/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:
+      - OrderManage
+  /api/orderManage/list:
+    get:
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/contextx.Response'
+      summary: 璁㈠崟鍒楄〃
+      tags:
+      - OrderManage
+  /api/orderManage/update:
+    put:
+      parameters:
+      - description: 鏌ヨ鍙傛暟
+        in: body
+        name: object
+        required: true
+        schema:
+          $ref: '#/definitions/request.UpdateOrderManage'
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/contextx.Response'
+      summary: 鏇存柊璁㈠崟
+      tags:
+      - OrderManage
   /api/plan/add:
     post:
       parameters:
diff --git a/model/index.go b/model/index.go
index 263d837..fec053b 100644
--- a/model/index.go
+++ b/model/index.go
@@ -56,6 +56,7 @@
 		Contract{},
 		Plan{},
 		ServiceContract{},
+		OrderManage{},
 	)
 	return err
 }
diff --git a/model/orderManage.go b/model/orderManage.go
new file mode 100644
index 0000000..8dde20b
--- /dev/null
+++ b/model/orderManage.go
@@ -0,0 +1,79 @@
+package model
+
+import (
+	"aps_crm/pkg/mysqlx"
+	"gorm.io/gorm"
+)
+
+type (
+	OrderManage struct {
+		Id                 int    `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
+		Name               string `json:"name" gorm:"column:name;type:varchar(255);comment:鍚堝悓鍚嶇О"`
+		ClientId           int    `json:"clientId" gorm:"column:client_id;type:int;comment:瀹㈡埛id"`
+		Number             string `json:"number" gorm:"column:number;type:varchar(255);comment:鍚堝悓缂栧彿"`
+		ContactId          int    `json:"contactId" gorm:"column:contact_id;type:int;comment:鑱旂郴浜篿d"`
+		OrderType          int    `json:"orderType" gorm:"column:order_type;type:int;comment:宸ュ崟绫诲瀷"`
+		ReportSourceId     int    `json:"reportSourceId" gorm:"column:report_source_id;type:int;comment:鎶ュ鏉ユ簮id"`
+		SourceSheet        int    `json:"sourceSheet" gorm:"column:source_sheet;type:int;comment:鏉ユ簮鍗曟嵁"`
+		ProblemDescription string `json:"problemDescription" gorm:"column:problem_description;type:text;comment:闂鎻忚堪"`
+		File               string `json:"file" gorm:"column:file;type:varchar(255);comment:闄勪欢"`
+	}
+
+	OrderManageSearch struct {
+		OrderManage
+		Orm *gorm.DB
+	}
+)
+
+func (OrderManage) TableName() string {
+	return "order_manage"
+}
+
+func NewOrderManageSearch() *OrderManageSearch {
+	return &OrderManageSearch{
+		Orm: mysqlx.GetDB(),
+	}
+}
+
+func (slf *OrderManageSearch) build() *gorm.DB {
+	var db = slf.Orm.Model(&OrderManage{})
+	if slf.Id != 0 {
+		db = db.Where("id = ?", slf.Id)
+	}
+
+	return db
+}
+
+func (slf *OrderManageSearch) Create(record *OrderManage) error {
+	var db = slf.build()
+	return db.Create(record).Error
+}
+
+func (slf *OrderManageSearch) Update(record *OrderManage) error {
+	var db = slf.build()
+	return db.Updates(record).Error
+}
+
+func (slf *OrderManageSearch) Delete() error {
+	var db = slf.build()
+	return db.Delete(&OrderManage{}).Error
+}
+
+func (slf *OrderManageSearch) Find() (*OrderManage, error) {
+	var db = slf.build()
+	var record = new(OrderManage)
+	err := db.First(record).Error
+	return record, err
+}
+
+func (slf *OrderManageSearch) FindAll() ([]*OrderManage, error) {
+	var db = slf.build()
+	var record = make([]*OrderManage, 0)
+	err := db.Find(&record).Error
+	return record, err
+}
+
+func (slf *OrderManageSearch) SetId(id int) *OrderManageSearch {
+	slf.Id = id
+	return slf
+}
diff --git a/model/request/orderManage.go b/model/request/orderManage.go
new file mode 100644
index 0000000..2a468a2
--- /dev/null
+++ b/model/request/orderManage.go
@@ -0,0 +1,22 @@
+package request
+
+type AddOrderManage struct {
+	OrderManage
+}
+
+type OrderManage struct {
+	Name               string `json:"name"`
+	ClientId           int    `json:"clientId"`
+	Number             string `json:"number"`
+	ContactId          int    `json:"contactId"`
+	OrderType          int    `json:"orderType"`
+	ReportSourceId     int    `json:"reportSourceId"`
+	SourceSheet        int    `json:"sourceSheet"`
+	ProblemDescription string `json:"problemDescription"`
+	File               string `json:"file"`
+}
+
+type UpdateOrderManage struct {
+	Id int `json:"id"`
+	OrderManage
+}
diff --git a/model/response/response.go b/model/response/response.go
index 2bcb7f9..9bc5c0b 100644
--- a/model/response/response.go
+++ b/model/response/response.go
@@ -157,4 +157,8 @@
 	ServiceContractsResponse struct {
 		List []*model.ServiceContract `json:"list"`
 	}
+
+	OrderManageResponse struct {
+		List []*model.OrderManage `json:"list"`
+	}
 )
diff --git a/pkg/ecode/code.go b/pkg/ecode/code.go
index 3ad6c13..623a843 100644
--- a/pkg/ecode/code.go
+++ b/pkg/ecode/code.go
@@ -239,4 +239,12 @@
 	SContractSetErr    = 3300004 // 璁剧疆鏈嶅姟鍚堝悓澶辫触
 	SContractUpdateErr = 3300005 // 鏇存柊鏈嶅姟鍚堝悓澶辫触
 	SContractDeleteErr = 3300006 // 鍒犻櫎鏈嶅姟鍚堝悓澶辫触
+
+	OrderManageExist     = 3400001 // 璁㈠崟绠$悊宸插瓨鍦�
+	OrderManageNotExist  = 3400002 // 璁㈠崟绠$悊涓嶅瓨鍦�
+	OrderManageListErr   = 3400003 // 鑾峰彇璁㈠崟绠$悊鍒楄〃澶辫触
+	OrderManageSetErr    = 3400004 // 璁剧疆璁㈠崟绠$悊澶辫触
+	OrderManageUpdateErr = 3400005 // 鏇存柊璁㈠崟绠$悊澶辫触
+	OrderManageDeleteErr = 3400006 // 鍒犻櫎璁㈠崟绠$悊澶辫触
+
 )
diff --git a/router/index.go b/router/index.go
index d1e3491..ce4efd2 100644
--- a/router/index.go
+++ b/router/index.go
@@ -46,6 +46,7 @@
 	ContractRouter
 	PlanRouter
 	ServiceContractRouter
+	OrderManageRouter
 }
 
 func InitRouter() *gin.Engine {
@@ -109,6 +110,7 @@
 		routerGroup.InitContractRouter(PrivateGroup)          // 娉ㄥ唽contract璺敱
 		routerGroup.InitPlanRouter(PrivateGroup)              // 娉ㄥ唽plan璺敱
 		routerGroup.InitServiceContractRouter(PrivateGroup)   // 娉ㄥ唽serviceContract璺敱
+		routerGroup.InitOrderManageRouter(PrivateGroup)       // 娉ㄥ唽orderManage璺敱
 	}
 	return Router
 }
diff --git a/router/orderManage.go b/router/orderManage.go
new file mode 100644
index 0000000..0774329
--- /dev/null
+++ b/router/orderManage.go
@@ -0,0 +1,19 @@
+package router
+
+import (
+	v1 "aps_crm/api/v1"
+	"github.com/gin-gonic/gin"
+)
+
+type OrderManageRouter struct{}
+
+func (o *OrderManageRouter) InitOrderManageRouter(router *gin.RouterGroup) {
+	orderManageRouter := router.Group("orderManage")
+	orderManageApi := v1.ApiGroup.OrderManageApi
+	{
+		orderManageRouter.POST("add", orderManageApi.Add)             // 娣诲姞璁㈠崟
+		orderManageRouter.DELETE("delete/:id", orderManageApi.Delete) // 鍒犻櫎璁㈠崟
+		orderManageRouter.PUT("update", orderManageApi.Update)        // 鏇存柊璁㈠崟
+		orderManageRouter.GET("list", orderManageApi.List)            // 鑾峰彇璁㈠崟鍒楄〃
+	}
+}
diff --git a/service/index.go b/service/index.go
index 53f805d..40b102e 100644
--- a/service/index.go
+++ b/service/index.go
@@ -35,6 +35,7 @@
 	ContractService
 	PlanService
 	SContractService
+	OrderManageService
 }
 
 var ServiceGroup = new(Group)
diff --git a/service/orderManage.go b/service/orderManage.go
new file mode 100644
index 0000000..93b8219
--- /dev/null
+++ b/service/orderManage.go
@@ -0,0 +1,54 @@
+package service
+
+import (
+	"aps_crm/model"
+	"aps_crm/pkg/ecode"
+)
+
+type OrderManageService struct{}
+
+func (OrderManageService) AddOrderManage(orderManage *model.OrderManage) int {
+	err := model.NewOrderManageSearch().Create(orderManage)
+	if err != nil {
+		return ecode.OrderManageExist
+	}
+
+	return ecode.OK
+}
+
+func (OrderManageService) DeleteOrderManage(id int) int {
+	_, err := model.NewOrderManageSearch().SetId(id).Find()
+	if err != nil {
+		return ecode.OrderManageNotExist
+	}
+
+	err = model.NewOrderManageSearch().SetId(id).Delete()
+	if err != nil {
+		return ecode.OrderManageNotExist
+	}
+	return ecode.OK
+}
+
+func (OrderManageService) GetOrderManageList() ([]*model.OrderManage, int) {
+	list, err := model.NewOrderManageSearch().FindAll()
+	if err != nil {
+		return nil, ecode.OrderManageListErr
+	}
+
+	return list, ecode.OK
+}
+
+func (OrderManageService) UpdateOrderManage(orderManage *model.OrderManage) int {
+	// check orderManage exist
+	_, err := model.NewOrderManageSearch().SetId(orderManage.Id).Find()
+	if err != nil {
+		return ecode.OrderManageNotExist
+	}
+
+	err = model.NewOrderManageSearch().SetId(orderManage.Id).Update(orderManage)
+	if err != nil {
+		return ecode.OrderManageSetErr
+	}
+
+	return ecode.OK
+}

--
Gitblit v1.8.0