Java常用方法 偏自学哈 后续有好用的东西持续更新

1.分页查询

@Entity层
public class GetTableFieldQuery {
    @ApiModelProperty(value = "索引名称",required = true)
    @NotNull(message = "索引名称不能为空")
    private String index_name;

    @ApiModelProperty(value = "当前页", example = "1")
    private Integer page;

    @ApiModelProperty(value = "每页多少条", example = "10")
    private Integer size;

    public Integer getPage() {
        return this.page != null ? this.page : 1;
    }

    public Integer getSize() {
        return this.size != null ? this.size : 10;
    }
}

@Impl层
@Override
    public Result<List<TableFieldVO>> getTableFieldById(GetTableFieldQuery getTableFieldQuery) {
        //PageHelper.startPage相当于开启分页,通过拦截MySQL的方式,把你的查询语句拦截下来加limit.
        PageHelper.startPage(getTableFieldQuery.getPage(), getTableFieldQuery.getSize());
        //查询语句一定放到这个PageHelper.startPage的后面进行执行。这样才能用到拦截功能
        List<TableFieldVO> tableFieldById = dataAssuranceMapper.getTableFieldById(getTableFieldQuery.getIndex_name());
        PageInfo<TableFieldVO> pageInfo=new PageInfo<>(tableFieldById);
        return Result.success(tableFieldById, Long.valueOf(pageInfo.getTotal()).intValue());
    }

2.二级菜单

        理解

        1.首先查询父级菜单,也就是parent_id均为0的List

        2.通过回显的parent_id为0的List,获取其中table_id来作为子菜单的关联条件,判断id相同的List添加到父级菜单中,如下视图与代码。

@Override
    public Result<List<DataMenuVO>> getDataMenu() {
        List<Map<String,Object>> listMap = new ArrayList<>();
        //查询都为parent为0的id 然后循环一个新的Map中
        List<DataMenuVO> dataMenuFather = dataAssuranceMapper.getDataMenuFather();
        for(DataMenuVO dataMenuVO:dataMenuFather) {
            HashMap<String, Object> fatherMap = Maps.newHashMap();
            fatherMap.put("table_id",dataMenuVO.getTableId());
            fatherMap.put("table_name",dataMenuVO.getTableName());
            //每次都查找与父级菜单相同的id 再添加到父级map中
            List<DataMenuVO> menuSonListByFatherId = dataAssuranceMapper.getMenuSonListByFatherId(dataMenuVO.getTableId());
            fatherMap.put("menuSon",menuSonListByFatherId);
            //加入List<Map>中
            listMap.add(fatherMap);
        }
        return Result.success(listMap);
    }

需求:查看每个索引中总共有多少条数据 累计相加 给前端做统计 我目前只会for循环 Stream还不是很熟练...


//查看表数量
            request = new Request("GET", "_cat/indices?v&h=idx,docs.count");
            Response response = elasticTemplate.request(request, restHighLevelClient);
            //去除空格
            split = EntityUtils.toString(response.getEntity()).split("\n");
            //key为索引 value为count数目
            final Map<String, String> indexCountMap = Stream.of(split).map(e -> Arrays.stream(e.split(" ")).filter(f -> (!"".equals(f))).toArray(String[]::new)).collect(Collectors.toMap(e -> e[0], e -> e[1]));

            //copy到一个新的list中 属性少好观察
            List<DataDetailVO> indexList = new ArrayList<>();
            DataDetailVO dataDetailVO;
            for (IsSearchTableDTO isSearchTableDTO : isSearchTableDTOs) {
                dataDetailVO = new DataDetailVO();
                //复制value
                BeanUtils.copyProperties(isSearchTableDTO, dataDetailVO);
                indexList.add(dataDetailVO);
            }

    for (DataDetailVO d:indexList){
                for (String key : indexCountMap.keySet()) {
                    if (key.equals(d.getIndexName())){
                        d.setCountSum(indexCountMap.get(key));
                    }
                }
            }

            Integer integer = 0;
            for (DataDetailVO d:indexList){
                integer = integer + Integer.parseInt(Optional.ofNullable(d.getCountSum()).orElse("0"));
            }

            HashMap<String, Object> map = Maps.newHashMap();
            map.put("Total data volume",integer);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值