Browse Source

接口开发

ht 3 days ago
parent
commit
322940b642

+ 5 - 1
src/main/java/com/malk/minglei/controller/YidaProcessController.java

@@ -22,6 +22,7 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Min;
 import javax.validation.constraints.Min;
 import javax.validation.Valid;
 import javax.validation.Valid;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Collections;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
@@ -105,7 +106,10 @@ public class YidaProcessController {
      */
      */
     @PostMapping("/minglei/departments/users")
     @PostMapping("/minglei/departments/users")
     public ResponseEntity<DepartmentUserIdsResponse> listDepartmentUserIds(@Valid @RequestBody DepartmentUserQueryRequest request) {
     public ResponseEntity<DepartmentUserIdsResponse> listDepartmentUserIds(@Valid @RequestBody DepartmentUserQueryRequest request) {
-        List<String> userIds = mingleiDocumentService.listDepartmentUserIds(request.getDepartmentIds(), request.getType());
+        List<String> userIds = new ArrayList<String>(mingleiDocumentService.listDepartmentUserIds(request.getDepartmentIds(), request.getType()));
+        if (request.getUserIds() != null && !request.getUserIds().isEmpty()) {
+            userIds.addAll(request.getUserIds());
+        }
         return ResponseEntity.ok(DepartmentUserIdsResponse.success(userIds));
         return ResponseEntity.ok(DepartmentUserIdsResponse.success(userIds));
     }
     }
 
 

+ 10 - 0
src/main/java/com/malk/minglei/dto/DepartmentUserQueryRequest.java

@@ -25,6 +25,8 @@ public class DepartmentUserQueryRequest {
     @Max(value = 1, message = "type must be 0 or 1")
     @Max(value = 1, message = "type must be 0 or 1")
     private Integer type;
     private Integer type;
 
 
+    private List<String> userIds;
+
     public List<Long> getDepartmentIds() {
     public List<Long> getDepartmentIds() {
         List<Long> departmentIds = new ArrayList<Long>();
         List<Long> departmentIds = new ArrayList<Long>();
         for (String value : departmentId.split(",")) {
         for (String value : departmentId.split(",")) {
@@ -54,4 +56,12 @@ public class DepartmentUserQueryRequest {
     public void setType(Integer type) {
     public void setType(Integer type) {
         this.type = type;
         this.type = type;
     }
     }
+
+    public List<String> getUserIds() {
+        return userIds;
+    }
+
+    public void setUserIds(List<String> userIds) {
+        this.userIds = userIds;
+    }
 }
 }

+ 37 - 0
src/test/java/com/malk/minglei/controller/YidaProcessControllerTest.java

@@ -3,6 +3,8 @@ package com.malk.minglei.controller;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.malk.minglei.dto.ApiResponse;
 import com.malk.minglei.dto.ApiResponse;
+import com.malk.minglei.dto.DepartmentUserIdsResponse;
+import com.malk.minglei.dto.DepartmentUserQueryRequest;
 import com.malk.minglei.dto.YidaProcessStartRequest;
 import com.malk.minglei.dto.YidaProcessStartRequest;
 import com.malk.minglei.service.yida.MingleiDocumentService;
 import com.malk.minglei.service.yida.MingleiDocumentService;
 import com.malk.minglei.service.yida.YidaProcessService;
 import com.malk.minglei.service.yida.YidaProcessService;
@@ -10,6 +12,8 @@ import org.junit.jupiter.api.Test;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.http.ResponseEntity;
 
 
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.Map;
 import java.util.Map;
 
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -43,4 +47,37 @@ class YidaProcessControllerTest {
         assertEquals(true, body.get("isSuccess"));
         assertEquals(true, body.get("isSuccess"));
         assertEquals("process-instance-1", ((Map<?, ?>) body.get("result")).get("processInstanceId"));
         assertEquals("process-instance-1", ((Map<?, ?>) body.get("result")).get("processInstanceId"));
     }
     }
+
+    @Test
+    void listDepartmentUserIdsLeavesResultUnchangedWhenUserIdsIsEmpty() {
+        MingleiDocumentService mingleiDocumentService = mock(MingleiDocumentService.class);
+        given(mingleiDocumentService.listDepartmentUserIds(Arrays.asList(10L), 0))
+                .willReturn(Arrays.asList("department-user-1", "department-user-2"));
+        DepartmentUserQueryRequest request = new DepartmentUserQueryRequest();
+        request.setDepartmentId("10");
+        request.setType(Integer.valueOf(0));
+        request.setUserIds(Collections.<String>emptyList());
+
+        ResponseEntity<DepartmentUserIdsResponse> response = new YidaProcessController(
+                mock(YidaProcessService.class), mingleiDocumentService).listDepartmentUserIds(request);
+
+        assertEquals(Arrays.asList("department-user-1", "department-user-2"), response.getBody().getResult());
+    }
+
+    @Test
+    void listDepartmentUserIdsAppendsSpecifiedUsersAfterDepartmentUsers() {
+        MingleiDocumentService mingleiDocumentService = mock(MingleiDocumentService.class);
+        given(mingleiDocumentService.listDepartmentUserIds(Arrays.asList(10L), 0))
+                .willReturn(Arrays.asList("department-user-1", "department-user-2"));
+        DepartmentUserQueryRequest request = new DepartmentUserQueryRequest();
+        request.setDepartmentId("10");
+        request.setType(Integer.valueOf(0));
+        request.setUserIds(Arrays.asList("specified-user-1", "department-user-1"));
+
+        ResponseEntity<DepartmentUserIdsResponse> response = new YidaProcessController(
+                mock(YidaProcessService.class), mingleiDocumentService).listDepartmentUserIds(request);
+
+        assertEquals(Arrays.asList("department-user-1", "department-user-2", "specified-user-1", "department-user-1"),
+                response.getBody().getResult());
+    }
 }
 }

+ 10 - 0
src/test/java/com/malk/minglei/dto/DepartmentUserQueryRequestTest.java

@@ -1,5 +1,6 @@
 package com.malk.minglei.dto;
 package com.malk.minglei.dto;
 
 
+import com.fasterxml.jackson.databind.ObjectMapper;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
 
 
 import java.util.Arrays;
 import java.util.Arrays;
@@ -15,4 +16,13 @@ class DepartmentUserQueryRequestTest {
 
 
         assertEquals(Arrays.asList(10L, 20L, 30L), request.getDepartmentIds());
         assertEquals(Arrays.asList(10L, 20L, 30L), request.getDepartmentIds());
     }
     }
+
+    @Test
+    void deserializesOptionalUserIds() throws Exception {
+        DepartmentUserQueryRequest request = new ObjectMapper().readValue(
+                "{\"dept_Id\":\"10\",\"type\":0,\"userIds\":[\"user-1\",\"user-2\"]}",
+                DepartmentUserQueryRequest.class);
+
+        assertEquals(Arrays.asList("user-1", "user-2"), request.getUserIds());
+    }
 }
 }