/*_______________________________________________________________________________ Get order */ func GetOrder(field string, value interface{}) (*model.Order, error) { p := new(model.Order) if err := em.Select().Where(field, value).Query( func(rows *sql.Rows) (bool, error) { return false, rows.Scan( &p.Id, &p.TrackNumber, &p.Status, &p.Type, &p.CustomerId, &p.DeliveryMethod, &p.DeliveryTrackingNumber, &p.ExpressFee, &p.ShippingAddress, &p.TotalPrice, &p.TotalCount, &p.PriceCut, &p.Accumulated, &p.Note, &p.ParentTrackNumber, &p.CreateTime, &p.UpdateTime, &p.CloseTime, ) }, ); err != nil { return nil, err } if p.Id > 0 { // cascade details, err := GetOrderDetails(p.TrackNumber) if err != nil { return nil, err } p.Details = details return p, nil } // return nil, errors.New("Order not found!") // return error if not exists.p return nil, nil // ignore when entity not exits. }