huanghongfa
2020-12-24 40529f7d2cadd71c72cb89c7f79046a8ff689df5
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/RoleServiceImpl.java
@@ -5,8 +5,11 @@
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.user.RoleVO;
import com.panzhihua.service_user.dao.RoleDAO;
import com.panzhihua.service_user.dao.SysUserRoleDAO;
import com.panzhihua.service_user.model.dos.SysRoleDO;
import com.panzhihua.service_user.model.dos.SysUserRoleDO;
import com.panzhihua.service_user.service.RoleService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
@@ -21,10 +24,13 @@
 * @author: huang.hongfa weixin hhf9596 qq 959656820
 * @create: 2020-11-25 15:59
 **/
@Slf4j
@Service
public class RoleServiceImpl implements RoleService {
    @Resource
    private RoleDAO roleDAO;
    @Resource
    private SysUserRoleDAO sysUserRoleDAO;
    /**
     * 获取平台所有的菜单按钮权限
     *
@@ -67,4 +73,70 @@
        }
        return R.ok(roleVOS);
    }
    /**
     * 角色下拉列表
     *
     * @param communityId 对应社区 0 表示运营后台
     * @return 角色集合
     */
    @Override
    public R listRoleBackstage(Long communityId) {
        List<SysRoleDO> sysRoleDOS = roleDAO.selectList(new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getCommunityId, communityId));
        if (ObjectUtils.isEmpty(sysRoleDOS)) {
            return R.fail("角色列表为空");
        }
        List<RoleVO>roleVOS=new ArrayList<>();
        sysRoleDOS.forEach(sysRoleDO -> {
            RoleVO roleVO=new RoleVO();
            BeanUtils.copyProperties(sysRoleDO,roleVO);
            roleVOS.add(roleVO);
        });
        return R.ok(roleVOS);
    }
    /**
     * 新增角色
     *
     * @param roleVO 角色信息
     * @return 新增结果
     */
    @Override
    public R addRoleBackstage(RoleVO roleVO) {
        SysRoleDO sysRoleDO=new SysRoleDO();
        BeanUtils.copyProperties(roleVO,sysRoleDO);
        int insert = 0;
        try {
            insert = roleDAO.insert(sysRoleDO);
        } catch (Exception e) {
            e.printStackTrace();
            log.error("新增角色失败,失败原因【{}】",e.getMessage());
            if (e.getMessage().contains("unique_role_name_community_id")) {
                return R.fail("角色已经存在");
            }
        }
        if (insert>0) {
            return R.ok();
        }
        return R.fail();
    }
    /**
     * 删除角色
     *
     * @param roleVO 角色主键
     * @return 删除结果
     */
    @Override
    public R deleteRoleBackstage(RoleVO roleVO) {
        Integer integer = sysUserRoleDAO.selectCount(new QueryWrapper<SysUserRoleDO>().lambda().eq(SysUserRoleDO::getRoleId, roleVO.getRoleId()));
        if (integer>0) {
            return R.fail("该角色的关联用户数量不为0,不能删除");
        }
        int delete = roleDAO.deleteById(roleVO.getRoleId());
        if (delete==0) {
            return R.fail("角色不存在");
        }
        return R.ok();
    }
}