Skip to content

Commit

Permalink
authority 前端请求参数优化
Browse files Browse the repository at this point in the history
  • Loading branch information
pddzl committed Mar 25, 2024
1 parent 1dcf3b0 commit b9f69ec
Show file tree
Hide file tree
Showing 15 changed files with 207 additions and 241 deletions.
8 changes: 4 additions & 4 deletions server/api/authority/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -122,17 +122,17 @@ func (ua *UserApi) AddUser(c *gin.Context) {
// @Success 200 {object} response.Response{msg=string}
// @Router /user/editUser [post]
func (ua *UserApi) EditUser(c *gin.Context) {
var userModel modelAuthority.UserModel
if err := c.ShouldBindJSON(&userModel); err != nil {
var editUser authorityReq.EditUser
if err := c.ShouldBindJSON(&editUser); err != nil {
commonRes.FailReq(err.Error(), c)
return
}

if err := userService.EditUser(&userModel); err != nil {
if instance, err := userService.EditUser(&editUser); err != nil {
commonRes.Fail(c)
global.TD27_LOG.Error("编辑失败", zap.Error(err))
} else {
commonRes.Ok(c)
commonRes.OkWithDetailed(instance, "编辑成功", c)
}
}

Expand Down
2 changes: 1 addition & 1 deletion server/model/authority/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ type ApiModel struct {
global.TD27_MODEL
Path string `json:"path" gorm:"not null;comment:api路径" binding:"required"` // api路径
Description string `json:"description" gorm:"not null;comment:api中文描述" binding:"required"` // api中文描述
ApiGroup string `json:"api_group" gorm:"not null;comment:api组" binding:"required"` // api组
ApiGroup string `json:"apiGroup" gorm:"not null;comment:api组" binding:"required"` // api组
Method string `json:"method" gorm:"not null;default:POST;comment:方法" binding:"required"` // 方法:创建POST(默认)|查看GET|更新PUT|删除DELETE
}

Expand Down
16 changes: 8 additions & 8 deletions server/model/authority/request/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ package request
// RoleModelID uint `json:"roleId" binding:"required"` // 角色ID
//}

//type EditUser struct {
// Id uint `json:"id" binding:"required"` // 用户ID
// Username string `json:"username" binding:"required"` // 用户名
// Phone string `json:"phone"` // 手机号
// Email string `json:"email"` // 邮箱
// Active bool `json:"active"` // 是否活跃
// RoleModelID uint `json:"roleId" binding:"required"` // 角色ID
//}
type EditUser struct {
ID uint `json:"id" binding:"required"` // 用户ID
Username string `json:"username" binding:"required"` // 用户名
Phone string `json:"phone"` // 手机号
Email string `json:"email"` // 邮箱
Active bool `json:"active"` // 是否活跃
RoleModelID uint `json:"roleId" binding:"required"` // 角色ID
}

type ModifyPass struct {
ID uint `json:"id" binding:"required"` // 用户ID
Expand Down
12 changes: 3 additions & 9 deletions server/model/authority/response/user.go
Original file line number Diff line number Diff line change
@@ -1,14 +1,8 @@
package response

import "time"
import "server/model/authority"

type UserResult struct {
CreatedAt time.Time `json:"createdAt"` // 创建时间
ID uint // 用户ID
Username string `json:"username"` // 用户名
Phone string `json:"phone"` // 手机号
Email string `json:"email"` // 邮箱
Active bool `json:"active"` // 是否活跃
RoleModelID uint `json:"roleId"` // 角色ID
RoleName string `json:"role"` // 角色名
authority.UserModel
RoleName string `json:"roleName"` // 角色名
}
33 changes: 25 additions & 8 deletions server/service/authority/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,11 @@ func (us *UserService) GetUsers(pageInfo commonReq.PageInfo) ([]authorityRes.Use
// 分页
err := db.Count(&total).Error
if err != nil {
return userResults, total, fmt.Errorf("分页count -> %v", err)
return userResults, total, fmt.Errorf("分页count err: %v", err)
} else {
limit := pageInfo.PageSize
offset := pageInfo.PageSize * (pageInfo.Page - 1)
db = db.Limit(limit).Offset(offset)
//err = db.Find(&list).Error
// 左连接 查询出role_name
db.Select("authority_user.id,authority_user.username,authority_user.phone,authority_user.email,authority_user.active,authority_user.role_model_id,authority_role.role_name").Joins("left join authority_role on authority_user.role_model_id = authority_role.id").Scan(&userResults)
}
Expand All @@ -60,18 +59,36 @@ func (us *UserService) AddUser(instance *modelAuthority.UserModel) (err error) {
}

// EditUser 编辑用户
func (us *UserService) EditUser(instance *modelAuthority.UserModel) (err error) {
func (us *UserService) EditUser(instance *authorityReq.EditUser) (*authorityRes.UserResult, error) {
var userModel modelAuthority.UserModel
// 用户是否存在
if errors.Is(global.TD27_DB.Where("id = ?", instance.ID).First(&modelAuthority.UserModel{}).Error, gorm.ErrRecordNotFound) {
return errors.New("记录不存在")
if errors.Is(global.TD27_DB.Where("id = ?", instance.ID).First(&userModel).Error, gorm.ErrRecordNotFound) {
return nil, errors.New("记录不存在")
}

// 角色是否存在
if errors.Is(global.TD27_DB.Where("id = ?", instance.RoleModelID).First(&modelAuthority.RoleModel{}).Error, gorm.ErrRecordNotFound) {
return errors.New("角色不存在")
var roleModel modelAuthority.RoleModel
if errors.Is(global.TD27_DB.Where("id = ?", instance.RoleModelID).First(&roleModel).Error, gorm.ErrRecordNotFound) {
return nil, errors.New("角色不存在")
}

err := global.TD27_DB.Model(&userModel).Updates(map[string]interface{}{"username": instance.Username, "phone": instance.Phone, "email": instance.Email, "active": instance.Active, "role_model_id": instance.RoleModelID}).Error

if err != nil {
return nil, err
}

return global.TD27_DB.Omit("created_at").Save(instance).Error
var userResult authorityRes.UserResult

userResult.ID = userModel.ID
userResult.Username = userModel.Username
userResult.Phone = userModel.Phone
userResult.Email = userModel.Email
userResult.Active = userModel.Active
userResult.RoleName = roleModel.RoleName
userResult.RoleModelID = userModel.RoleModelID

return &userResult, nil
}

// ModifyPass 修改用户密码
Expand Down
40 changes: 15 additions & 25 deletions web/src/api/authority/api.ts
Original file line number Diff line number Diff line change
@@ -1,26 +1,20 @@
import { request } from "@/utils/service"

export interface ApiDataBase {
interface ApiData {
path: string
api_group: string
apiGroup: string
method: string
description: string
}

export interface ApiData extends ApiDataBase {
ID: number
}
export interface ApiDataModel extends ApiData, Td27Model {}

export interface ApiDataPageInfo {
list: ApiData[]
total: number
page: number
pageSize: number
}
// 数据结构 - List
export type ApiListData = ListData<ApiDataModel[]>

interface reqApis extends PageInfo {
path?: string
api_group?: string
apiGroup?: string
method?: string
description?: string
orderKey?: string
Expand All @@ -29,7 +23,7 @@ interface reqApis extends PageInfo {

// 获取所有api 分页
export function getApisApi(data: reqApis) {
return request<ApiResponseData<ApiDataPageInfo>>({
return request<ApiResponseData<ApiListData>>({
url: "/api/getApis",
method: "post",
data
Expand All @@ -38,14 +32,14 @@ export function getApisApi(data: reqApis) {

interface children {
key: string
api_group: string
apiGroup: string
path: string
method: string
description: string
}

export interface ApiTreeData {
api_group: string
apiGroup: string
children: children[]
}

Expand All @@ -55,7 +49,7 @@ interface ApiTreeAll {
}

// 获取所有api 不分页
export function getElTreeApisApi(data: reqId) {
export function getElTreeApisApi(data: CId) {
return request<ApiResponseData<ApiTreeAll>>({
url: "/api/getElTreeApis",
method: "post",
Expand All @@ -64,16 +58,16 @@ export function getElTreeApisApi(data: reqId) {
}

// 添加api
export function addApiApi(data: ApiDataBase) {
return request<ApiResponseData<ApiData>>({
export function addApiApi(data: ApiData) {
return request<ApiResponseData<ApiDataModel>>({
url: "/api/addApi",
method: "post",
data
})
}

// 删除api
export function deleteApiApi(data: reqId) {
export function deleteApiApi(data: CId) {
return request<ApiResponseData<null>>({
url: "/api/deleteApi",
method: "post",
Expand All @@ -82,20 +76,16 @@ export function deleteApiApi(data: reqId) {
}

// 批量删除api
export const deleteApiByIdApi = (data: { ids: number[] }) => {
export const deleteApiByIdApi = (data: CIds) => {
return request<ApiResponseData<null>>({
url: "/api/deleteApiById",
method: "post",
data
})
}

interface reqEdit extends ApiDataBase {
id: number
}

// 编辑api
export function editApiApi(data: reqEdit) {
export function editApiApi(data: ApiData & CId) {
return request<ApiResponseData<null>>({
url: "/api/editApi",
method: "post",
Expand Down
42 changes: 12 additions & 30 deletions web/src/api/authority/menu.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { request } from "@/utils/service"

export interface MenusData {
id: number
export interface MenuData {
pid: number
name: string
path: string
Expand All @@ -17,56 +16,39 @@ export interface MenusData {
keepAlive?: boolean
alwaysShow?: boolean
}
children?: MenusData[]
children?: MenuData[]
}

type MenusResponseData = ApiResponseData<MenusData[]>
export interface MenuDataModel extends MenuData, Td27Model {}

// List
// export type MenuListData = ListData<MenuDataModel[]>

// 获取动态路由
export function getMenus() {
return request<MenusResponseData>({
return request<ApiResponseData<MenuDataModel[]>>({
url: "/menu/getMenus",
method: "get"
})
}

interface reqMenu {
pid: number
name?: string
path: string
redirect?: string
component: string
sort: number
meta: {
hidden?: boolean
title?: string
icon?: string
affix?: boolean
keepAlive?: boolean
}
}

export function addMenuApi(data: reqMenu) {
export function addMenuApi(data: MenuData) {
return request<ApiResponseData<null>>({
url: "menu/addMenu",
method: "post",
data
})
}

interface editReq extends reqMenu {
id: number
}

export function editMenuApi(data: editReq) {
export function editMenuApi(data: MenuData & CId) {
return request<ApiResponseData<null>>({
url: "menu/editMenu",
method: "post",
data
})
}

export function deleteMenuApi(data: reqId) {
export function deleteMenuApi(data: CId) {
return request<ApiResponseData<null>>({
url: "menu/deleteMenu",
method: "post",
Expand All @@ -75,11 +57,11 @@ export function deleteMenuApi(data: reqId) {
}

interface allMenus {
list: MenusData[]
list: MenuData[]
menuIds: number[]
}

export function getElTreeMenusApi(data: reqId) {
export function getElTreeMenusApi(data: CId) {
return request<ApiResponseData<allMenus>>({
url: "menu/getElTreeMenus",
method: "post",
Expand Down
Loading

0 comments on commit b9f69ec

Please sign in to comment.