package dao import ( "reflect" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/globals/gormdb" "github.com/jinzhu/gorm" ) func GetEntity(item interface{}, db *gorm.DB) error { if db == nil { db = gormdb.GetDB() } err := utils.CallFuncLogError(func() error { return db.First(item).Error }, reflect.TypeOf(item).Name()) return err } func GetSellCities(skuNameID int, vendorID int, db *gorm.DB) (cities []*model.Place, err error) { if db == nil { db = gormdb.GetDB() } sql := ` SELECT DISTINCT t3.* FROM sku_name_place_bind t1 JOIN place t2 ON t1.place_code = t2.code JOIN place t3 ON (t2.level = 2 AND t2.code = t3.code) OR (t2.level = 1 AND t2.code = t3.parent_code) WHERE t1.sku_name_id = ? ` if vendorID == model.VendorIDJD { sql += "AND t3.jd_code <> 0\n" } rows, err := db.Raw(sql, skuNameID).Rows() if err == nil { defer rows.Close() places := make([]*model.Place, 0) for rows.Next() { place := new(model.Place) db.ScanRows(rows, place) places = append(places, place) } return places, nil } return nil, err }