This commit is contained in:
@ -86,6 +86,7 @@ func convertGoodsToGorm(cat *plati.Category, goods []*plati.Good) []*gorm.Good {
|
||||
for _, g := range goods {
|
||||
gormGood := gorm.Good{
|
||||
ID: uuid.NewV4().String(),
|
||||
GoodID: g.GoodID(),
|
||||
Name: g.Name,
|
||||
IDC: cat.ID,
|
||||
IDR: cat.ParentID,
|
||||
|
@ -4,6 +4,7 @@ import "time"
|
||||
|
||||
type Good struct {
|
||||
ID string
|
||||
GoodID int
|
||||
Name string
|
||||
IDC int
|
||||
IDR int
|
||||
|
14
migrations/20240103005325_goods_id.sql
Normal file
14
migrations/20240103005325_goods_id.sql
Normal file
@ -0,0 +1,14 @@
|
||||
-- +goose Up
|
||||
-- +goose StatementBegin
|
||||
ALTER TABLE goods
|
||||
ADD COLUMN good_id INTEGER NOT NULL DEFAULT 0;
|
||||
|
||||
UPDATE goods
|
||||
SET good_id = split_part(goodlink, '/', 4)::integer;
|
||||
-- +goose StatementEnd
|
||||
|
||||
-- +goose Down
|
||||
-- +goose StatementBegin
|
||||
ALTER TABLE goods
|
||||
DROP COLUMN good_id;
|
||||
-- +goose StatementEnd
|
@ -181,6 +181,16 @@ type Good struct {
|
||||
Price float64
|
||||
}
|
||||
|
||||
func (g *Good) GoodID() int {
|
||||
linkArr := strings.Split(g.GoodLink, "/")
|
||||
if len(linkArr) < 3 {
|
||||
return 0
|
||||
}
|
||||
|
||||
id, _ := strconv.Atoi(linkArr[3])
|
||||
return id
|
||||
}
|
||||
|
||||
func parseGoodsCategory(r io.Reader) ([]*Good, error) {
|
||||
doc, err := goquery.NewDocumentFromReader(r)
|
||||
if err != nil {
|
||||
|
@ -51,3 +51,30 @@ func Test_parseGoodsCategory(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestGood_GoodID(t *testing.T) {
|
||||
type fields struct {
|
||||
GoodLink string
|
||||
}
|
||||
tests := []struct {
|
||||
fields fields
|
||||
want int
|
||||
}{
|
||||
{
|
||||
fields: fields{
|
||||
GoodLink: "/itm/mortal-kombat-1-ua-kz-auto-24-7/4107232",
|
||||
},
|
||||
want: 4107232,
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.fields.GoodLink, func(t *testing.T) {
|
||||
g := &Good{
|
||||
GoodLink: tt.fields.GoodLink,
|
||||
}
|
||||
if got := g.GoodID(); got != tt.want {
|
||||
t.Errorf("Good.GoodID() = %v, want %v", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user