add
wangpengfei
2023-07-13 0354b44ea0548b573997557cec536555b0b69520
add

OrderManage 服务合同
add, Delete, update, list
5个文件已添加
10个文件已修改
811 ■■■■■ 已修改文件
api/v1/index.go 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/v1/orderManage.go 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/v1/serviceContracts.go 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/docs.go 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/swagger.json 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/swagger.yaml 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
model/index.go 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
model/orderManage.go 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
model/request/orderManage.go 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
model/response/response.go 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pkg/ecode/code.go 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
router/index.go 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
router/orderManage.go 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/index.go 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/orderManage.go 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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
)
api/v1/orderManage.go
New file
@@ -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,
    }
}
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)
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": {
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": {
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:
model/index.go
@@ -56,6 +56,7 @@
        Contract{},
        Plan{},
        ServiceContract{},
        OrderManage{},
    )
    return err
}
model/orderManage.go
New file
@@ -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:联系人id"`
        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
}
model/request/orderManage.go
New file
@@ -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
}
model/response/response.go
@@ -157,4 +157,8 @@
    ServiceContractsResponse struct {
        List []*model.ServiceContract `json:"list"`
    }
    OrderManageResponse struct {
        List []*model.OrderManage `json:"list"`
    }
)
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 // 删除订单管理失败
)
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
}
router/orderManage.go
New file
@@ -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)            // 获取订单列表
    }
}
service/index.go
@@ -35,6 +35,7 @@
    ContractService
    PlanService
    SContractService
    OrderManageService
}
var ServiceGroup = new(Group)
service/orderManage.go
New file
@@ -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
}