mirror of
https://github.com/ccmjga/zhilu-admin
synced 2026-03-16 22:53:43 +08:00
init
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
package com.zl.mjga.controller;
|
||||
|
||||
import com.zl.mjga.dto.PageRequestDto;
|
||||
import com.zl.mjga.dto.PageResponseDto;
|
||||
import com.zl.mjga.dto.department.DepartmentQueryDto;
|
||||
import com.zl.mjga.dto.department.DepartmentRespDto;
|
||||
import com.zl.mjga.repository.DepartmentRepository;
|
||||
import com.zl.mjga.service.DepartmentService;
|
||||
import java.util.List;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.jooq.generated.mjga.tables.pojos.Department;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@SuppressWarnings("PMD.AvoidDuplicateLiterals")
|
||||
@RestController
|
||||
@RequestMapping("/department")
|
||||
@RequiredArgsConstructor
|
||||
public class DepartmentController {
|
||||
|
||||
private final DepartmentService departmentService;
|
||||
private final DepartmentRepository departmentRepository;
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).READ_DEPARTMENT_PERMISSION)")
|
||||
@GetMapping("/page-query")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
PageResponseDto<List<DepartmentRespDto>> pageQueryDepartments(
|
||||
@ModelAttribute PageRequestDto pageRequestDto,
|
||||
@ModelAttribute DepartmentQueryDto departmentQueryDto) {
|
||||
return departmentService.pageQueryDepartment(pageRequestDto, departmentQueryDto);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).READ_DEPARTMENT_PERMISSION)")
|
||||
@GetMapping("/query")
|
||||
List<Department> queryDepartments() {
|
||||
return departmentRepository.findAll();
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_DEPARTMENT_PERMISSION)")
|
||||
@DeleteMapping()
|
||||
void deleteDepartment(@RequestParam Long id) {
|
||||
departmentRepository.deleteById(id);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_DEPARTMENT_PERMISSION)")
|
||||
@PostMapping()
|
||||
void upsertDepartment(@RequestBody Department department) {
|
||||
departmentRepository.merge(department);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,177 @@
|
||||
package com.zl.mjga.controller;
|
||||
|
||||
import com.zl.mjga.dto.PageRequestDto;
|
||||
import com.zl.mjga.dto.PageResponseDto;
|
||||
import com.zl.mjga.dto.department.DepartmentBindDto;
|
||||
import com.zl.mjga.dto.permission.PermissionBindDto;
|
||||
import com.zl.mjga.dto.position.PositionBindDto;
|
||||
import com.zl.mjga.dto.role.RoleBindDto;
|
||||
import com.zl.mjga.dto.urp.*;
|
||||
import com.zl.mjga.repository.RoleRepository;
|
||||
import com.zl.mjga.repository.UserRepository;
|
||||
import com.zl.mjga.service.IdentityAccessService;
|
||||
import jakarta.validation.Valid;
|
||||
import java.security.Principal;
|
||||
import java.util.List;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.jooq.generated.mjga.tables.pojos.User;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@SuppressWarnings("PMD.AvoidDuplicateLiterals")
|
||||
@RestController
|
||||
@RequestMapping("/iam")
|
||||
@RequiredArgsConstructor
|
||||
public class IdentityAccessController {
|
||||
|
||||
private final IdentityAccessService identityAccessService;
|
||||
private final UserRepository userRepository;
|
||||
private final RoleRepository roleRepository;
|
||||
|
||||
@GetMapping("/me")
|
||||
UserRolePermissionDto currentUser(Principal principal) {
|
||||
String name = principal.getName();
|
||||
User user = userRepository.fetchOneByUsername(name);
|
||||
return identityAccessService.queryUniqueUserWithRolePermission(user.getId());
|
||||
}
|
||||
|
||||
@PostMapping("/me")
|
||||
void upsertMe(Principal principal, @RequestBody UserUpsertDto userUpsertDto) {
|
||||
String name = principal.getName();
|
||||
User user = userRepository.fetchOneByUsername(name);
|
||||
userUpsertDto.setId(user.getId());
|
||||
identityAccessService.upsertUser(userUpsertDto);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)")
|
||||
@PostMapping("/user")
|
||||
void upsertUser(@RequestBody UserUpsertDto userUpsertDto) {
|
||||
identityAccessService.upsertUser(userUpsertDto);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).READ_USER_ROLE_PERMISSION)")
|
||||
@GetMapping("/user")
|
||||
UserRolePermissionDto queryUserWithRolePermission(@RequestParam Long userId) {
|
||||
return identityAccessService.queryUniqueUserWithRolePermission(userId);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)")
|
||||
@DeleteMapping("/user")
|
||||
void deleteUser(@RequestParam Long userId) {
|
||||
userRepository.deleteById(userId);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)")
|
||||
@PostMapping("/role")
|
||||
void upsertRole(@RequestBody RoleUpsertDto roleUpsertDto) {
|
||||
identityAccessService.upsertRole(roleUpsertDto);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)")
|
||||
@DeleteMapping("/role")
|
||||
void deleteRole(@RequestParam Long roleId) {
|
||||
roleRepository.deleteById(roleId);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)")
|
||||
@GetMapping("/role")
|
||||
RoleDto queryRoleWithPermission(@RequestParam Long roleId) {
|
||||
return identityAccessService.queryUniqueRoleWithPermission(roleId);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)")
|
||||
@PostMapping("/permission")
|
||||
void upsertPermission(@RequestBody PermissionUpsertDto permissionUpsertDto) {
|
||||
identityAccessService.upsertPermission(permissionUpsertDto);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)")
|
||||
@DeleteMapping("/permission")
|
||||
void deletePermission(@RequestParam Long permissionId) {
|
||||
roleRepository.deleteById(permissionId);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).READ_USER_ROLE_PERMISSION)")
|
||||
@GetMapping("/users")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
PageResponseDto<List<UserRolePermissionDto>> queryUsers(
|
||||
@ModelAttribute PageRequestDto pageRequestDto, @ModelAttribute UserQueryDto userQueryDto) {
|
||||
return identityAccessService.pageQueryUser(pageRequestDto, userQueryDto);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).READ_USER_ROLE_PERMISSION)")
|
||||
@GetMapping("/roles")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
PageResponseDto<List<RoleDto>> queryRoles(
|
||||
@ModelAttribute PageRequestDto pageRequestDto, @ModelAttribute RoleQueryDto roleQueryDto) {
|
||||
return identityAccessService.pageQueryRole(pageRequestDto, roleQueryDto);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).READ_USER_ROLE_PERMISSION)")
|
||||
@GetMapping("/permissions")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
PageResponseDto<List<PermissionRespDto>> queryPermissions(
|
||||
@ModelAttribute PageRequestDto pageRequestDto,
|
||||
@ModelAttribute PermissionQueryDto permissionQueryDto) {
|
||||
return identityAccessService.pageQueryPermission(pageRequestDto, permissionQueryDto);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)")
|
||||
@PostMapping("/role/bind")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
void bindRoleBy(@RequestBody @Valid RoleBindDto roleBindDto) {
|
||||
identityAccessService.bindRoleToUser(roleBindDto.userId(), roleBindDto.roleIds());
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)")
|
||||
@PostMapping("/role/unbind")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
void unBindRoleBy(@RequestBody @Valid RoleBindDto roleBindDto) {
|
||||
identityAccessService.unBindRoleToUser(roleBindDto.userId(), roleBindDto.roleIds());
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)")
|
||||
@PostMapping("/permission/bind")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
void bindPermissionBy(@RequestBody @Valid PermissionBindDto permissionBindDto) {
|
||||
identityAccessService.bindPermissionBy(
|
||||
permissionBindDto.roleId(), permissionBindDto.permissionIds());
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)")
|
||||
@PostMapping("/permission/unbind")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
void unBindPermissionBy(@RequestBody @Valid PermissionBindDto permissionBindDto) {
|
||||
identityAccessService.unBindPermissionBy(
|
||||
permissionBindDto.roleId(), permissionBindDto.permissionIds());
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_DEPARTMENT_PERMISSION)")
|
||||
@PostMapping("/department/bind")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
public void bindDepartmentBy(@RequestBody @Valid DepartmentBindDto departmentBindDto) {
|
||||
identityAccessService.bindDepartmentBy(departmentBindDto);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_DEPARTMENT_PERMISSION)")
|
||||
@PostMapping("/department/unbind")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
public void unBindDepartmentBy(@RequestBody @Valid DepartmentBindDto departmentBindDto) {
|
||||
identityAccessService.unBindDepartmentBy(departmentBindDto);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_DEPARTMENT_PERMISSION)")
|
||||
@PostMapping("/position/bind")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
public void bindPositionBy(@RequestBody @Valid PositionBindDto positionBindDto) {
|
||||
identityAccessService.bindPositionBy(positionBindDto);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_DEPARTMENT_PERMISSION)")
|
||||
@PostMapping("/position/unbind")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
public void unBindPositionBy(@RequestBody @Valid PositionBindDto positionBindDto) {
|
||||
identityAccessService.unBindPositionBy(positionBindDto);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.zl.mjga.controller;
|
||||
|
||||
import com.zl.mjga.dto.PageRequestDto;
|
||||
import com.zl.mjga.dto.PageResponseDto;
|
||||
import com.zl.mjga.dto.position.PositionQueryDto;
|
||||
import com.zl.mjga.dto.position.PositionRespDto;
|
||||
import com.zl.mjga.repository.PositionRepository;
|
||||
import com.zl.mjga.service.PositionService;
|
||||
import java.util.List;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.jooq.generated.mjga.tables.pojos.Position;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@SuppressWarnings("PMD.AvoidDuplicateLiterals")
|
||||
@RestController
|
||||
@RequestMapping("/position")
|
||||
@RequiredArgsConstructor
|
||||
public class PositionController {
|
||||
|
||||
private final PositionService positionService;
|
||||
private final PositionRepository positionRepository;
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).READ_POSITION_PERMISSION)")
|
||||
@GetMapping("/page-query")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
PageResponseDto<List<PositionRespDto>> pageQueryPositions(
|
||||
@ModelAttribute PageRequestDto pageRequestDto,
|
||||
@ModelAttribute PositionQueryDto positionQueryDto) {
|
||||
return positionService.pageQueryPosition(pageRequestDto, positionQueryDto);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).READ_POSITION_PERMISSION)")
|
||||
@GetMapping("/query")
|
||||
List<Position> queryPositions() {
|
||||
return positionRepository.findAll();
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_POSITION_PERMISSION)")
|
||||
@DeleteMapping()
|
||||
void deletePosition(@RequestParam Long id) {
|
||||
positionRepository.deleteById(id);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_POSITION_PERMISSION)")
|
||||
@PostMapping()
|
||||
void upsertPosition(@RequestBody Position position) {
|
||||
positionRepository.merge(position);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package com.zl.mjga.controller;
|
||||
|
||||
import com.zl.mjga.dto.PageRequestDto;
|
||||
import com.zl.mjga.dto.PageResponseDto;
|
||||
import com.zl.mjga.dto.scheduler.JobKeyDto;
|
||||
import com.zl.mjga.dto.scheduler.JobTriggerDto;
|
||||
import com.zl.mjga.dto.scheduler.QueryDto;
|
||||
import com.zl.mjga.dto.scheduler.TriggerKeyDto;
|
||||
import com.zl.mjga.service.SchedulerService;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.quartz.JobKey;
|
||||
import org.quartz.SchedulerException;
|
||||
import org.quartz.TriggerKey;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/scheduler")
|
||||
@RequiredArgsConstructor
|
||||
public class SchedulerController {
|
||||
|
||||
private final SchedulerService schedulerService;
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).READ_SCHEDULER_PERMISSION)")
|
||||
@GetMapping("/page-query")
|
||||
public PageResponseDto<List<JobTriggerDto>> pageQuery(
|
||||
@ModelAttribute PageRequestDto pageRequestDto, @ModelAttribute QueryDto queryDto) {
|
||||
return schedulerService.getJobWithTriggerBy(pageRequestDto, queryDto);
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_SCHEDULER_PERMISSION)")
|
||||
@PostMapping("/trigger/resume")
|
||||
public void resumeTrigger(@RequestBody TriggerKeyDto triggerKey) throws SchedulerException {
|
||||
schedulerService.resumeTrigger(new TriggerKey(triggerKey.name(), triggerKey.group()));
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_SCHEDULER_PERMISSION)")
|
||||
@PostMapping("/trigger/pause")
|
||||
public void pauseTrigger(@RequestBody TriggerKeyDto triggerKey) throws SchedulerException {
|
||||
schedulerService.pauseTrigger(new TriggerKey(triggerKey.name(), triggerKey.group()));
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_SCHEDULER_PERMISSION)")
|
||||
@PostMapping("/job/trigger")
|
||||
public void triggerJob(@RequestBody JobKeyDto jobKeyDto, @RequestParam Long startAt)
|
||||
throws SchedulerException {
|
||||
schedulerService.triggerJob(new JobKey(jobKeyDto.name(), jobKeyDto.group()), new Date(startAt));
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_SCHEDULER_PERMISSION)")
|
||||
@PutMapping("/job/update")
|
||||
public void updateJob(@RequestBody TriggerKeyDto triggerKey, @RequestParam String cron)
|
||||
throws SchedulerException {
|
||||
schedulerService.updateCronTrigger(new TriggerKey(triggerKey.name(), triggerKey.group()), cron);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.zl.mjga.controller;
|
||||
|
||||
import com.zl.mjga.config.security.Jwt;
|
||||
import com.zl.mjga.dto.sign.SignInDto;
|
||||
import com.zl.mjga.dto.sign.SignUpDto;
|
||||
import com.zl.mjga.service.SignService;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.Valid;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/auth")
|
||||
@RequiredArgsConstructor
|
||||
public class SignController {
|
||||
|
||||
private final SignService signService;
|
||||
|
||||
private final Jwt jwt;
|
||||
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@PostMapping("/sign-in")
|
||||
void signIn(
|
||||
HttpServletRequest request,
|
||||
HttpServletResponse response,
|
||||
@RequestBody @Valid SignInDto signInDto) {
|
||||
jwt.makeToken(request, response, String.valueOf(signService.signIn(signInDto)));
|
||||
}
|
||||
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
@PostMapping("/sign-up")
|
||||
void signUp(@RequestBody @Valid SignUpDto signUpDto) {
|
||||
signService.signUp(signUpDto);
|
||||
}
|
||||
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@PostMapping("/sign-out")
|
||||
void signOut(HttpServletRequest request, HttpServletResponse response) {
|
||||
jwt.removeToken(request, response);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user