package com.ruoyi.project.tr.region.controller; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.security.ShiroUtils; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.framework.web.domain.Ztree; import com.ruoyi.project.system.role.domain.Role; import com.ruoyi.project.tr.region.domain.Region; import com.ruoyi.project.tr.region.service.IRegionService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 区域/位置信息 * * @author ruoyi */ @Controller @RequestMapping("/tr/region") public class RegionController extends BaseController { private String prefix = "tr/region"; @Autowired private IRegionService regionService; @GetMapping() public String region() { return prefix + "/region"; } @PostMapping("/list") @ResponseBody public List list(Region region) { List regionList = regionService.selectRegionList(region); return regionList; } @PostMapping("/listByCompanyId") @ResponseBody public List listByCompanyId(Region region){ region.setCompanyId(ShiroUtils.getSysUser().getCompanyId()); List regionList = regionService.selectRegionList(region); return regionList; } /** * 新增区域/位置 */ @GetMapping("/add/{parentId}") public String add(@PathVariable("parentId") Long parentId, ModelMap mmap) { mmap.put("region", regionService.selectRegionById(parentId)); return prefix + "/add"; } /** * 新增保存区域/位置 */ @Log(title = "区域/位置管理", businessType = BusinessType.INSERT) @PostMapping("/add") @ResponseBody public AjaxResult addSave(@Validated Region region) { if (UserConstants.DEPT_NAME_NOT_UNIQUE.equals(regionService.checkRegionNameUnique(region))) { return error("新增区域/位置'" + region.getRegionName() + "'失败,区域/位置名称已存在"); } return toAjax(regionService.insertRegion(region)); } /** * 修改 */ @GetMapping("/edit/{regionId}") public String edit(@PathVariable("regionId") Long regionId, ModelMap mmap) { Region region = regionService.selectRegionById(regionId); if (StringUtils.isNotNull(region) && 100L == regionId) { region.setParentName("无"); } mmap.put("region", region); return prefix + "/edit"; } /** * 保存 */ @Log(title = "区域/位置管理", businessType = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave(@Validated Region region) { if (UserConstants.DEPT_NAME_NOT_UNIQUE.equals(regionService.checkRegionNameUnique(region))) { return error("修改区域/位置'" + region.getRegionName() + "'失败,区域/位置名称已存在"); } else if(region.getParentId().equals(region.getRegionId())) { return error("修改区域/位置'" + region.getRegionName() + "'失败,上级区域/位置不能是自己"); } return toAjax(regionService.updateRegion(region)); } /** * 删除 */ @Log(title = "区域/位置管理", businessType = BusinessType.DELETE) @GetMapping("/remove/{regionId}") @ResponseBody public AjaxResult remove(@PathVariable("regionId") Long regionId) { if (regionService.selectRegionCount(regionId) > 0) { return AjaxResult.warn("存在下级区域/位置,不允许删除"); } return toAjax(regionService.deleteRegionById(regionId)); } /** * 校验区域/位置名称 */ @PostMapping("/checkRegionNameUnique") @ResponseBody public String checkRegionNameUnique(Region region) { return regionService.checkRegionNameUnique(region); } /** * 选择区域/位置树 */ @GetMapping("/selectRegionTree/{regionId}") public String selectRegionTree(@PathVariable("regionId") Long regionId, ModelMap mmap) { mmap.put("region", regionService.selectRegionById(regionId)); return prefix + "/tree"; } @GetMapping("/selectRegionTreeByCompanyId/{regionId}") public String selectRegionTreeByCompanyId(@PathVariable("regionId") Long regionId, ModelMap mmap) { mmap.put("region", regionService.selectRegionById(regionId)); return prefix + "/treeByCompanyId"; } /** * * 自定义选择区域/位置树 */ @GetMapping("/chooseRegionTree/{regionId}") public String selectRegionTree(@PathVariable("regionId") int regionId, ModelMap mmap) { Region region = new Region(); if (regionId == -1) { region.setParentId(0l); } region.setRegionId((long)regionId); region.setCompanyId(getSysUser().getCompanyId()); mmap.put("region", regionService.selectRegionList(region).get(0)); return prefix + "/tree"; } /** * 加载区域/位置列表树 */ @GetMapping("/treeData") @ResponseBody public List treeData() { List ztrees = regionService.selectRegionTree(new Region()); return ztrees; } @GetMapping("/treeDataByCompanyId") @ResponseBody public List treeDataByCompanyId() { Region region = new Region(); region.setCompanyId(ShiroUtils.getSysUser().getCompanyId()); List ztrees = regionService.selectRegionTree(region); return ztrees; } /** * 加载角色区域/位置(数据权限)列表树 */ @GetMapping("/roleRegionTreeData") @ResponseBody public List regionTreeData(Role role) { List ztrees = regionService.roleRegionTreeData(role); return ztrees; } @GetMapping("/regionByCompanyId") public String regionByCompanyId(ModelMap modelMap) { modelMap.put("companyId",ShiroUtils.getSysUser().getCompanyId()); return prefix + "/regionByCompanyId"; } @GetMapping("/addByCompanyId/{parentId}") public String addByCompanyId(@PathVariable("parentId") Long parentId, ModelMap mmap) { mmap.put("region", regionService.selectRegionById(parentId)); mmap.put("companyId",ShiroUtils.getSysUser().getCompanyId()); return prefix + "/addByCompanyId"; } @GetMapping("/editByCompanyId/{regionId}") public String editByCompanyId(@PathVariable("regionId") Long regionId, ModelMap mmap){ Region region = regionService.selectRegionById(regionId); if (StringUtils.isNotNull(region) && 100L == regionId) { region.setParentName("无"); } mmap.put("region", region); return prefix + "/editByCompanyId"; } }