|  |  |  | 
|---|
|  |  |  | package com.dy.pipIrrBase.role; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson2.JSONArray; | 
|---|
|  |  |  | import com.dy.common.webUtil.QueryResultVo; | 
|---|
|  |  |  | import com.dy.pipIrrBase.user.QueryVo; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.daoBa.BaRoleMapper; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.daoBa.BaRolePermissionsMapper; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.daoBa.BaRolePrivilegeMapper; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.pojoBa.BaRole; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.pojoBa.BaRolePermissions; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.pojoBa.BaRolePrivilege; | 
|---|
|  |  |  | 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 org.springframework.transaction.annotation.Transactional; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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 dao; | 
|---|
|  |  |  | private BaRolePrivilegeMapper rolePrivDao ; | 
|---|
|  |  |  | //private BaRoleMapper baRoleMapper; | 
|---|
|  |  |  | //private BaRolePrivilegeMapper rolePrivDao ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private void setDao(BaRoleMapper dao){ | 
|---|
|  |  |  | this.dao = dao; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //@Autowired | 
|---|
|  |  |  | //private void setDao(BaRoleMapper dao){ | 
|---|
|  |  |  | //    this.dao = dao; | 
|---|
|  |  |  | //} | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //@Autowired | 
|---|
|  |  |  | //private void setRolePrivDao(BaRolePrivilegeMapper dao){ | 
|---|
|  |  |  | //    this.rolePrivDao = dao; | 
|---|
|  |  |  | //} | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private void setRolePrivDao(BaRolePrivilegeMapper dao){ | 
|---|
|  |  |  | this.rolePrivDao = dao; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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 ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //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) ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //public BaRole selectById(Long id){ | 
|---|
|  |  |  | //    return this.dao.selectById(id) ; | 
|---|
|  |  |  | //} | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 得到一个用户 | 
|---|
|  |  |  | * @param vo 查询条件值对象 | 
|---|
|  |  |  | //* @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 ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //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 影响记录数量 | 
|---|
|  |  |  | * 添加角色 | 
|---|
|  |  |  | * @param po 角色实体 | 
|---|
|  |  |  | * @return 角色ID | 
|---|
|  |  |  | */ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 12月20日 朱宝民修改返回值,添加角色后返回主键 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public Long save(BaRole po){ | 
|---|
|  |  |  | //return this.dao.putin(po) ; | 
|---|
|  |  |  | this.dao.putin(po) ; | 
|---|
|  |  |  | public Long addRole(BaRole po){ | 
|---|
|  |  |  | baRoleMapper.insert(po); | 
|---|
|  |  |  | return po.getId(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 保存修改实体 | 
|---|
|  |  |  | * @param po 实体 | 
|---|
|  |  |  | * @return 影响记录数量 | 
|---|
|  |  |  | * 根据角色名称查询记录数量,添加角色前判断是否重名 | 
|---|
|  |  |  | * @param roleName 角色名称 | 
|---|
|  |  |  | * @return 符合条件记录数 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public int update(BaRole po){ | 
|---|
|  |  |  | return this.dao.updateByPrimaryKeySelective(po) ; | 
|---|
|  |  |  | 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 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 ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //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) ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //@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 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 依据角色编号删除授权记录 | 
|---|
|  |  |  | * @Auth 朱宝民 | 
|---|
|  |  |  | * @param roleid | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|