刘光辉
14 小时以前 34981c30a78e8bbd7791131059a9210f9928b62c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package jnpf.dmsController.permission;
 
import jakarta.validation.Valid;
import jnpf.base.ActionResult;
import jnpf.dmsEntity.permission.entity.DmsDocumentEntity;
import jnpf.dmsEntity.permission.entity.DmsFileVersionEntity;
import jnpf.dmsEntity.permission.entity.DmsFolderEntity;
import jnpf.dmsEntity.permission.enums.DmsResourceType;
import jnpf.dmsEntity.permission.form.FolderCreateUserForm;
import jnpf.dmsEntity.permission.vo.DmsCursorPageVO;
import jnpf.dmsEntity.permission.vo.DmsPermissionGrantVO;
import jnpf.dmsEntity.permission.vo.DmsPermissionResourceVO;
import jnpf.dmsEntity.permission.vo.DmsResourceTypeDefinitionVO;
import jnpf.dmsService.DmsPermissionAdminQueryService;
import jnpf.dmsService.DmsResourceQueryService;
import jnpf.dmsService.DmsResourceService;
import lombok.RequiredArgsConstructor;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
 
import java.util.List;
import java.util.UUID;
 
@RestController
@RequestMapping
@RequiredArgsConstructor
public class PermissionResourceController {
    private final DmsResourceQueryService resourceQueryService;
    private final DmsPermissionAdminQueryService permissionQueryService;
    private final DmsResourceService resourceService;
 
    @GetMapping("/permission-resource-types")
    public ActionResult<List<DmsResourceTypeDefinitionVO>> resourceTypes() {
        return ActionResult.success(resourceQueryService.typeDefinitions());
    }
 
    @GetMapping("/permission-resources")
    public ActionResult<DmsCursorPageVO<DmsPermissionResourceVO>> resources(
            @RequestParam(value = "resourceType", required = false) String resourceType,
            @RequestParam(value = "cursor", required = false) String cursor,
            @RequestParam(value = "pageSize", required = false) Integer pageSize) {
        return ActionResult.success(resourceQueryService.page(resourceType, cursor, pageSize));
    }
 
    @GetMapping("/permission-resources/tree")
    public ActionResult<List<DmsPermissionResourceVO>> resourceTree(
            @RequestParam(value = "parentId", required = false) UUID parentId,
            @RequestParam(value = "pageSize", required = false) Integer pageSize) {
        return ActionResult.success(resourceQueryService.children(parentId, pageSize));
    }
 
    @GetMapping("/permission-resources/{id}")
    public ActionResult<DmsPermissionResourceVO> resource(@PathVariable("id") UUID id) {
        return ActionResult.success(resourceQueryService.resource(id));
    }
 
    @GetMapping("/permission-resources/{id}/grants")
    public ActionResult<List<DmsPermissionGrantVO>> resourceGrants(@PathVariable("id") UUID id) {
        DmsPermissionResourceVO resource = resourceQueryService.resource(id);
        return ActionResult.success(permissionQueryService.resourceGrants(
                DmsResourceType.valueOf(resource.getResourceType()), id));
    }
 
    @GetMapping("/folders/{id}")
    public ActionResult<DmsFolderEntity> folder(@PathVariable("id") UUID id) {
        return ActionResult.success(resourceQueryService.folder(id));
    }
 
    @PostMapping("/folders")
    public ActionResult<DmsPermissionResourceVO> createFolder(
            @RequestBody @Valid FolderCreateUserForm form) {
        return ActionResult.success(resourceService.createFolder(form));
    }
 
    @GetMapping("/documents/{id}")
    public ActionResult<DmsDocumentEntity> document(@PathVariable("id") UUID id) {
        return ActionResult.success(resourceQueryService.document(id));
    }
 
    @GetMapping("/file-versions/{id}")
    public ActionResult<DmsFileVersionEntity> fileVersion(@PathVariable("id") UUID id) {
        return ActionResult.success(resourceQueryService.fileVersion(id));
    }
}