From bc7d89ccbeddc7329ddefbeba97eff708539ab05 Mon Sep 17 00:00:00 2001 From: Granty1 Date: Wed, 8 Apr 2020 14:00:08 +0800 Subject: [PATCH] Unifies the output of the routing layer and the isolated response structure --- server/api/v1/exa_breakpoint_continue.go | 26 ++++---- server/api/v1/exa_customer.go | 21 +++---- server/api/v1/exa_file_upload_download.go | 21 ++++--- server/api/v1/sys_api.go | 30 ++++----- server/api/v1/sys_authority.go | 19 +++--- server/api/v1/sys_auto_code.go | 2 +- server/api/v1/sys_captcha.go | 7 ++- server/api/v1/sys_casbin.go | 9 +-- server/api/v1/sys_jwt_blacklist.go | 4 +- server/api/v1/sys_menu.go | 35 +++++------ server/api/v1/sys_system.go | 13 ++-- server/api/v1/sys_user.go | 61 +++++++++++-------- server/api/v1/sys_work_flow.go | 4 +- server/global/response/response.go | 28 +++++++++ .../model/response/exa_breakpoint_continue.go | 11 ++++ server/model/response/exa_customer.go | 7 +++ .../response/exa_file_upload_download.go | 7 +++ server/model/response/sys_api.go | 11 ++++ server/model/response/sys_authority.go | 7 +++ server/model/response/sys_captcha.go | 6 ++ server/model/response/sys_casbin.go | 5 ++ server/model/response/sys_menu.go | 15 +++++ server/model/response/sys_system.go | 7 +++ server/model/response/sys_user.go | 15 +++++ 24 files changed, 250 insertions(+), 121 deletions(-) create mode 100644 server/model/response/exa_breakpoint_continue.go create mode 100644 server/model/response/exa_customer.go create mode 100644 server/model/response/exa_file_upload_download.go create mode 100644 server/model/response/sys_api.go create mode 100644 server/model/response/sys_authority.go create mode 100644 server/model/response/sys_captcha.go create mode 100644 server/model/response/sys_casbin.go create mode 100644 server/model/response/sys_menu.go create mode 100644 server/model/response/sys_system.go create mode 100644 server/model/response/sys_user.go diff --git a/server/api/v1/exa_breakpoint_continue.go b/server/api/v1/exa_breakpoint_continue.go index 8ed14445..2fe76d26 100644 --- a/server/api/v1/exa_breakpoint_continue.go +++ b/server/api/v1/exa_breakpoint_continue.go @@ -3,6 +3,8 @@ package v1 import ( "fmt" "gin-vue-admin/global/response" + _ "gin-vue-admin/model/response" + resp "gin-vue-admin/model/response" "gin-vue-admin/service" "gin-vue-admin/utils" "github.com/gin-gonic/gin" @@ -26,28 +28,28 @@ func BreakpointContinue(c *gin.Context) { chunkTotal, _ := strconv.Atoi(c.Request.FormValue("chunkTotal")) _, FileHeader, err := c.Request.FormFile("file") if err != nil { - response.Result(response.SUCCESS, nil, fmt.Sprintf("%v", err), c) + response.FailWithMessage(err.Error(), c) } else { f, err := FileHeader.Open() if err != nil { - response.Result(response.ERROR, nil, fmt.Sprintf("%v", err), c) + response.FailWithMessage(err.Error(), c) } else { cen, _ := ioutil.ReadAll(f) defer f.Close() if flag := utils.CheckMd5(cen, chunkMd5); flag { err, file := service.FindOrCreateFile(fileMd5, fileName, chunkTotal) if err != nil { - response.Result(response.ERROR, nil, fmt.Sprintf("%v", err), c) + response.FailWithMessage(err.Error(), c) } else { err, pathc := utils.BreakPointContinue(cen, fileName, chunkNumber, chunkTotal, fileMd5) if err != nil { - response.Result(response.ERROR, nil, fmt.Sprintf("%v", err), c) + response.FailWithMessage(err.Error(), c) } else { err = service.CreateFileChunk(file.ID, pathc, chunkNumber) if err != nil { - response.Result(response.ERROR, nil, fmt.Sprintf("%v", err), c) + response.FailWithMessage(err.Error(), c) } else { - response.Result(response.SUCCESS, nil, "切片创建成功", c) + response.OkWithMessage("切片创建成功", c) } } } @@ -71,9 +73,9 @@ func FindFile(c *gin.Context) { chunkTotal, _ := strconv.Atoi(c.Query("chunkTotal")) err, file := service.FindOrCreateFile(fileMd5, fileName, chunkTotal) if err != nil { - response.Result(response.ERROR, nil, fmt.Sprintf("查找失败:%v", err), c) + response.FailWithMessage("查找失败", c) } else { - response.Result(response.SUCCESS, gin.H{"file": file}, "查找成功", c) + response.OkWithData(resp.FileResponse{File: file}, c) } } @@ -90,9 +92,9 @@ func BreakpointContinueFinish(c *gin.Context) { fileName := c.Query("fileName") err, filePath := utils.MakeFile(fileName, fileMd5) if err != nil { - response.Result(response.ERROR, gin.H{"filePath": filePath}, fmt.Sprintf("文件创建失败:%v", err), c) + response.FailWithDetailed(response.ERROR, resp.FilePathResponse{FilePath: filePath}, fmt.Sprintf("文件创建失败:%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{"filePath": filePath}, "文件创建成功", c) + response.OkDetailed(resp.FilePathResponse{FilePath: filePath}, "文件创建成功", c) } } @@ -111,8 +113,8 @@ func RemoveChunk(c *gin.Context) { err := utils.RemoveChunk(fileMd5) err = service.DeleteFileChunk(fileMd5, fileName, filePath) if err != nil { - response.Result(response.ERROR, gin.H{"filePath": filePath}, fmt.Sprintf("缓存切片删除失败:%v", err), c) + response.FailWithDetailed(response.ERROR, resp.FilePathResponse{FilePath: filePath}, fmt.Sprintf("缓存切片删除失败:%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{"filePath": filePath}, "缓存切片删除成功", c) + response.OkDetailed(resp.FilePathResponse{FilePath: filePath}, "缓存切片删除成功", c) } } diff --git a/server/api/v1/exa_customer.go b/server/api/v1/exa_customer.go index f0c47540..609f1cd0 100644 --- a/server/api/v1/exa_customer.go +++ b/server/api/v1/exa_customer.go @@ -5,6 +5,7 @@ import ( "gin-vue-admin/global/response" "gin-vue-admin/model" "gin-vue-admin/model/request" + resp "gin-vue-admin/model/response" "gin-vue-admin/service" "github.com/gin-gonic/gin" ) @@ -26,9 +27,9 @@ func CreateExaCustomer(c *gin.Context) { cu.SysUserAuthorityID = waitUse.AuthorityId err := service.CreateExaCustomer(cu) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("创建失败:%v", err), c) + response.FailWithMessage(fmt.Sprintf("删除失败:%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{}, "创建成功", c) + response.OkWithMessage("创建成功", c) } } @@ -45,9 +46,9 @@ func DeleteExaCustomer(c *gin.Context) { _ = c.ShouldBindJSON(&cu) err := service.DeleteExaCustomer(cu) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("删除失败:%v", err), c) + response.FailWithMessage(fmt.Sprintf("删除失败:%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{}, "删除成功", c) + response.OkWithMessage("删除成功", c) } } @@ -64,9 +65,9 @@ func UpdateExaCustomer(c *gin.Context) { _ = c.ShouldBindJSON(&cu) err := service.UpdateExaCustomer(&cu) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("更新失败:%v", err), c) + response.FailWithMessage(fmt.Sprintf("更新失败:%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{}, "更新成功", c) + response.OkWithMessage("更新成功", c) } } @@ -83,11 +84,9 @@ func GetExaCustomer(c *gin.Context) { _ = c.ShouldBindJSON(&cu) err, customer := service.GetExaCustomer(cu.ID) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("获取失败:%v", err), c) + response.FailWithMessage(fmt.Sprintf("获取失败:%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{ - "customer": customer, - }, "创建", c) + response.OkWithData( resp.ExaCustomerResponse{Customer: customer}, c) } } @@ -106,7 +105,7 @@ func GetExaCustomerList(c *gin.Context) { _ = c.ShouldBindJSON(&pageInfo) err, customerList, total := service.GetCustomerInfoList(waitUse.AuthorityId, pageInfo) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("创建失败:%v", err), c) + response.FailWithMessage(fmt.Sprintf("创建失败:%v", err), c) } else { response.Result(response.SUCCESS, gin.H{ "customer": customerList, diff --git a/server/api/v1/exa_file_upload_download.go b/server/api/v1/exa_file_upload_download.go index c81cb503..44eb4917 100644 --- a/server/api/v1/exa_file_upload_download.go +++ b/server/api/v1/exa_file_upload_download.go @@ -5,6 +5,7 @@ import ( "gin-vue-admin/global/response" "gin-vue-admin/model" "gin-vue-admin/model/request" + resp "gin-vue-admin/model/response" "gin-vue-admin/service" "gin-vue-admin/utils" "github.com/gin-gonic/gin" @@ -23,12 +24,12 @@ func UploadFile(c *gin.Context) { noSave := c.DefaultQuery("noSave", "0") _, header, err := c.Request.FormFile("file") if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("上传文件失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("上传文件失败,%v", err), c) } else { //文件上传后拿到文件路径 err, filePath, key := utils.Upload(header, USER_HEADER_BUCKET, USER_HEADER_IMG_PATH) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("接收返回值失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("接收返回值失败,%v", err), c) } else { //修改数据库后得到修改后的user并且返回供前端使用 var file model.ExaFileUploadAndDownload @@ -41,9 +42,9 @@ func UploadFile(c *gin.Context) { err = service.Upload(file) } if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("修改数据库链接失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("修改数据库链接失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{"file": file}, "上传成功", c) + response.OkDetailed(resp.ExaFileResponse{File: file}, "上传成功", c) } } @@ -62,18 +63,18 @@ func DeleteFile(c *gin.Context) { _ = c.ShouldBindJSON(&file) err, f := service.FindFile(file.ID) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("删除失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("删除失败,%v", err), c) } else { err = utils.DeleteFile(USER_HEADER_BUCKET, f.Key) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("删除失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("删除失败,%v", err), c) } else { err = service.DeleteFile(f) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("删除失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("删除失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{}, "删除成功", c) + response.OkWithMessage("删除成功", c) } } } @@ -92,9 +93,9 @@ func GetFileList(c *gin.Context) { _ = c.ShouldBindJSON(&pageInfo) err, list, total := service.GetFileRecordInfoList(pageInfo) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("获取数据失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("获取数据失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{ + response.OkDetailed(gin.H{ "list": list, "total": total, "page": pageInfo.Page, diff --git a/server/api/v1/sys_api.go b/server/api/v1/sys_api.go index 060aea94..3d98fc11 100644 --- a/server/api/v1/sys_api.go +++ b/server/api/v1/sys_api.go @@ -5,6 +5,7 @@ import ( "gin-vue-admin/global/response" "gin-vue-admin/model" "gin-vue-admin/model/request" + resp "gin-vue-admin/model/response" "gin-vue-admin/service" "github.com/gin-gonic/gin" ) @@ -22,9 +23,9 @@ func CreateApi(c *gin.Context) { _ = c.ShouldBindJSON(&api) err := service.CreateApi(api) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("创建失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("创建失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{}, "创建成功", c) + response.OkWithMessage("创建成功", c) } } @@ -41,9 +42,9 @@ func DeleteApi(c *gin.Context) { _ = c.ShouldBindJSON(&a) err := service.DeleteApi(a) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("删除失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("删除失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{}, "删除成功", c) + response.OkWithMessage("删除成功", c) } } @@ -63,9 +64,9 @@ func GetApiList(c *gin.Context) { _ = c.ShouldBindJSON(&sp) err, list, total := service.GetAPIInfoList(sp.SysApi, sp.PageInfo, sp.OrderKey, sp.Desc) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("获取数据失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("获取数据失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{ + response.OkDetailed(gin.H{ "list": list, "total": total, "page": sp.PageInfo.Page, @@ -87,12 +88,9 @@ func GetApiById(c *gin.Context) { _ = c.ShouldBindJSON(&idInfo) err, api := service.GetApiById(idInfo.Id) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("获取数据失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("获取数据失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{ - "api": api, - }, "获取数据成功", c) - + response.OkWithData(resp.SysAPIResponse{Api: api}, c) } } @@ -109,9 +107,9 @@ func UpdateApi(c *gin.Context) { _ = c.ShouldBindJSON(&api) err := service.UpdateApi(api) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("修改数据失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("修改数据失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{}, "修改数据成功", c) + response.OkWithMessage("修改数据成功", c) } } @@ -125,10 +123,8 @@ func UpdateApi(c *gin.Context) { func GetAllApis(c *gin.Context) { err, apis := service.GetAllApis() if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("获取数据失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("获取数据失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{ - "apis": apis, - }, "获取数据成功", c) + response.OkWithData(resp.SysAPIListResponse{Apis: apis}, c) } } diff --git a/server/api/v1/sys_authority.go b/server/api/v1/sys_authority.go index 839b3872..74c1aa7b 100644 --- a/server/api/v1/sys_authority.go +++ b/server/api/v1/sys_authority.go @@ -5,6 +5,7 @@ import ( "gin-vue-admin/global/response" "gin-vue-admin/model" "gin-vue-admin/model/request" + resp "gin-vue-admin/model/response" "gin-vue-admin/service" "github.com/gin-gonic/gin" ) @@ -22,11 +23,9 @@ func CreateAuthority(c *gin.Context) { _ = c.ShouldBindJSON(&auth) err, authBack := service.CreateAuthority(&auth) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("创建失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("创建失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{ - "authority": authBack, - }, fmt.Sprintf("创建成功,%v", err), c) + response.OkWithData(resp.SysAuthorityResponse{Authority: *authBack}, c) } } @@ -44,9 +43,9 @@ func DeleteAuthority(c *gin.Context) { //删除角色之前需要判断是否有用户正在使用此角色 err := service.DeleteAuthority(a) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("删除失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("删除失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{}, "删除失败", c) + response.OkWithMessage("删除成功", c) } } @@ -63,9 +62,9 @@ func GetAuthorityList(c *gin.Context) { _ = c.ShouldBindJSON(&pageInfo) err, list, total := service.GetAuthorityInfoList(pageInfo) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("获取数据失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("获取数据失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{ + response.OkDetailed(gin.H{ "list": list, "total": total, "page": pageInfo.Page, @@ -87,8 +86,8 @@ func SetDataAuthority(c *gin.Context) { _ = c.ShouldBindJSON(&auth) err := service.SetDataAuthority(auth) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("设置关联失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("设置关联失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{}, "获取数据成功", c) + response.Ok(c) } } diff --git a/server/api/v1/sys_auto_code.go b/server/api/v1/sys_auto_code.go index fb476c2a..4ffd6458 100644 --- a/server/api/v1/sys_auto_code.go +++ b/server/api/v1/sys_auto_code.go @@ -22,7 +22,7 @@ func CreateTemp(c *gin.Context) { _ = c.ShouldBindJSON(&a) err := service.CreateTemp(a) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("创建失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("创建失败,%v", err), c) os.Remove("./ginvueadmin.zip") } else { c.Writer.Header().Add("Content-Disposition", fmt.Sprintf("attachment; filename=%s", "ginvueadmin.zip")) //fmt.Sprintf("attachment; filename=%s", filename)对下载的文件重命名 diff --git a/server/api/v1/sys_captcha.go b/server/api/v1/sys_captcha.go index 26353ec6..43bb54b1 100644 --- a/server/api/v1/sys_captcha.go +++ b/server/api/v1/sys_captcha.go @@ -3,6 +3,7 @@ package v1 import ( "gin-vue-admin/global" "gin-vue-admin/global/response" + resp "gin-vue-admin/model/response" "gin-vue-admin/utils" "github.com/dchest/captcha" "github.com/gin-gonic/gin" @@ -17,9 +18,9 @@ import ( // @Router /base/captcha [post] func Captcha(c *gin.Context) { captchaId := captcha.NewLen(global.GVA_CONFIG.Captcha.KeyLong) - response.Result(response.SUCCESS, gin.H{ - "captchaId": captchaId, - "picPath": "/base/captcha/" + captchaId + ".png", + response.OkDetailed(resp.SysCaptchaResponse{ + CaptchaId: captchaId, + PicPath: "/base/captcha/" + captchaId + ".png", }, "验证码获取成功", c) } diff --git a/server/api/v1/sys_casbin.go b/server/api/v1/sys_casbin.go index 2c699adf..11e4d41a 100644 --- a/server/api/v1/sys_casbin.go +++ b/server/api/v1/sys_casbin.go @@ -4,6 +4,7 @@ import ( "fmt" "gin-vue-admin/global/response" "gin-vue-admin/model/request" + resp "gin-vue-admin/model/response" "gin-vue-admin/service" "github.com/gin-gonic/gin" ) @@ -21,9 +22,9 @@ func UpdateCasbin(c *gin.Context) { _ = c.ShouldBindJSON(&cmr) err := service.UpdateCasbin(cmr.AuthorityId, cmr.CasbinInfos) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("添加规则失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("添加规则失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{}, "添加规则成功", c) + response.OkWithMessage("添加规则成功", c) } } @@ -39,7 +40,7 @@ func GetPolicyPathByAuthorityId(c *gin.Context) { var cmr request.CasbinInReceive _ = c.ShouldBindJSON(&cmr) paths := service.GetPolicyPathByAuthorityId(cmr.AuthorityId) - response.Result(response.SUCCESS, gin.H{"paths": paths}, "获取规则成功", c) + response.OkWithData(resp.PolicyPathResponse{Paths: paths}, c) } // @Tags casbin @@ -54,5 +55,5 @@ func CasbinTest(c *gin.Context) { // 测试restful以及占位符代码 随意书写 pathParam := c.Param("pathParam") query := c.Query("query") - response.Result(response.SUCCESS, gin.H{"pathParam": pathParam, "query": query}, "获取规则成功", c) + response.OkDetailed(gin.H{"pathParam": pathParam, "query": query}, "获取规则成功", c) } diff --git a/server/api/v1/sys_jwt_blacklist.go b/server/api/v1/sys_jwt_blacklist.go index 46d1d263..235d5668 100644 --- a/server/api/v1/sys_jwt_blacklist.go +++ b/server/api/v1/sys_jwt_blacklist.go @@ -22,8 +22,8 @@ func JsonInBlacklist(c *gin.Context) { } err := service.JsonInBlacklist(modelJwt) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("jwt作废失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("jwt作废失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{}, "jwt作废成功", c) + response.OkWithMessage("jwt作废成功", c) } } diff --git a/server/api/v1/sys_menu.go b/server/api/v1/sys_menu.go index 57e11ca3..8d86e3b4 100644 --- a/server/api/v1/sys_menu.go +++ b/server/api/v1/sys_menu.go @@ -5,6 +5,7 @@ import ( "gin-vue-admin/global/response" "gin-vue-admin/model" "gin-vue-admin/model/request" + resp "gin-vue-admin/model/response" "gin-vue-admin/service" "github.com/gin-gonic/gin" ) @@ -21,9 +22,9 @@ func GetMenu(c *gin.Context) { waitUse := claims.(*request.CustomClaims) err, menus := service.GetMenuTree(waitUse.AuthorityId) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("获取失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("获取失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{"menus": menus}, "获取成功", c) + response.OkWithData(resp.SysMenusResponse{Menus: menus}, c) } } @@ -40,9 +41,9 @@ func GetMenuList(c *gin.Context) { _ = c.ShouldBindJSON(&pageInfo) err, menuList, total := service.GetInfoList(pageInfo) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("获取数据失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("获取数据失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{ + response.OkDetailed(gin.H{ "list": menuList, "total": total, "page": pageInfo.Page, @@ -64,9 +65,9 @@ func AddBaseMenu(c *gin.Context) { _ = c.ShouldBindJSON(&menu) err := service.AddBaseMenu(menu) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("添加失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("添加失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{}, "添加成功", c) + response.OkWithMessage("添加成功", c) } } @@ -80,9 +81,9 @@ func AddBaseMenu(c *gin.Context) { func GetBaseMenuTree(c *gin.Context) { err, menus := service.GetBaseMenuTree() if err != nil { - response.Result(response.ERROR, gin.H{"menus": menus}, fmt.Sprintf("获取失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("获取失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{"menus": menus}, "获取成功", c) + response.OkWithData(resp.SysBaseMenusResponse{Menus: menus}, c) } } @@ -101,9 +102,9 @@ func AddMenuAuthority(c *gin.Context) { err := service.AddMenuAuthority(addMenuAuthorityInfo.Menus, addMenuAuthorityInfo.AuthorityId) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("添加失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("添加失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{}, "添加成功", c) + response.OkWithMessage("添加成功", c) } } @@ -120,7 +121,7 @@ func GetMenuAuthority(c *gin.Context) { _ = c.ShouldBindJSON(&authorityIdInfo) err, menus := service.GetMenuAuthority(authorityIdInfo.AuthorityId) if err != nil { - response.Result(response.ERROR, gin.H{"menus": menus}, fmt.Sprintf("添加失败,%v", err), c) + response.FailWithDetailed(response.ERROR, resp.SysMenusResponse{Menus: menus}, fmt.Sprintf("添加失败,%v", err), c) } else { response.Result(response.SUCCESS, gin.H{"menus": menus}, "获取成功", c) } @@ -139,9 +140,9 @@ func DeleteBaseMenu(c *gin.Context) { _ = c.ShouldBindJSON(&idInfo) err := service.DeleteBaseMenu(idInfo.Id) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("删除失败:%v", err), c) + response.FailWithMessage(fmt.Sprintf("删除失败:%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{}, "删除成功", c) + response.OkWithMessage("删除成功", c) } } @@ -159,9 +160,9 @@ func UpdateBaseMenu(c *gin.Context) { _ = c.ShouldBindJSON(&menu) err := service.UpdateBaseMenu(menu) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("修改失败:%v", err), c) + response.FailWithMessage(fmt.Sprintf("修改失败:%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{}, "修改成功", c) + response.OkWithMessage("修改成功", c) } } @@ -178,8 +179,8 @@ func GetBaseMenuById(c *gin.Context) { _ = c.ShouldBindJSON(&idInfo) err, menu := service.GetBaseMenuById(idInfo.Id) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("查询失败:%v", err), c) + response.FailWithMessage(fmt.Sprintf("查询失败:%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{"menu": menu}, "查询成功", c) + response.OkWithData(resp.SysBaseMenuResponse{Menu: menu}, c) } } diff --git a/server/api/v1/sys_system.go b/server/api/v1/sys_system.go index afb6e701..fdc09727 100644 --- a/server/api/v1/sys_system.go +++ b/server/api/v1/sys_system.go @@ -4,6 +4,7 @@ import ( "fmt" "gin-vue-admin/global/response" "gin-vue-admin/model" + resp "gin-vue-admin/model/response" "gin-vue-admin/service" "github.com/gin-gonic/gin" ) @@ -17,9 +18,9 @@ import ( func GetSystemConfig(c *gin.Context) { err, config := service.GetSystemConfig() if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("获取失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("获取失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{"config": config}, "获取成功", c) + response.OkWithData(resp.SysConfigResponse{Config: config}, c) } } @@ -35,9 +36,9 @@ func SetSystemConfig(c *gin.Context) { _ = c.ShouldBindJSON(&sys) err := service.SetSystemConfig(sys) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("设置失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("设置失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{}, "设置成功", c) + response.OkWithData("设置成功", c) } } @@ -54,8 +55,8 @@ func ReloadSystem(c *gin.Context) { _ = c.ShouldBindJSON(&sys) err := service.SetSystemConfig(sys) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("设置失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("设置失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{}, "设置成功", c) + response.OkWithMessage("设置成功", c) } } diff --git a/server/api/v1/sys_user.go b/server/api/v1/sys_user.go index d7b43e83..ff50f7d3 100644 --- a/server/api/v1/sys_user.go +++ b/server/api/v1/sys_user.go @@ -7,6 +7,7 @@ import ( "gin-vue-admin/middleware" "gin-vue-admin/model" "gin-vue-admin/model/request" + resp "gin-vue-admin/model/response" "gin-vue-admin/service" "gin-vue-admin/utils" "github.com/dchest/captcha" @@ -34,13 +35,9 @@ func Register(c *gin.Context) { user := &model.SysUser{Username: R.Username, NickName: R.NickName, Password: R.Password, HeaderImg: R.HeaderImg, AuthorityId: R.AuthorityId} err, user := service.Register(user) if err != nil { - response.Result(response.ERROR, gin.H{ - "user": user, - }, fmt.Sprintf("%v", err), c) + response.FailWithDetailed(response.ERROR, resp.SysUserResponse{User: *user}, fmt.Sprintf("%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{ - "user": user, - }, "注册成功", c) + response.OkDetailed(resp.SysUserResponse{User: *user}, "注册成功", c) } } @@ -56,12 +53,12 @@ func Login(c *gin.Context) { if captcha.VerifyString(L.CaptchaId, L.Captcha) { U := &model.SysUser{Username: L.Username, Password: L.Password} if err, user := service.Login(U); err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("用户名密码错误或%v", err), c) + response.FailWithMessage(fmt.Sprintf("用户名密码错误或%v", err), c) } else { tokenNext(c, *user) } } else { - response.Result(response.ERROR, gin.H{}, "验证码错误", c) + response.FailWithMessage("验证码错误", c) } } @@ -84,7 +81,7 @@ func tokenNext(c *gin.Context, user model.SysUser) { } token, err := j.CreateToken(clams) if err != nil { - response.Result(response.ERROR, gin.H{}, "获取token失败", c) + response.FailWithMessage("获取token失败", c) } else { if global.GVA_CONFIG.System.UseMultipoint { var loginJwt model.JwtBlacklist @@ -93,29 +90,41 @@ func tokenNext(c *gin.Context, user model.SysUser) { if err == redis.Nil { err2 := service.SetRedisJWT(loginJwt, user.Username) if err2 != nil { - response.Result(response.ERROR, gin.H{}, "设置登录状态失败", c) + response.FailWithMessage("设置登录状态失败", c) } else { - response.Result(response.SUCCESS, gin.H{"user": user, "token": token, "expiresAt": clams.StandardClaims.ExpiresAt * 1000}, "登录成功", c) + response.OkWithData(resp.LoginResponse{ + User: user, + Token: token, + ExpiresAt: clams.StandardClaims.ExpiresAt * 1000, + }, c) } } else if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("%v", err), c) + response.FailWithMessage(fmt.Sprintf("%v", err), c) } else { var blackJWT model.JwtBlacklist blackJWT.Jwt = jwtStr err3 := service.JsonInBlacklist(blackJWT) if err3 != nil { - response.Result(response.ERROR, gin.H{}, "jwt作废失败", c) + response.FailWithMessage("jwt作废失败", c) } else { err2 := service.SetRedisJWT(loginJwt, user.Username) if err2 != nil { - response.Result(response.ERROR, gin.H{}, "设置登录状态失败", c) + response.FailWithMessage("设置登录状态失败", c) } else { - response.Result(response.SUCCESS, gin.H{"user": user, "token": token, "expiresAt": clams.StandardClaims.ExpiresAt * 1000}, "登录成功", c) + response.OkWithData(resp.LoginResponse{ + User: user, + Token: token, + ExpiresAt: clams.StandardClaims.ExpiresAt * 1000, + }, c) } } } } else { - response.Result(response.SUCCESS, gin.H{"user": user, "token": token, "expiresAt": clams.StandardClaims.ExpiresAt * 1000}, "登录成功", c) + response.OkWithData(resp.LoginResponse{ + User: user, + Token: token, + ExpiresAt: clams.StandardClaims.ExpiresAt * 1000, + }, c) } } } @@ -132,9 +141,9 @@ func ChangePassword(c *gin.Context) { _ = c.ShouldBindJSON(¶ms) U := &model.SysUser{Username: params.Username, Password: params.Password} if err, _ := service.ChangePassword(U, params.NewPassword); err != nil { - response.Result(response.ERROR, gin.H{}, "修改失败,请检查用户名密码", c) + response.FailWithMessage("修改失败,请检查用户名密码", c) } else { - response.Result(response.SUCCESS, gin.H{}, "修改成功", c) + response.OkWithMessage("修改成功", c) } } @@ -160,19 +169,19 @@ func UploadHeaderImg(c *gin.Context) { _, header, err := c.Request.FormFile("headerImg") //便于找到用户 以后从jwt中取 if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("上传文件失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("上传文件失败,%v", err), c) } else { //文件上传后拿到文件路径 err, filePath, _ := utils.Upload(header, USER_HEADER_BUCKET, USER_HEADER_IMG_PATH) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("接收返回值失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("接收返回值失败,%v", err), c) } else { //修改数据库后得到修改后的user并且返回供前端使用 err, user := service.UploadHeaderImg(uuid, filePath) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("修改数据库链接失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("修改数据库链接失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{"user": user}, "上传成功", c) + response.OkWithData(resp.SysUserResponse{User: *user}, c) } } } @@ -191,9 +200,9 @@ func GetUserList(c *gin.Context) { _ = c.ShouldBindJSON(&pageInfo) err, list, total := service.GetUserInfoList(pageInfo) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("获取数据失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("获取数据失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{ + response.OkDetailed(gin.H{ "userList": list, "total": total, "page": pageInfo.Page, @@ -215,8 +224,8 @@ func SetUserAuthority(c *gin.Context) { _ = c.ShouldBindJSON(&sua) err := service.SetUserAuthority(sua.UUID, sua.AuthorityId) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("修改失败,%v", err), c) + response.FailWithMessage(fmt.Sprintf("修改失败,%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{}, "修改成功", c) + response.OkWithMessage("修改成功", c) } } diff --git a/server/api/v1/sys_work_flow.go b/server/api/v1/sys_work_flow.go index 9023e1f4..530d9679 100644 --- a/server/api/v1/sys_work_flow.go +++ b/server/api/v1/sys_work_flow.go @@ -19,8 +19,8 @@ func CreateWorkFlow(c *gin.Context) { _ = c.ShouldBindJSON(&wk) err := service.Create(wk) if err != nil { - response.Result(response.ERROR, gin.H{}, fmt.Sprintf("获取失败:%v", err), c) + response.FailWithMessage(fmt.Sprintf("获取失败:%v", err), c) } else { - response.Result(response.SUCCESS, gin.H{}, "获取成功", c) + response.OkWithMessage("获取成功", c) } } diff --git a/server/global/response/response.go b/server/global/response/response.go index 3393c3ba..ed88f22b 100644 --- a/server/global/response/response.go +++ b/server/global/response/response.go @@ -24,3 +24,31 @@ func Result(code int, data interface{}, msg string, c *gin.Context) { msg, }) } + +func Ok(c *gin.Context) { + Result(SUCCESS, map[string]interface{}{}, "操作成功", c) +} + +func OkWithMessage(message string, c *gin.Context) { + Result(SUCCESS, map[string]interface{}{}, message, c) +} + +func OkWithData(data interface{}, c *gin.Context) { + Result(SUCCESS, data, "操作成功", c) +} + +func OkDetailed(data interface{}, message string, c *gin.Context) { + Result(SUCCESS, data, message, c) +} + +func Fail(c *gin.Context) { + Result(ERROR, map[string]interface{}{}, "操作失败", c) +} + +func FailWithMessage(message string, c *gin.Context) { + Result(ERROR, map[string]interface{}{}, message, c) +} + +func FailWithDetailed(code int, data interface{}, message string, c *gin.Context) { + Result(code, data, message, c ) +} \ No newline at end of file diff --git a/server/model/response/exa_breakpoint_continue.go b/server/model/response/exa_breakpoint_continue.go new file mode 100644 index 00000000..58727f4d --- /dev/null +++ b/server/model/response/exa_breakpoint_continue.go @@ -0,0 +1,11 @@ +package response + +import "gin-vue-admin/model" + +type FilePathResponse struct { + FilePath string `json:"filePath"` +} + +type FileResponse struct { + File model.ExaFile `json:"file"` +} \ No newline at end of file diff --git a/server/model/response/exa_customer.go b/server/model/response/exa_customer.go new file mode 100644 index 00000000..3a4102ac --- /dev/null +++ b/server/model/response/exa_customer.go @@ -0,0 +1,7 @@ +package response + +import "gin-vue-admin/model" + +type ExaCustomerResponse struct { + Customer model.ExaCustomer `json:"customer"` +} diff --git a/server/model/response/exa_file_upload_download.go b/server/model/response/exa_file_upload_download.go new file mode 100644 index 00000000..56dbc0fc --- /dev/null +++ b/server/model/response/exa_file_upload_download.go @@ -0,0 +1,7 @@ +package response + +import "gin-vue-admin/model" + +type ExaFileResponse struct { + File model.ExaFileUploadAndDownload `json:"file"` +} diff --git a/server/model/response/sys_api.go b/server/model/response/sys_api.go new file mode 100644 index 00000000..d3025fdb --- /dev/null +++ b/server/model/response/sys_api.go @@ -0,0 +1,11 @@ +package response + +import "gin-vue-admin/model" + +type SysAPIResponse struct { + Api model.SysApi `json:"api"` +} + +type SysAPIListResponse struct { + Apis []model.SysApi `json:"apis"` +} diff --git a/server/model/response/sys_authority.go b/server/model/response/sys_authority.go new file mode 100644 index 00000000..a6084260 --- /dev/null +++ b/server/model/response/sys_authority.go @@ -0,0 +1,7 @@ +package response + +import "gin-vue-admin/model" + +type SysAuthorityResponse struct { + Authority model.SysAuthority `json:"authority"` +} diff --git a/server/model/response/sys_captcha.go b/server/model/response/sys_captcha.go new file mode 100644 index 00000000..9e78035a --- /dev/null +++ b/server/model/response/sys_captcha.go @@ -0,0 +1,6 @@ +package response + +type SysCaptchaResponse struct { + CaptchaId string `json:"captchaId"` + PicPath string `json:"picPath"` +} diff --git a/server/model/response/sys_casbin.go b/server/model/response/sys_casbin.go new file mode 100644 index 00000000..3f41c164 --- /dev/null +++ b/server/model/response/sys_casbin.go @@ -0,0 +1,5 @@ +package response + +type PolicyPathResponse struct { + Paths []string `json:"paths"` +} diff --git a/server/model/response/sys_menu.go b/server/model/response/sys_menu.go new file mode 100644 index 00000000..6c7dbbdf --- /dev/null +++ b/server/model/response/sys_menu.go @@ -0,0 +1,15 @@ +package response + +import "gin-vue-admin/model" + +type SysMenusResponse struct { + Menus []model.SysMenu `json:"menus"` +} + +type SysBaseMenusResponse struct { + Menus []model.SysBaseMenu `json:"menus"` +} + +type SysBaseMenuResponse struct { + Menu model.SysBaseMenu `json:"menu"` +} diff --git a/server/model/response/sys_system.go b/server/model/response/sys_system.go new file mode 100644 index 00000000..bb00a786 --- /dev/null +++ b/server/model/response/sys_system.go @@ -0,0 +1,7 @@ +package response + +import "gin-vue-admin/config" + +type SysConfigResponse struct { + Config config.Server `json:"config"` +} diff --git a/server/model/response/sys_user.go b/server/model/response/sys_user.go new file mode 100644 index 00000000..75d92827 --- /dev/null +++ b/server/model/response/sys_user.go @@ -0,0 +1,15 @@ +package response + +import ( + "gin-vue-admin/model" +) + +type SysUserResponse struct { + User model.SysUser `json:"user"` +} + +type LoginResponse struct { + User model.SysUser `json:"user"` + Token string `json:"token"` + ExpiresAt int64 `json:"expiresAt"` +} -- GitLab