package com.dy.pipIrrBase.role; 
 | 
  
 | 
import com.alibaba.fastjson2.JSONArray; 
 | 
import com.dy.common.webUtil.QueryResultVo; 
 | 
import com.dy.pipIrrGlobal.daoBa.BaRoleMapper; 
 | 
import com.dy.pipIrrGlobal.daoBa.BaRolePermissionsMapper; 
 | 
import com.dy.pipIrrGlobal.pojoBa.BaRole; 
 | 
import com.dy.pipIrrGlobal.pojoBa.BaRolePermissions; 
 | 
import com.dy.pipIrrGlobal.voBa.VoRole; 
 | 
import lombok.extern.slf4j.Slf4j; 
 | 
import org.apache.dubbo.common.utils.PojoUtils; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Service; 
 | 
  
 | 
import java.util.ArrayList; 
 | 
import java.util.List; 
 | 
import java.util.Map; 
 | 
import java.util.Optional; 
 | 
  
 | 
/** 
 | 
 * @author ZhuBaoMin 
 | 
 * @date 2024-01-10 11:00 
 | 
 * @LastEditTime 2024-01-10 11:00 
 | 
 * @Description 
 | 
 */ 
 | 
  
 | 
@Slf4j 
 | 
@Service 
 | 
public class RoleSv { 
 | 
  
 | 
    //private BaRoleMapper baRoleMapper; 
 | 
    //private BaRolePrivilegeMapper rolePrivDao ; 
 | 
  
 | 
    //@Autowired 
 | 
    //private void setDao(BaRoleMapper dao){ 
 | 
    //    this.dao = dao; 
 | 
    //} 
 | 
  
 | 
    //@Autowired 
 | 
    //private void setRolePrivDao(BaRolePrivilegeMapper dao){ 
 | 
    //    this.rolePrivDao = dao; 
 | 
    //} 
 | 
    @Autowired 
 | 
    private BaRoleMapper baRoleMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private BaRolePermissionsMapper baRolePermissionsMapper; 
 | 
  
 | 
    /** 
 | 
     * 根据指定条件(角色编号、角色名称)获取角色列表 
 | 
     * 当获取一条记录时,传入roleId即可 
 | 
     * @param queryVo 
 | 
     * @return 
 | 
     */ 
 | 
    public QueryResultVo<List<VoRole>> getRoles(QueryVo queryVo) { 
 | 
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); 
 | 
  
 | 
        Long itemTotal = baRolePermissionsMapper.getRecordCount(params); 
 | 
  
 | 
        QueryResultVo<List<VoRole>> rsVo = new QueryResultVo<>() ; 
 | 
        //Integer pageCurr = 0; 
 | 
        //Integer pageSize = 10000; 
 | 
        //rsVo.pageCurr = 1; 
 | 
        //rsVo.pageSize = 10000; 
 | 
        //if(queryVo.pageSize != null && queryVo.pageCurr != null) { 
 | 
        //    rsVo.pageSize = queryVo.pageSize ; 
 | 
        //    rsVo.pageCurr = queryVo.pageCurr; 
 | 
        //    pageSize = queryVo.pageSize ; 
 | 
        //    pageCurr = (Integer.parseInt(params.get("pageCurr").toString()) - 1) * Integer.parseInt(params.get("pageSize").toString()); 
 | 
        //} 
 | 
        //params.put("pageCurr", pageCurr); 
 | 
        //params.put("pageSize", pageSize); 
 | 
        rsVo.pageSize = queryVo.pageSize ; 
 | 
        rsVo.pageCurr = queryVo.pageCurr ; 
 | 
  
 | 
        rsVo.calculateAndSet(itemTotal, params); 
 | 
        //rsVo.obj = baRoleMapper.getRoles(params); 
 | 
  
 | 
        /** 
 | 
         * 获取角色列表,把汗角色权限ID 
 | 
         * 遍历角色列表并取出角色对象中的perId 
 | 
         * 根据perId获取权限对象,并将对象添加到角色对象中 
 | 
         */ 
 | 
        List<VoRole> list_Roles = Optional.ofNullable(baRolePermissionsMapper.getRoles(params)).orElse(new ArrayList<>()); 
 | 
        if(list_Roles.size() > 0) { 
 | 
            for(int i = 0; i < list_Roles.size(); i++) { 
 | 
                VoRole voRole = list_Roles.get(i); 
 | 
                Long perId = voRole.getPerId(); 
 | 
                BaRolePermissions baRolePermissions = baRolePermissionsMapper.selectByPrimaryKey(perId); 
 | 
                JSONArray array_permission = JSONArray.parseArray("[]"); 
 | 
                if(baRolePermissions != null) { 
 | 
                    array_permission = baRolePermissions.getPermissions(); 
 | 
                } 
 | 
                voRole.setPermissions(array_permission); 
 | 
            } 
 | 
        } 
 | 
        rsVo.obj = list_Roles; 
 | 
        return rsVo ; 
 | 
    } 
 | 
  
 | 
    public BaRolePermissions getRolePermissionsById(Long id) { 
 | 
        return baRolePermissionsMapper.selectByPrimaryKey(id); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 得到所有角色 
 | 
     * @return 所有角色集合 
 | 
     */ 
 | 
    //public QueryResultVo<List<BaRole>> selectAll(){ 
 | 
    //    QueryResultVo<List<BaRole>> rsVo = new QueryResultVo<>() ; 
 | 
    //    rsVo.obj = this.dao.selectAll() ; 
 | 
    //    return rsVo ; 
 | 
    //} 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 得到一个角色 
 | 
     * @param id 角色ID 
 | 
     * @return 角色实体 
 | 
     */ 
 | 
    //public BaRole selectById(Long id){ 
 | 
    //    return this.dao.selectById(id) ; 
 | 
    //} 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 得到一个用户 
 | 
     //* @param vo 查询条件值对象 
 | 
     * @return 用户实体 
 | 
     */ 
 | 
    @SuppressWarnings("unchecked") 
 | 
    //public QueryResultVo<List<BaRole>> selectSome(QueryVo vo){ 
 | 
    //    Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo) ; 
 | 
    //    Long itemTotal = this.dao.selectTotal(params) ; 
 | 
    // 
 | 
    //    QueryResultVo<List<BaRole>> rsVo = new QueryResultVo<>() ; 
 | 
    //    rsVo.pageSize = vo.pageSize ; 
 | 
    //    rsVo.pageCurr = vo.pageCurr ; 
 | 
    //    rsVo.calculateAndSet(itemTotal, params); 
 | 
    //    rsVo.obj = this.dao.selectSome(params) ; 
 | 
    // 
 | 
    //    return rsVo ; 
 | 
    //} 
 | 
  
 | 
    /** 
 | 
     * 添加角色 
 | 
     * @param po 角色实体 
 | 
     * @return 角色ID 
 | 
     */ 
 | 
    public Long addRole(BaRole po){ 
 | 
        baRoleMapper.insert(po); 
 | 
        return po.getId(); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 根据角色名称查询记录数量,添加角色前判断是否重名 
 | 
     * @param roleName 角色名称 
 | 
     * @return 符合条件记录数 
 | 
     */ 
 | 
    public Integer getRecordCountByName(String roleName) { 
 | 
        return baRoleMapper.getRecordCountByName(roleName); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 修改角色 
 | 
     * @param record 
 | 
     * @return 
 | 
     */ 
 | 
    public int updateRole(BaRole record) { 
 | 
        return baRoleMapper.updateByPrimaryKeySelective(record); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 根据roleId逻辑删除角色对象 
 | 
     * @param roleId 角色编号 
 | 
     * @return 
 | 
     */ 
 | 
    public Integer deleteRoleById(Long roleId) { 
 | 
        return baRoleMapper.deleteRoleById(roleId); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 设置角色权限 
 | 
     * @param roleId 角色id 
 | 
     * @param priviIds 选择的权限id集合 
 | 
     * @return 插入角色与权限关联记录数量 
 | 
     */ 
 | 
    //public int setRoles(Long roleId, Long[] priviIds){ 
 | 
    //    this.rolePrivDao.deleteByRoleId(roleId) ; 
 | 
    //    int count = 0 ; 
 | 
    //    if(priviIds != null && priviIds.length > 0){ 
 | 
    //        for(Long privId : priviIds){ 
 | 
    //            count += this.rolePrivDao.insertSelective(new BaRolePrivilege(roleId, privId)) ; 
 | 
    //        } 
 | 
    //    } 
 | 
    //    return count ; 
 | 
    //} 
 | 
  
 | 
    /** 
 | 
     * 保存修改实体 
 | 
     * @param id 实体ID 
 | 
     * @return 影响记录数量 
 | 
     */ 
 | 
    //@Transactional 
 | 
    //public int delete(Long id){ 
 | 
    //    //int count = this.dao.deleteLogicById(id) ; 
 | 
    //    //逻辑删除,所以不实际删除其关联的权限 
 | 
    //    //if(count > 0){ 
 | 
    //    //    this.rolePrivDao.deleteByRoleId(id) ; 
 | 
    //    //} 
 | 
    //    //return count ; 
 | 
    //    return this.dao.deleteLogicById(id) ; 
 | 
    //} 
 | 
  
 | 
    /** 
 | 
     * 添加授权记录 
 | 
     * @Auth 朱宝民 
 | 
     * @param po 
 | 
     * @return 
 | 
     */ 
 | 
    public Integer addPermissions(BaRolePermissions po) { 
 | 
        return baRolePermissionsMapper.insert(po); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 依据角色编号删除授权记录 
 | 
     * @Auth 朱宝民 
 | 
     * @param roleid 
 | 
     * @return 
 | 
     */ 
 | 
    public Integer delPermissionsByRoleId(Long roleid) { 
 | 
        return baRolePermissionsMapper.delPermissionsByRoleId(roleid); 
 | 
    } 
 | 
  
 | 
} 
 |