liujiandao
2023-11-17 7a3a9a739392d048655efac6a28592410a8809c2
在库产品类型修改
2个文件已修改
47 ■■■■■ 已修改文件
controllers/product_controller.go 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/location_product_amount.go 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/product_controller.go
@@ -214,6 +214,22 @@
        return
    }
    //更新在库的产品类型
    if params.CategoryId > 0 {
        find, _ := models.NewLocationProductAmountSearch().SetProductId(params.ID).Find()
        if len(find) > 0 {
            var ids []int
            for _, f := range find {
                if f.ProductCategoryID != params.CategoryId {
                    ids = append(ids, f.Id)
                }
            }
            m := make(map[string]interface{})
            m["productCategoryId"] = params.CategoryId
            _ = models.NewLocationProductAmountSearch().SetIds(ids).UpdateByMap(m)
        }
    }
    materialAttachmentList := []*models.MaterialAttachment{}
    for _, v := range params.AttachmentIDs {
        ma := &models.MaterialAttachment{MaterialID: params.ID, AttachmentID: v}
models/location_product_amount.go
@@ -35,6 +35,7 @@
        //LocationProductIds []int
        LocationIds []int
        ProductIds  []string
        Ids         []int
    }
    LocationProductAmountWithOperation struct {
@@ -80,6 +81,11 @@
func (slf *LocationProductAmountSearch) SetID(id int) *LocationProductAmountSearch {
    slf.Id = id
    return slf
}
func (slf *LocationProductAmountSearch) SetIds(ids []int) *LocationProductAmountSearch {
    slf.Ids = ids
    return slf
}
@@ -151,6 +157,10 @@
    if slf.ProductId != "" {
        db = db.Where("product_id=?", slf.ProductId)
    }
    if len(slf.Ids) > 0 {
        db = db.Where("id in (?)", slf.Ids)
    }
    return db
@@ -247,3 +257,24 @@
    return record, db.First(&record)
}
func (slf *LocationProductAmountSearch) Count() (int64, error) {
    var (
        total int64
        db    = slf.build()
    )
    err := db.Count(&total).Error
    return total, err
}
func (slf *LocationProductAmountSearch) UpdateByMap(upMap map[string]interface{}) error {
    var (
        db = slf.build()
    )
    if err := db.Updates(upMap).Error; err != nil {
        return fmt.Errorf("update by map err: %v, upMap: %+v", err, upMap)
    }
    return nil
}