|
@@ -11,6 +11,7 @@ import shop.alien.entity.result.R;
|
|
|
import shop.alien.entity.store.LifeSysDept;
|
|
import shop.alien.entity.store.LifeSysDept;
|
|
|
import shop.alien.entity.store.dto.LifeSysDeptAddDto;
|
|
import shop.alien.entity.store.dto.LifeSysDeptAddDto;
|
|
|
import shop.alien.entity.store.dto.LifeSysDeptSortDto;
|
|
import shop.alien.entity.store.dto.LifeSysDeptSortDto;
|
|
|
|
|
+import shop.alien.entity.store.dto.LifeSysDeptUpdateDto;
|
|
|
import shop.alien.mapper.LifeSysDeptMapper;
|
|
import shop.alien.mapper.LifeSysDeptMapper;
|
|
|
import shop.alien.store.service.LifeSysDeptService;
|
|
import shop.alien.store.service.LifeSysDeptService;
|
|
|
|
|
|
|
@@ -296,5 +297,68 @@ public class LifeSysDeptServiceImpl implements LifeSysDeptService {
|
|
|
return R.fail("删除部门失败:" + e.getMessage());
|
|
return R.fail("删除部门失败:" + e.getMessage());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public R<LifeSysDept> updateDept(LifeSysDeptUpdateDto updateDto) {
|
|
|
|
|
+ log.info("LifeSysDeptServiceImpl.updateDept?updateDto={}", updateDto);
|
|
|
|
|
+
|
|
|
|
|
+ // 参数校验
|
|
|
|
|
+ if (updateDto == null) {
|
|
|
|
|
+ log.warn("编辑部门失败:参数为空");
|
|
|
|
|
+ return R.fail("参数不能为空");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 校验必填字段:部门ID
|
|
|
|
|
+ if (updateDto.getDeptId() == null) {
|
|
|
|
|
+ return R.fail("部门ID不能为空");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 校验必填字段:部门名称
|
|
|
|
|
+ if (!StringUtils.hasText(updateDto.getDeptName())) {
|
|
|
|
|
+ return R.fail("部门名称不能为空");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 查询部门是否存在
|
|
|
|
|
+ LifeSysDept dept = lifeSysDeptMapper.selectById(updateDto.getDeptId());
|
|
|
|
|
+ if (dept == null) {
|
|
|
|
|
+ return R.fail("部门不存在");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 检查是否已被删除
|
|
|
|
|
+ if (!"0".equals(dept.getDelFlag())) {
|
|
|
|
|
+ return R.fail("该部门已被删除");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 如果部门名称有变化,校验新名称是否与其他部门重复(同一父部门下不能有重名)
|
|
|
|
|
+ if (!updateDto.getDeptName().equals(dept.getDeptName())) {
|
|
|
|
|
+ QueryWrapper<LifeSysDept> queryWrapper = new QueryWrapper<>();
|
|
|
|
|
+ queryWrapper.eq("dept_name", updateDto.getDeptName());
|
|
|
|
|
+ queryWrapper.eq("del_flag", "0"); // 未删除的部门
|
|
|
|
|
+ queryWrapper.ne("dept_id", updateDto.getDeptId()); // 排除当前部门
|
|
|
|
|
+ Long parentId = dept.getParentId() != null ? dept.getParentId() : 0L;
|
|
|
|
|
+ queryWrapper.eq("parent_id", parentId);
|
|
|
|
|
+ LifeSysDept existingDept = lifeSysDeptMapper.selectOne(queryWrapper);
|
|
|
|
|
+ if (existingDept != null) {
|
|
|
|
|
+ return R.fail("该部门名称已存在,请更换其他名称");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 更新部门信息
|
|
|
|
|
+ dept.setDeptName(updateDto.getDeptName());
|
|
|
|
|
+ if (StringUtils.hasText(updateDto.getDescription())) {
|
|
|
|
|
+ dept.setDescription(updateDto.getDescription());
|
|
|
|
|
+ }
|
|
|
|
|
+ if (updateDto.getLeader() != null) {
|
|
|
|
|
+ dept.setLeader(updateDto.getLeader());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 保存更新
|
|
|
|
|
+ int result = lifeSysDeptMapper.updateById(dept);
|
|
|
|
|
+ if (result > 0) {
|
|
|
|
|
+ log.info("编辑部门成功,部门ID={}, 部门名称={}", dept.getDeptId(), dept.getDeptName());
|
|
|
|
|
+ return R.data(dept, "编辑部门成功");
|
|
|
|
|
+ }
|
|
|
|
|
+ return R.fail("编辑部门失败,请稍后重试");
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|