Commit 4bd4eafb authored by 刘弈臻's avatar 刘弈臻

树的模糊查询及分页数据

parent 1c07f07b
......@@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.govmade.common.utils.PageUtils;
import com.govmade.common.utils.PageTreeUtils;
import com.govmade.common.utils.R;
import com.govmade.common.validator.Assert;
import com.govmade.modules.basic.controller.AbstractController;
......@@ -39,7 +39,7 @@ public class AreaController extends AbstractController{
*/
@GetMapping("/listTree")
public R listTree(@RequestParam Map<String, Object> params) {
PageUtils page = areaService.queryPage(params);
PageTreeUtils page = areaService.queryPage(params);
return R.ok().put("page", page);
}
......
......@@ -76,7 +76,7 @@ public class DepartController extends AbstractController{
if(this.userService.userCount(depart.getId())>0) {
return R.error("选中部门下有用户!!");
}
departService.deleteBatch(depart);
departService.deleteDepart(depart);
return R.ok();
}
......
package com.govmade.modules.system.dao;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.ibatis.annotations.Mapper;
......@@ -26,5 +27,5 @@ public interface AreaDao extends BaseMapper<AreaEntity> {
/**
* 查询树形数据
*/
List<AreaEntity> listTree(@Param("name") String name);
List<AreaEntity> listTree(@Param("params") Map<String, Object> params);
}
package com.govmade.modules.system.service;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.baomidou.mybatisplus.service.IService;
import com.govmade.common.utils.PageUtils;
import com.govmade.common.utils.PageTreeUtils;
import com.govmade.modules.system.entity.AreaEntity;
/**
......@@ -24,7 +23,7 @@ public interface AreaService extends IService<AreaEntity>{
/**
* 查看列表
*/
PageUtils queryPage(Map<String, Object> params);
PageTreeUtils queryPage(Map<String, Object> params);
/**
* 保存或修改行政区划
......
......@@ -28,7 +28,7 @@ public interface DepartService extends IService<DepartEntity>{
/**
* 删除部门
*/
void deleteBatch(DepartEntity depart);
void deleteDepart(DepartEntity depart);
/**
......
......@@ -7,14 +7,15 @@ import java.util.Set;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import com.govmade.common.utils.PageUtils;
import com.govmade.common.utils.PageTreeUtils;
import com.govmade.modules.system.dao.AreaDao;
import com.govmade.modules.system.entity.AreaEntity;
import com.govmade.modules.system.service.AreaService;
import cn.hutool.core.util.StrUtil;
/**
* 系统管理 - 行政区划设置
*
......@@ -25,14 +26,19 @@ import com.govmade.modules.system.service.AreaService;
public class AreaServiceImpl extends ServiceImpl<AreaDao,AreaEntity> implements AreaService{
@Override
public PageUtils queryPage(Map<String, Object> params) {
public PageTreeUtils queryPage(Map<String, Object> params) {
String name = (String) params.get("name");
List<AreaEntity> allList=this.baseMapper.listTree(name);
List<AreaEntity> list=buildAreaTree(allList,0);
Page<AreaEntity> page= new Page<AreaEntity>();
page.setRecords(list);
return new PageUtils(page);
int currPage = Integer.parseInt((String) params.get("currPage"));
int pageSize = Integer.parseInt((String) params.get("pageSize"));
int start = (currPage-1)*pageSize;
params.put("name2", name);
params.put("pageSize2", pageSize);
params.put("start", start);
List<AreaEntity> allList=this.baseMapper.listTree(params);
List<AreaEntity> list=buildAreaTree(allList,0L);
int totalCount = super.selectCount(new EntityWrapper<AreaEntity>().like(StrUtil.isNotBlank(name), "name", name)
.eq("pid", 0).eq("state", 1));
return new PageTreeUtils(list,totalCount,pageSize,currPage);
}
......@@ -40,13 +46,13 @@ public class AreaServiceImpl extends ServiceImpl<AreaDao,AreaEntity> implements
/**
*递归方法
*/
private List<AreaEntity> buildAreaTree(List<AreaEntity> list, long id) {
private List<AreaEntity> buildAreaTree(List<AreaEntity> areaList, Long id) {
List<AreaEntity> aList = Lists.newArrayList();
for (AreaEntity a : list) {
if (id == a.getPid()) {
a.setChildren(buildAreaTree(list, a.getId()));
aList.add(a);
for (AreaEntity area : areaList) {
if (id == area.getPid()) {
area.setChildren(buildAreaTree(areaList, area.getId()));
aList.add(area);
}
}
return aList;
......
......@@ -44,7 +44,7 @@ public class DepartServiceImpl extends ServiceImpl<DepartDao,DepartEntity> imple
}
@Override
public void deleteBatch(DepartEntity depart) {
public void deleteDepart(DepartEntity depart) {
depart.setState(Constant.STATE_DELETE);
super.updateById(depart);
}
......
......@@ -19,21 +19,22 @@
SELECT id AS id2 FROM system_areas
WHERE
pid = 0
<if test="name != null and name !=''">
AND NAME LIKE CONCAT('%',#{name},'%')
AND state =1
<if test="params.name2 != null and params.name2 !=''">
AND NAME LIKE CONCAT('%',#{params.name2},'%')
</if>
LIMIT 10
) AS t2 ON t.root_id = t2.id2
LIMIT #{params.start},#{params.pageSize2}
) AS t2 ON t.root_id = t2.id2 AND t.state=1
UNION ALL(SELECT *, 0 AS id2 FROM system_areas
WHERE
pid = 0
<if test="name != null and name !=''">
AND NAME LIKE CONCAT('%',#{name},'%')
AND state =1
<if test="params.name2 != null and params.name2 !=''">
AND NAME LIKE CONCAT('%',#{params.name2},'%')
</if>
LIMIT 10
LIMIT #{params.start},#{params.pageSize2}
)
ORDER BY id
ORDER BY id
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment