whyclxw
2024-11-26 bfa0f4669a6db8ef019538d1dfb8fdb762bc7650
区域管理
4个文件已修改
107 ■■■■■ 已修改文件
.idea/jarRepositories.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/AreaInfController.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/db_area/AreaInf.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/AreaInfService.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/jarRepositories.xml
@@ -21,5 +21,10 @@
      <option name="name" value="Central Repository" />
      <option name="url" value="http://maven.aliyun.com/nexus/content/groups/public" />
    </remote-repository>
    <remote-repository>
      <option name="id" value="aliyun" />
      <option name="name" value="aliyun" />
      <option name="url" value="https://maven.aliyun.com/repository/public" />
    </remote-repository>
  </component>
</project>
src/main/java/com/whyc/controller/AreaInfController.java
@@ -22,4 +22,23 @@
    public Response getAllAreaInf(){
        return service.getAllAreaInf();
    }
    @ApiOperation(value = "添加区域")
    @GetMapping("addArea")
    public Response addArea(@RequestParam(required = false) Integer parentId,@RequestParam String areaName,@RequestParam(required = false) String areaUname,@RequestParam(required = false) String areaDescript){
        return service.addArea(parentId,areaName,areaUname,areaDescript);
    }
    @ApiOperation(value = "删除区域")
    @GetMapping("delArea")
    public Response delArea(@RequestParam Integer id){
        return service.delArea(id);
    }
    @ApiOperation(value = "修改区域")
    @GetMapping("updateArea")
    public Response updateArea(@RequestParam(required = false) Integer id,@RequestParam String areaName,@RequestParam(required = false) String areaUname,@RequestParam(required = false) String areaDescript){
        return service.updateArea(id,areaName,areaUname,areaDescript);
    }
}
src/main/java/com/whyc/pojo/db_area/AreaInf.java
@@ -47,5 +47,10 @@
    @ApiModelProperty(value = "区域层级")
    private Integer areaLevel;
    @ApiModelProperty(value = "区域负责人")
    private String areaUname;
    @ApiModelProperty(value = "区域描述")
    private String areaDescript;
}
src/main/java/com/whyc/service/AreaInfService.java
@@ -1,11 +1,13 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.whyc.dto.Response;
import com.whyc.mapper.AreaInfMapper;
import com.whyc.pojo.db_area.AreaInf;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -23,4 +25,80 @@
        List<AreaInf> list=mapper.selectList(wrapper);
        return new Response().setII(1,list!=null,list,"查询所有区域信息");
    }
    //添加区域
    public Response addArea(Integer parentId, String areaName,String areaUname,String areaDescript) {
        AreaInf ainf=new AreaInf();
        ainf.setParentId(0);
        ainf.setAreaLevel(1);
        ainf.setAreaPath(areaName);
        ainf.setAreaName(areaName);
        if(areaUname!=null){
            ainf.setAreaUname(areaUname);
        }
        if(areaDescript!=null){
            ainf.setAreaDescript(areaDescript);
        }
        if(parentId!=null){
            //获取上一级信息
            QueryWrapper wrapper=new QueryWrapper();
            wrapper.eq("id",parentId);
            wrapper.last("limit 1");
            AreaInf painf=mapper.selectOne(wrapper);
            ainf.setParentId(parentId);
            ainf.setAreaLevel(painf.getAreaLevel()+1);
            ainf.setAreaPath(painf.getAreaName()+"_"+areaName);
        }
        int flag= mapper.insert(ainf);
        return new Response().set(1,flag>0);
    }
    //删除区域
    public Response delArea(Integer id) {
        delAll(id);
        return new Response().set(1,true);
    }
    @Transactional
    public void delAll(Integer id) {
        //获取上一级信息
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("parent_id",id);
        wrapper.last("limit 1");
        AreaInf painf=mapper.selectOne(wrapper);
        if(painf!=null){
            delAll(painf.getId());
        }
        UpdateWrapper wrapper1=new UpdateWrapper();
        wrapper1.eq("id",id);
        mapper.delete(wrapper1);
    }
    //修改区域
    public Response updateArea(Integer id, String areaName, String areaUname, String areaDescript) {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("id",id);
        wrapper.last("limit 1");
        AreaInf ainf=mapper.selectOne(wrapper);
        ainf.setAreaUname(areaUname);
        ainf.setAreaDescript(areaDescript);
        ainf.setAreaName(areaName);
        String oldPath=ainf.getAreaPath();
        String newPath=oldPath.substring(0,oldPath.lastIndexOf("_")+1)+areaName;
        UpdateWrapper wrapper1=new UpdateWrapper();
        wrapper1.eq("id",id);
        mapper.update(ainf,wrapper1);
        updateAll(id,newPath);
        return new Response().set(1,true);
    }
    public void updateAll(Integer id, String newPath) {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("parent_id",id);
        wrapper.last("limit 1");
        AreaInf painf=mapper.selectOne(wrapper);
        if(painf!=null){
            String path=newPath+"_"+painf.getAreaName();
            updateAll(painf.getId(),path);
        }
        UpdateWrapper wrapper2=new UpdateWrapper();
        wrapper2.set("area_path",newPath);
        wrapper2.eq("id",id);
        mapper.update(null,wrapper2);
    }
}