Commit ab02fb41 authored by Fred's avatar Fred
parents 53907fcf 218df9be
package com.govmade.modules.system.controller;
import java.util.List;
import java.util.Set;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
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.R;
import com.govmade.modules.basic.controller.AbstractController;
import com.govmade.modules.system.entity.AreaEntity;
import com.govmade.modules.system.service.AreaService;
/**
* 系统管理 - 行政区划设置
*
* @author 刘弈臻
* @date 2018年8月9日
*/
@RestController
@RequestMapping("/system/area")
public class AreaController extends AbstractController{
@Autowired
private AreaService areaService;
/**
* 所有区划数据树结构
*/
@GetMapping("/allList")
public R allList() {
List<AreaEntity> data = areaService.queryAll();
return R.ok().put("data", data);
}
/**
* 保存或更新区划
*/
@PostMapping("/save")
public R save(AreaEntity area) {
if (null == area.getId()) {
if (this.areaService.checkArea(area.getName()) > 0) {
return R.error(area.getName() + " 已存在!");
}
}
areaService.save(area);
return R.ok();
}
/**
* 删除、批量删除区划
*
* @param ids
* @return
*/
@DeleteMapping("/delete")
public R deleteArea(@RequestParam Set<Long> ids) {
areaService.deleteBatchIds(ids);
return R.ok();
}
}
package com.govmade.modules.system.dao;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.govmade.modules.system.entity.AreaEntity;
/**
* 系统管理 - 行政区划设置
*
* @author 刘弈臻
* @date 2018年8月9日
*/
@Mapper
public interface AreaDao extends BaseMapper<AreaEntity> {
}
package com.govmade.modules.system.entity;
import java.util.List;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import com.govmade.modules.basic.entity.BaseEntity;
/**
* 系统管理 - 行政区划设置
*
* @author 刘弈臻
* @date 2018年8月9日
*/
@TableName("system_areas")
public class AreaEntity extends BaseEntity<Long>{
private static final long serialVersionUID = 1L;
private Long pid; //上级区划ID
private String name; //区划名称
private String code; //区划代码
private Integer level; //区划级别
private Long weight; //权重
@TableField(exist=false)
private List<AreaEntity> children;
public Long getPid() {
return pid;
}
public void setPid(Long pid) {
this.pid = pid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public Integer getLevel() {
return level;
}
public void setLevel(Integer level) {
this.level = level;
}
public Long getWeight() {
return weight;
}
public void setWeight(Long weight) {
this.weight = weight;
}
public List<AreaEntity> getChildren() {
return children;
}
public void setChildren(List<AreaEntity> children) {
this.children = children;
}
}
package com.govmade.modules.system.service;
import java.util.List;
import com.baomidou.mybatisplus.service.IService;
import com.govmade.modules.system.entity.AreaEntity;
/**
* 系统管理 - 行政区划设置
*
* @author 刘弈臻
* @date 2018年8月9日
*/
public interface AreaService extends IService<AreaEntity>{
/**
* 查询所有数据树结构
*/
List<AreaEntity> queryAll();
/**
* 保存或修改行政区划
*/
void save(AreaEntity area);
/**
* 删除行政区划
*/
void deleteBatch(Long[] areaIds);
/**
* 行政区划查重
*/
Integer checkArea(String name);
}
package com.govmade.modules.system.service.impl;
import java.util.List;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import com.govmade.modules.system.dao.AreaDao;
import com.govmade.modules.system.entity.AreaEntity;
import com.govmade.modules.system.service.AreaService;
/**
* 系统管理 - 行政区划设置
*
* @author 刘弈臻
* @date 2018年8月9日
*/
@Service("AreaService")
public class AreaServiceImpl extends ServiceImpl<AreaDao,AreaEntity> implements AreaService{
@Override
public List<AreaEntity> queryAll() {
List<AreaEntity> areaList = this.selectList(new EntityWrapper<AreaEntity>().eq("state", 1));
List<AreaEntity> aTreeList = buildAreaTree(areaList, 0L);
return aTreeList;
}
/**
*递归方法
*/
private List<AreaEntity> buildAreaTree(List<AreaEntity> list, long id) {
List<AreaEntity> aList = Lists.newArrayList();
for (AreaEntity a : list) {
if (id == a.getPid()) {
a.setChildren(buildAreaTree(list, a.getId()));
aList.add(a);
}
}
return aList;
}
@Override
public void save(AreaEntity area) {
super.insertOrUpdate(area);
}
@Override
public void deleteBatch(Long[] areaIds) {
// TODO Auto-generated method stub
}
@Override
public Integer checkArea(String name) {
return super.selectCount(new EntityWrapper<AreaEntity>().eq("name",name));
}
}
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