@GetMapping("/logs/dataInfluences/field")
  @PreAuthorize(value = "@apolloAuditLogQueryApiPreAuthorizer.hasQueryPermission()")
  public List<ApolloAuditLogDataInfluenceDTO> findDataInfluencesByField(
      @RequestParam String entityName, @RequestParam String entityId,
      @RequestParam String fieldName, int page, int size) {
    List<ApolloAuditLogDataInfluenceDTO> dataInfluenceDTOList = api.queryDataInfluencesByField(
        entityName, entityId, fieldName, page, size);
    return dataInfluenceDTOList;
  }
@Test
  public void testFindDataInfluencesByField() throws Exception {
    final String entityName = "query-entity-name";
    final String entityId = "query-entity-id";
    final String fieldName = "query-field-name";
    {
      List<ApolloAuditLogDataInfluenceDTO> mockDataInfluenceDTOList = MockBeanFactory.mockDataInfluenceDTOListByLength(
          size);
      mockDataInfluenceDTOList.forEach(e -> {
        e.setInfluenceEntityName(entityName);
        e.setInfluenceEntityId(entityId);
        e.setFieldName(fieldName);
      });
      Mockito.when(api.queryDataInfluencesByField(Mockito.eq(entityName), Mockito.eq(entityId),
              Mockito.eq(fieldName), Mockito.eq(page), Mockito.eq(size)))
          .thenReturn(mockDataInfluenceDTOList);
    }

    mockMvc.perform(MockMvcRequestBuilders.get("/apollo/audit/logs/dataInfluences/field")
            .param("entityName", entityName)
            .param("entityId", entityId)
            .param("fieldName", fieldName)
            .param("page", String.valueOf(page))
            .param("size", String.valueOf(size)))
        .andExpect(MockMvcResultMatchers.status().isOk())
        .andExpect(MockMvcResultMatchers.jsonPath("$").isArray())
        .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(size));

    Mockito.verify(api, Mockito.times(1))
        .queryDataInfluencesByField(Mockito.eq(entityName), Mockito.eq(entityId),
            Mockito.eq(fieldName), Mockito.eq(page), Mockito.eq(size));
  }