zhanghua
2023-09-08 7ef4892f9f24f941aca37e6b3991b808a0aca619
ycl-common/src/main/java/com/ycl/service/user/impl/UmsDepartManageServiceImpl.java
@@ -5,18 +5,23 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.api.BasePageDTO;
import com.ycl.entity.depart.UmsDepart;
import com.ycl.entity.user.UmsAdmin;
import com.ycl.entity.user.UmsDepartManage;
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.mapper.user.UmsRoleMenuRelationMapper;
import com.ycl.service.depart.UmsDepartService;
import com.ycl.service.user.UmsDepartManageService;
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>
@@ -35,6 +40,12 @@
    private UmsDepartService sccgDepartService;
    @Resource
    private UmsAdminService umsAdminService;
    @Resource
    UmsAdminRoleRelationMapper umsAdminRoleRelationMapper;
    @Resource
    AdminMenuRelationMapper adminMenuRelationMapper;
    @Resource
    UmsRoleMenuRelationMapper roleMenuRelationMapper;
    @Override
    public List<UmsDepartManage> queryByDepartId(Long departId) {
@@ -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);
    }
}