package com.emergencyrepair.system.controller;
|
|
import com.emergencyrepair.business.dto.Requests;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.emergencyrepair.business.entity.BaseEquipment;
|
import com.emergencyrepair.business.entity.EngineeringMajor;
|
import com.emergencyrepair.business.entity.ProductNode;
|
import com.emergencyrepair.business.entity.TeamMajor;
|
import com.emergencyrepair.common.Result;
|
import com.emergencyrepair.system.entity.SysMenu;
|
import com.emergencyrepair.system.entity.SysErrorLog;
|
import com.emergencyrepair.system.entity.SysLoginLog;
|
import com.emergencyrepair.system.entity.SysOperationLog;
|
import com.emergencyrepair.system.entity.SysRole;
|
import com.emergencyrepair.system.service.SystemService;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PutMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestHeader;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.util.List;
|
import java.util.Map;
|
|
@RestController
|
@RequestMapping("/api/system")
|
@RequiredArgsConstructor
|
public class SystemController {
|
private final SystemService systemService;
|
|
@GetMapping("/menu/nav")
|
public Result<List<SysMenu>> nav(@RequestHeader(value = "X-Username", required = false) String username) {
|
return Result.ok(systemService.menuTreeForUser(username));
|
}
|
|
@GetMapping("/menu/list")
|
public Result<List<SysMenu>> menuList() {
|
return Result.ok(systemService.listMenus());
|
}
|
|
@GetMapping("/menu/tree")
|
public Result<List<SysMenu>> menuTreeWithButtons() {
|
return Result.ok(systemService.menuTreeWithButtons());
|
}
|
|
@GetMapping("/menu/buttons")
|
public Result<Map<String, Object>> menuButtons(@RequestParam Long menuId) {
|
return Result.ok(systemService.menuButtons(menuId));
|
}
|
|
@PostMapping("/menu/buttons")
|
public Result<Void> syncMenuButtons(@RequestBody Requests.ButtonSyncRequest request) {
|
systemService.syncMenuButtons(request.getMenuId(), request.getCodes());
|
return Result.ok();
|
}
|
|
@GetMapping("/users")
|
public Result<Map<String, Object>> users(@RequestParam(required = false) String keyword,
|
@RequestParam(required = false) Long deptId,
|
@RequestParam(required = false) Long roleId,
|
@RequestParam(defaultValue = "1") int current,
|
@RequestParam(defaultValue = "20") int size) {
|
return Result.ok(systemService.userPage(keyword, deptId, roleId, current, size));
|
}
|
|
@GetMapping("/users/{userId}/roles")
|
public Result<List<String>> userRoles(@PathVariable Long userId) {
|
return Result.ok(systemService.userRoleIds(userId));
|
}
|
|
@PutMapping("/users/{userId}/roles")
|
public Result<Void> saveUserRoles(@PathVariable Long userId, @RequestBody Requests.UserRoleRequest request) {
|
systemService.saveUserRoles(userId, request.getRoleIds());
|
return Result.ok();
|
}
|
|
@GetMapping("/users/{userId}/ext")
|
public Result<Map<String, Object>> userExt(@PathVariable Long userId) {
|
return Result.ok(systemService.userExt(userId));
|
}
|
|
@PutMapping("/users/{userId}/ext")
|
public Result<Void> saveUserExt(@PathVariable Long userId, @RequestBody Requests.UserExtRequest request) {
|
systemService.saveUserExt(userId, request.getEngineeringMajor(), request.getTeamMajor(), request.getResponsibleXNo());
|
return Result.ok();
|
}
|
|
@PutMapping("/users/roles/batch")
|
public Result<Void> saveBatchUserRoles(@RequestBody Requests.BatchUserRoleRequest request) {
|
systemService.saveUserRolesBatch(request.getUserIds(), request.getRoleIds(), request.getMode());
|
return Result.ok();
|
}
|
|
@GetMapping("/depts")
|
public Result<List<Map<String, Object>>> depts() {
|
return Result.ok(systemService.depts());
|
}
|
|
@GetMapping("/depts/{deptId}/ext")
|
public Result<Map<String, Object>> deptExt(@PathVariable Long deptId) {
|
return Result.ok(systemService.deptExt(deptId));
|
}
|
|
@PutMapping("/depts/{deptId}/ext")
|
public Result<Void> saveDeptExt(@PathVariable Long deptId, @RequestBody Requests.DeptExtRequest request) {
|
systemService.saveDeptExt(deptId, request.getResponsibleXNo());
|
return Result.ok();
|
}
|
|
@GetMapping("/login-logs")
|
public Result<Page<SysLoginLog>> loginLogs(@RequestParam(defaultValue = "1") int current,
|
@RequestParam(defaultValue = "20") int size,
|
@RequestParam(required = false) String keyword,
|
@RequestParam(required = false) String status,
|
@RequestParam(required = false) String startDate,
|
@RequestParam(required = false) String endDate) {
|
return Result.ok(systemService.loginLogPage(current, size, keyword, status, startDate, endDate));
|
}
|
|
@GetMapping("/operation-logs")
|
public Result<Page<SysOperationLog>> operationLogs(@RequestParam(defaultValue = "1") int current,
|
@RequestParam(defaultValue = "20") int size,
|
@RequestParam(required = false) String keyword,
|
@RequestParam(required = false) String module,
|
@RequestParam(required = false) String operationType,
|
@RequestParam(required = false) String startDate,
|
@RequestParam(required = false) String endDate) {
|
return Result.ok(systemService.operationLogPage(current, size, keyword, module, operationType, startDate, endDate));
|
}
|
|
@GetMapping("/error-logs")
|
public Result<Page<SysErrorLog>> errorLogs(@RequestParam(defaultValue = "1") int current,
|
@RequestParam(defaultValue = "20") int size,
|
@RequestParam(required = false) String keyword,
|
@RequestParam(required = false) String module,
|
@RequestParam(required = false) String exceptionType,
|
@RequestParam(required = false) String startDate,
|
@RequestParam(required = false) String endDate) {
|
return Result.ok(systemService.errorLogPage(current, size, keyword, module, exceptionType, startDate, endDate));
|
}
|
|
@GetMapping("/error-logs/{id}")
|
public Result<SysErrorLog> errorLog(@PathVariable Long id) {
|
return Result.ok(systemService.errorLog(id));
|
}
|
|
@PostMapping("/menu")
|
public Result<SysMenu> createMenu(@RequestBody SysMenu menu) {
|
menu.setId(null);
|
return Result.ok(systemService.saveMenu(menu));
|
}
|
|
@PutMapping("/menu/{id}")
|
public Result<SysMenu> updateMenu(@PathVariable Long id, @RequestBody SysMenu menu) {
|
menu.setId(id);
|
return Result.ok(systemService.saveMenu(menu));
|
}
|
|
@DeleteMapping("/menu/{id}")
|
public Result<Void> deleteMenu(@PathVariable Long id) {
|
systemService.deleteMenu(id);
|
return Result.ok();
|
}
|
|
@GetMapping("/roles")
|
public Result<List<SysRole>> roles() {
|
return Result.ok(systemService.listRoles());
|
}
|
|
@PostMapping("/roles")
|
public Result<SysRole> createRole(@RequestBody SysRole role) {
|
role.setId(null);
|
return Result.ok(systemService.saveRole(role));
|
}
|
|
@PutMapping("/roles/{id}")
|
public Result<SysRole> updateRole(@PathVariable Long id, @RequestBody SysRole role) {
|
role.setId(id);
|
return Result.ok(systemService.saveRole(role));
|
}
|
|
@DeleteMapping("/roles/{id}")
|
public Result<Void> deleteRole(@PathVariable Long id) {
|
systemService.deleteRole(id);
|
return Result.ok();
|
}
|
|
@GetMapping("/roles/{roleId}/users")
|
public Result<Map<String, Object>> roleUsers(@PathVariable Long roleId) {
|
return Result.ok(systemService.roleUsers(roleId));
|
}
|
|
@PutMapping("/roles/{roleId}/users")
|
public Result<Void> saveRoleUsers(@PathVariable Long roleId, @RequestBody Requests.RoleUserRequest request) {
|
systemService.saveRoleUsers(roleId, request.getUserIds());
|
return Result.ok();
|
}
|
|
@GetMapping("/contractors")
|
public Result<List<Map<String, Object>>> contractors() {
|
return Result.ok(systemService.listContractors());
|
}
|
|
@GetMapping("/engineering-majors")
|
public Result<List<EngineeringMajor>> engineeringMajors() {
|
return Result.ok(systemService.listEngineeringMajors());
|
}
|
|
@PostMapping("/engineering-majors")
|
public Result<EngineeringMajor> createEngineeringMajor(@RequestBody EngineeringMajor major) {
|
major.setId(null);
|
return Result.ok(systemService.saveEngineeringMajor(major));
|
}
|
|
@PutMapping("/engineering-majors/{id}")
|
public Result<EngineeringMajor> updateEngineeringMajor(@PathVariable Long id, @RequestBody EngineeringMajor major) {
|
major.setId(id);
|
return Result.ok(systemService.saveEngineeringMajor(major));
|
}
|
|
@DeleteMapping("/engineering-majors/{id}")
|
public Result<Void> deleteEngineeringMajor(@PathVariable Long id) {
|
systemService.deleteEngineeringMajor(id);
|
return Result.ok();
|
}
|
|
@GetMapping("/team-majors")
|
public Result<List<TeamMajor>> teamMajors() {
|
return Result.ok(systemService.listTeamMajors());
|
}
|
|
@PostMapping("/team-majors")
|
public Result<TeamMajor> createTeamMajor(@RequestBody TeamMajor major) {
|
major.setId(null);
|
return Result.ok(systemService.saveTeamMajor(major));
|
}
|
|
@PutMapping("/team-majors/{id}")
|
public Result<TeamMajor> updateTeamMajor(@PathVariable Long id, @RequestBody TeamMajor major) {
|
major.setId(id);
|
return Result.ok(systemService.saveTeamMajor(major));
|
}
|
|
@DeleteMapping("/team-majors/{id}")
|
public Result<Void> deleteTeamMajor(@PathVariable Long id) {
|
systemService.deleteTeamMajor(id);
|
return Result.ok();
|
}
|
|
@GetMapping("/tree")
|
public Result<List<Map<String, Object>>> tree(@RequestParam String type) {
|
return Result.ok(systemService.tree(type));
|
}
|
|
@GetMapping("/tree/product/roots")
|
public Result<List<Map<String, Object>>> productTreeRoots() {
|
return Result.ok(systemService.productTreeRoots());
|
}
|
|
@GetMapping("/tree/product/children")
|
public Result<List<Map<String, Object>>> productTreeChildren(@RequestParam Long parentId) {
|
return Result.ok(systemService.productTreeChildren(parentId));
|
}
|
|
@GetMapping("/tree/product/side-roots")
|
public Result<List<Map<String, Object>>> productTreeForXNo(@RequestParam(required = false) String xNo) {
|
return Result.ok(systemService.productTreeForXNo(xNo));
|
}
|
|
@GetMapping("/tree/product/x-numbers")
|
public Result<List<String>> productXNumbers() {
|
return Result.ok(systemService.productXNumbers());
|
}
|
|
@GetMapping("/tree/product/selected")
|
public Result<List<Map<String, Object>>> selectedProductNodes(@RequestParam List<Long> ids) {
|
return Result.ok(systemService.selectedProductNodes(ids));
|
}
|
|
@PostMapping("/tree/product")
|
public Result<ProductNode> createProduct(@RequestBody ProductNode node) {
|
node.setId(null);
|
return Result.ok(systemService.saveProductNode(node));
|
}
|
|
@PutMapping("/tree/product/{id}")
|
public Result<ProductNode> updateProduct(@PathVariable Long id, @RequestBody ProductNode node) {
|
node.setId(id);
|
return Result.ok(systemService.saveProductNode(node));
|
}
|
|
@DeleteMapping("/tree/product/{id}")
|
public Result<Void> deleteProduct(@PathVariable Long id) {
|
systemService.deleteProductNode(id);
|
return Result.ok();
|
}
|
|
@PostMapping("/tree/base")
|
public Result<BaseEquipment> createBase(@RequestBody BaseEquipment node) {
|
node.setId(null);
|
return Result.ok(systemService.saveBaseNode(node));
|
}
|
|
@PutMapping("/tree/base/{id}")
|
public Result<BaseEquipment> updateBase(@PathVariable Long id, @RequestBody BaseEquipment node) {
|
node.setId(id);
|
return Result.ok(systemService.saveBaseNode(node));
|
}
|
|
@DeleteMapping("/tree/base/{id}")
|
public Result<Void> deleteBase(@PathVariable Long id) {
|
systemService.deleteBaseNode(id);
|
return Result.ok();
|
}
|
|
@GetMapping("/menu-permissions")
|
public Result<Map<String, Object>> menuPermissions(@RequestParam(required = false) Long roleId) {
|
return Result.ok(systemService.menuPermissions(roleId));
|
}
|
|
@PostMapping("/menu-permissions")
|
public Result<Void> saveMenuPermissions(@RequestBody Requests.MenuPermissionRequest request) {
|
systemService.saveMenuPermissions(request.getRoleId(), request.getRoleMenuIds());
|
return Result.ok();
|
}
|
|
|
@GetMapping("/three-member")
|
public Result<Map<String, Object>> threeMember() {
|
return Result.ok(systemService.threeMemberOverview());
|
}
|
}
|