From 9f17333c38b5c291a55ead20ad883de4cc8ebcb6 Mon Sep 17 00:00:00 2001 From: Jay Date: Tue, 22 Jan 2019 17:42:18 +0800 Subject: [PATCH] add get cards price model --- models/card_price.go | 20 +++++++++++++------- schema/20190122-1.sql | 8 ++++++++ schema/dbVersion.json | 3 ++- 3 files changed, 23 insertions(+), 8 deletions(-) create mode 100644 schema/20190122-1.sql diff --git a/models/card_price.go b/models/card_price.go index fe2e730..d8d220b 100644 --- a/models/card_price.go +++ b/models/card_price.go @@ -3,10 +3,13 @@ package models import ( "errors" "time" + + "github.com/jmoiron/sqlx" ) // CardPrice - type CardPrice struct { + ID string `db:"id" cc:"id"` Card string `db:"card" cc:"card"` PriceN float32 `db:"price_n" cc:"price_n"` PriceF float32 `db:"price_f" cc:"price_f"` @@ -51,18 +54,21 @@ func InsertCardPrice(arg InsertCardPriceOpts) (err error) { return } -// GetLastPriceByCard - -func GetLastPriceByCard(id string) (price *CardPrice, err error) { - if len(id) == 0 { - return nil, errors.New("id is empty") +// GetCardsLastPrice - +func GetCardsLastPrice(ids []string) (price []*CardPrice, err error) { + if len(ids) == 0 { + return nil, errors.New("no card id") } - price = &CardPrice{} - query := `select cp.card, cp.price_n, cp.price_f, cp.ctime from "public"."card_price" cp where "card" = $1` - err = x.Get(price, query, id) + query := `select distinct on (cp.id) cp.id, cp.card, cp.price_n, cp.price_f, cp.ctime from card_price cp where cp.card in (?) order by cp.id, cp.ctime desc` + + query, args, err := sqlx.In(query, ids) if err != nil { return nil, err } + query = x.Rebind(query) + err = x.Select(&price, query, args...) + return } diff --git a/schema/20190122-1.sql b/schema/20190122-1.sql new file mode 100644 index 0000000..0dbcd74 --- /dev/null +++ b/schema/20190122-1.sql @@ -0,0 +1,8 @@ +alter table card_price + add id uuid default uuid_generate_v4() not null; + +alter table card_price + add constraint card_price_pk + primary key (id); + + diff --git a/schema/dbVersion.json b/schema/dbVersion.json index 58f854d..4a46bd9 100644 --- a/schema/dbVersion.json +++ b/schema/dbVersion.json @@ -3,7 +3,8 @@ {"file": "main.sql", "version": 1}, {"file": "20190106-1.sql", "version": 2}, {"file": "20190115-1.sql", "version": 3}, - {"file": "20190116-1.sql", "version": 4} + {"file": "20190116-1.sql", "version": 4}, + {"file": "20190122-1.sql", "version": 5} ], "test": [] }