lizijie
2021-05-12 a5b27c528bb73886ccc6b97ea1262b9d7f403cca
screen-manage/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
@@ -5,10 +5,11 @@
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.moral.api.config.mybatis.wrapper.NullFilterWrapper;
import com.moral.api.entity.Group;
import com.moral.api.entity.Organization;
import com.moral.api.entity.User;
import com.moral.api.mapper.OrganizationMapper;
import com.moral.api.mapper.UserMapper;
import com.moral.api.entity.UserGroup;
import com.moral.api.mapper.*;
import com.moral.api.pojo.dto.user.UserDTO;
import com.moral.api.pojo.dto.user.UserQueryDTO;
import com.moral.api.pojo.form.user.UserDeleteForm;
@@ -44,6 +45,12 @@
    UserMapper userMapper;
    @Autowired
    OrganizationMapper organizationMapper;
    @Autowired
    GroupMapper groupMapper;
    @Autowired
    UserGroupMapper userGroupMapper;
    @Autowired
    GroupMenuMapper groupMenuMapper;
    @Override
    public UserQueryDTO queryUsers(UserQueryForm form) {
@@ -152,36 +159,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 +171,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 +185,112 @@
        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);
        //创建组织admin角色
        Group group = new Group();
        group.setOrganizationId(organizationId);
        group.setGroupName("admin");
        groupMapper.insert(group);
        //插入账号角色关联表
        UserGroup userGroup = new UserGroup();
        userGroup.setUserId(user.getId());
        userGroup.setGroupId(group.getId());
        userGroup.setOrganizationId(organizationId);
        userGroupMapper.insert(userGroup);
        //更新组织
        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);
        //逻辑删除,groupMenu
        UpdateWrapper deleteGroupMenuWrapper = new UpdateWrapper();
        deleteGroupMenuWrapper.eq("organization_id",organizationId);
        deleteGroupMenuWrapper.set("is_delete", Constants.DELETE);
        groupMenuMapper.update(null,deleteGroupMenuWrapper);
        //逻辑删除,userGroup
        UpdateWrapper deleteUserGroupWrapper = new UpdateWrapper();
        deleteUserGroupWrapper.eq("organization_id",organizationId);
        deleteUserGroupWrapper.set("is_delete", Constants.DELETE);
        userGroupMapper.update(null,deleteUserGroupWrapper);
        //逻辑删除,groupMenu
        UpdateWrapper deleteGroupWrapper = new UpdateWrapper();
        deleteGroupWrapper.eq("organization_id",organizationId);
        deleteGroupWrapper.set("is_delete", Constants.DELETE);
        groupMapper.update(null,deleteGroupWrapper);
        //返回结果
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        return dto;
    }
}