新增管理员

SysUserController层
    /**
     * 新增管理员
     * @param sysUser   系统管理员对象
     * @return
     */
    @ApiOperation("新增管理员")
    @PostMapping
    @PreAuthorize("hasAuthority('sys:user:save')")
    public Result<String> saveSysUser(@RequestBody SysUser sysUser) {
        Integer count = sysUserService.saveSysUser(sysUser);
        return Result.handle(count>0);
    }
SysUserServiceImpl层
  /**
     * 新增管理员
     *  1.新增管理员
     *  2.新增管理员与角色的关系
     *
     * @param sysUser
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Integer saveSysUser(SysUser sysUser) {
        // 新增管理员
        // 获取进行该操作人员的id
        sysUser.setCreateUserId(AuthUtils.getLoginUserId());
        sysUser.setCreateTime(new Date());
        sysUser.setShopId(1L);
        sysUser.setPassword(passwordEncoder.encode(sysUser.getPassword()));
        int i = sysUserMapper.insert(sysUser);
        if (i > 0) {
            // 获取管理员标识
            Long userId = sysUser.getUserId();
            // 新增管理员与角色的关系
            // 获取管理员的角色id集合
            List<Long> roleIdList = sysUser.getRoleIdList();
            // 判断是否有值
            if (CollectionUtil.isNotEmpty(roleIdList) && roleIdList.size() != 0) {
                // 创建管理员与角色关系的集合
                List<SysUserRole> sysUserRoleList = new ArrayList<>();
                // 循环遍历角色id集合
                roleIdList.forEach(roleId -> {
                    // 创建管理员与角色的关系
                    SysUserRole sysUserRole = new SysUserRole();
                    sysUserRole.setUserId(userId);
                    sysUserRole.setRoleId(roleId);
                    /*// 新增管理员与角色的关系
                    注意:不建议在循环中操作数据库,大家尽量需要避免在循环中操作数据库
                    sysUserRoleMapper.insert(sysUserRole);*/
                    sysUserRoleList.add(sysUserRole);
                });
                // 批量添加管理员与角色的关系
                sysUserRoleService.saveBatch(sysUserRoleList);
            }
        }
        return i;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值