commit
dae23f28eb
56 changed files with 1162 additions and 0 deletions
-
1.gitattributes
-
19.gitignore
-
7Makefile
-
4README.MD
-
10api/v1/cover.go
-
26api/v1/member.go
-
32go.mod
-
108go.sum
-
18hack/config.yaml
-
20hack/hack-cli.mk
-
75hack/hack.mk
-
35internal/cmd/cmd.go
-
1internal/consts/consts.go
-
36internal/controller/cover.go
-
64internal/controller/member.go
-
0internal/dao/.gitkeep
-
27internal/dao/cover_img.go
-
81internal/dao/internal/cover_img.go
-
95internal/dao/internal/member_info.go
-
27internal/dao/member_info.go
-
0internal/logic/.gitkeep
-
38internal/logic/cover/cover.go
-
11internal/logic/logic.go
-
69internal/logic/member/member.go
-
22internal/logic/middleware/middleware.go
-
0internal/model/.gitkeep
-
0internal/model/do/.gitkeep
-
20internal/model/do/cover_img.go
-
27internal/model/do/member_info.go
-
0internal/model/entity/.gitkeep
-
18internal/model/entity/cover_img.go
-
25internal/model/entity/member_info.go
-
1internal/packed/packed.go
-
0internal/service/.gitkeep
-
25internal/service/cover.go
-
30internal/service/member.go
-
31internal/service/middleware.go
-
17main.go
-
21manifest/deploy/kustomize/base/deployment.yaml
-
8manifest/deploy/kustomize/base/kustomization.yaml
-
12manifest/deploy/kustomize/base/service.yaml
-
14manifest/deploy/kustomize/overlays/develop/configmap.yaml
-
10manifest/deploy/kustomize/overlays/develop/deployment.yaml
-
14manifest/deploy/kustomize/overlays/develop/kustomization.yaml
-
16manifest/docker/Dockerfile
-
8manifest/docker/docker.sh
-
0manifest/i18n/.gitkeep
-
0manifest/protobuf/.keep-if-necessary
-
0resource/public/html/.gitkeep
-
0resource/public/plugin/.gitkeep
-
0resource/public/resource/css/.gitkeep
-
0resource/public/resource/image/.gitkeep
-
0resource/public/resource/js/.gitkeep
-
0resource/template/.gitkeep
-
0utility/.gitkeep
-
39utility/response/response.go
@ -0,0 +1 @@ |
|||
* linguist-language=GO |
|||
@ -0,0 +1,19 @@ |
|||
.buildpath |
|||
.hgignore.swp |
|||
.project |
|||
.orig |
|||
.swp |
|||
.idea/ |
|||
.settings/ |
|||
.vscode/ |
|||
bin/ |
|||
**/.DS_Store |
|||
gf |
|||
main |
|||
main.exe |
|||
output/ |
|||
manifest/output/ |
|||
temp/ |
|||
temp.yaml |
|||
bin |
|||
**/config/config.yaml |
|||
@ -0,0 +1,7 @@ |
|||
ROOT_DIR = $(shell pwd) |
|||
NAMESPACE = "default" |
|||
DEPLOY_NAME = "template-single" |
|||
DOCKER_NAME = "template-single" |
|||
|
|||
include ./hack/hack-cli.mk |
|||
include ./hack/hack.mk |
|||
@ -0,0 +1,4 @@ |
|||
# GoFrame Template For SingleRepo |
|||
|
|||
Quick Start: |
|||
- https://goframe.org/quick |
|||
@ -0,0 +1,10 @@ |
|||
package v1 |
|||
|
|||
type GetCoverImageReq struct { |
|||
Id int `json:"id" v:"required"` |
|||
} |
|||
|
|||
type UpdateCoverImageReq struct { |
|||
Id int `json:"id" v:"required"` |
|||
Url string `json:"url" v:"required"` |
|||
} |
|||
@ -0,0 +1,26 @@ |
|||
package v1 |
|||
|
|||
type InsertMemberReq struct { |
|||
Name string `json:"name" v:"required#姓名不可为空!"` |
|||
Code string `json:"code" v:"required#国家/地区代码不可为空!"` |
|||
Tel string `json:"tel" v:"required#电话号码不可为空!"` |
|||
Type int `json:"type"` |
|||
Url string `json:"url"` |
|||
WeChat string `json:"weChat" v:"required#微信ID不可为空!"` |
|||
Email string `json:"email" v:"required#邮箱号不可为空!"` |
|||
} |
|||
|
|||
type GetMemberListReq struct { |
|||
Page int `p:"page" d:"1"` |
|||
PageSize int `p:"page_size" d:"20"` |
|||
} |
|||
|
|||
type UpdateStateReq struct { |
|||
Id int `json:"id" v:"required"` |
|||
State int `json:"state" v:"required|integer|in:0,1"` |
|||
} |
|||
|
|||
type EditNoteReq struct { |
|||
Id int `json:"id" v:"required"` |
|||
Note string `json:"note"` |
|||
} |
|||
@ -0,0 +1,32 @@ |
|||
module UserRegister |
|||
|
|||
go 1.18 |
|||
|
|||
require ( |
|||
github.com/gogf/gf/contrib/drivers/mysql/v2 v2.4.1 |
|||
github.com/gogf/gf/v2 v2.7.1 |
|||
) |
|||
|
|||
require ( |
|||
github.com/BurntSushi/toml v1.3.2 // indirect |
|||
github.com/clbanning/mxj/v2 v2.7.0 // indirect |
|||
github.com/fatih/color v1.16.0 // indirect |
|||
github.com/fsnotify/fsnotify v1.7.0 // indirect |
|||
github.com/go-logr/logr v1.2.3 // indirect |
|||
github.com/go-logr/stdr v1.2.2 // indirect |
|||
github.com/go-sql-driver/mysql v1.6.0 // indirect |
|||
github.com/gorilla/websocket v1.5.1 // indirect |
|||
github.com/grokify/html-strip-tags-go v0.1.0 // indirect |
|||
github.com/magiconair/properties v1.8.7 // indirect |
|||
github.com/mattn/go-colorable v0.1.13 // indirect |
|||
github.com/mattn/go-isatty v0.0.20 // indirect |
|||
github.com/mattn/go-runewidth v0.0.9 // indirect |
|||
github.com/olekukonko/tablewriter v0.0.5 // indirect |
|||
go.opentelemetry.io/otel v1.14.0 // indirect |
|||
go.opentelemetry.io/otel/sdk v1.14.0 // indirect |
|||
go.opentelemetry.io/otel/trace v1.14.0 // indirect |
|||
golang.org/x/net v0.24.0 // indirect |
|||
golang.org/x/sys v0.19.0 // indirect |
|||
golang.org/x/text v0.14.0 // indirect |
|||
gopkg.in/yaml.v3 v3.0.1 // indirect |
|||
) |
|||
@ -0,0 +1,108 @@ |
|||
github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= |
|||
github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= |
|||
github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= |
|||
github.com/clbanning/mxj/v2 v2.5.5/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s= |
|||
github.com/clbanning/mxj/v2 v2.7.0 h1:WA/La7UGCanFe5NpHF0Q3DNtnCsVoxbPKuyBNHWRyME= |
|||
github.com/clbanning/mxj/v2 v2.7.0/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s= |
|||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= |
|||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= |
|||
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= |
|||
github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= |
|||
github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= |
|||
github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= |
|||
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= |
|||
github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= |
|||
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= |
|||
github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= |
|||
github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= |
|||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= |
|||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= |
|||
github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= |
|||
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= |
|||
github.com/gogf/gf/contrib/drivers/mysql/v2 v2.4.1 h1:ra6aO6+KUufCg9eK52oj6Q2SnCdrmkSZF9pd32EIivQ= |
|||
github.com/gogf/gf/contrib/drivers/mysql/v2 v2.4.1/go.mod h1:xubKxCvgbPt9r4yD3ecJoP3DC3sHqcJoMyS0eX837Zg= |
|||
github.com/gogf/gf/v2 v2.4.1/go.mod h1:tsbmtwcAl2chcYoq/fP9W2FZf06aw4i89X34nbSHo9Y= |
|||
github.com/gogf/gf/v2 v2.7.1 h1:Ukp7vzwh6VKnivEEx/xiMc61dL1HVZqCCHl//3GBRxc= |
|||
github.com/gogf/gf/v2 v2.7.1/go.mod h1:3oyGjyLHtSSo8kQ57Nj1TPdUNc0e2HS0A2J+KkXoW+I= |
|||
github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= |
|||
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= |
|||
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= |
|||
github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= |
|||
github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= |
|||
github.com/grokify/html-strip-tags-go v0.0.1/go.mod h1:2Su6romC5/1VXOQMaWL2yb618ARB8iVo6/DR99A6d78= |
|||
github.com/grokify/html-strip-tags-go v0.1.0 h1:03UrQLjAny8xci+R+qjCce/MYnpNXCtgzltlQbOBae4= |
|||
github.com/grokify/html-strip-tags-go v0.1.0/go.mod h1:ZdzgfHEzAfz9X6Xe5eBLVblWIxXfYSQ40S/VKrAOGpc= |
|||
github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= |
|||
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= |
|||
github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= |
|||
github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= |
|||
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= |
|||
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= |
|||
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= |
|||
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= |
|||
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= |
|||
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= |
|||
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= |
|||
github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= |
|||
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= |
|||
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= |
|||
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= |
|||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= |
|||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= |
|||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= |
|||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= |
|||
github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= |
|||
github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= |
|||
go.opentelemetry.io/otel v1.7.0/go.mod h1:5BdUoMIz5WEs0vt0CUEMtSSaTSHBBVwrhnz7+nrD5xk= |
|||
go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= |
|||
go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= |
|||
go.opentelemetry.io/otel/sdk v1.7.0/go.mod h1:uTEOTwaqIVuTGiJN7ii13Ibp75wJmYUDe374q6cZwUU= |
|||
go.opentelemetry.io/otel/sdk v1.14.0 h1:PDCppFRDq8A1jL9v6KMI6dYesaq+DFcDZvjsoGvxGzY= |
|||
go.opentelemetry.io/otel/sdk v1.14.0/go.mod h1:bwIC5TjrNG6QDCHNWvW4HLHtUQ4I+VQDsnjhvyZCALM= |
|||
go.opentelemetry.io/otel/trace v1.7.0/go.mod h1:fzLSB9nqR2eXzxPXb2JW9IKE+ScyXA48yyE4TNvoHqU= |
|||
go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= |
|||
go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= |
|||
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/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= |
|||
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-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= |
|||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= |
|||
golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= |
|||
golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= |
|||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= |
|||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= |
|||
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-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= |
|||
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= |
|||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= |
|||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= |
|||
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= |
|||
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= |
|||
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= |
|||
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/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.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= |
|||
golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= |
|||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= |
|||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= |
|||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= |
|||
golang.org/x/text v0.3.8-0.20211105212822-18b340fc7af2/go.mod h1:EFNZuWvGYxIRUEX+K8UmCFwYmZjqcrnq15ZuVldZkZ0= |
|||
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= |
|||
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= |
|||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= |
|||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= |
|||
golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= |
|||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= |
|||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= |
|||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= |
|||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= |
|||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= |
|||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= |
|||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= |
|||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= |
|||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= |
|||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= |
|||
@ -0,0 +1,18 @@ |
|||
|
|||
# CLI tool, only in development environment. |
|||
# https://goframe.org/pages/viewpage.action?pageId=3673173 |
|||
gfcli: |
|||
# 工具编译配置 |
|||
build: |
|||
name: "UserRegister" |
|||
path: "./bin" |
|||
arch: "amd64" |
|||
system: "linux" |
|||
packSrc: "manifest/i18n" |
|||
|
|||
# dao生成 |
|||
gen: |
|||
dao: |
|||
- link: "mysql:hcdbqb:xrZthbSyNpcseEsN@tcp(54.255.212.181:3306)/hcdbqb" |
|||
descriptionTag: true |
|||
noModelComment: true |
|||
@ -0,0 +1,20 @@ |
|||
|
|||
# Install/Update to the latest CLI tool.
|
|||
.PHONY: cli |
|||
cli: |
|||
@set -e; \
|
|||
wget -O gf \
|
|||
https://github.com/gogf/gf/releases/latest/download/gf_$(shell go env GOOS)_$(shell go env GOARCH) && \
|
|||
chmod +x gf && \
|
|||
./gf install -y && \
|
|||
rm ./gf |
|||
|
|||
|
|||
# Check and install CLI tool.
|
|||
.PHONY: cli.install |
|||
cli.install: |
|||
@set -e; \
|
|||
gf -v > /dev/null 2>&1 || if [[ "$?" -ne "0" ]]; then \
|
|||
echo "GoFame CLI is not installed, start proceeding auto installation..."; \
|
|||
make cli; \
|
|||
fi; |
|||
@ -0,0 +1,75 @@ |
|||
.DEFAULT_GOAL := build |
|||
|
|||
# Update GoFrame and its CLI to latest stable version.
|
|||
.PHONY: up |
|||
up: cli.install |
|||
@gf up -a |
|||
|
|||
# Build binary using configuration from hack/config.yaml.
|
|||
.PHONY: build |
|||
build: cli.install |
|||
@gf build -ew |
|||
|
|||
# Parse api and generate controller/sdk.
|
|||
.PHONY: ctrl |
|||
ctrl: cli.install |
|||
@gf gen ctrl |
|||
|
|||
# Generate Go files for DAO/DO/Entity.
|
|||
.PHONY: dao |
|||
dao: cli.install |
|||
@gf gen dao |
|||
|
|||
# Parse current project go files and generate enums go file.
|
|||
.PHONY: enums |
|||
enums: cli.install |
|||
@gf gen enums |
|||
|
|||
# Generate Go files for Service.
|
|||
.PHONY: service |
|||
service: cli.install |
|||
@gf gen service |
|||
|
|||
|
|||
# Build docker image.
|
|||
.PHONY: image |
|||
image: cli.install |
|||
$(eval _TAG = $(shell git rev-parse --short HEAD)) |
|||
ifneq (, $(shell git status --porcelain 2>/dev/null)) |
|||
$(eval _TAG = $(_TAG).dirty) |
|||
endif |
|||
$(eval _TAG = $(if ${TAG}, ${TAG}, $(_TAG))) |
|||
$(eval _PUSH = $(if ${PUSH}, ${PUSH}, )) |
|||
@gf docker ${_PUSH} -tn $(DOCKER_NAME):${_TAG}; |
|||
|
|||
|
|||
# Build docker image and automatically push to docker repo.
|
|||
.PHONY: image.push |
|||
image.push: cli.install |
|||
@make image PUSH=-p; |
|||
|
|||
|
|||
# Deploy image and yaml to current kubectl environment.
|
|||
.PHONY: deploy |
|||
deploy: cli.install |
|||
$(eval _TAG = $(if ${TAG}, ${TAG}, develop)) |
|||
|
|||
@set -e; \
|
|||
mkdir -p $(ROOT_DIR)/temp/kustomize;\
|
|||
cd $(ROOT_DIR)/manifest/deploy/kustomize/overlays/${_ENV};\
|
|||
kustomize build > $(ROOT_DIR)/temp/kustomize.yaml;\
|
|||
kubectl apply -f $(ROOT_DIR)/temp/kustomize.yaml; \
|
|||
if [ $(DEPLOY_NAME) != "" ]; then \
|
|||
kubectl patch -n $(NAMESPACE) deployment/$(DEPLOY_NAME) -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"$(shell date +%s)\"}}}}}"; \
|
|||
fi; |
|||
|
|||
|
|||
# Parsing protobuf files and generating go files.
|
|||
.PHONY: pb |
|||
pb: cli.install |
|||
@gf gen pb |
|||
|
|||
# Generate protobuf files for database tables.
|
|||
.PHONY: pbentity |
|||
pbentity: cli.install |
|||
@gf gen pbentity |
|||
@ -0,0 +1,35 @@ |
|||
package cmd |
|||
|
|||
import ( |
|||
"UserRegister/internal/controller" |
|||
"UserRegister/internal/service" |
|||
"context" |
|||
|
|||
"github.com/gogf/gf/v2/frame/g" |
|||
"github.com/gogf/gf/v2/net/ghttp" |
|||
"github.com/gogf/gf/v2/os/gcmd" |
|||
) |
|||
|
|||
var ( |
|||
Main = gcmd.Command{ |
|||
Name: "main", |
|||
Usage: "main", |
|||
Brief: "start http server", |
|||
Func: func(ctx context.Context, parser *gcmd.Parser) (err error) { |
|||
s := g.Server() |
|||
s.Group("/api", func(group *ghttp.RouterGroup) { |
|||
group.Middleware( |
|||
service.Middleware().CORS, |
|||
) |
|||
group.POST("/member/getList", controller.Member.GetMmberList) |
|||
group.POST("/member/insert", controller.Member.InsertMember) |
|||
group.POST("/member/updateState", controller.Member.UpdateState) |
|||
group.POST("/member/editNote", controller.Member.EditNote) |
|||
group.POST("/cover/getImage", controller.Cover.GetCoverImage) |
|||
group.POST("/cover/updateImage", controller.Cover.UpdateCoverImage) |
|||
}) |
|||
s.Run() |
|||
return nil |
|||
}, |
|||
} |
|||
) |
|||
@ -0,0 +1 @@ |
|||
package consts |
|||
@ -0,0 +1,36 @@ |
|||
package controller |
|||
|
|||
import ( |
|||
v1 "UserRegister/api/v1" |
|||
"UserRegister/internal/service" |
|||
"UserRegister/utility/response" |
|||
"github.com/gogf/gf/v2/net/ghttp" |
|||
) |
|||
|
|||
var Cover = cCover{} |
|||
|
|||
type cCover struct{} |
|||
|
|||
func (c *cCover) GetCoverImage(r *ghttp.Request) { |
|||
var req *v1.GetCoverImageReq |
|||
if err := r.Parse(&req); err != nil { |
|||
response.JsonExit(r, 400, err.Error()) |
|||
} |
|||
res, err := service.Cover().GetCoverImage(req) |
|||
if err != nil { |
|||
response.JsonExit(r, 400, err.Error()) |
|||
} |
|||
response.JsonExit(r, 200, "success", res) |
|||
} |
|||
|
|||
func (c *cCover) UpdateCoverImage(r *ghttp.Request) { |
|||
var req *v1.UpdateCoverImageReq |
|||
if err := r.Parse(&req); err != nil { |
|||
response.JsonExit(r, 400, err.Error()) |
|||
} |
|||
err := service.Cover().UpdateCoverImage(req) |
|||
if err != nil { |
|||
response.JsonExit(r, 400, err.Error()) |
|||
} |
|||
response.JsonExit(r, 200, "success") |
|||
} |
|||
@ -0,0 +1,64 @@ |
|||
package controller |
|||
|
|||
import ( |
|||
v1 "UserRegister/api/v1" |
|||
"UserRegister/internal/service" |
|||
"UserRegister/utility/response" |
|||
"github.com/gogf/gf/v2/frame/g" |
|||
"github.com/gogf/gf/v2/net/ghttp" |
|||
) |
|||
|
|||
var Member = cMember{} |
|||
|
|||
type cMember struct{} |
|||
|
|||
func (c *cMember) InsertMember(r *ghttp.Request) { |
|||
var req *v1.InsertMemberReq |
|||
if err := r.Parse(&req); err != nil { |
|||
response.JsonExit(r, 400, err.Error()) |
|||
} |
|||
err := service.Member().InsertMember(req) |
|||
if err != nil { |
|||
response.JsonExit(r, 400, err.Error()) |
|||
} |
|||
response.JsonExit(r, 200, "success") |
|||
} |
|||
|
|||
func (c *cMember) GetMmberList(r *ghttp.Request) { |
|||
var req *v1.GetMemberListReq |
|||
if err := r.Parse(&req); err != nil { |
|||
response.JsonExit(r, 400, err.Error()) |
|||
} |
|||
res, total, err := service.Member().GetMemberList(req) |
|||
if err != nil { |
|||
response.JsonExit(r, 400, err.Error()) |
|||
} |
|||
response.JsonExit(r, 200, "success", g.Map{ |
|||
"list": res, |
|||
"total": total, |
|||
}) |
|||
} |
|||
|
|||
func (c *cMember) UpdateState(r *ghttp.Request) { |
|||
var req *v1.UpdateStateReq |
|||
if err := r.Parse(&req); err != nil { |
|||
response.JsonExit(r, 400, err.Error()) |
|||
} |
|||
err := service.Member().UpdateState(req) |
|||
if err != nil { |
|||
response.JsonExit(r, 400, err.Error()) |
|||
} |
|||
response.JsonExit(r, 200, "success") |
|||
} |
|||
|
|||
func (c *cMember) EditNote(r *ghttp.Request) { |
|||
var req *v1.EditNoteReq |
|||
if err := r.Parse(&req); err != nil { |
|||
response.JsonExit(r, 400, err.Error()) |
|||
} |
|||
err := service.Member().EditNote(req) |
|||
if err != nil { |
|||
response.JsonExit(r, 400, err.Error()) |
|||
} |
|||
response.JsonExit(r, 200, "success") |
|||
} |
|||
@ -0,0 +1,27 @@ |
|||
// =================================================================================
|
|||
// This is auto-generated by GoFrame CLI tool only once. Fill this file as you wish.
|
|||
// =================================================================================
|
|||
|
|||
package dao |
|||
|
|||
import ( |
|||
"UserRegister/internal/dao/internal" |
|||
) |
|||
|
|||
// internalCoverImgDao is internal type for wrapping internal DAO implements.
|
|||
type internalCoverImgDao = *internal.CoverImgDao |
|||
|
|||
// coverImgDao is the data access object for table cover_img.
|
|||
// You can define custom methods on it to extend its functionality as you wish.
|
|||
type coverImgDao struct { |
|||
internalCoverImgDao |
|||
} |
|||
|
|||
var ( |
|||
// CoverImg is globally public accessible object for table cover_img operations.
|
|||
CoverImg = coverImgDao{ |
|||
internal.NewCoverImgDao(), |
|||
} |
|||
) |
|||
|
|||
// Fill with you ideas below.
|
|||
@ -0,0 +1,81 @@ |
|||
// ==========================================================================
|
|||
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
|
|||
// ==========================================================================
|
|||
|
|||
package internal |
|||
|
|||
import ( |
|||
"context" |
|||
|
|||
"github.com/gogf/gf/v2/database/gdb" |
|||
"github.com/gogf/gf/v2/frame/g" |
|||
) |
|||
|
|||
// CoverImgDao is the data access object for table cover_img.
|
|||
type CoverImgDao struct { |
|||
table string // table is the underlying table name of the DAO.
|
|||
group string // group is the database configuration group name of current DAO.
|
|||
columns CoverImgColumns // columns contains all the column names of Table for convenient usage.
|
|||
} |
|||
|
|||
// CoverImgColumns defines and stores column names for table cover_img.
|
|||
type CoverImgColumns struct { |
|||
Id string // 主键id
|
|||
Name string // 图片名称
|
|||
Url string // 图片链接
|
|||
CreatedAt string // 添加时间
|
|||
UpdatedAt string // 修改时间
|
|||
} |
|||
|
|||
// coverImgColumns holds the columns for table cover_img.
|
|||
var coverImgColumns = CoverImgColumns{ |
|||
Id: "id", |
|||
Name: "name", |
|||
Url: "url", |
|||
CreatedAt: "created_at", |
|||
UpdatedAt: "updated_at", |
|||
} |
|||
|
|||
// NewCoverImgDao creates and returns a new DAO object for table data access.
|
|||
func NewCoverImgDao() *CoverImgDao { |
|||
return &CoverImgDao{ |
|||
group: "default", |
|||
table: "cover_img", |
|||
columns: coverImgColumns, |
|||
} |
|||
} |
|||
|
|||
// DB retrieves and returns the underlying raw database management object of current DAO.
|
|||
func (dao *CoverImgDao) DB() gdb.DB { |
|||
return g.DB(dao.group) |
|||
} |
|||
|
|||
// Table returns the table name of current dao.
|
|||
func (dao *CoverImgDao) Table() string { |
|||
return dao.table |
|||
} |
|||
|
|||
// Columns returns all column names of current dao.
|
|||
func (dao *CoverImgDao) Columns() CoverImgColumns { |
|||
return dao.columns |
|||
} |
|||
|
|||
// Group returns the configuration group name of database of current dao.
|
|||
func (dao *CoverImgDao) Group() string { |
|||
return dao.group |
|||
} |
|||
|
|||
// Ctx creates and returns the Model for current DAO, It automatically sets the context for current operation.
|
|||
func (dao *CoverImgDao) Ctx(ctx context.Context) *gdb.Model { |
|||
return dao.DB().Model(dao.table).Safe().Ctx(ctx) |
|||
} |
|||
|
|||
// Transaction wraps the transaction logic using function f.
|
|||
// It rollbacks the transaction and returns the error from function f if it returns non-nil error.
|
|||
// It commits the transaction and returns nil if function f returns nil.
|
|||
//
|
|||
// Note that, you should not Commit or Rollback the transaction in function f
|
|||
// as it is automatically handled by this function.
|
|||
func (dao *CoverImgDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { |
|||
return dao.Ctx(ctx).Transaction(ctx, f) |
|||
} |
|||
@ -0,0 +1,95 @@ |
|||
// ==========================================================================
|
|||
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
|
|||
// ==========================================================================
|
|||
|
|||
package internal |
|||
|
|||
import ( |
|||
"context" |
|||
|
|||
"github.com/gogf/gf/v2/database/gdb" |
|||
"github.com/gogf/gf/v2/frame/g" |
|||
) |
|||
|
|||
// MemberInfoDao is the data access object for table member_info.
|
|||
type MemberInfoDao struct { |
|||
table string // table is the underlying table name of the DAO.
|
|||
group string // group is the database configuration group name of current DAO.
|
|||
columns MemberInfoColumns // columns contains all the column names of Table for convenient usage.
|
|||
} |
|||
|
|||
// MemberInfoColumns defines and stores column names for table member_info.
|
|||
type MemberInfoColumns struct { |
|||
Id string // 主键id
|
|||
Name string // 姓名
|
|||
Code string // 国家/地区代码
|
|||
Telephone string // 电话号码
|
|||
Wechat string // 微信ID
|
|||
Email string // 邮箱
|
|||
CreatedAt string // 添加时间
|
|||
Type string // 注册来源(0其他,1视频,2直播,3帖子)
|
|||
Url string // 来源地址
|
|||
UrlMd5 string // 来源地址(MD5加密)
|
|||
IsRelated string // 是否联系
|
|||
Note string // 备注
|
|||
} |
|||
|
|||
// memberInfoColumns holds the columns for table member_info.
|
|||
var memberInfoColumns = MemberInfoColumns{ |
|||
Id: "id", |
|||
Name: "name", |
|||
Code: "code", |
|||
Telephone: "telephone", |
|||
Wechat: "wechat", |
|||
Email: "email", |
|||
CreatedAt: "created_at", |
|||
Type: "type", |
|||
Url: "url", |
|||
UrlMd5: "url_md5", |
|||
IsRelated: "is_related", |
|||
Note: "note", |
|||
} |
|||
|
|||
// NewMemberInfoDao creates and returns a new DAO object for table data access.
|
|||
func NewMemberInfoDao() *MemberInfoDao { |
|||
return &MemberInfoDao{ |
|||
group: "default", |
|||
table: "member_info", |
|||
columns: memberInfoColumns, |
|||
} |
|||
} |
|||
|
|||
// DB retrieves and returns the underlying raw database management object of current DAO.
|
|||
func (dao *MemberInfoDao) DB() gdb.DB { |
|||
return g.DB(dao.group) |
|||
} |
|||
|
|||
// Table returns the table name of current dao.
|
|||
func (dao *MemberInfoDao) Table() string { |
|||
return dao.table |
|||
} |
|||
|
|||
// Columns returns all column names of current dao.
|
|||
func (dao *MemberInfoDao) Columns() MemberInfoColumns { |
|||
return dao.columns |
|||
} |
|||
|
|||
// Group returns the configuration group name of database of current dao.
|
|||
func (dao *MemberInfoDao) Group() string { |
|||
return dao.group |
|||
} |
|||
|
|||
// Ctx creates and returns the Model for current DAO, It automatically sets the context for current operation.
|
|||
func (dao *MemberInfoDao) Ctx(ctx context.Context) *gdb.Model { |
|||
return dao.DB().Model(dao.table).Safe().Ctx(ctx) |
|||
} |
|||
|
|||
// Transaction wraps the transaction logic using function f.
|
|||
// It rollbacks the transaction and returns the error from function f if it returns non-nil error.
|
|||
// It commits the transaction and returns nil if function f returns nil.
|
|||
//
|
|||
// Note that, you should not Commit or Rollback the transaction in function f
|
|||
// as it is automatically handled by this function.
|
|||
func (dao *MemberInfoDao) Transaction(ctx context.Context, f func(ctx context.Context, tx gdb.TX) error) (err error) { |
|||
return dao.Ctx(ctx).Transaction(ctx, f) |
|||
} |
|||
@ -0,0 +1,27 @@ |
|||
// =================================================================================
|
|||
// This is auto-generated by GoFrame CLI tool only once. Fill this file as you wish.
|
|||
// =================================================================================
|
|||
|
|||
package dao |
|||
|
|||
import ( |
|||
"UserRegister/internal/dao/internal" |
|||
) |
|||
|
|||
// internalMemberInfoDao is internal type for wrapping internal DAO implements.
|
|||
type internalMemberInfoDao = *internal.MemberInfoDao |
|||
|
|||
// memberInfoDao is the data access object for table member_info.
|
|||
// You can define custom methods on it to extend its functionality as you wish.
|
|||
type memberInfoDao struct { |
|||
internalMemberInfoDao |
|||
} |
|||
|
|||
var ( |
|||
// MemberInfo is globally public accessible object for table member_info operations.
|
|||
MemberInfo = memberInfoDao{ |
|||
internal.NewMemberInfoDao(), |
|||
} |
|||
) |
|||
|
|||
// Fill with you ideas below.
|
|||
@ -0,0 +1,38 @@ |
|||
package cover |
|||
|
|||
import ( |
|||
v1 "UserRegister/api/v1" |
|||
"UserRegister/internal/service" |
|||
"github.com/gogf/gf/v2/frame/g" |
|||
"github.com/gogf/gf/v2/util/gconv" |
|||
) |
|||
|
|||
type sCover struct{} |
|||
|
|||
func init() { |
|||
service.RegisterCover(NewCover()) |
|||
} |
|||
|
|||
func NewCover() *sCover { |
|||
return &sCover{} |
|||
} |
|||
|
|||
func (s *sCover) GetCoverImage(req *v1.GetCoverImageReq) (res string, err error) { |
|||
result, err := g.Model("cover_img").Fields("url"). |
|||
WherePri(req.Id).Value() |
|||
if err != nil { |
|||
return |
|||
} |
|||
res = gconv.String(result) |
|||
return |
|||
} |
|||
|
|||
func (s *sCover) UpdateCoverImage(req *v1.UpdateCoverImageReq) (err error) { |
|||
_, err = g.Model("cover_img").Data(g.Map{ |
|||
"url": req.Url, |
|||
}).WherePri(req.Id).Update() |
|||
if err != nil { |
|||
return |
|||
} |
|||
return |
|||
} |
|||
@ -0,0 +1,11 @@ |
|||
// ==========================================================================
|
|||
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
|
|||
// ==========================================================================
|
|||
|
|||
package logic |
|||
|
|||
import ( |
|||
_ "UserRegister/internal/logic/cover" |
|||
_ "UserRegister/internal/logic/member" |
|||
_ "UserRegister/internal/logic/middleware" |
|||
) |
|||
@ -0,0 +1,69 @@ |
|||
package member |
|||
|
|||
import ( |
|||
v1 "UserRegister/api/v1" |
|||
"UserRegister/internal/model/entity" |
|||
"UserRegister/internal/service" |
|||
"crypto/md5" |
|||
"fmt" |
|||
"github.com/gogf/gf/v2/frame/g" |
|||
) |
|||
|
|||
type sMember struct{} |
|||
|
|||
func init() { |
|||
service.RegisterMember(NewMember()) |
|||
} |
|||
|
|||
func NewMember() *sMember { |
|||
return &sMember{} |
|||
} |
|||
|
|||
func (s *sMember) InsertMember(req *v1.InsertMemberReq) (err error) { |
|||
_, err = g.Model("member_info").Data(g.Map{ |
|||
"name": req.Name, |
|||
"code": req.Code, |
|||
"telephone": req.Tel, |
|||
"type": req.Type, |
|||
"url": req.Url, |
|||
"url_md5": fmt.Sprintf("%x", md5.Sum([]byte(req.Url))), |
|||
"wechat": req.WeChat, |
|||
"email": req.Email, |
|||
}).Insert() |
|||
if err != nil { |
|||
return |
|||
} |
|||
return |
|||
} |
|||
|
|||
func (s *sMember) GetMemberList(req *v1.GetMemberListReq) (res []entity.MemberInfo, total int, err error) { |
|||
err = g.Model("member_info").OrderDesc("created_at"). |
|||
Page(req.Page, req.PageSize).ScanAndCount(&res, &total, false) |
|||
if err != nil { |
|||
return |
|||
} |
|||
if len(res) == 0 { |
|||
return []entity.MemberInfo{}, 0, nil |
|||
} |
|||
return |
|||
} |
|||
|
|||
func (s *sMember) UpdateState(req *v1.UpdateStateReq) (err error) { |
|||
_, err = g.Model("member_info").Data(g.Map{ |
|||
"is_related": req.State, |
|||
}).WherePri(req.Id).Update() |
|||
if err != nil { |
|||
return |
|||
} |
|||
return |
|||
} |
|||
|
|||
func (s *sMember) EditNote(req *v1.EditNoteReq) (err error) { |
|||
_, err = g.Model("member_info").Data(g.Map{ |
|||
"note": req.Note, |
|||
}).WherePri(req.Id).Update() |
|||
if err != nil { |
|||
return |
|||
} |
|||
return |
|||
} |
|||
@ -0,0 +1,22 @@ |
|||
package middleware |
|||
|
|||
import ( |
|||
"UserRegister/internal/service" |
|||
|
|||
"github.com/gogf/gf/v2/net/ghttp" |
|||
) |
|||
|
|||
type sMiddleware struct{} |
|||
|
|||
func init() { |
|||
service.RegisterMiddleware(New()) |
|||
} |
|||
|
|||
func New() *sMiddleware { |
|||
return &sMiddleware{} |
|||
} |
|||
|
|||
func (s *sMiddleware) CORS(r *ghttp.Request) { |
|||
r.Response.CORSDefault() |
|||
r.Middleware.Next() |
|||
} |
|||
@ -0,0 +1,20 @@ |
|||
// =================================================================================
|
|||
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
|
|||
// =================================================================================
|
|||
|
|||
package do |
|||
|
|||
import ( |
|||
"github.com/gogf/gf/v2/frame/g" |
|||
"github.com/gogf/gf/v2/os/gtime" |
|||
) |
|||
|
|||
// CoverImg is the golang structure of table cover_img for DAO operations like Where/Data.
|
|||
type CoverImg struct { |
|||
g.Meta `orm:"table:cover_img, do:true"` |
|||
Id interface{} // 主键id
|
|||
Name interface{} // 图片名称
|
|||
Url interface{} // 图片链接
|
|||
CreatedAt *gtime.Time // 添加时间
|
|||
UpdatedAt *gtime.Time // 修改时间
|
|||
} |
|||
@ -0,0 +1,27 @@ |
|||
// =================================================================================
|
|||
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
|
|||
// =================================================================================
|
|||
|
|||
package do |
|||
|
|||
import ( |
|||
"github.com/gogf/gf/v2/frame/g" |
|||
"github.com/gogf/gf/v2/os/gtime" |
|||
) |
|||
|
|||
// MemberInfo is the golang structure of table member_info for DAO operations like Where/Data.
|
|||
type MemberInfo struct { |
|||
g.Meta `orm:"table:member_info, do:true"` |
|||
Id interface{} // 主键id
|
|||
Name interface{} // 姓名
|
|||
Code interface{} // 国家/地区代码
|
|||
Telephone interface{} // 电话号码
|
|||
Wechat interface{} // 微信ID
|
|||
Email interface{} // 邮箱
|
|||
CreatedAt *gtime.Time // 添加时间
|
|||
Type interface{} // 注册来源(0其他,1视频,2直播,3帖子)
|
|||
Url interface{} // 来源地址
|
|||
UrlMd5 interface{} // 来源地址(MD5加密)
|
|||
IsRelated interface{} // 是否联系
|
|||
Note interface{} // 备注
|
|||
} |
|||
@ -0,0 +1,18 @@ |
|||
// =================================================================================
|
|||
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
|
|||
// =================================================================================
|
|||
|
|||
package entity |
|||
|
|||
import ( |
|||
"github.com/gogf/gf/v2/os/gtime" |
|||
) |
|||
|
|||
// CoverImg is the golang structure for table cover_img.
|
|||
type CoverImg struct { |
|||
Id int `json:"id" orm:"id" description:"主键id"` |
|||
Name string `json:"name" orm:"name" description:"图片名称"` |
|||
Url string `json:"url" orm:"url" description:"图片链接"` |
|||
CreatedAt *gtime.Time `json:"createdAt" orm:"created_at" description:"添加时间"` |
|||
UpdatedAt *gtime.Time `json:"updatedAt" orm:"updated_at" description:"修改时间"` |
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
// =================================================================================
|
|||
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
|
|||
// =================================================================================
|
|||
|
|||
package entity |
|||
|
|||
import ( |
|||
"github.com/gogf/gf/v2/os/gtime" |
|||
) |
|||
|
|||
// MemberInfo is the golang structure for table member_info.
|
|||
type MemberInfo struct { |
|||
Id int `json:"id" orm:"id" description:"主键id"` |
|||
Name string `json:"name" orm:"name" description:"姓名"` |
|||
Code string `json:"code" orm:"code" description:"国家/地区代码"` |
|||
Telephone string `json:"telephone" orm:"telephone" description:"电话号码"` |
|||
Wechat string `json:"wechat" orm:"wechat" description:"微信ID"` |
|||
Email string `json:"email" orm:"email" description:"邮箱"` |
|||
CreatedAt *gtime.Time `json:"createdAt" orm:"created_at" description:"添加时间"` |
|||
Type int `json:"type" orm:"type" description:"注册来源(0其他,1视频,2直播,3帖子)"` |
|||
Url string `json:"url" orm:"url" description:"来源地址"` |
|||
UrlMd5 string `json:"urlMd5" orm:"url_md5" description:"来源地址(MD5加密)"` |
|||
IsRelated int `json:"isRelated" orm:"is_related" description:"是否联系"` |
|||
Note string `json:"note" orm:"note" description:"备注"` |
|||
} |
|||
@ -0,0 +1 @@ |
|||
package packed |
|||
@ -0,0 +1,25 @@ |
|||
package service |
|||
|
|||
import v1 "UserRegister/api/v1" |
|||
|
|||
type ( |
|||
ICover interface { |
|||
GetCoverImage(req *v1.GetCoverImageReq) (res string, err error) |
|||
UpdateCoverImage(req *v1.UpdateCoverImageReq) (err error) |
|||
} |
|||
) |
|||
|
|||
var ( |
|||
localCover ICover |
|||
) |
|||
|
|||
func Cover() ICover { |
|||
if localCover == nil { |
|||
panic("implement not found for interface ICover, forgot register?") |
|||
} |
|||
return localCover |
|||
} |
|||
|
|||
func RegisterCover(i ICover) { |
|||
localCover = i |
|||
} |
|||
@ -0,0 +1,30 @@ |
|||
package service |
|||
|
|||
import ( |
|||
v1 "UserRegister/api/v1" |
|||
"UserRegister/internal/model/entity" |
|||
) |
|||
|
|||
type ( |
|||
IMember interface { |
|||
InsertMember(req *v1.InsertMemberReq) (err error) |
|||
GetMemberList(req *v1.GetMemberListReq) (res []entity.MemberInfo, total int, err error) |
|||
UpdateState(req *v1.UpdateStateReq) (err error) |
|||
EditNote(req *v1.EditNoteReq) (err error) |
|||
} |
|||
) |
|||
|
|||
var ( |
|||
localMember IMember |
|||
) |
|||
|
|||
func Member() IMember { |
|||
if localMember == nil { |
|||
panic("implement not found for interface IMember, forgot register?") |
|||
} |
|||
return localMember |
|||
} |
|||
|
|||
func RegisterMember(i IMember) { |
|||
localMember = i |
|||
} |
|||
@ -0,0 +1,31 @@ |
|||
// ================================================================================
|
|||
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
|
|||
// You can delete these comments if you wish manually maintain this interface file.
|
|||
// ================================================================================
|
|||
|
|||
package service |
|||
|
|||
import ( |
|||
"github.com/gogf/gf/v2/net/ghttp" |
|||
) |
|||
|
|||
type ( |
|||
IMiddleware interface { |
|||
CORS(r *ghttp.Request) |
|||
} |
|||
) |
|||
|
|||
var ( |
|||
localMiddleware IMiddleware |
|||
) |
|||
|
|||
func Middleware() IMiddleware { |
|||
if localMiddleware == nil { |
|||
panic("implement not found for interface IMiddleware, forgot register?") |
|||
} |
|||
return localMiddleware |
|||
} |
|||
|
|||
func RegisterMiddleware(i IMiddleware) { |
|||
localMiddleware = i |
|||
} |
|||
@ -0,0 +1,17 @@ |
|||
package main |
|||
|
|||
import ( |
|||
_ "UserRegister/internal/packed" |
|||
|
|||
_ "UserRegister/internal/logic" |
|||
|
|||
_ "github.com/gogf/gf/contrib/drivers/mysql/v2" |
|||
|
|||
"github.com/gogf/gf/v2/os/gctx" |
|||
|
|||
"UserRegister/internal/cmd" |
|||
) |
|||
|
|||
func main() { |
|||
cmd.Main.Run(gctx.GetInitCtx()) |
|||
} |
|||
@ -0,0 +1,21 @@ |
|||
apiVersion: apps/v1 |
|||
kind: Deployment |
|||
metadata: |
|||
name: template-single |
|||
labels: |
|||
app: template-single |
|||
spec: |
|||
replicas: 1 |
|||
selector: |
|||
matchLabels: |
|||
app: template-single |
|||
template: |
|||
metadata: |
|||
labels: |
|||
app: template-single |
|||
spec: |
|||
containers: |
|||
- name : main |
|||
image: template-single |
|||
imagePullPolicy: Always |
|||
|
|||
@ -0,0 +1,8 @@ |
|||
apiVersion: kustomize.config.k8s.io/v1beta1 |
|||
kind: Kustomization |
|||
resources: |
|||
- deployment.yaml |
|||
- service.yaml |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,12 @@ |
|||
apiVersion: v1 |
|||
kind: Service |
|||
metadata: |
|||
name: template-single |
|||
spec: |
|||
ports: |
|||
- port: 80 |
|||
protocol: TCP |
|||
targetPort: 8000 |
|||
selector: |
|||
app: template-single |
|||
|
|||
@ -0,0 +1,14 @@ |
|||
apiVersion: v1 |
|||
kind: ConfigMap |
|||
metadata: |
|||
name: template-single-configmap |
|||
data: |
|||
config.yaml: | |
|||
server: |
|||
address: ":8000" |
|||
openapiPath: "/api.json" |
|||
swaggerPath: "/swagger" |
|||
|
|||
logger: |
|||
level : "all" |
|||
stdout: true |
|||
@ -0,0 +1,10 @@ |
|||
apiVersion: apps/v1 |
|||
kind: Deployment |
|||
metadata: |
|||
name: template-single |
|||
spec: |
|||
template: |
|||
spec: |
|||
containers: |
|||
- name : main |
|||
image: template-single:develop |
|||
@ -0,0 +1,14 @@ |
|||
apiVersion: kustomize.config.k8s.io/v1beta1 |
|||
kind: Kustomization |
|||
|
|||
resources: |
|||
- ../../base |
|||
- configmap.yaml |
|||
|
|||
patchesStrategicMerge: |
|||
- deployment.yaml |
|||
|
|||
namespace: default |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,16 @@ |
|||
FROM loads/alpine:3.8 |
|||
|
|||
############################################################################### |
|||
# INSTALLATION |
|||
############################################################################### |
|||
|
|||
ENV WORKDIR /app |
|||
ADD resource $WORKDIR/ |
|||
ADD ./temp/linux_amd64/main $WORKDIR/main |
|||
RUN chmod +x $WORKDIR/main |
|||
|
|||
############################################################################### |
|||
# START |
|||
############################################################################### |
|||
WORKDIR $WORKDIR |
|||
CMD ./main |
|||
@ -0,0 +1,8 @@ |
|||
#!/bin/bash |
|||
|
|||
# This shell is executed before docker build. |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
@ -0,0 +1,39 @@ |
|||
package response |
|||
|
|||
import ( |
|||
"net/http" |
|||
|
|||
"github.com/gogf/gf/v2/frame/g" |
|||
"github.com/gogf/gf/v2/net/ghttp" |
|||
) |
|||
|
|||
// JsonRes 数据返回通用JSON数据结构
|
|||
type JsonRes struct { |
|||
Code int `json:"code"` // 错误码((0:成功, 1:失败, >1:错误码))
|
|||
Message string `json:"msg"` // 提示信息
|
|||
Data interface{} `json:"data"` // 返回数据(业务接口定义具体数据结构)
|
|||
} |
|||
|
|||
// Json 返回标准JSON数据。
|
|||
func Json(r *ghttp.Request, code int, message string, data ...interface{}) { |
|||
var responseData interface{} |
|||
if len(data) > 0 { |
|||
responseData = data[0] |
|||
} else { |
|||
responseData = g.Map{} |
|||
} |
|||
r.Response.WriteJson(JsonRes{ |
|||
Code: code, |
|||
Message: message, |
|||
Data: responseData, |
|||
}) |
|||
} |
|||
|
|||
// JsonExit 返回标准JSON数据并退出当前HTTP执行函数。
|
|||
func JsonExit(r *ghttp.Request, code int, message string, data ...interface{}) { |
|||
if code == http.StatusBadRequest { |
|||
g.Log().Error(r.Context(), code, message) |
|||
} |
|||
Json(r, code, message, data...) |
|||
r.Exit() |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue