zhanghua
2023-09-08 7ef4892f9f24f941aca37e6b3991b808a0aca619
ycl-common/src/main/java/com/ycl/service/user/impl/UmsDepartManageServiceImpl.java
@@ -4,19 +4,24 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.api.BasePageDTO;
import com.ycl.entity.depart.SccgDepart;
import com.ycl.entity.user.UmsAdmin;
import com.ycl.entity.user.UmsDepartManage;
import com.ycl.entity.depart.UmsDepart;
import com.ycl.entity.user.*;
import com.ycl.mapper.user.AdminMenuRelationMapper;
import com.ycl.mapper.user.UmsAdminRoleRelationMapper;
import com.ycl.mapper.user.UmsDepartManageMapper;
import com.ycl.service.depart.SccgDepartService;
import com.ycl.service.user.UmsDepartManageService;
import com.ycl.mapper.user.UmsRoleMenuRelationMapper;
import com.ycl.service.depart.UmsDepartService;
import com.ycl.service.user.UmsAdminService;
import com.ycl.service.user.UmsDepartManageService;
import com.ycl.vo.depart.DepartVO;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
 * <p>
@@ -32,9 +37,15 @@
    @Resource
    private UmsDepartManageMapper umsDepartManageMapper;
    @Resource
    private SccgDepartService sccgDepartService;
    private UmsDepartService sccgDepartService;
    @Resource
    private UmsAdminService umsAdminService;
    @Resource
    UmsAdminRoleRelationMapper umsAdminRoleRelationMapper;
    @Resource
    AdminMenuRelationMapper adminMenuRelationMapper;
    @Resource
    UmsRoleMenuRelationMapper roleMenuRelationMapper;
    @Override
    public List<UmsDepartManage> queryByDepartId(Long departId) {
@@ -72,7 +83,7 @@
            DepartVO.AdminDepartInfoVO adminDepartInfoVO = null;
            for (UmsDepartManage umsAdminDepart : departList) {
                adminDepartInfoVO = new DepartVO.AdminDepartInfoVO();
                SccgDepart sccgDepart = sccgDepartService.loadDepartById(umsAdminDepart.getDepartId());
                UmsDepart sccgDepart = sccgDepartService.loadDepartById(umsAdminDepart.getDepartId());
                UmsAdmin umsAdmin = umsAdminService.getById(userId);
                adminDepartInfoVO.setDepartId(umsAdminDepart.getDepartId());
                adminDepartInfoVO.setDepartName(sccgDepart.getDepartName());
@@ -87,4 +98,52 @@
        return basePageDTO;
    }
}
    @Override
    public void userUpdateRoles(Long id, List<Long> roles) {
        //解除用户角色绑定
        umsAdminRoleRelationMapper.delete(new LambdaQueryWrapper<UmsAdminRoleRelation>().eq(UmsAdminRoleRelation::getAdminId, id));
        //解除用户绑定角色绑定菜单
        adminMenuRelationMapper.delete(new LambdaQueryWrapper<AdminMenuRelation>().eq(AdminMenuRelation::getAdminId, id));
        //绑定角色于用户
        if (!roles.isEmpty()) {
            for (Long role : roles) {
                UmsAdminRoleRelation urr = new UmsAdminRoleRelation();
                urr.setAdminId(id);
                urr.setRoleId(role);
                umsAdminRoleRelationMapper.insert(urr);
            }
        }
        //绑定菜单于用户
        ArrayList<UmsRoleMenuRelation> umsRoleMenuRelations = new ArrayList<>();
        for (Long role : roles) {
            umsRoleMenuRelations.addAll(roleMenuRelationMapper
                    .selectList(new LambdaQueryWrapper<UmsRoleMenuRelation>()
                            .eq(UmsRoleMenuRelation::getRoleId, role)));
        }
        umsRoleMenuRelations
                .stream()
                .map(item -> item.getMenuId())
                .collect(Collectors.toList())
                .stream()
                .distinct()
                .collect(Collectors.toList())
                .stream()
                .forEach(item -> {
                    AdminMenuRelation adminMenuRelation = new AdminMenuRelation();
                    adminMenuRelation.setAdminId(id);
                    adminMenuRelation.setMenuId(item);
                    adminMenuRelationMapper.insert(adminMenuRelation);
                });
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void userUpdateDepart(Long userId,Long departId) {
        umsDepartManageMapper.delete(new LambdaQueryWrapper<UmsDepartManage>().eq(UmsDepartManage::getUserId,userId));
        UmsDepartManage umsDepartManage = new UmsDepartManage();
        umsDepartManage.setUserId(userId);
        umsDepartManage.setCreateTime(new Date());
        umsDepartManage.setDepartId(departId);
        umsDepartManageMapper.insert(umsDepartManage);
    }
}