diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/CcdiProjectOverviewController.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/CcdiProjectOverviewController.java index d31d11c7..605fe824 100644 --- a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/CcdiProjectOverviewController.java +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/CcdiProjectOverviewController.java @@ -1,5 +1,6 @@ package com.ruoyi.ccdi.project.controller; +import com.ruoyi.ccdi.project.domain.dto.CcdiProjectAbnormalAccountQueryDTO; import com.ruoyi.ccdi.project.domain.dto.CcdiProjectEmployeeCreditNegativeQueryDTO; import com.ruoyi.ccdi.project.domain.dto.CcdiProjectPersonAnalysisDetailQueryDTO; import com.ruoyi.ccdi.project.domain.dto.CcdiProjectRiskModelPeopleQueryDTO; @@ -7,6 +8,7 @@ import com.ruoyi.ccdi.project.domain.dto.CcdiProjectRiskPeopleQueryDTO; import com.ruoyi.ccdi.project.domain.dto.CcdiProjectSuspiciousTransactionQueryDTO; import com.ruoyi.ccdi.project.domain.excel.CcdiProjectRiskPeopleOverviewExcel; import com.ruoyi.ccdi.project.domain.excel.CcdiProjectSuspiciousTransactionExcel; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectAbnormalAccountPageVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectEmployeeCreditNegativePageVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectPersonAnalysisDetailVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectOverviewDashboardVO; @@ -130,6 +132,17 @@ public class CcdiProjectOverviewController extends BaseController { return AjaxResult.success(pageVO); } + /** + * 查询异常账户人员信息 + */ + @GetMapping("/abnormal-account-people") + @Operation(summary = "查询异常账户人员信息") + @PreAuthorize("@ss.hasPermi('ccdi:project:query')") + public AjaxResult getAbnormalAccountPeople(CcdiProjectAbnormalAccountQueryDTO queryDTO) { + CcdiProjectAbnormalAccountPageVO pageVO = overviewService.getAbnormalAccountPeople(queryDTO); + return AjaxResult.success(pageVO); + } + /** * 导出涉疑交易明细 */ diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/dto/CcdiProjectAbnormalAccountQueryDTO.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/dto/CcdiProjectAbnormalAccountQueryDTO.java new file mode 100644 index 00000000..02544c72 --- /dev/null +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/dto/CcdiProjectAbnormalAccountQueryDTO.java @@ -0,0 +1,19 @@ +package com.ruoyi.ccdi.project.domain.dto; + +import lombok.Data; + +/** + * 异常账户人员信息查询 DTO + */ +@Data +public class CcdiProjectAbnormalAccountQueryDTO { + + /** 项目ID */ + private Long projectId; + + /** 页码 */ + private Integer pageNum; + + /** 每页数量 */ + private Integer pageSize; +} diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiProjectAbnormalAccountPageVO.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiProjectAbnormalAccountPageVO.java new file mode 100644 index 00000000..1984f47d --- /dev/null +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/vo/CcdiProjectAbnormalAccountPageVO.java @@ -0,0 +1,16 @@ +package com.ruoyi.ccdi.project.domain.vo; + +import java.util.ArrayList; +import java.util.List; +import lombok.Data; + +/** + * 异常账户人员信息分页结果 + */ +@Data +public class CcdiProjectAbnormalAccountPageVO { + + private List rows = new ArrayList<>(); + + private Long total = 0L; +} diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/ICcdiProjectOverviewService.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/ICcdiProjectOverviewService.java index 18fc1ba5..11c0aef4 100644 --- a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/ICcdiProjectOverviewService.java +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/ICcdiProjectOverviewService.java @@ -1,5 +1,6 @@ package com.ruoyi.ccdi.project.service; +import com.ruoyi.ccdi.project.domain.dto.CcdiProjectAbnormalAccountQueryDTO; import com.ruoyi.ccdi.project.domain.dto.CcdiProjectEmployeeCreditNegativeQueryDTO; import com.ruoyi.ccdi.project.domain.dto.CcdiProjectPersonAnalysisDetailQueryDTO; import com.ruoyi.ccdi.project.domain.dto.CcdiProjectRiskModelPeopleQueryDTO; @@ -8,6 +9,7 @@ import com.ruoyi.ccdi.project.domain.dto.CcdiProjectSuspiciousTransactionQueryDT import com.ruoyi.ccdi.project.domain.excel.CcdiProjectEmployeeCreditNegativeExcel; import com.ruoyi.ccdi.project.domain.excel.CcdiProjectRiskPeopleOverviewExcel; import com.ruoyi.ccdi.project.domain.excel.CcdiProjectSuspiciousTransactionExcel; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectAbnormalAccountPageVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectEmployeeCreditNegativePageVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectPersonAnalysisDetailVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectOverviewDashboardVO; @@ -144,6 +146,18 @@ public interface ICcdiProjectOverviewService { return new CcdiProjectEmployeeCreditNegativePageVO(); } + /** + * 查询异常账户人员信息 + * + * @param queryDTO 查询条件 + * @return 分页结果 + */ + default CcdiProjectAbnormalAccountPageVO getAbnormalAccountPeople( + CcdiProjectAbnormalAccountQueryDTO queryDTO + ) { + return new CcdiProjectAbnormalAccountPageVO(); + } + /** * 重算结果总览员工结果并同步项目风险人数 * diff --git a/ccdi-project/src/test/java/com/ruoyi/ccdi/project/controller/CcdiProjectOverviewControllerContractTest.java b/ccdi-project/src/test/java/com/ruoyi/ccdi/project/controller/CcdiProjectOverviewControllerContractTest.java index 58c3a558..2ce92adf 100644 --- a/ccdi-project/src/test/java/com/ruoyi/ccdi/project/controller/CcdiProjectOverviewControllerContractTest.java +++ b/ccdi-project/src/test/java/com/ruoyi/ccdi/project/controller/CcdiProjectOverviewControllerContractTest.java @@ -9,6 +9,7 @@ import java.util.List; import java.util.stream.Collectors; import jakarta.servlet.http.HttpServletResponse; import org.junit.jupiter.api.Test; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -126,6 +127,26 @@ class CcdiProjectOverviewControllerContractTest { assertEquals(AjaxResult.class, method.getReturnType()); } + @Test + void shouldExposeAbnormalAccountPeopleEndpointContract() throws Exception { + Class controllerClass = Class.forName("com.ruoyi.ccdi.project.controller.CcdiProjectOverviewController"); + Class queryDtoClass = + Class.forName("com.ruoyi.ccdi.project.domain.dto.CcdiProjectAbnormalAccountQueryDTO"); + + Method method = controllerClass.getMethod("getAbnormalAccountPeople", queryDtoClass); + GetMapping getMapping = method.getAnnotation(GetMapping.class); + Operation operation = method.getAnnotation(Operation.class); + PreAuthorize preAuthorize = method.getAnnotation(PreAuthorize.class); + + assertNotNull(getMapping); + assertEquals("/abnormal-account-people", getMapping.value()[0]); + assertNotNull(operation); + assertEquals("查询异常账户人员信息", operation.summary()); + assertNotNull(preAuthorize); + assertEquals("@ss.hasPermi('ccdi:project:query')", preAuthorize.value()); + assertEquals(queryDtoClass, method.getParameterTypes()[0]); + } + @Test void shouldExposeSuspiciousTransactionsExportEndpointContract() throws Exception { Class controllerClass = Class.forName("com.ruoyi.ccdi.project.controller.CcdiProjectOverviewController"); diff --git a/ccdi-project/src/test/java/com/ruoyi/ccdi/project/controller/CcdiProjectOverviewControllerTest.java b/ccdi-project/src/test/java/com/ruoyi/ccdi/project/controller/CcdiProjectOverviewControllerTest.java index 2a7b2212..184bd094 100644 --- a/ccdi-project/src/test/java/com/ruoyi/ccdi/project/controller/CcdiProjectOverviewControllerTest.java +++ b/ccdi-project/src/test/java/com/ruoyi/ccdi/project/controller/CcdiProjectOverviewControllerTest.java @@ -1,8 +1,10 @@ package com.ruoyi.ccdi.project.controller; +import com.ruoyi.ccdi.project.domain.dto.CcdiProjectAbnormalAccountQueryDTO; import com.ruoyi.ccdi.project.domain.dto.CcdiProjectEmployeeCreditNegativeQueryDTO; import com.ruoyi.ccdi.project.domain.dto.CcdiProjectPersonAnalysisDetailQueryDTO; import com.ruoyi.ccdi.project.domain.dto.CcdiProjectSuspiciousTransactionQueryDTO; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectAbnormalAccountPageVO; import com.ruoyi.ccdi.project.domain.excel.CcdiProjectRiskPeopleOverviewExcel; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectEmployeeCreditNegativeItemVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectEmployeeCreditNegativePageVO; @@ -244,6 +246,36 @@ class CcdiProjectOverviewControllerTest { assertNotNull(operation); } + @Test + void shouldExposeAbnormalAccountPeopleEndpoint() throws Exception { + CcdiProjectAbnormalAccountQueryDTO queryDTO = new CcdiProjectAbnormalAccountQueryDTO(); + queryDTO.setProjectId(40L); + + CcdiProjectAbnormalAccountPageVO pageVO = new CcdiProjectAbnormalAccountPageVO(); + when(overviewService.getAbnormalAccountPeople(queryDTO)).thenReturn(pageVO); + + AjaxResult result = controller.getAbnormalAccountPeople(queryDTO); + + assertEquals(200, result.get("code")); + assertEquals(pageVO, result.get("data")); + verify(overviewService).getAbnormalAccountPeople(same(queryDTO)); + + Method method = CcdiProjectOverviewController.class.getMethod( + "getAbnormalAccountPeople", + CcdiProjectAbnormalAccountQueryDTO.class + ); + GetMapping getMapping = method.getAnnotation(GetMapping.class); + PreAuthorize preAuthorize = method.getAnnotation(PreAuthorize.class); + Operation operation = method.getAnnotation(Operation.class); + + assertNotNull(getMapping); + assertEquals("/abnormal-account-people", getMapping.value()[0]); + assertNotNull(preAuthorize); + assertEquals("@ss.hasPermi('ccdi:project:query')", preAuthorize.value()); + assertNotNull(operation); + assertEquals("查询异常账户人员信息", operation.summary()); + } + @Test void shouldExposeSuspiciousTransactionsExportEndpoint() throws Exception { MockHttpServletResponse response = new MockHttpServletResponse();