puhanshu
2021-09-28 d6b4bf68e89dc5d16ff69709b593bf6badeae558
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -3,7 +3,6 @@
import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;
import java.time.Instant;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
@@ -1203,19 +1202,28 @@
        // 获取所有权限id
        List<SysMenuDO> menuDOList = sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda()
            .eq(SysMenuDO::getCommunityId, 2l).orderByAsc(SysMenuDO::getOrderNum));
            .eq(SysMenuDO::getCommunityId, 2L).orderByAsc(SysMenuDO::getOrderNum));
        if (!menuDOList.isEmpty()) {
            menuIds = menuDOList.stream().map(sysMenuDO -> sysMenuDO.getMenuId()).collect(Collectors.toList());
            for (int i = 0; i < menuIds.size(); i++) {
                SysRoleMenuDO sysRoleMenuDO = sysRoleMenuDAO.selectOne(new QueryWrapper<SysRoleMenuDO>().lambda()
                    .eq(SysRoleMenuDO::getMenuId, menuIds.get(i)).eq(SysRoleMenuDO::getRoleId, roleId));
                if (sysRoleMenuDO == null) {
                    sysRoleMenuDO = new SysRoleMenuDO();
                    sysRoleMenuDO.setMenuId(menuIds.get(i));
                    sysRoleMenuDO.setRoleId(roleId);
                    sysRoleMenuDAO.insert(sysRoleMenuDO);
                }
            List<SysRoleMenuDO> sysRoleMenuDOList = sysRoleMenuDAO.selectList(new QueryWrapper<SysRoleMenuDO>().lambda().eq(SysRoleMenuDO::getRoleId, roleId).in(SysRoleMenuDO::getMenuId, menuIds));
            if (!sysRoleMenuDOList.isEmpty()) {
                menuIds = menuIds.stream().filter(menuId -> !sysRoleMenuDOList.stream()
                        .anyMatch(sysRoleMenuDO -> sysRoleMenuDO.getMenuId().equals(menuId))).collect(Collectors.toList());
            }
            if (!menuIds.isEmpty()) {
                sysRoleMenuDAO.batchInsertWithRoleId(menuIds, roleId);
            }
//            for (int i = 0; i < menuIds.size(); i++) {
//                SysRoleMenuDO sysRoleMenuDO = sysRoleMenuDAO.selectOne(new QueryWrapper<SysRoleMenuDO>().lambda()
//                    .eq(SysRoleMenuDO::getMenuId, menuIds.get(i)).eq(SysRoleMenuDO::getRoleId, roleId));
//                if (sysRoleMenuDO == null) {
//                    sysRoleMenuDO = new SysRoleMenuDO();
//                    sysRoleMenuDO.setMenuId(menuIds.get(i));
//                    sysRoleMenuDO.setRoleId(roleId);
//                    sysRoleMenuDAO.insert(sysRoleMenuDO);
//                }
//            }
        }
        return R.ok();
    }
@@ -2168,7 +2176,6 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R addGridUser(EventGridMemberAddDTO eventGridMemberAddDTO) {
        //todo 网格
        SysRoleDO gridMemberDefaultRole = roleDAO.selectOne(
            new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleKey, Constants.GRID_DEFAULT_ROLE_KEY));
        if (gridMemberDefaultRole == null) {
@@ -2591,41 +2598,17 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R addConvenientMerchantUser(ConvenientMerchantDTO convenientMerchantDTO) {
        // todo 便民
        log.error("catTimeStamp进入addConvenientMerchantUser" + convenientMerchantDTO.getAccount() + Instant.now().toEpochMilli());
        SysUserDO sysUserDO = new SysUserDO();
        Long communityId = 0L;
        // 新增社区高级管理员角色
        SysRoleDO sysRoleDO = new SysRoleDO();
        sysRoleDO.setCommunityId(communityId);
        sysRoleDO.setRoleName(convenientMerchantDTO.getName());
        sysRoleDO.setRoleKey(Constants.CONVENIENT_MERCHANT_ROLE_KEY + convenientMerchantDTO.getAccount());
        sysRoleDO.setRoleSort(0);
        sysRoleDO.setCreateBy(convenientMerchantDTO.getCreatedBy());
        try {
            int insert = roleDAO.insert(sysRoleDO);
            if (insert != 1) {
                return R.fail("网络错误");
            }
        } catch (Exception e) {
            log.error("新增角色报错【{}】", e.getMessage());
            if (e.getMessage().contains("unique_role_name_community_id")) {
                return R.fail("商家名称已被占用");
            } else {
                return R.fail("建立商家角色失败,商家名称可能已被占用!");
            }
        SysUserDO sysUserDO;
        sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getAccount, convenientMerchantDTO.getAccount()));
        if (nonNull(sysUserDO)) {
            return R.fail("账户已经存在");
        }
        log.error("catTimeStamp-SysRoleDO创建完成" + convenientMerchantDTO.getAccount() + Instant.now().toEpochMilli());
        // 新角色设置所有权限
        MenuRoleVO menuRoleVO = new MenuRoleVO();
        menuRoleVO.setIsAll(1);
        menuRoleVO.setCommunityId(communityId);
        menuRoleVO.setRoleId(sysRoleDO.getRoleId());
        this.putMenuRole(menuRoleVO);
        log.error("catTimeStamp-MenuRoleVO创建完成" + convenientMerchantDTO.getAccount() + Instant.now().toEpochMilli());
        sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getPhone, convenientMerchantDTO.getPhone()));
        if (nonNull(sysUserDO)) {
            return R.fail("手机号已经存在");
        }
        // sys_user 表
        sysUserDO = new SysUserDO();
        String encode = new BCryptPasswordEncoder().encode(convenientMerchantDTO.getPassword());
        BeanUtils.copyProperties(convenientMerchantDTO, sysUserDO);
        sysUserDO.setAccount(convenientMerchantDTO.getAccount());
@@ -2637,17 +2620,10 @@
        sysUserDO.setPassword(encode);
        try {
            userDao.insert(sysUserDO);
            log.error("catTimeStamp-sysUserDO创建完成" + convenientMerchantDTO.getAccount() + Instant.now().toEpochMilli());
            return R.ok(sysUserDO.getUserId());
        } catch (Exception e) {
            e.printStackTrace();
            log.error("新增后台用户报错【{}】", e.getMessage());
            roleDAO.deleteByRoleKey(Constants.CONVENIENT_MERCHANT_ROLE_KEY + convenientMerchantDTO.getAccount());
            if (e.getMessage().contains("union_phone_type")) {
                return R.fail("手机号已经存在");
            } else if (e.getMessage().contains("union_account_type")) {
                return R.fail("账户已经存在");
            }
        }
        return R.fail("新增商户发生错误");
    }
@@ -2664,17 +2640,8 @@
    if (isNull(sysUserDO)) {
        return R.fail("用户不存在");
    }
    String oldAccount = sysUserDO.getAccount();
    sysUserDO.setAccount(account);
    int result = userDao.updateById(sysUserDO);
    if (result > 0) {
        SysRoleDO sysRoleDO = roleDAO.selectOne(new QueryWrapper<SysRoleDO>()
                .lambda().eq(SysRoleDO::getRoleKey, Constants.CONVENIENT_MERCHANT_ROLE_KEY + oldAccount));
        if (nonNull(sysRoleDO)) {
            sysRoleDO.setRoleKey(Constants.CONVENIENT_MERCHANT_ROLE_KEY + account);
            roleDAO.updateById(sysRoleDO);
        }
    }
    userDao.updateById(sysUserDO);
    return R.ok();
}