Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
FLIPPED-AURORA
gin-vue-admin
提交
25c6fdee
G
gin-vue-admin
项目概览
FLIPPED-AURORA
/
gin-vue-admin
大约 1 年 前同步成功
通知
333
Star
18155
Fork
5506
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gin-vue-admin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
25c6fdee
编写于
9月 05, 2019
作者:
Mr.奇淼(
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
文件类型swagger的注解书写
用户头像上传 功能完成
上级
167186fa
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
192 addition
and
45 deletion
+192
-45
QMPlusServer/controller/api/reportformat.go
QMPlusServer/controller/api/reportformat.go
+14
-0
QMPlusServer/controller/api/user.go
QMPlusServer/controller/api/user.go
+52
-36
QMPlusServer/controller/support/upload.go
QMPlusServer/controller/support/upload.go
+16
-8
QMPlusServer/docs/docs.go
QMPlusServer/docs/docs.go
+39
-1
QMPlusServer/docs/swagger.json
QMPlusServer/docs/swagger.json
+38
-0
QMPlusServer/docs/swagger.yaml
QMPlusServer/docs/swagger.yaml
+25
-0
QMPlusServer/model/dbModel/user.go
QMPlusServer/model/dbModel/user.go
+7
-0
QMPlusServer/router/user.go
QMPlusServer/router/user.go
+1
-0
README.md
README.md
+0
-0
未找到文件。
QMPlusServer/controller/api/reportformat.go
0 → 100644
浏览文件 @
25c6fdee
package
api
import
(
"github.com/gin-gonic/gin"
"net/http"
)
func
ReportFormat
(
c
*
gin
.
Context
,
success
bool
,
msg
string
,
json
gin
.
H
)
{
c
.
JSON
(
http
.
StatusOK
,
gin
.
H
{
"success"
:
success
,
"msg"
:
msg
,
"data"
:
json
,
})
}
QMPlusServer/controller/api/user.go
浏览文件 @
25c6fdee
...
...
@@ -3,7 +3,14 @@ package api
import
(
"fmt"
"github.com/gin-gonic/gin"
"main/controller/support"
"main/model/dbModel"
"mime/multipart"
)
var
(
USER_HEADER_IMG_PATH
string
=
"http://qmplusimg.henrongyi.top"
USER_HEADER_BUCKET
string
=
"qm-plus-img"
)
type
RegistAndLoginStuct
struct
{
...
...
@@ -24,20 +31,12 @@ func Regist(c *gin.Context) {
U
:=
&
dbModel
.
User
{
UserName
:
R
.
UserName
,
PassWord
:
R
.
PassWord
}
err
,
user
:=
U
.
Regist
()
if
err
!=
nil
{
c
.
JSON
(
200
,
gin
.
H
{
"success"
:
false
,
"msg"
:
fmt
.
Sprintf
(
"%v"
,
err
),
"data"
:
gin
.
H
{
"user"
:
user
,
},
ReportFormat
(
c
,
false
,
fmt
.
Sprintf
(
"%v"
,
err
),
gin
.
H
{
"user"
:
user
,
})
}
else
{
c
.
JSON
(
200
,
gin
.
H
{
"success"
:
true
,
"msg"
:
"创建成功"
,
"data"
:
gin
.
H
{
"user"
:
user
,
},
ReportFormat
(
c
,
false
,
"创建成功"
,
gin
.
H
{
"user"
:
user
,
})
}
}
...
...
@@ -53,21 +52,9 @@ func Login(c *gin.Context) {
_
=
c
.
BindJSON
(
&
L
)
U
:=
&
dbModel
.
User
{
UserName
:
L
.
UserName
,
PassWord
:
L
.
PassWord
}
if
err
,
user
:=
U
.
Login
();
err
!=
nil
{
c
.
JSON
(
200
,
gin
.
H
{
"success"
:
false
,
"msg"
:
"用户名密码错误"
,
"data"
:
gin
.
H
{
"user"
:
user
,
},
})
ReportFormat
(
c
,
false
,
"用户名密码错误"
,
gin
.
H
{
"user"
:
user
})
}
else
{
c
.
JSON
(
200
,
gin
.
H
{
"success"
:
true
,
"msg"
:
"登录成功"
,
"data"
:
gin
.
H
{
"user"
:
user
,
},
})
ReportFormat
(
c
,
true
,
"登录成功"
,
gin
.
H
{
"user"
:
user
})
}
}
...
...
@@ -88,16 +75,45 @@ func ChangePassWord(c *gin.Context) {
_
=
c
.
BindJSON
(
&
params
)
U
:=
&
dbModel
.
User
{
UserName
:
params
.
UserName
,
PassWord
:
params
.
PassWord
}
if
err
,
_
:=
U
.
ChangePassWord
(
params
.
NewPassWord
);
err
!=
nil
{
c
.
JSON
(
200
,
gin
.
H
{
"success"
:
false
,
"msg"
:
"修改失败,请检查用户名密码"
,
"data"
:
gin
.
H
{},
})
ReportFormat
(
c
,
false
,
"修改失败,请检查用户名密码"
,
gin
.
H
{})
}
else
{
c
.
JSON
(
200
,
gin
.
H
{
"success"
:
true
,
"msg"
:
"修改成功"
,
"data"
:
gin
.
H
{},
})
ReportFormat
(
c
,
true
,
"修改成功"
,
gin
.
H
{})
}
}
type
UserHeaderImg
struct
{
HeaderImg
multipart
.
File
`json:"headerImg"`
}
// @Tags User
// @Summary 用户上传头像
// @accept multipart/form-data
// @Produce application/json
// @Param headerImg formData file true "用户上传头像"
// @Param userName formData string true "用户上传头像"
// @Success 200 {string} json "{"success":true,"data":{},"msg":"上传成功"}"
// @Router /user/uploadHeaderImg [post]
func
UploadHeaderImg
(
c
*
gin
.
Context
)
{
//获取头像文件
_
,
header
,
err
:=
c
.
Request
.
FormFile
(
"headerImg"
)
//便于找到用户 以后从jwt中取
userName
:=
c
.
PostForm
(
"userName"
)
if
err
!=
nil
{
ReportFormat
(
c
,
false
,
fmt
.
Sprintf
(
"上传文件失败,%v"
,
err
),
gin
.
H
{})
}
else
{
//文件上传后拿到文件路径
err
,
filePath
:=
support
.
Upload
(
header
,
USER_HEADER_BUCKET
,
USER_HEADER_IMG_PATH
)
if
err
!=
nil
{
ReportFormat
(
c
,
false
,
fmt
.
Sprintf
(
"接收返回值失败,%v"
,
err
),
gin
.
H
{})
}
else
{
//修改数据库后得到修改后的user并且返回供前端使用
err
,
user
:=
new
(
dbModel
.
User
)
.
UploadHeaderImg
(
userName
,
filePath
)
if
err
!=
nil
{
ReportFormat
(
c
,
false
,
fmt
.
Sprintf
(
"修改数据库链接失败,%v"
,
err
),
gin
.
H
{})
}
else
{
ReportFormat
(
c
,
true
,
"上传成功"
,
gin
.
H
{
"user"
:
user
})
}
}
}
}
QMPlusServer/controller/support/upload.go
浏览文件 @
25c6fdee
package
support
import
(
"bytes"
"context"
"fmt"
"github.com/qiniu/api.v7/auth/qbox"
"github.com/qiniu/api.v7/storage"
"mime/multipart"
"time"
)
var
accessKey
string
=
"25j8dYBZ2wuiy0yhwShytjZDTX662b8xiFguwxzZ"
// 你在七牛云的accessKey
var
secretKey
string
=
"pgdbqEsf7ooZh7W3xokP833h3dZ_VecFXPDeG5JY"
// 你在七牛云的secretKey
var
bucket
string
=
"a303176530"
// 你七牛云标准空间的名字
func
Upload
(
file
multipart
.
File
)
(
err
error
,
path
string
)
{
// 接收两个参数 一个文件流 一个 bucket 你的七牛云标准空间的名字
func
Upload
(
file
*
multipart
.
FileHeader
,
bucket
string
,
urlPath
string
)
(
err
error
,
path
string
)
{
putPolicy
:=
storage
.
PutPolicy
{
Scope
:
bucket
,
}
...
...
@@ -31,12 +33,18 @@ func Upload(file multipart.File) (err error, path string) {
"x:name"
:
"github logo"
,
},
}
data
:=
[]
byte
(
"hello, this is qiniu cloud"
)
dataLen
:=
int64
(
len
(
data
))
err
:=
formUploader
.
Put
(
context
.
Background
(),
&
ret
,
upToken
,
key
,
bytes
.
NewReader
(
data
),
dataLen
,
&
putExtra
)
f
,
e
:=
file
.
Open
()
if
e
!=
nil
{
fmt
.
Println
(
e
)
return
e
,
""
}
dataLen
:=
file
.
Size
fileKey
:=
fmt
.
Sprintf
(
"%d%s"
,
time
.
Now
()
.
Unix
(),
file
.
Filename
)
// 文件名格式 自己可以改 建议保证唯一性
err
=
formUploader
.
Put
(
context
.
Background
(),
&
ret
,
upToken
,
fileKey
,
f
,
dataLen
,
&
putExtra
)
if
err
!=
nil
{
fmt
.
Println
(
err
)
return
//qmlog.QMLog.Info(err)
return
err
,
""
}
fmt
.
Println
(
ret
.
Key
,
ret
.
Hash
)
return
err
,
urlPath
+
"/"
+
ret
.
Key
}
QMPlusServer/docs/docs.go
浏览文件 @
25c6fdee
// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
// This file was generated by swaggo/swag at
// 2019-09-0
3 23:59:41.1295277 +0800 CST m=+0.0383629
01
// 2019-09-0
5 23:15:39.7963441 +0800 CST m=+0.0628325
01
package
docs
...
...
@@ -118,6 +118,44 @@ var doc = `{
}
}
}
},
"/user/uploadHeaderImg": {
"post": {
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"User"
],
"summary": "用户上传头像",
"parameters": [
{
"type": "file",
"description": "用户上传头像",
"name": "headerImg",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "用户上传头像",
"name": "userName",
"in": "formData",
"required": true
}
],
"responses": {
"200": {
"description": "{\"success\":true,\"data\":{},\"msg\":\"上传成功\"}",
"schema": {
"type": "string"
}
}
}
}
}
},
"definitions": {
...
...
QMPlusServer/docs/swagger.json
浏览文件 @
25c6fdee
...
...
@@ -97,6 +97,44 @@
}
}
}
},
"/user/uploadHeaderImg"
:
{
"post"
:
{
"consumes"
:
[
"multipart/form-data"
],
"produces"
:
[
"application/json"
],
"tags"
:
[
"User"
],
"summary"
:
"用户上传头像"
,
"parameters"
:
[
{
"type"
:
"file"
,
"description"
:
"用户上传头像"
,
"name"
:
"headerImg"
,
"in"
:
"formData"
,
"required"
:
true
},
{
"type"
:
"string"
,
"description"
:
"用户上传头像"
,
"name"
:
"userName"
,
"in"
:
"formData"
,
"required"
:
true
}
],
"responses"
:
{
"200"
:
{
"description"
:
"{
\"
success
\"
:true,
\"
data
\"
:{},
\"
msg
\"
:
\"
上传成功
\"
}"
,
"schema"
:
{
"type"
:
"string"
}
}
}
}
}
},
"definitions"
:
{
...
...
QMPlusServer/docs/swagger.yaml
浏览文件 @
25c6fdee
...
...
@@ -79,4 +79,29 @@ paths:
summary
:
用户注册账号
tags
:
-
User
/user/uploadHeaderImg
:
post
:
consumes
:
-
multipart/form-data
parameters
:
-
description
:
用户上传头像
in
:
formData
name
:
headerImg
required
:
true
type
:
file
-
description
:
用户上传头像
in
:
formData
name
:
userName
required
:
true
type
:
string
produces
:
-
application/json
responses
:
"
200"
:
description
:
'
{"success":true,"data":{},"msg":"上传成功"}'
schema
:
type
:
string
summary
:
用户上传头像
tags
:
-
User
swagger
:
"
2.0"
QMPlusServer/model/dbModel/user.go
浏览文件 @
25c6fdee
...
...
@@ -62,3 +62,10 @@ func (u *User) Login() (err error, userInter *User) {
err
=
qmsql
.
DEFAULTDB
.
Where
(
"user_name = ? AND pass_word = ?"
,
u
.
UserName
,
u
.
PassWord
)
.
First
(
&
user
)
.
Error
return
err
,
&
user
}
// 用户头像上传更新地址
func
(
u
*
User
)
UploadHeaderImg
(
userName
string
,
filePath
string
)
(
err
error
,
userInter
*
User
)
{
var
user
User
err
=
qmsql
.
DEFAULTDB
.
Where
(
"user_name = ?"
,
userName
)
.
First
(
&
user
)
.
Update
(
"header_img"
,
filePath
)
.
First
(
&
user
)
.
Error
return
err
,
&
user
}
QMPlusServer/router/user.go
浏览文件 @
25c6fdee
...
...
@@ -11,5 +11,6 @@ func InitUserRouter(Router *gin.Engine) {
UserRouter
.
POST
(
"regist"
,
api
.
Regist
)
UserRouter
.
POST
(
"login"
,
api
.
Login
)
UserRouter
.
POST
(
"changePassWord"
,
api
.
ChangePassWord
)
UserRouter
.
POST
(
"uploadHeaderImg"
,
api
.
UploadHeaderImg
)
}
}
README.md
浏览文件 @
25c6fdee
B
# QMPlus gin+vue开源快速项目模板
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录