| 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); | 
|     } | 
|   | 
| } |