当前位置: 首页 > news >正文

如何建设网站吸引人绍兴在线制作网站

如何建设网站吸引人,绍兴在线制作网站,深圳市建设集团和恒大的关系,精湛的合肥网站建设Java树形结构集合分页需求难点实现第一步#xff1a;查出所有树形集合数据 #xff08;需进行缓存处理#xff09;selectTree 方法步骤#xff1a;TreeUtil类#xff1a;第二步#xff1a;分页 GoodsCategoryController分页getGoodsCategoryTree方法步骤#xff1a;第三… Java树形结构集合分页需求难点实现第一步查出所有树形集合数据 需进行缓存处理selectTree 方法步骤TreeUtil类第二步分页 GoodsCategoryController分页getGoodsCategoryTree方法步骤第三步前端实现效果图需求 商品类目树数据量大导致加载太慢需添加一个分页功能。 难点 树状结构不能用mybatis-plus自带的分页功能需自己写分页逻辑因数据量大需进行缓存处理 实现 第一步查出所有树形集合数据 需进行缓存处理 ListGoodsCategoryTree resultList goodsCategoryService.selectTree(null);ListGoodsCategoryTree selectTree(GoodsCategory goodsCategory);selectTree 方法步骤 判断key是否存在如果存在直接取缓存的值 不存在就从数据库查出数据并把值存到redis里。 Overridepublic ListGoodsCategoryTree selectTree(GoodsCategory goodsCategory) {if(redisTemplate.hasKey(CacheConstants.GOODS_CATEGORY_TREE_KEY)){log.info(商品类目管理 selectTree cache);ListGoodsCategoryTree cacheList SpringUtils.getBean(RedisCache.class).getCacheList(CacheConstants.GOODS_CATEGORY_TREE_KEY);return cacheList;}log.info(商品类目管理 selectTree db);ListGoodsCategoryTree treeList getTree(this.list(Wrappers.lambdaQuery(goodsCategory)));if (CollUtil.isNotEmpty(treeList)){SpringUtils.getBean(RedisCache.class).setCacheList(CacheConstants.GOODS_CATEGORY_TREE_KEY,treeList);}return treeList;}其中 getTree()如下 /*** Description: 构建树*/private ListGoodsCategoryTree getTree(ListGoodsCategory entitys) {ListGoodsCategoryTree treeList entitys.stream().filter(entity - !entity.getId().equals(entity.getParentId())).sorted(Comparator.comparingInt(GoodsCategory::getSort)).map(entity - {GoodsCategoryTree node new GoodsCategoryTree();BeanUtil.copyProperties(entity, node);return node;}).collect(Collectors.toList());return TreeUtil.build(treeList, CommonConstants.PARENT_ID);}TreeUtil类 UtilityClass public class TreeUtil {/*** 两层循环实现建树** param treeNodes 传入的树节点列表* return*/public T extends TreeNode ListT build(ListT treeNodes, Object root) {ListT trees new ArrayList();for (T treeNode : treeNodes) {if (root.equals(treeNode.getParentId())) {trees.add(treeNode); // trees.sort(Comparator.comparing(TreeNode::getSort));}for (T it : treeNodes) {if (it.getParentId().equals(treeNode.getId())) {treeNode.addChildren(it); // treeNode.getChildren().sort(Comparator.comparing(TreeNode::getSort));}}}return trees;} }第二步分页 GoodsCategoryController /*** 返回树形集合分页数据** return*/ApiOperation(value 返回树形集合分页数据)GetMapping(/treePage)public R getGoodsCategoryTree(Page page, GoodsCategory goodsCategory) {//得到所有数据ListGoodsCategoryTree resultList goodsCategoryService.selectTree(null);if (resultList ! null resultList.size() 0) {page.setTotal(resultList.size());}//分页ListGoodsCategoryTree finalList goodsCategoryService.getFinalListByPage(page,resultList);if (finalList ! null finalList.size() 0) {page.setRecords(finalList);}return R.ok(page);}分页 /** 分页查询类目树*/ListGoodsCategoryTree getFinalListByPage(Page page , ListGoodsCategoryTree resultList );getGoodsCategoryTree方法步骤 参考java对list集合进行分页 首先把数据根据创建时间倒序排列再进行分页 Overridepublic ListGoodsCategoryTree getFinalListByPage(Page page, ListGoodsCategoryTree resultList) {//根据创建时间倒序排列ListGoodsCategoryTree treeList resultList.stream().sorted(Comparator.comparing(GoodsCategoryTree::getCreateTime).reversed()).collect(Collectors.toList());//进行分页ListGoodsCategoryTree subList treeList.stream().skip((page.getCurrent()-1)*page.getSize()).limit(page.getSize()).collect(Collectors.toList());return subList;}第三步前端实现 avue-crud 组件加上:page.sync“page” avue-crudrefcrud:datatableData:page.syncpage:permissionpermissionList:table-loadingtableLoading:optiontableOption:before-openbeforeOpenv-modelformon-loadgetPagerefresh-changerefreshChangerow-updatehandleUpdaterow-savehandleSaverow-delhandleDeldata() 加上 page: {total: 0, // 总页数currentPage: 1, // 当前页数pageSize: 20, // 每页显示多少条ascs: [], //升序字段descs: create_time, //降序字段},paramsSearch: {},date: [],};重写getPage()方法 getPage(page, params) {this.tableLoading true;fetchTree(Object.assign({current: page.currentPage,size: page.pageSize,descs: this.page.descs,ascs: this.page.ascs,beginTime: this.date[0],endTime: this.date[1],},params,this.paramsSearch)).then((response) {let tableData response.data.data.records;this.tableData tableData;this.page.total response.data.data.total;this.page.currentPage page.currentPage;this.page.pageSize page.pageSize;let parentIdDIC [{id: 0,name: 顶级分类,parentId: 0,},];tableData.forEach((item) {parentIdDIC.push({id: item.id,name: item.name,parentId: item.parentId,});});this.$refs.crud.DIC.parentId parentIdDIC;this.tableLoading false;}).catch(() {this.tableLoading false;});},效果图
http://www.dnsts.com.cn/news/222817.html

相关文章:

  • 高端 网站设计公司做视频推广有哪几个网站
  • 站长工具seo推广云南网站设计平台
  • 自己制作一个网站需要什么软件汕头新闻
  • 做3d模型网站赚钱么网页设计与制作教程考试
  • 官方网站作用手机网站 多html
  • 西宁公司网站建设建设银行网站的机构有哪些
  • html网站标题怎么做软文广告经典案例200字
  • 怎么在凡科做自己网站品牌注册和商标注册有什么区别
  • 上海企业网站制作服务改网站描述
  • 成都网站建设 3e企业查询软件排行榜
  • 正规网站建设报价网页制作素材教学
  • 如何推广网站业务wordpress 有什么用
  • wordpress 哪些网站百讯网站建设
  • 印度尼西亚网站后缀制作视频的免费软件
  • 做门户网站主要技术哪一块山东网站app制作
  • 前端搜索网站引擎怎么做移动网站开发工具
  • 无忧网站源码wordpress auto get rss
  • 大同住房与城乡建设厅网站网络营销平台有哪些?
  • 网站建设十大品牌网站灰色
  • 根据网站集约化建设的要求vps搭建网站是什么意思
  • 网站开发费用的会计分录样式模板网站
  • 手机网站建设书籍网站建设怎么加音乐
  • seo建站搜索广告排名
  • 网站营销是什么意思茶叶网站开发目的和意义
  • aspx网站开发教程品牌策划岗位职责
  • cod建站系统廊坊网站制作建设
  • 苏州集团网站制作设计制作网站要多少钱
  • 电商网站规划书网站建设学多久
  • 昌图网站推广重庆做网站公司贴吧
  • 花的网站建设规划书dedecms使用教程