This commit is contained in:
TinyAnts 2022-08-08 17:13:07 +08:00
parent 7d4505d5f0
commit 54be313c68
2 changed files with 218 additions and 195 deletions

View File

@ -110,199 +110,4 @@ public interface ISystemAdminService {
*/
void cacheAdminUserByUid(Integer id);
@Service
class SystemDeptServiceImpl implements ISystemDeptService {
@Resource
SystemDeptMapper systemDeptMapper;
@Resource
SystemAdminMapper systemAdminMapper;
/**
* 岗位所有
*
* @author fzr
* @return List<SystemPostVo>
*/
@Override
public List<SystemDeptVo> all() {
List<SystemDept> systemDeptList = systemDeptMapper.selectList(new QueryWrapper<SystemDept>()
.gt("pid", 0)
.eq("is_delete", 0)
.orderByDesc((Arrays.asList("id", "sort"))));
List<SystemDeptVo> adminVoArrayList = new ArrayList<>();
for (SystemDept systemDept : systemDeptList) {
SystemDeptVo vo = new SystemDeptVo();
BeanUtils.copyProperties(systemDept, vo);
vo.setUpdateTime(TimeUtil.timestampToDate(systemDept.getUpdateTime()));
vo.setCreateTime(TimeUtil.timestampToDate(systemDept.getCreateTime()));
adminVoArrayList.add(vo);
}
return adminVoArrayList;
}
/**
* 部门列表
*
* @author fzr
* @param params 搜索参数
* @return JSONArray
*/
@Override
public JSONArray list(Map<String, String> params) {
QueryWrapper<SystemDept> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("is_delete", 0);
queryWrapper.orderByAsc(Arrays.asList("sort", "id"));
queryWrapper.select(SystemDept.class, info ->
!info.getColumn().equals("is_delete") &&
!info.getColumn().equals("delete_time"));
systemDeptMapper.setSearch(queryWrapper, params, new String[]{
"like:name:str",
"=:isStop@is_stop:int"
});
List<SystemDept> systemDeptList = systemDeptMapper.selectList(queryWrapper);
List<SystemDeptVo> lists = new ArrayList<>();
for (SystemDept systemDept : systemDeptList) {
SystemDeptVo vo = new SystemDeptVo();
BeanUtils.copyProperties(systemDept, vo);
vo.setCreateTime(TimeUtil.timestampToDate(systemDept.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(systemDept.getUpdateTime()));
lists.add(vo);
}
JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSONString(lists));
return ArrayUtil.listToTree(jsonArray, "id", "pid", "children");
}
/**
* 部门详情
*
* @author fzr
* @param id 主键
* @return SystemDeptVo
*/
@Override
public SystemDeptVo detail(Integer id) {
SystemDept systemDept = systemDeptMapper.selectOne(
new QueryWrapper<SystemDept>()
.select(SystemDept.class, info ->
!info.getColumn().equals("is_delete") &&
!info.getColumn().equals("delete_time"))
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(systemDept, "部门已不存在!");
SystemDeptVo vo = new SystemDeptVo();
BeanUtils.copyProperties(systemDept, vo);
vo.setCreateTime(TimeUtil.timestampToDate(systemDept.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(systemDept.getUpdateTime()));
return vo;
}
/**
* 部门新增
*
* @author fzr
* @param systemDeptParam 参数
*/
@Override
public void add(SystemDeptParam systemDeptParam) {
if (systemDeptParam.getPid() == 0) {
SystemDept systemDept = systemDeptMapper.selectOne(
new QueryWrapper<SystemDept>()
.select("id,pid,name")
.eq("pid", 0)
.eq("is_delete", 0)
.last("limit 1"));
Assert.isNull(systemDept, "顶级部门只允许有一个");
}
SystemDept model = new SystemDept();
model.setPid(systemDeptParam.getPid());
model.setName(systemDeptParam.getName());
model.setDuty(systemDeptParam.getDuty());
model.setMobile(systemDeptParam.getMobile());
model.setSort(systemDeptParam.getSort());
model.setIsStop(systemDeptParam.getIsStop());
model.setIsDelete(0);
model.setCreateTime(System.currentTimeMillis() / 1000);
model.setUpdateTime(System.currentTimeMillis() / 1000);
systemDeptMapper.insert(model);
}
/**
* 部门编辑
*
* @author fzr
* @param systemDeptParam 参数
*/
@Override
public void edit(SystemDeptParam systemDeptParam) {
SystemDept model = systemDeptMapper.selectOne(
new QueryWrapper<SystemDept>()
.select(SystemDept.class, info ->
!info.getColumn().equals("is_delete") &&
!info.getColumn().equals("delete_time"))
.eq("id", systemDeptParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "部门不存在");
Assert.isFalse((model.getPid() == 0 && systemDeptParam.getPid() > 0), "顶级部门不能修改上级");
Assert.isFalse(systemDeptParam.getId().equals(systemDeptParam.getPid()), "上级部门不能是自己");
model.setPid(systemDeptParam.getPid());
model.setName(systemDeptParam.getName());
model.setDuty(systemDeptParam.getDuty());
model.setMobile(systemDeptParam.getMobile());
model.setSort(systemDeptParam.getSort());
model.setIsStop(systemDeptParam.getIsStop());
model.setUpdateTime(System.currentTimeMillis() / 1000);
systemDeptMapper.updateById(model);
}
/**
* 部门删除
*
* @author fzr
* @param id 主键
*/
@Override
public void del(Integer id) {
SystemDept model = systemDeptMapper.selectOne(
new QueryWrapper<SystemDept>()
.select("id,pid,name")
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "部门不存在");
Assert.isFalse((model.getPid() == 0), "顶级部门不能删除");
SystemAdmin systemAdmin = systemAdminMapper.selectOne(new QueryWrapper<SystemAdmin>()
.select("id,nickname")
.eq("dept_id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.isNull(systemAdmin, "该部门已被管理员使用,请先移除");
model.setIsDelete(1);
model.setDeleteTime(System.currentTimeMillis() / 1000);
systemDeptMapper.updateById(model);
}
}
}

View File

@ -0,0 +1,218 @@
package com.hxkj.admin.service.system.impl;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.hxkj.admin.service.system.ISystemDeptService;
import com.hxkj.admin.validate.system.SystemDeptParam;
import com.hxkj.admin.vo.system.SystemDeptVo;
import com.hxkj.common.entity.system.SystemAdmin;
import com.hxkj.common.entity.system.SystemDept;
import com.hxkj.common.mapper.system.SystemAdminMapper;
import com.hxkj.common.mapper.system.SystemDeptMapper;
import com.hxkj.common.utils.ArrayUtil;
import com.hxkj.common.utils.TimeUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@Service
class SystemDeptServiceImpl implements ISystemDeptService {
@Resource
SystemDeptMapper systemDeptMapper;
@Resource
SystemAdminMapper systemAdminMapper;
/**
* 岗位所有
*
* @author fzr
* @return List<SystemPostVo>
*/
@Override
public List<SystemDeptVo> all() {
List<SystemDept> systemDeptList = systemDeptMapper.selectList(new QueryWrapper<SystemDept>()
.gt("pid", 0)
.eq("is_delete", 0)
.orderByDesc((Arrays.asList("id", "sort"))));
List<SystemDeptVo> adminVoArrayList = new ArrayList<>();
for (SystemDept systemDept : systemDeptList) {
SystemDeptVo vo = new SystemDeptVo();
BeanUtils.copyProperties(systemDept, vo);
vo.setUpdateTime(TimeUtil.timestampToDate(systemDept.getUpdateTime()));
vo.setCreateTime(TimeUtil.timestampToDate(systemDept.getCreateTime()));
adminVoArrayList.add(vo);
}
return adminVoArrayList;
}
/**
* 部门列表
*
* @author fzr
* @param params 搜索参数
* @return JSONArray
*/
@Override
public JSONArray list(Map<String, String> params) {
QueryWrapper<SystemDept> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("is_delete", 0);
queryWrapper.orderByAsc(Arrays.asList("sort", "id"));
queryWrapper.select(SystemDept.class, info ->
!info.getColumn().equals("is_delete") &&
!info.getColumn().equals("delete_time"));
systemDeptMapper.setSearch(queryWrapper, params, new String[]{
"like:name:str",
"=:isStop@is_stop:int"
});
List<SystemDept> systemDeptList = systemDeptMapper.selectList(queryWrapper);
List<SystemDeptVo> lists = new ArrayList<>();
for (SystemDept systemDept : systemDeptList) {
SystemDeptVo vo = new SystemDeptVo();
BeanUtils.copyProperties(systemDept, vo);
vo.setCreateTime(TimeUtil.timestampToDate(systemDept.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(systemDept.getUpdateTime()));
lists.add(vo);
}
JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSONString(lists));
return ArrayUtil.listToTree(jsonArray, "id", "pid", "children");
}
/**
* 部门详情
*
* @author fzr
* @param id 主键
* @return SystemDeptVo
*/
@Override
public SystemDeptVo detail(Integer id) {
SystemDept systemDept = systemDeptMapper.selectOne(
new QueryWrapper<SystemDept>()
.select(SystemDept.class, info ->
!info.getColumn().equals("is_delete") &&
!info.getColumn().equals("delete_time"))
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(systemDept, "部门已不存在!");
SystemDeptVo vo = new SystemDeptVo();
BeanUtils.copyProperties(systemDept, vo);
vo.setCreateTime(TimeUtil.timestampToDate(systemDept.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(systemDept.getUpdateTime()));
return vo;
}
/**
* 部门新增
*
* @author fzr
* @param systemDeptParam 参数
*/
@Override
public void add(SystemDeptParam systemDeptParam) {
if (systemDeptParam.getPid() == 0) {
SystemDept systemDept = systemDeptMapper.selectOne(
new QueryWrapper<SystemDept>()
.select("id,pid,name")
.eq("pid", 0)
.eq("is_delete", 0)
.last("limit 1"));
Assert.isNull(systemDept, "顶级部门只允许有一个");
}
SystemDept model = new SystemDept();
model.setPid(systemDeptParam.getPid());
model.setName(systemDeptParam.getName());
model.setDuty(systemDeptParam.getDuty());
model.setMobile(systemDeptParam.getMobile());
model.setSort(systemDeptParam.getSort());
model.setIsStop(systemDeptParam.getIsStop());
model.setIsDelete(0);
model.setCreateTime(System.currentTimeMillis() / 1000);
model.setUpdateTime(System.currentTimeMillis() / 1000);
systemDeptMapper.insert(model);
}
/**
* 部门编辑
*
* @author fzr
* @param systemDeptParam 参数
*/
@Override
public void edit(SystemDeptParam systemDeptParam) {
SystemDept model = systemDeptMapper.selectOne(
new QueryWrapper<SystemDept>()
.select(SystemDept.class, info ->
!info.getColumn().equals("is_delete") &&
!info.getColumn().equals("delete_time"))
.eq("id", systemDeptParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "部门不存在");
Assert.isFalse((model.getPid() == 0 && systemDeptParam.getPid() > 0), "顶级部门不能修改上级");
Assert.isFalse(systemDeptParam.getId().equals(systemDeptParam.getPid()), "上级部门不能是自己");
model.setPid(systemDeptParam.getPid());
model.setName(systemDeptParam.getName());
model.setDuty(systemDeptParam.getDuty());
model.setMobile(systemDeptParam.getMobile());
model.setSort(systemDeptParam.getSort());
model.setIsStop(systemDeptParam.getIsStop());
model.setUpdateTime(System.currentTimeMillis() / 1000);
systemDeptMapper.updateById(model);
}
/**
* 部门删除
*
* @author fzr
* @param id 主键
*/
@Override
public void del(Integer id) {
SystemDept model = systemDeptMapper.selectOne(
new QueryWrapper<SystemDept>()
.select("id,pid,name")
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "部门不存在");
Assert.isFalse((model.getPid() == 0), "顶级部门不能删除");
SystemAdmin systemAdmin = systemAdminMapper.selectOne(new QueryWrapper<SystemAdmin>()
.select("id,nickname")
.eq("dept_id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.isNull(systemAdmin, "该部门已被管理员使用,请先移除");
model.setIsDelete(1);
model.setDeleteTime(System.currentTimeMillis() / 1000);
systemDeptMapper.updateById(model);
}
}