zhangqian
2024-04-07 a8914a16b23e93f6bfd12bcfd5cbe8b24cf7eb84
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
package models
 
import (
    "fmt"
    "gorm.io/gorm"
    "wms/pkg/mysqlx"
)
 
type (
    // LogisticCompany 物流公司
    //todo 与aps共用,修改字段要同步修改aps
    LogisticCompany struct {
        BaseModelString
        Name string `gorm:"unique;type:varchar(191);not null;comment:名称" json:"name"`
        // 月结账号
        MonthlyAccount string `gorm:"type:varchar(191);comment:月结账号" json:"monthly_account"`
        // 联系人
        Contact string `gorm:"type:varchar(191);comment:联系人" json:"contact"`
        // 联系电话
        ContactPhone string `gorm:"type:varchar(191);comment:联系电话" json:"contact_phone"`
        // 隐藏
        Hidden bool `gorm:"type:tinyint(1);comment:是否隐藏" json:"hidden"`
    }
 
    LogisticCompanySearch struct {
        LogisticCompany
        Order    string
        PageNum  int
        PageSize int
        Orm      *gorm.DB
    }
)
 
func (slf LogisticCompany) TableName() string {
    return "logistic_company"
}
 
func NewLogisticCompanySearch() *LogisticCompanySearch {
    return &LogisticCompanySearch{Orm: mysqlx.GetDB()}
}
 
func (slf *LogisticCompanySearch) SetOrm(tx *gorm.DB) *LogisticCompanySearch {
    slf.Orm = tx
    return slf
}
 
func (slf *LogisticCompanySearch) SetPage(page, size int) *LogisticCompanySearch {
    slf.PageNum, slf.PageSize = page, size
    return slf
}
 
func (slf *LogisticCompanySearch) SetOrder(order string) *LogisticCompanySearch {
    slf.Order = order
    return slf
}
 
func (slf *LogisticCompanySearch) SetID(id string) *LogisticCompanySearch {
    slf.ID = id
    return slf
}
 
func (slf *LogisticCompanySearch) SetName(name string) *LogisticCompanySearch {
    slf.Name = name
    return slf
}
 
func (slf *LogisticCompanySearch) SetKeyword(keyword string) *LogisticCompanySearch {
    slf.Name = keyword
    return slf
}
 
func (slf *LogisticCompanySearch) build() *gorm.DB {
    var db = slf.Orm.Table(slf.TableName())
    if slf.ID != "" {
        db = db.Where("id = ?", slf.ID)
    }
    if slf.Name != "" {
        db = db.Where("name like ?", "%"+slf.Name+"%")
    }
    if slf.Order != "" {
        db = db.Order(slf.Order)
    }
    if slf.PageNum > 0 && slf.PageSize > 0 {
        db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize)
    }
    return db
}
 
func (slf *LogisticCompanySearch) CreateBatch(data []LogisticCompany) error {
    var db = slf.build()
    if err := db.Create(&data).Error; err != nil {
        return err
    }
 
    return nil
}
 
func (slf *LogisticCompanySearch) Create(record *LogisticCompany) error {
    var db = slf.build()
    if err := db.Create(record).Error; err != nil {
        return err
    }
 
    return nil
}
 
func (slf *LogisticCompanySearch) Save(record *LogisticCompany) error {
    var db = slf.build()
    if err := db.Save(record).Error; err != nil {
        return err
    }
 
    return nil
}
 
func (slf *LogisticCompanySearch) Delete() error {
    var db = slf.build()
    if err := db.Delete(slf).Error; err != nil {
        return err
    }
 
    return nil
}
 
func (slf *LogisticCompanySearch) Find() ([]LogisticCompany, int64, error) {
    var db = slf.build()
    var records []LogisticCompany
    var total int64
 
    if err := db.Count(&total).Error; err != nil {
        return nil, 0, err
    }
 
    if slf.PageNum*slf.PageSize > 0 {
        db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize)
    }
    if err := db.Find(&records).Error; err != nil {
        return records, total, fmt.Errorf("find records err: %v", err)
    }
 
    return records, total, nil
}
 
func (slf *LogisticCompanySearch) FindNotTotal() ([]LogisticCompany, error) {
    var db = slf.build()
    var records []LogisticCompany
 
    if err := db.Find(&records).Error; err != nil {
        return records, fmt.Errorf("find records err: %v", err)
    }
 
    return records, nil
}