kaiyu
2021-05-10 275f338495f3e694ccf6fa909fb78b949a67921c
screen-manage/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
@@ -152,36 +152,6 @@
    @Override
    @Transactional
    public UserDTO deleteUser(UserDeleteForm form) {
        //创建返回对象
        UserDTO dto = new UserDTO();
        //取参
        Integer id = form.getId();
        //查询要删除的用户 用于插入日志
        User oldUser = new User();
        oldUser.setIsDelete(Constants.NOT_DELETE);
        oldUser.setId(id);
        QueryWrapper<User> oldWrapper = new QueryWrapper<>();
        oldWrapper.setEntity(oldUser);
        oldUser = userMapper.selectOne(oldWrapper);
        if(ObjectUtils.isEmpty(oldUser)){
            dto.setCode(ResponseCodeEnum.USER_NOT_EXIST.getCode());
            dto.setMsg(ResponseCodeEnum.USER_NOT_EXIST.getMsg());
            return dto;
        }
        //逻辑删除,删除账号以及该组织下的所有账号
        UpdateWrapper<User> deleteWrapper = new UpdateWrapper<>();
        deleteWrapper.eq("organization_id",oldUser.getOrganizationId());
        deleteWrapper.set("is_delete",Constants.DELETE);
        userMapper.update(null,deleteWrapper);
        //返回结果
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        return dto;
    }
    @Override
    @Transactional
    public UserDTO insertUser(UserInsertForm form) {
        //创建返回对象
        UserDTO dto = new UserDTO();
@@ -194,7 +164,7 @@
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.setEntity(existUser);
        User existUserResult = userMapper.selectOne(wrapper);
        if(!ObjectUtils.isEmpty(existUserResult)){
        if (!ObjectUtils.isEmpty(existUserResult)) {
            dto.setCode(ResponseCodeEnum.USER_EXIST.getCode());
            dto.setMsg(ResponseCodeEnum.USER_EXIST.getMsg());
            return dto;
@@ -208,18 +178,86 @@
        QueryWrapper<User> organizationUserWrapper = new QueryWrapper<>();
        organizationUserWrapper.setEntity(organizationUser);
        organizationUser = userMapper.selectOne(organizationUserWrapper);
        if(!ObjectUtils.isEmpty(organizationUser)){
        if (!ObjectUtils.isEmpty(organizationUser)) {
            dto.setCode(ResponseCodeEnum.ORGANIZATION_USER_EXIST.getCode());
            dto.setMsg(ResponseCodeEnum.ORGANIZATION_USER_EXIST.getMsg());
            return dto;
        }
        //插入
        userMapper.insert(user);
        //更新组织
        Organization organization = new Organization();
        organization.setAdminUserId(user.getId());
        organization.setId(organizationId);
        organizationMapper.updateById(organization);
        //封装返回结果
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        return dto;
    }
    @Override
    @Transactional
    public UserDTO deleteUser(UserDeleteForm form) {
        //取参
        Integer id = form.getId();
        //创建删除条件
        User user = new User();
        user.setIsDelete(Constants.NOT_DELETE);
        user.setId(id);
        //执行删除逻辑
        UserDTO dto = deleteUserModel(user);
        //删除组织中admin账号字段
        UpdateWrapper updateOrgWrapper = new UpdateWrapper();
        updateOrgWrapper.eq("admin_user_id",user.getId());
        updateOrgWrapper.set("admin_user_id",0);
        organizationMapper.update(null,updateOrgWrapper);
        return dto;
    }
    @Override
    @Transactional
    public UserDTO deleteUserByOrganizationId(Integer organizationId) {
        //创建删除条件
        User user = new User();
        user.setOrganizationId(organizationId);
        //执行逻辑删除
        UserDTO dto = deleteUserModel(user);
        return dto;
    }
    private UserDTO deleteUserModel(User user) {
        //创建返回对象
        UserDTO dto = new UserDTO();
        //删除条件
        Integer organizationId = null;
        //创建要删除的账号对象用于插入日志
        User oldUser = null;
        //判断对象是否含有组织id
        if (ObjectUtils.isEmpty(user.getOrganizationId())) {
            QueryWrapper<User> deleteUserWrapper = new QueryWrapper<>();
            deleteUserWrapper.setEntity(user);
            oldUser = userMapper.selectOne(deleteUserWrapper);
            if (ObjectUtils.isEmpty(user)) {
                dto.setCode(ResponseCodeEnum.USER_NOT_EXIST.getCode());
                dto.setMsg(ResponseCodeEnum.USER_NOT_EXIST.getMsg());
                return dto;
            }
            organizationId = oldUser.getOrganizationId();
        }else{
            organizationId = user.getOrganizationId();
        }
        //逻辑删除,删除账号以及该组织下的所有账号
        UpdateWrapper<User> deleteUserChildrenWrapper = new UpdateWrapper<>();
        deleteUserChildrenWrapper.eq("organization_id", organizationId);
        deleteUserChildrenWrapper.set("is_delete", Constants.DELETE);
        userMapper.update(null, deleteUserChildrenWrapper);
        //返回结果
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        return dto;
    }
}