From cfb6fbce3687230ccb4704dbc0c87fd411b39af1 Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期三, 20 九月 2023 17:37:22 +0800 Subject: [PATCH] 仓库字段添加与功能修改 --- models/location.go | 56 ++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 38 insertions(+), 18 deletions(-) diff --git a/models/location.go b/models/location.go index 5bcffe7..a11b1a9 100644 --- a/models/location.go +++ b/models/location.go @@ -12,15 +12,15 @@ Location struct { WmsModel Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` - Name string `json:"name" gorm:"index;type:varchar(255);not null;comment:浣嶇疆鍚嶇О"` //浣嶇疆鍚嶇О - ParentId int `json:"parentId" gorm:"type:int;not null"` //涓婄骇id - CompanyId int `json:"companyId" gorm:"type:int;not null"` //鍏徃id - Company Company `json:"company" gorm:"foreignKey:CompanyId"` //鍏徃 - Type constvar.LocationType `json:"type" gorm:"type:int(11);not null;comment:浣嶇疆绫诲瀷"` //浣嶇疆绫诲瀷 - CountFrequency int `json:"countFrequency" gorm:"type:tinyint;not null;comment:鐩樼偣棰戠巼锛堝ぉ锛�"` //鐩樼偣棰戠巼锛堝ぉ锛� - IsScrapLocation bool `json:"isScrapLocation" gorm:"type:tinyint;not null;comment:鏄惁鎶ュ簾浣嶇疆"` //鏄惁鎶ュ簾浣嶇疆 - IsReturnLocation bool `json:"isReturnLocation" gorm:"type:tinyint;not null;comment:鏄惁閫�璐т綅缃�"` //鏄惁閫�璐т綅缃� - ReplenishLocation bool `json:"replenishLocation" gorm:"type:tinyint;not null;comment:鏄惁琛ュ厖浣嶇疆"` //鏄惁琛ュ厖浣嶇疆 + Name string `json:"name" gorm:"index;type:varchar(255);not null;comment:浣嶇疆鍚嶇О"` //浣嶇疆鍚嶇О + ParentId string `json:"parentId" gorm:"type:varchar(255)"` //涓婄骇id + CompanyId int `json:"companyId" gorm:"type:int"` //鍏徃id + Company Company `json:"company" gorm:"foreignKey:CompanyId"` //鍏徃 + Type constvar.LocationType `json:"type" gorm:"type:int(11);comment:浣嶇疆绫诲瀷"` //浣嶇疆绫诲瀷 + CountFrequency int `json:"countFrequency" gorm:"type:tinyint;comment:鐩樼偣棰戠巼锛堝ぉ锛�"` //鐩樼偣棰戠巼锛堝ぉ锛� + IsScrapLocation bool `json:"isScrapLocation" gorm:"type:tinyint;comment:鏄惁鎶ュ簾浣嶇疆"` //鏄惁鎶ュ簾浣嶇疆 + IsReturnLocation bool `json:"isReturnLocation" gorm:"type:tinyint;comment:鏄惁閫�璐т綅缃�"` //鏄惁閫�璐т綅缃� + ReplenishLocation bool `json:"replenishLocation" gorm:"type:tinyint;comment:鏄惁琛ュ厖浣嶇疆"` //鏄惁琛ュ厖浣嶇疆 } LocationSearch struct { @@ -31,6 +31,7 @@ Keyword string Orm *gorm.DB Preload bool + Parents []string } ) @@ -57,8 +58,12 @@ return slf } -func (slf *LocationSearch) SetID(id uint) *LocationSearch { - slf.ID = id +func (slf *LocationSearch) SetID(id int) *LocationSearch { + slf.Id = id + return slf +} +func (slf *LocationSearch) SetParents(ids []string) *LocationSearch { + slf.Parents = ids return slf } @@ -82,7 +87,7 @@ return slf } -func (slf *LocationSearch) SetParentId(parentId int) *LocationSearch { +func (slf *LocationSearch) SetParentId(parentId string) *LocationSearch { slf.ParentId = parentId return slf } @@ -93,10 +98,10 @@ } func (slf *LocationSearch) build() *gorm.DB { - var db = slf.Orm.Model(&Location{}) + var db = slf.Orm.Table(slf.TableName()) - if slf.ID != 0 { - db = db.Where("id = ?", slf.ID) + if slf.Id != 0 { + db = db.Where("id = ?", slf.Id) } if slf.Order != "" { @@ -115,11 +120,14 @@ db = db.Where("type=?", slf.Type) } - if slf.ParentId != 0 { + if slf.ParentId != "" { db = db.Where("parent_id=?", slf.ParentId) } if slf.CompanyId != 0 { db = db.Where("company_id=?", slf.CompanyId) + } + if len(slf.Parents) != 0 { + db = db.Where("parent_id in (?)", slf.Parents) } return db @@ -134,6 +142,16 @@ } return nil +} + +func (slf *LocationSearch) CreateReturnId(record *Location) (int, error) { + var db = slf.build() + + if err := db.Create(record).Error; err != nil { + return 0, err + } + + return record.Id, nil } // CreateBatch 鎵归噺鎻掑叆 @@ -183,7 +201,7 @@ func (slf *LocationSearch) Delete() error { var db = slf.build() - return db.Delete(&Location{}).Error + return db.Unscoped().Delete(&Location{}).Error } func (slf *LocationSearch) First() (*Location, error) { @@ -278,7 +296,9 @@ records = make([]*Location, 0) db = slf.build() ) - if err := db.Find(&records); err != nil { + err := db.Find(&records) + if err != nil { + fmt.Println(err) return records, fmt.Errorf("func FindAll err: %v", err) } return records, nil -- Gitblit v1.8.0