feat: 优化部分接口
parent
7e7b6152f7
commit
8a2a6930ce
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
|
@ -10,7 +10,7 @@ export class PaginationDto {
|
||||||
@IsNumber()
|
@IsNumber()
|
||||||
@Min(1)
|
@Min(1)
|
||||||
@Transform(({ value }) => Number(value))
|
@Transform(({ value }) => Number(value))
|
||||||
page: number;
|
page?: number;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 每页条数
|
* 每页条数
|
||||||
|
|
@ -19,5 +19,5 @@ export class PaginationDto {
|
||||||
@IsNumber()
|
@IsNumber()
|
||||||
@Min(1)
|
@Min(1)
|
||||||
@Transform(({ value }) => Number(value))
|
@Transform(({ value }) => Number(value))
|
||||||
size: number;
|
size?: number;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,22 @@
|
||||||
import { IsOptional, IsString } from 'class-validator';
|
import { IsOptional, IsString } from 'class-validator';
|
||||||
|
|
||||||
export class CreatePermissionDto {
|
export class CreatePermissionDto {
|
||||||
|
/**
|
||||||
|
* 权限名称
|
||||||
|
* @example 权限名称
|
||||||
|
*/
|
||||||
@IsString()
|
@IsString()
|
||||||
name: string;
|
name: string;
|
||||||
|
/**
|
||||||
|
* 权限标识
|
||||||
|
* @example permission:permission
|
||||||
|
*/
|
||||||
@IsString()
|
@IsString()
|
||||||
slug: string;
|
slug: string;
|
||||||
|
/**
|
||||||
|
* 权限描述
|
||||||
|
*/
|
||||||
@IsOptional()
|
@IsOptional()
|
||||||
@IsString()
|
@IsString()
|
||||||
description: string;
|
description?: string;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import { Injectable } from '@nestjs/common';
|
import { Injectable } from '@nestjs/common';
|
||||||
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
|
import { Repository } from 'typeorm';
|
||||||
import { CreatePermissionDto } from './dto/create-permission.dto';
|
import { CreatePermissionDto } from './dto/create-permission.dto';
|
||||||
import { UpdatePermissionDto } from './dto/update-permission.dto';
|
import { UpdatePermissionDto } from './dto/update-permission.dto';
|
||||||
import { InjectRepository } from '@nestjs/typeorm';
|
|
||||||
import { Permission } from './entities/permission.entity';
|
import { Permission } from './entities/permission.entity';
|
||||||
import { Repository } from 'typeorm';
|
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class PermissionService {
|
export class PermissionService {
|
||||||
|
|
@ -23,8 +23,8 @@ export class PermissionService {
|
||||||
return `This action returns a #${id} permission`;
|
return `This action returns a #${id} permission`;
|
||||||
}
|
}
|
||||||
|
|
||||||
update(id: number, updatePermissionDto: UpdatePermissionDto) {
|
async update(id: number, updatePermissionDto: UpdatePermissionDto) {
|
||||||
return `This action updates a #${id} permission`;
|
await this.permissionRepository.update(id, updatePermissionDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
remove(id: number) {
|
remove(id: number) {
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import { Injectable } from '@nestjs/common';
|
import { Injectable } from '@nestjs/common';
|
||||||
import { CreateRoleDto } from './dto/create-role.dto';
|
|
||||||
import { UpdateRoleDto } from './dto/update-role.dto';
|
|
||||||
import { InjectRepository } from '@nestjs/typeorm';
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
import { Repository } from 'typeorm';
|
import { Repository } from 'typeorm';
|
||||||
|
import { CreateRoleDto } from './dto/create-role.dto';
|
||||||
|
import { UpdateRoleDto } from './dto/update-role.dto';
|
||||||
import { Role } from './entities/role.entity';
|
import { Role } from './entities/role.entity';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
|
|
@ -19,17 +19,18 @@ export class RoleService {
|
||||||
}
|
}
|
||||||
|
|
||||||
findAll() {
|
findAll() {
|
||||||
return this.roleRepository.findAndCount({
|
return this.roleRepository.findAndCount({ relations: ['permissions'] });
|
||||||
relations: ['permissions'],
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
findOne(id: number) {
|
findOne(id: number) {
|
||||||
return `This action returns a #${id} role`;
|
return `This action returns a #${id} role`;
|
||||||
}
|
}
|
||||||
|
|
||||||
update(id: number, updateRoleDto: UpdateRoleDto) {
|
async update(id: number, updateRoleDto: UpdateRoleDto) {
|
||||||
return `This action updates a #${id} role`;
|
if (updateRoleDto.permissions) {
|
||||||
|
delete updateRoleDto.permissions;
|
||||||
|
}
|
||||||
|
await this.roleRepository.update(id, updateRoleDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
remove(id: number) {
|
remove(id: number) {
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
|
import { PaginationDto } from '@/features/pagination';
|
||||||
import { IntersectionType } from '@nestjs/swagger';
|
import { IntersectionType } from '@nestjs/swagger';
|
||||||
import { IsOptional, IsString } from 'class-validator';
|
import { IsOptional, IsString } from 'class-validator';
|
||||||
import { PaginationDto } from '@/features/pagination';
|
|
||||||
|
|
||||||
export class FindUserDto extends IntersectionType(PaginationDto) {
|
export class FindUserDto extends IntersectionType(PaginationDto) {
|
||||||
@IsOptional()
|
@IsOptional()
|
||||||
@IsString()
|
@IsString()
|
||||||
nickname: string;
|
nickname?: string;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,11 @@
|
||||||
|
import { BaseController } from '@/features/base';
|
||||||
|
import { Respond } from '@/features/response';
|
||||||
import { Body, Controller, Delete, Get, Param, Patch, Post, Query, Version } from '@nestjs/common';
|
import { Body, Controller, Delete, Get, Param, Patch, Post, Query, Version } from '@nestjs/common';
|
||||||
import { ApiOkResponse, ApiOperation, ApiTags } from '@nestjs/swagger';
|
import { ApiOkResponse, ApiOperation, ApiTags } from '@nestjs/swagger';
|
||||||
import { Respond } from '@/features/response';
|
|
||||||
import { BaseController } from '@/features/base';
|
|
||||||
import { CreateUserDto, UpdateUserDto } from './dto';
|
import { CreateUserDto, UpdateUserDto } from './dto';
|
||||||
import { FindUserDto } from './dto/find-user.dto';
|
import { FindUserDto } from './dto/find-user.dto';
|
||||||
import { User } from './entities';
|
import { User } from './entities';
|
||||||
import { UserService } from './user.service';
|
import { UserService } from './user.service';
|
||||||
import { Permission, PermissionEnum } from '@/features/permission/permission.decorator';
|
|
||||||
import { Public } from '@/modules/auth/jwt/jwt-decorator';
|
|
||||||
|
|
||||||
@ApiTags('user')
|
@ApiTags('user')
|
||||||
@Controller('users')
|
@Controller('users')
|
||||||
|
|
@ -23,9 +21,7 @@ export class UserController extends BaseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get()
|
@Get()
|
||||||
@Public(false)
|
|
||||||
@Respond(Respond.PAGINATION)
|
@Respond(Respond.PAGINATION)
|
||||||
@Permission(PermissionEnum.READ)
|
|
||||||
@ApiOkResponse({ isArray: true, type: User })
|
@ApiOkResponse({ isArray: true, type: User })
|
||||||
@ApiOperation({ summary: '批量查询', operationId: 'getUsers' })
|
@ApiOperation({ summary: '批量查询', operationId: 'getUsers' })
|
||||||
async findMany(@Query() query: FindUserDto) {
|
async findMany(@Query() query: FindUserDto) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue