From 45fe148b1be15e608986cccb5154d29cfea5e212 Mon Sep 17 00:00:00 2001 From: lizhi <1370025557@qq.com> Date: Thu, 14 Jul 2022 18:08:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E7=AE=A1=E7=90=86=E6=87=92?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cloud/kicc/system/api/entity/Address.java | 7 +- .../system/controller/AddressController.java | 88 ++--------------- .../kicc/system/mapper/AddressMapper.java | 15 +-- .../kicc/system/service/AddressService.java | 25 +---- .../service/impl/AddressServiceImpl.java | 84 ++++------------ .../src/main/resources/mapper/Address.xml | 96 +++++++++---------- .../src/main/test/testDemo.java | 13 +-- 7 files changed, 83 insertions(+), 245 deletions(-) diff --git a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/Address.java b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/Address.java index fe5123d4..b1e64574 100644 --- a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/Address.java +++ b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/Address.java @@ -4,13 +4,11 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.cloud.kicc.common.data.entity.CommonEntity; -import com.cloud.kicc.common.data.entity.TreeEntity; import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; -import org.apache.poi.ss.formula.functions.T; import java.util.ArrayList; import java.util.List; @@ -24,7 +22,7 @@ import java.util.List; @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) -@TableName(value="sys_area") +@TableName(value="sys_address") public class Address extends CommonEntity { /** 编号 **/ @ApiModelProperty("id") @@ -49,6 +47,9 @@ public class Address extends CommonEntity { @JsonInclude(JsonInclude.Include.NON_EMPTY) protected List
children = new ArrayList(); + @ApiModelProperty("标识字段") + @TableField(exist = false) + private String fooLevel; // @ApiModelProperty("层级") // private Integer level; diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/AddressController.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/AddressController.java index 8a121077..737519b5 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/AddressController.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/AddressController.java @@ -1,30 +1,15 @@ package com.cloud.kicc.system.controller; -import cn.hutool.core.lang.tree.Tree; -import cn.hutool.core.lang.tree.TreeNode; -import cn.hutool.core.lang.tree.TreeNodeConfig; -import cn.hutool.core.lang.tree.TreeUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.core.constant.AppConstants; import com.cloud.kicc.system.api.entity.Address; -import com.cloud.kicc.system.api.entity.Dept; -import com.cloud.kicc.system.api.entity.User; import com.cloud.kicc.system.service.AddressService; import com.cloud.kicc.system.service.UserService; -import com.sun.org.apache.bcel.internal.generic.NEW; import io.swagger.annotations.Api; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - /** * @Author: TangSheng * @Description: 地址管理 @@ -85,81 +70,22 @@ public class AddressController { return R.ok(addressService.getById(id)); } - /** - * 查询根据条件 + * 查询地址列表 * @return */ -// @GetMapping("/list") -// public R list(Address address) { -// List
addressList = addressService.queryList(address); -// return R.ok(addressList, addressList.size()); -// } @GetMapping("/list") public R list(Address address){ - List
addressList = addressService.list(getQueryWrapper(address)); - //配置 - TreeNodeConfig treeNodeConfig = new TreeNodeConfig(); - treeNodeConfig.setIdKey("id"); - treeNodeConfig.setParentIdKey("parent_id"); - treeNodeConfig.setNameKey("name"); - treeNodeConfig.setWeightKey("sort"); - //最大递归深度 - treeNodeConfig.setDeep(3); - //转换器 - List> treeNodes = TreeUtil.build(addressList,"0",treeNodeConfig,(treeNode,tree)->{ - tree.setId(treeNode.getId()); - tree.setParentId(treeNode.getParentId()); - tree.setName(treeNode.getName()); - tree.setWeight(treeNode.getSort()); - }); - return R.ok(addressList,addressList.size()); - } - /** - * 加载地址机构树 - * */ - @GetMapping("/addrTree") - public R addrTree(){ - List
addrList = addressService.list(new LambdaQueryWrapper
().orderByAsc(Address::getSort)); - return R.ok(addressService.buildTree(addrList,"0")); + return R.ok(addressService.queryList(address)); } + /** - * 根据parentIds列表查询list - * @param parentIds + * 查询地址列表 * @return */ - @GetMapping("/queryByParentIds/{ids}") - public R queryByParentIds(@PathVariable("ids") String[] parentIds) { - if (ObjectUtil.isEmpty(parentIds)) { - return R.ok(new ArrayList<>(), 0); - } - List
addressList = addressService.queryListByParentIds(Arrays.asList(parentIds)); - return R.ok(addressList, addressList.size()); + @GetMapping("/lazyList") + public R lazyList(String parentId){ + return R.ok(addressService.lazyList(parentId)); } - - private LambdaQueryWrapper
getQueryWrapper(Address address) { - - return Wrappers.
lambdaQuery() - .like(StrUtil.isNotBlank(address.getName()), Address::getName,address.getName()) - .eq(StrUtil.isNotBlank(address.getParentId()), Address::getParentId, address.getParentId()) - .between(StrUtil.isNotBlank(address.getBeginTime()) && StrUtil.isNotBlank(address.getEndTime()), Address::getCreateTime, address.getBeginTime(), address.getEndTime()) - .like(StrUtil.isNotBlank(address.getCode()),Address::getCode, address.getCode()) - .like(StrUtil.isNotBlank(address.getId()),Address::getId,address.getId()) - .orderByAsc(Address::getSort); - - } - -// /** -// * 根据parentIds列表查询list -// * @return -// */ -// @ApiOperation(value = "根据parentId列表查询list") -// @GetMapping("/list") -// public R queryByParentId( Address address) { -// List
addressList = addressService.list(Wrappers.
lambdaQuery().eq(Address::getParentId, address.getParentId())); -// return R.ok(addressList, addressList.size()); -// } - - } \ No newline at end of file diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/mapper/AddressMapper.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/mapper/AddressMapper.java index 863cc67e..da2576f5 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/mapper/AddressMapper.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/mapper/AddressMapper.java @@ -2,7 +2,6 @@ package com.cloud.kicc.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.cloud.kicc.system.api.entity.Address; -import org.apache.ibatis.annotations.Param; import java.util.List; @@ -14,18 +13,8 @@ import java.util.List; */ public interface AddressMapper extends BaseMapper
{ - /** - * 分页条件查询 - * @param param - * @return - */ - List
queryList(@Param("param") Address param); + List
lazyList(String parentId); - /** - * 查询根据parentId列表 - * @param list - * @return - */ - List
queryListByParentIds(@Param("list") List list); + List
queryList(Address address); } \ No newline at end of file diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/AddressService.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/AddressService.java index 514af575..08d963c7 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/AddressService.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/AddressService.java @@ -2,33 +2,16 @@ package com.cloud.kicc.system.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.system.api.entity.Address; -import com.cloud.kicc.system.api.entity.Dept; import java.util.List; -/** - * @Author: TangSheng - * @Description: - * @Since 1.0 - * @Date Created in 10:23 2022/3/21 - */ + public interface AddressService extends IService
{ - /** - * 查询list - * @param address - * @return - */ - List
queryList(Address address); - /** - * 查询根据parentId列表 - * @param list - * @return - */ - List
queryListByParentIds(List list); - List
buildTree(List
list, String parentId); + List
lazyList(String parentId); + + List
queryList(Address address); } \ No newline at end of file diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/AddressServiceImpl.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/AddressServiceImpl.java index 1f052642..47f92c21 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/AddressServiceImpl.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/AddressServiceImpl.java @@ -1,27 +1,18 @@ package com.cloud.kicc.system.service.impl; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.cloud.kicc.system.api.entity.Address; -import com.cloud.kicc.system.api.entity.Dept; import com.cloud.kicc.system.mapper.AddressMapper; import com.cloud.kicc.system.service.AddressService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Iterator; import java.util.List; +import java.util.stream.Collectors; -/** - * @Author: TangSheng - * @Description: 地址管理业务实现 - * @Since 1.0 - * @Date Created in 10:24 2022/3/21 - */ @Service @RequiredArgsConstructor @Slf4j @@ -30,62 +21,27 @@ public class AddressServiceImpl extends ServiceImpl impl @Override public List
queryList(Address address) { - return this.baseMapper.queryList(address); + List
addressList = this.baseMapper.queryList(address); + return addressList.stream().filter(item ->"1".equals(item.getFooLevel())) + .map(item -> { + List
addresses = addressList.stream().filter(e -> "1".equals(item.getFooLevel())).collect(Collectors.toList()); + if(addresses.size() != 0) { + item.setChildren(addresses); + } + return item; + }).collect(Collectors.toList()); } @Override - public List
queryListByParentIds(List list) { - return this.baseMapper.queryListByParentIds(list); + public List
lazyList(String parentId) { + List
addressList = this.baseMapper.lazyList(parentId); + return addressList.stream().filter(item -> item.getParentId().equals(parentId)) + .map(item -> { + List
address = addressList.stream().filter(e -> e.getParentId().equals(item.getId())).collect(Collectors.toList()); + if(address.size() != 0) { + item.setChildren(address); + } + return item; + }).collect(Collectors.toList()); } - - @Override - public List
buildTree(List
list, String parentId){ - List
addrList = new ArrayList(); - for (Iterator
iterator = list.iterator(); iterator.hasNext(); ) { - Address t = iterator.next(); - if (StrUtil.equals(t.getParentId(), parentId)) { - recursion(list, t); - addrList.add(t); - } - } - return addrList; - } - - /** 递归列表 */ - private void recursion(List
list, Address addr) { - // 得到子节点列表 - List
childList = getChildList(list, addr); - addr.setChildren(childList); - for (Address tChild : childList) { - if (hasChild(list, tChild)) { - // 判断是否有子节点 - Iterator
it = childList.iterator(); - while (it.hasNext()) { - Address n = (Address) it.next(); - recursion(list, n); - } - } - } - } - - /** 得到子节点列表 */ - private List
getChildList(List
list, Address addr) { - List
addrList = new ArrayList() ; - Iterator
it = list.iterator(); - while (it.hasNext()) { - Address n = it.next(); - if (StrUtil.equals(n.getParentId(), addr.getId())) { - addrList.add(n); - } - } - return addrList; - } - - /** 判断是否有子节点 */ - private boolean hasChild(List
list, Address t) { - return getChildList(list, t).size() > 0 ? true : false; - } - - - } \ No newline at end of file diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/Address.xml b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/Address.xml index f9782f3c..7caf8a7a 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/Address.xml +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/Address.xml @@ -18,63 +18,57 @@ + + + - - - - - - - - - - - - - - - - - - - + SELECT * FROM + ( + SELECT * FROM sys_address where parent_id = #{parent_id} + UNION ALL + SELECT T2.* FROM (SELECT id FROM sys_address where parent_id = #{parent_id}) T1, sys_address T2 + WHERE T1.id = T2.parent_id + )result where del_flag ='0' + ORDER BY sort ASC + \ No newline at end of file diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/test/testDemo.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/test/testDemo.java index 1b50e2f2..9fc23430 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/test/testDemo.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/test/testDemo.java @@ -1,9 +1,3 @@ -import cn.hutool.core.date.DateTime; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.lang.Assert; -import cn.hutool.core.util.IdcardUtil; - - /** * @Author: lizhi * @Description: @@ -12,11 +6,6 @@ import cn.hutool.core.util.IdcardUtil; */ public class testDemo { public static void main(String[] args) { - String IdCard18 = "523485241251412521"; - String IdCard15 = "135248524214562"; - boolean valid18 = IdcardUtil.isValidCard(IdCard18); - boolean valid15 = IdcardUtil.isValidCard(IdCard15); - System.out.println(valid18); - System.out.println(valid15); + } }