Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
colorway
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
golang
colorway
Commits
a8ff01a5
Commit
a8ff01a5
authored
Jul 02, 2025
by
zhengyaoqiu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(colorway): 商品上传接口
parent
e7f4c5d6
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
171 additions
and
6 deletions
+171
-6
colorspu.go
internal/pkg/database/model/colorspu.go
+40
-0
completespu.go
internal/pkg/database/model/completespu.go
+56
-0
image.go
internal/pkg/database/model/image.go
+1
-1
sku.go
internal/pkg/database/model/sku.go
+2
-2
completespu.go
internal/pkg/database/repository/completespu.go
+68
-0
uploadlogic.go
internal/rpc/internal/logic/product/uploadlogic.go
+4
-3
No files found.
internal/pkg/database/model/colorspu.go
View file @
a8ff01a5
...
...
@@ -17,6 +17,46 @@ type ColorSpu struct {
type
ColorSpus
[]
ColorSpu
func
(
receiver
ColorSpus
)
GetSkus
()
Skus
{
var
skus
Skus
for
_
,
spu
:=
range
receiver
{
skus
=
append
(
skus
,
spu
.
Skus
...
)
}
return
skus
}
func
(
receiver
ColorSpus
)
GetImages
()
Images
{
var
images
Images
for
_
,
spu
:=
range
receiver
{
images
=
append
(
images
,
spu
.
Images
...
)
}
return
images
}
func
(
receiver
ColorSpus
)
GetCompleteStyleNumbers
()
[]
string
{
var
completeStyleNumbers
[]
string
for
_
,
spu
:=
range
receiver
{
completeStyleNumbers
=
append
(
completeStyleNumbers
,
spu
.
CompleteSpuStyleNumber
)
}
return
completeStyleNumbers
}
func
(
receiver
ColorSpus
)
GetColorCodes
()
[]
string
{
var
colorCodes
[]
string
for
_
,
spu
:=
range
receiver
{
colorCodes
=
append
(
colorCodes
,
spu
.
ColorCode
)
}
return
colorCodes
}
func
(
receiver
ColorSpus
)
GetStyles
()
[][]
interface
{}
{
var
styles
[][]
interface
{}
for
_
,
spu
:=
range
receiver
{
styles
=
append
(
styles
,
[]
interface
{}{
spu
.
CompleteSpuStyleNumber
,
spu
.
ColorCode
})
}
return
styles
}
type
Color
struct
{
Id
string
`gorm:"size:50; not null"`
Name
string
`gorm:"size:50; not null"`
...
...
internal/pkg/database/model/completespu.go
View file @
a8ff01a5
...
...
@@ -27,6 +27,62 @@ type CompleteSpu struct {
type
CompleteSpus
[]
CompleteSpu
func
(
receiver
CompleteSpus
)
GetColorSpus
()
ColorSpus
{
var
colorSpus
ColorSpus
for
_
,
spu
:=
range
receiver
{
colorSpus
=
append
(
colorSpus
,
spu
.
ColorSpus
...
)
}
return
colorSpus
}
func
(
receiver
CompleteSpus
)
GetCompositions
()
Compositions
{
var
compositions
Compositions
for
_
,
spu
:=
range
receiver
{
compositions
=
append
(
compositions
,
spu
.
Compositions
...
)
}
return
compositions
}
func
(
receiver
CompleteSpus
)
GetModels
()
Models
{
var
models
Models
for
_
,
spu
:=
range
receiver
{
models
=
append
(
models
,
spu
.
Models
...
)
}
return
models
}
func
(
receiver
CompleteSpus
)
GetFits
()
Fits
{
var
fits
Fits
for
_
,
spu
:=
range
receiver
{
fits
=
append
(
fits
,
spu
.
Fits
...
)
}
return
fits
}
func
(
receiver
CompleteSpus
)
GetStyleNumbers
()
[]
string
{
var
styleNumbers
[]
string
for
_
,
spu
:=
range
receiver
{
styleNumbers
=
append
(
styleNumbers
,
spu
.
StyleNumber
)
}
return
styleNumbers
}
func
(
receiver
CompleteSpus
)
GetGenders
()
Genders
{
var
genders
Genders
for
_
,
spu
:=
range
receiver
{
genders
=
append
(
genders
,
spu
.
Genders
...
)
}
return
genders
}
func
(
receiver
CompleteSpus
)
GetCategories
()
Categories
{
var
categories
Categories
for
_
,
spu
:=
range
receiver
{
categories
=
append
(
categories
,
spu
.
Categories
...
)
}
return
categories
}
type
Title
struct
{
En
string
`gorm:"size:100"`
Cn
string
`gorm:"size:100"`
...
...
internal/pkg/database/model/image.go
View file @
a8ff01a5
...
...
@@ -6,7 +6,7 @@ type Image struct {
gorm
.
Model
ColorSpuStyleNumber
string
`gorm:"index:style; size:50; not null"`
ColorSpuColorCode
string
`gorm:"index:style; size:50; not null"`
Url
string
`gorm:"size:256"`
Url
string
`gorm:"
uniqueIndex;
size:256"`
}
type
Images
[]
Image
internal/pkg/database/model/sku.go
View file @
a8ff01a5
...
...
@@ -6,8 +6,8 @@ type Sku struct {
gorm
.
Model
Pc3SkuId
string
`gorm:"uniqueIndex; not null; size:24"`
Pc3ProductId
string
`gorm:"not null; size:24"`
ColorSpuStyleNumber
string
`gorm:"size:50; not null"`
ColorSpuColorCode
string
`gorm:"size:50; not null"`
ColorSpuStyleNumber
string
`gorm:"
index: style;
size:50; not null"`
ColorSpuColorCode
string
`gorm:"
index: style;
size:50; not null"`
SourceId
string
`gorm:"size:50; not null"`
SiteId
string
`gorm:"size:50; not null"`
Size
string
`gorm:"size:50; not null"`
...
...
internal/pkg/database/repository/completespu.go
View file @
a8ff01a5
...
...
@@ -3,10 +3,12 @@ package repository
import
(
"git.chillcy.com/golang/colorway/internal/pkg/database/model"
"gorm.io/gorm"
"gorm.io/gorm/clause"
)
type
CompleteSpuInterface
interface
{
BaseInterface
UpsertCompleteSpus
(
completeSpus
model
.
CompleteSpus
)
error
}
type
CompleteSpu
struct
{
...
...
@@ -18,3 +20,69 @@ func NewCompleteSpu(db *gorm.DB) *CompleteSpu {
Base
:
NewBase
[
model
.
CompleteSpu
](
db
),
}
}
func
(
receiver
*
CompleteSpu
)
UpsertCompleteSpus
(
completeSpus
model
.
CompleteSpus
)
error
{
return
receiver
.
db
.
Transaction
(
func
(
db
*
gorm
.
DB
)
error
{
return
upsertCompleteSpus
(
db
,
completeSpus
)
})
}
func
upsertCompleteSpus
(
db
*
gorm
.
DB
,
completeSpus
model
.
CompleteSpus
)
error
{
// upsert completeSpus
result
:=
db
.
Clauses
(
clause
.
OnConflict
{
Columns
:
[]
clause
.
Column
{{
Name
:
"style_number"
}},
DoUpdates
:
clause
.
AssignmentColumns
([]
string
{
"style_number"
,
"title_cn"
,
"title_en"
,
"description"
,
"season"
,
"brand_id"
,
"care"
,
"made_in"
,
"hs_code"
,
"info_select"
}),
})
.
Create
(
&
completeSpus
)
if
result
.
Error
!=
nil
{
return
result
.
Error
}
for
_
,
spu
:=
range
completeSpus
{
err
:=
upsertCompleteSpu
(
db
,
spu
)
if
err
!=
nil
{
return
err
}
}
return
nil
}
func
upsertCompleteSpu
(
db
*
gorm
.
DB
,
completeSpu
model
.
CompleteSpu
)
error
{
// 处理关联关系
err
:=
db
.
Model
(
&
completeSpu
)
.
Association
(
"ColorSpus"
)
.
Replace
(
completeSpu
.
ColorSpus
)
if
err
!=
nil
{
return
err
}
for
_
,
colorSpu
:=
range
completeSpu
.
ColorSpus
{
err
=
db
.
Model
(
&
colorSpu
)
.
Association
(
"Skus"
)
.
Replace
(
colorSpu
.
Skus
)
if
err
!=
nil
{
return
err
}
err
=
db
.
Model
(
&
colorSpu
)
.
Association
(
"Images"
)
.
Replace
(
colorSpu
.
Images
)
if
err
!=
nil
{
return
err
}
}
err
=
db
.
Model
(
&
completeSpu
)
.
Association
(
"Compositions"
)
.
Replace
(
completeSpu
.
Compositions
)
if
err
!=
nil
{
return
err
}
err
=
db
.
Model
(
&
completeSpu
)
.
Association
(
"Models"
)
.
Replace
(
completeSpu
.
Models
)
if
err
!=
nil
{
return
err
}
err
=
db
.
Model
(
&
completeSpu
)
.
Association
(
"Fits"
)
.
Replace
(
completeSpu
.
Fits
)
if
err
!=
nil
{
return
err
}
err
=
db
.
Model
(
&
completeSpu
)
.
Association
(
"Genders"
)
.
Replace
(
completeSpu
.
Genders
)
if
err
!=
nil
{
return
err
}
err
=
db
.
Model
(
&
completeSpu
)
.
Association
(
"Categories"
)
.
Replace
(
completeSpu
.
Categories
)
if
err
!=
nil
{
return
err
}
return
nil
}
internal/rpc/internal/logic/product/uploadlogic.go
View file @
a8ff01a5
...
...
@@ -3,8 +3,6 @@ package productlogic
import
(
"context"
"git.chillcy.com/golang/chillcy/project/pc4/pkg/rpc/client/product"
"log"
"git.chillcy.com/golang/colorway/internal/rpc/internal/svc"
"git.chillcy.com/golang/colorway/internal/rpc/pb/colorway"
...
...
@@ -33,6 +31,9 @@ func (l *UploadLogic) Upload(in *colorway.ProductUploadRequest) (*colorway.Produ
return
nil
,
err
}
completeSpus
:=
l
.
svcCtx
.
SpuConvert
.
Convert
(
productList
.
GetDesignerProducts
())
log
.
Println
(
completeSpus
)
err
=
l
.
svcCtx
.
DatabaseManager
.
CompleteSpuRepository
.
UpsertCompleteSpus
(
completeSpus
)
if
err
!=
nil
{
return
nil
,
err
}
return
&
colorway
.
ProductUploadResponse
{},
nil
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment