package com.cdf.controller.back; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.cdf.aop.SysLog; import com.cdf.common.LogInfoKey; import com.cdf.common.ResultCode; import com.cdf.common.ResultData; import com.cdf.entity.Dept; import com.cdf.entity.Menu; import com.cdf.entity.Shop; import com.cdf.entity.User; import com.cdf.exception.BusinessException; import com.cdf.response.DeptVo; import com.cdf.response.MenuVo; import com.cdf.service.IDeptService; import com.cdf.service.ILogService; import com.cdf.service.IShopService; import com.cdf.service.IUserService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; @RestController @RequestMapping("/back/dept") public class SysDeptController extends BaseLogController{ @Autowired private IDeptService deptService; @Autowired private IUserService userService; @Autowired private IShopService shopService; @Autowired private ILogService logService; @PostMapping("/saveOrUpdate") public ResultData saveOrUpdate(@RequestBody Dept dept){ if(dept.getId()!=null && dept.getId().equals(dept.getParentId())){ throw new BusinessException(ResultCode.ERROR); } String info = null; if(dept.getId()== null){ info = String.format(LogInfoKey.baseInfo,"新增",dept.getDeptName(),"组织架构"); }else { info = String.format(LogInfoKey.baseInfo,"编辑",dept.getDeptName(),"组织架构"); dept.setCreateTime(null); dept.setUpdateTime(null); } logService.addLog("组织架构",info,getIp(),getToken()); deptService.saveOrUpdate(dept); return ResultData.ok(dept); } @PostMapping("/delete") public ResultData delete(@RequestBody Dept param){ Dept dept = deptService.getById(param.getId()); if(dept == null ){ throw new BusinessException(ResultCode.NOT_RECORD); } if(dept.getParentId() ==null){ throw new BusinessException(ResultCode.NOT_DELETE_PARENT_DEPT); } LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(User::getDeptId,dept.getId()); long count = userService.count(queryWrapper); if(count > 0){ throw new BusinessException(ResultCode.NOT_DELETE_DEPT_USER); } LambdaQueryWrapper shopWrapper = new LambdaQueryWrapper<>(); shopWrapper.eq(Shop::getDeptId,dept.getId()); long shopCount = shopService.count(shopWrapper); if(shopCount > 0){ throw new BusinessException(ResultCode.NOT_DELETE_DEPT_SHOP); } Dept byId = deptService.getById(dept.getId()); if(byId !=null){ deptService.removeById(dept.getId()); String info = String.format(LogInfoKey.baseInfo,"删除",byId.getDeptName(),"组织架构"); logService.addLog("组织架构",info,getIp(),getToken()); } return ResultData.ok(); } @PostMapping("/allList") public ResultData list(){ return ResultData.ok(deptService.getDeptList(null)); } }