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
dc3ad202
Commit
dc3ad202
authored
Jul 02, 2025
by
zhengyaoqiu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(colorway): 入库接口
parent
f872e60b
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
187 additions
and
40 deletions
+187
-40
go.mod
go.mod
+8
-0
go.sum
go.sum
+29
-0
manager.go
internal/pkg/database/mongo/manager.go
+2
-2
producttypes.go
internal/pkg/database/mongo/product/producttypes.go
+36
-26
uploadlogic.go
internal/rpc/internal/logic/product/uploadlogic.go
+14
-6
product.go
internal/rpc/internal/svc/convert/product.go
+90
-0
spu.go
internal/rpc/internal/svc/convert/spu.go
+1
-1
servicecontext.go
internal/rpc/internal/svc/servicecontext.go
+7
-5
No files found.
go.mod
View file @
dc3ad202
...
...
@@ -6,6 +6,7 @@ require (
git.chillcy.com/golang/chillcy/pkg v0.0.0-20250627035541-7956996f27ce
git.chillcy.com/golang/chillcy/project/pc4 v0.0.0-20250630145511-385ed232051f
github.com/zeromicro/go-zero v1.8.4
go.mongodb.org/mongo-driver v1.17.4
go.uber.org/multierr v1.11.0
google.golang.org/grpc v1.73.0
google.golang.org/protobuf v1.36.6
...
...
@@ -33,6 +34,7 @@ require (
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/mock v1.6.0 // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/golang/snappy v0.0.4 // indirect
github.com/google/gnostic-models v0.6.8 // indirect
github.com/google/go-cmp v0.7.0 // indirect
github.com/google/gofuzz v1.2.0 // indirect
...
...
@@ -50,6 +52,7 @@ require (
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/montanaflynn/stats v0.7.1 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/openzipkin/zipkin-go v0.4.3 // indirect
github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
...
...
@@ -60,6 +63,10 @@ require (
github.com/prometheus/procfs v0.15.1 // indirect
github.com/redis/go-redis/v9 v9.10.0 // indirect
github.com/spaolacci/murmur3 v1.1.0 // indirect
github.com/xdg-go/pbkdf2 v1.0.0 // indirect
github.com/xdg-go/scram v1.1.2 // indirect
github.com/xdg-go/stringprep v1.0.4 // indirect
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect
go.etcd.io/etcd/api/v3 v3.5.15 // indirect
go.etcd.io/etcd/client/pkg/v3 v3.5.15 // indirect
go.etcd.io/etcd/client/v3 v3.5.15 // indirect
...
...
@@ -81,6 +88,7 @@ require (
golang.org/x/crypto v0.36.0 // indirect
golang.org/x/net v0.38.0 // indirect
golang.org/x/oauth2 v0.28.0 // indirect
golang.org/x/sync v0.12.0 // indirect
golang.org/x/sys v0.31.0 // indirect
golang.org/x/term v0.30.0 // indirect
golang.org/x/text v0.23.0 // indirect
...
...
go.sum
View file @
dc3ad202
...
...
@@ -57,6 +57,8 @@ github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=
github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
...
...
@@ -110,6 +112,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE=
github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
...
...
@@ -158,9 +162,18 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY=
github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4=
github.com/xdg-go/stringprep v1.0.4 h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8=
github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM=
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 h1:ilQV1hzziu+LLM3zUTJ0trRztfwgjqKnBWNtSRkbmwM=
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78/go.mod h1:aL8wCCfTfSfmXjznFBSZNN13rSJjlIOI1fUNAtF7rmI=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/yuin/gopher-lua v1.1.1 h1:kYKnWBjvbNP4XLT3+bPEwAXJx262OhaHDWDVOPjL46M=
github.com/yuin/gopher-lua v1.1.1/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw=
github.com/zeromicro/go-zero v1.8.4 h1:3s7kOoThCnkDoqCafsqSX58Y9osYTBIa5QEmomw07TE=
...
...
@@ -171,6 +184,8 @@ go.etcd.io/etcd/client/pkg/v3 v3.5.15 h1:fo0HpWz/KlHGMCC+YejpiCmyWDEuIpnTDzpJLB5
go.etcd.io/etcd/client/pkg/v3 v3.5.15/go.mod h1:mXDI4NAOwEiszrHCb0aqfAYNCrZP4e9hRca3d1YK8EU=
go.etcd.io/etcd/client/v3 v3.5.15 h1:23M0eY4Fd/inNv1ZfU3AxrbbOdW79r9V9Rl62Nm6ip4=
go.etcd.io/etcd/client/v3 v3.5.15/go.mod h1:CLSJxrYjvLtHsrPKsy7LmZEE+DK2ktfd2bN4RhBMwlU=
go.mongodb.org/mongo-driver v1.17.4 h1:jUorfmVzljjr0FLzYQsGP8cgN/qzzxlY9Vh0C9KFXVw=
go.mongodb.org/mongo-driver v1.17.4/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ=
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ=
...
...
@@ -210,16 +225,20 @@ go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34=
golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8=
golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
golang.org/x/oauth2 v0.28.0 h1:CrgCKl8PPAVtLnU3c+EDw6x11699EWlsDeWNWKdIOkc=
...
...
@@ -228,21 +247,30 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw=
golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y=
golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
golang.org/x/time v0.10.0 h1:3usCWA8tQn0L8+hFJQNgzpWbd89begxN66o1Ojdn5L4=
...
...
@@ -252,6 +280,7 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg=
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
...
...
internal/pkg/database/mongo/manager.go
View file @
dc3ad202
...
...
@@ -2,7 +2,7 @@ package mongo
import
productModel
"git.chillcy.com/golang/colorway/internal/pkg/database/mongo/product"
const
Database
Pc3
=
"pc3
"
const
Database
ColorWay
=
"color_way
"
type
Manager
struct
{
ProductModel
productModel
.
ProductModel
...
...
@@ -10,6 +10,6 @@ type Manager struct {
func
NewManager
(
mongoUrl
string
)
*
Manager
{
return
&
Manager
{
ProductModel
:
productModel
.
NewProductModel
(
mongoUrl
,
Database
Pc3
,
productModel
.
Collection
),
ProductModel
:
productModel
.
NewProductModel
(
mongoUrl
,
Database
ColorWay
,
productModel
.
Collection
),
}
}
internal/pkg/database/mongo/product/producttypes.go
View file @
dc3ad202
...
...
@@ -19,18 +19,22 @@ type Product struct {
MadeIn
string
`bson:"madeIn"`
HsCode
string
`bson:"hsCode"`
InfoSelect
string
`bson:"infoSelect"`
// 商品信息默认选择哪个商品
Colors
[]
ProductColor
`bson:"colors"`
Colors
ProductColors
`bson:"colors"`
Category
ProductCategory
`bson:"category"`
Compositions
[]
ProductComposition
`bson:"compositions"`
Compositions
ProductCompositions
`bson:"compositions"`
Fits
[]
string
`bson:"fits"`
Genders
[]
ProductGender
`bson:"genders"`
Genders
ProductGenders
`bson:"genders"`
Models
[]
string
`bson:"models"`
UpdateAt
time
.
Time
`bson:"updateAt,omitempty" json:"updateAt,omitempty"`
CreateAt
time
.
Time
`bson:"createAt,omitempty" json:"createAt,omitempty"`
}
type
Products
[]
Product
type
ProductGender
string
type
ProductGenders
[]
ProductGender
const
(
GenderMan
ProductGender
=
"man"
GenderWoman
ProductGender
=
"woman"
...
...
@@ -45,6 +49,8 @@ type ProductComposition struct {
Value
string
`bson:"value"`
}
type
ProductCompositions
[]
ProductComposition
type
ProductCategory
struct
{
Id
string
`bson:"id"`
Name
string
`bson:"name"`
...
...
@@ -58,10 +64,12 @@ type ProductColor struct {
BasicId
string
`bson:"basicId"`
BasicName
string
`bson:"basicName"`
InfoSelect
string
`bson:"infoSelect"`
// 商品信息默认选择哪个商品
Skus
[]
ProductColorSku
`bson:"skus"`
Skus
ProductColorSkus
`bson:"skus"`
Images
[]
string
`bson:"images"`
}
type
ProductColors
[]
ProductColor
type
ProductColorSku
struct
{
Pc3SkuId
string
`bson:"pc3SkuId"`
Pc3ProductId
string
`bson:"pc3ProductId"`
...
...
@@ -75,6 +83,8 @@ type ProductColorSku struct {
Currency
string
`bson:"currency"`
}
type
ProductColorSkus
[]
ProductColorSku
type
ProductTitle
struct
{
En
string
`bson:"en"`
Cn
string
`bson:"cn"`
...
...
internal/rpc/internal/logic/product/uploadlogic.go
View file @
dc3ad202
...
...
@@ -5,8 +5,9 @@ import (
"git.chillcy.com/golang/chillcy/project/pc4/pkg/rpc/client/product"
"git.chillcy.com/golang/colorway/internal/rpc/internal/svc"
"git.chillcy.com/golang/colorway/internal/rpc/pb/colorway"
"github.com/zeromicro/go-zero/core/logx"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
)
type
UploadLogic
struct
{
...
...
@@ -30,10 +31,17 @@ func (l *UploadLogic) Upload(in *colorway.ProductUploadRequest) (*colorway.Produ
if
err
!=
nil
{
return
nil
,
err
}
completeSpus
:=
l
.
svcCtx
.
SpuConvert
.
Convert
(
productList
.
GetDesignerProducts
())
err
=
l
.
svcCtx
.
DatabaseManager
.
CompleteSpuRepository
.
UpsertCompleteSpus
(
completeSpus
)
if
err
!=
nil
{
return
nil
,
err
ps
:=
l
.
svcCtx
.
ProductConvert
.
Convert
(
productList
.
GetDesignerProducts
())
var
writeModels
[]
mongo
.
WriteModel
for
_
,
p
:=
range
ps
{
filter
:=
bson
.
M
{
"style_number"
:
p
.
StyleNumber
,
}
update
:=
bson
.
D
{
{
"$set"
,
p
},
}
writeModels
=
append
(
writeModels
,
mongo
.
NewUpdateOneModel
()
.
SetFilter
(
filter
)
.
SetUpdate
(
update
)
.
SetUpsert
(
true
))
}
return
&
colorway
.
ProductUploadResponse
{},
nil
_
,
err
=
l
.
svcCtx
.
MongoManager
.
ProductModel
.
BulkWrite
(
l
.
ctx
,
writeModels
)
return
&
colorway
.
ProductUploadResponse
{},
err
}
internal/rpc/internal/svc/convert/product.go
0 → 100644
View file @
dc3ad202
package
convert
import
(
"git.chillcy.com/golang/chillcy/project/pc4/pkg/rpc/pb/pc4"
model
"git.chillcy.com/golang/colorway/internal/pkg/database/mongo/product"
"git.chillcy.com/golang/colorway/internal/rpc/internal/svc/cache"
"sync"
)
type
Product
struct
{
cache
*
cache
.
Cache
}
func
NewProduct
(
cache
*
cache
.
Cache
)
*
Product
{
return
&
Product
{
cache
:
cache
}
}
func
(
receiver
*
Product
)
Convert
(
designerProducts
[]
*
pc4
.
DesignerProduct
)
model
.
Products
{
var
ps
model
.
Products
for
_
,
designerProduct
:=
range
designerProducts
{
once
:=
sync
.
Once
{}
p
:=
model
.
Product
{}
styleNumber
:=
designerProduct
.
GetDesignerId
()
for
_
,
colorProduct
:=
range
designerProduct
.
GetColorProducts
()
{
for
_
,
productAndSkus
:=
range
colorProduct
.
GetProductAndSkusList
()
{
product
:=
productAndSkus
.
GetProduct
()
once
.
Do
(
func
()
{
p
.
StyleNumber
=
styleNumber
p
.
Title
=
model
.
ProductTitle
{
En
:
product
.
GetTitleEn
(),
Cn
:
product
.
GetTitleCn
(),
}
p
.
Description
=
product
.
GetDetail
()
.
GetDescription
()
p
.
Season
=
product
.
GetSeason
()
p
.
Brand
=
model
.
ProductBrand
{
Id
:
product
.
GetBrandId
(),
Name
:
product
.
GetBrandName
(),
}
p
.
Care
=
product
.
GetDetail
()
.
GetCare
()
p
.
MadeIn
=
product
.
GetDetail
()
.
GetMadeIn
()
p
.
HsCode
=
product
.
GetDetail
()
.
GetHsCode
()
p
.
InfoSelect
=
product
.
GetId
()
})
}
}
p
.
Colors
=
buildProductColors
(
designerProduct
.
GetColorProducts
(),
designerProduct
.
GetDesignerId
())
ps
=
append
(
ps
,
p
)
}
return
ps
}
func
buildProductColors
(
colorProducts
[]
*
pc4
.
ColorProduct
,
styleNumber
string
)
model
.
ProductColors
{
var
pcs
model
.
ProductColors
for
_
,
colorProduct
:=
range
colorProducts
{
pcs
=
append
(
pcs
,
buildProductColor
(
colorProduct
,
styleNumber
))
}
return
pcs
}
func
buildProductColor
(
colorProduct
*
pc4
.
ColorProduct
,
styleNumber
string
)
model
.
ProductColor
{
pc
:=
model
.
ProductColor
{}
once
:=
&
sync
.
Once
{}
for
_
,
productAndSkus
:=
range
colorProduct
.
GetProductAndSkusList
()
{
product
:=
productAndSkus
.
GetProduct
()
once
.
Do
(
func
()
{
pc
.
ColorCode
=
colorProduct
.
GetColorNumber
()
pc
.
Id
=
product
.
GetColor
()
.
GetId
()
pc
.
Name
=
product
.
GetColor
()
.
GetName
()
pc
.
BasicId
=
product
.
GetColor
()
.
GetBasicColorId
()
pc
.
BasicName
=
product
.
GetColor
()
.
GetBasicColorName
()
pc
.
InfoSelect
=
product
.
GetId
()
pc
.
Images
=
product
.
GetColor
()
.
GetImages
()
})
for
_
,
sku
:=
range
productAndSkus
.
GetSkus
()
{
pc
.
Skus
=
append
(
pc
.
Skus
,
model
.
ProductColorSku
{
Pc3SkuId
:
sku
.
GetId
(),
Pc3ProductId
:
product
.
GetId
(),
ColorSpuStyleNumber
:
styleNumber
,
ColorSpuColorCode
:
colorProduct
.
GetColorNumber
(),
SourceId
:
product
.
GetSourceId
(),
SiteId
:
product
.
GetSiteId
(),
Size
:
sku
.
GetRawSize
(),
Stock
:
int
(
sku
.
GetStock
()),
Price
:
sku
.
GetPriceDetail
()
.
GetNow
(),
Currency
:
sku
.
GetPriceDetail
()
.
GetCurrency
(),
})
}
}
return
pc
}
internal/rpc/internal/svc/convert/spu.go
View file @
dc3ad202
...
...
@@ -3,7 +3,7 @@ package convert
import
(
"git.chillcy.com/golang/chillcy/pkg/slice"
"git.chillcy.com/golang/chillcy/project/pc4/pkg/rpc/pb/pc4"
"git.chillcy.com/golang/colorway/internal/pkg/database/model"
"git.chillcy.com/golang/colorway/internal/pkg/database/m
ysql/m
odel"
"git.chillcy.com/golang/colorway/internal/rpc/internal/svc/cache"
"sync"
)
...
...
internal/rpc/internal/svc/servicecontext.go
View file @
dc3ad202
...
...
@@ -17,6 +17,7 @@ type ServiceContext struct {
Pc4RpcService
Pc4RpcService
Cache
*
cache
.
Cache
SpuConvert
*
convert
.
Spu
ProductConvert
*
convert
.
Product
}
func
NewServiceContext
(
c
config
.
Config
)
*
ServiceContext
{
...
...
@@ -39,6 +40,7 @@ func NewServiceContext(c config.Config) *ServiceContext {
})
svc
.
Cache
=
cache
.
GetCache
()
svc
.
SpuConvert
=
convert
.
NewSpu
(
svc
.
Cache
)
svc
.
ProductConvert
=
convert
.
NewProduct
(
svc
.
Cache
)
return
svc
}
...
...
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