fix
wangpengfei
2023-08-14 899f9d83c3f580ac9d641cd76551d3e0afcf0adf
fix

add search criteria to subOrder and masterOrder
7个文件已修改
90 ■■■■■ 已修改文件
api/v1/subOrder.go 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/docs.go 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/swagger.json 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/swagger.yaml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
model/request/subOrder.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
model/subOrder.go 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/subOrder.go 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/v1/subOrder.go
@@ -98,7 +98,6 @@
    ctx.Ok()
}
// checkSubOrderParams
// 检查子订单参数
func checkSubOrderParams(subOrder request.SubOrder) (errCode int, newSubOrder model.SubOrder) {
@@ -134,14 +133,14 @@
        return
    }
    subOrders, total, errCode := subOrderService.GetSubOrderList(params.Page, params.PageSize, params.Keyword)
    subOrders, total, errCode := subOrderService.GetSubOrderList(params.Page, params.PageSize, params.SearchMap)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
    }
    ctx.OkWithDetailed(response.SubOrderResponse{
        List: subOrders,
        List:  subOrders,
        Count: int(total),
    })
}
}
docs/docs.go
@@ -15036,9 +15036,6 @@
        "request.GetSubOrderList": {
            "type": "object",
            "properties": {
                "keyword": {
                    "type": "string"
                },
                "page": {
                    "description": "页码",
                    "type": "integer"
@@ -15046,6 +15043,11 @@
                "pageSize": {
                    "description": "每页大小",
                    "type": "integer"
                },
                "search_map": {
                    "description": "搜索条件: map[string]interface{}{\"name\": \"xxx\"}; {\"number\": \"销售子单号\", \"client_name\": \"客户名称\", \"master_order_number\": \"销售总单号\", \"member_name\": \"销售负责人\", \"master_order_id\": \"销售总单id\"}",
                    "type": "object",
                    "additionalProperties": true
                }
            }
        },
docs/swagger.json
@@ -15024,9 +15024,6 @@
        "request.GetSubOrderList": {
            "type": "object",
            "properties": {
                "keyword": {
                    "type": "string"
                },
                "page": {
                    "description": "页码",
                    "type": "integer"
@@ -15034,6 +15031,11 @@
                "pageSize": {
                    "description": "每页大小",
                    "type": "integer"
                },
                "search_map": {
                    "description": "搜索条件: map[string]interface{}{\"name\": \"xxx\"}; {\"number\": \"销售子单号\", \"client_name\": \"客户名称\", \"master_order_number\": \"销售总单号\", \"member_name\": \"销售负责人\", \"master_order_id\": \"销售总单id\"}",
                    "type": "object",
                    "additionalProperties": true
                }
            }
        },
docs/swagger.yaml
@@ -3472,14 +3472,18 @@
    type: object
  request.GetSubOrderList:
    properties:
      keyword:
        type: string
      page:
        description: 页码
        type: integer
      pageSize:
        description: 每页大小
        type: integer
      search_map:
        additionalProperties: true
        description: '搜索条件: map[string]interface{}{"name": "xxx"}; {"number": "销售子单号",
          "client_name": "客户名称", "master_order_number": "销售总单号", "member_name": "销售负责人",
          "master_order_id": "销售总单id"}'
        type: object
    type: object
  request.GetUserList:
    properties:
model/request/subOrder.go
@@ -21,5 +21,5 @@
type GetSubOrderList struct {
    PageInfo
    Keyword string `json:"keyword"`
    SearchMap map[string]interface{} `json:"search_map"` // 搜索条件: map[string]interface{}{"name": "xxx"}; {"number": "销售子单号", "client_name": "客户名称", "master_order_number": "销售总单号", "member_name": "销售负责人", "master_order_id": "销售总单id"}
}
model/subOrder.go
@@ -20,11 +20,11 @@
    SubOrderSearch struct {
        SubOrder
        Orm      *gorm.DB
        Keyword  string
        OrderBy  string
        PageNum  int
        PageSize int
        Orm       *gorm.DB
        SearchMap map[string]interface{}
        OrderBy   string
        PageNum   int
        PageSize  int
    }
)
@@ -40,11 +40,36 @@
func (slf *SubOrderSearch) build() *gorm.DB {
    var db = slf.Orm.Model(&SubOrder{})
    if slf.Keyword != "" {
        db = db.Where("name LIKE ?", "%"+slf.Keyword+"%")
    }
    if slf.Id != 0 {
        db = db.Where("id = ?", slf.Id)
    }
    if len(slf.SearchMap) > 0 {
        for key, value := range slf.SearchMap {
            switch v := value.(type) {
            case string:
                if key == "number" {
                    db = db.Where(key+" LIKE ?", "%"+v+"%")
                }
                if key == "client_name" {
                    db = db.Joins("Client").Where("Client.name LIKE ?", "%"+v+"%")
                }
                if key == "master_order_number" {
                    db = db.Joins("MasterOrder").Where("MasterOrder.number LIKE ?", "%"+v+"%")
                }
                if key == "member_name" {
                    db = db.Joins("Member").Where("User.username LIKE ?", "%"+v+"%")
                }
            case int:
                if key == "master_order_id" {
                    db = db.Where("master_order_id = ?", v)
                }
            }
        }
    }
    return db
@@ -91,11 +116,6 @@
    return slf
}
func (slf *SubOrderSearch) SetKeyword(keyword string) *SubOrderSearch {
    slf.Keyword = keyword
    return slf
}
func (slf *SubOrderSearch) SetPage(page, size int) *SubOrderSearch {
    slf.PageNum, slf.PageSize = page, size
    return slf
@@ -104,4 +124,9 @@
func (slf *SubOrderSearch) SetOrder(order string) *SubOrderSearch {
    slf.OrderBy = order
    return slf
}
}
func (slf *SubOrderSearch) SetSearchMap(data map[string]interface{}) *SubOrderSearch {
    slf.SearchMap = data
    return slf
}
service/subOrder.go
@@ -44,9 +44,9 @@
    return ecode.OK
}
func (SubOrderService) GetSubOrderList(page, pageSize int, keyword string) ([]*model.SubOrder, int64, int) {
func (SubOrderService) GetSubOrderList(page, pageSize int, data map[string]interface{}) ([]*model.SubOrder, int64, int) {
    // get contact list
    contacts, total, err := model.NewSubOrderSearch().SetKeyword(keyword).SetPage(page, pageSize).FindAll()
    contacts, total, err := model.NewSubOrderSearch().SetSearchMap(data).SetPage(page, pageSize).SetSearchMap(data).FindAll()
    if err != nil {
        return nil, 0, ecode.SubOrderListErr
    }