package com.huaxu.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.huaxu.dao.GroupUserMapper; import com.huaxu.dao.UserGroupMapper; import com.huaxu.dao.UserRoleMapper; import com.huaxu.dto.UserGroupDto; import com.huaxu.entity.*; import com.huaxu.model.LoginUser; import com.huaxu.service.UserGroupService; import com.huaxu.util.UserUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 用户组(UserGroup表)服务实现类 * * @author makejava * @since 2020-10-27 09:13:57 */ @Service("userGroupService") public class UserGroupServiceImpl implements UserGroupService { @Autowired private UserGroupMapper userGroupMapper; @Autowired private GroupUserMapper groupUserMapper; /** * 通过ID查询单条数据 * * @param id 主键 * @return 实例对象 */ @Override public UserGroup selectById(Integer id) { return this.userGroupMapper.selectById(id); } /** * 查询所有 * * @return 实例对象的集合 */ @Override public List selectAll() { return this.userGroupMapper.selectAll(); } /** * 根据条件查询 * * @return 实例对象的集合 */ @Override public List selectList(UserGroup userGroup) { return this.userGroupMapper.selectList(userGroup); } /** * 新增数据 * * @param userGroup 实例对象 * @return 实例对象 */ @Override public int insert(UserGroup userGroup) { LoginUser currentUser = UserUtil.getCurrentUser(); userGroup.setTenantId(currentUser.getTenantId()); userGroup.setCreateBy(currentUser.getUsername()); return this.userGroupMapper.insert(userGroup); } /** * 批量新增 * * @param userGroups 实例对象的集合 * @return 生效的条数 */ @Override public int batchInsert(List userGroups) { return this.userGroupMapper.batchInsert(userGroups); } /** * 修改数据 * * @param userGroup 实例对象 * @return 实例对象 */ @Override @Transactional public int update(UserGroup userGroup) { if(userGroup.getStatus()==-1){ UserGroup hasUserGroupUsers = userGroupMapper.findHasUserGroupUsers(userGroup); if(hasUserGroupUsers!=null){ return -1; } //删除用户与用户组的关系 userGroupMapper.deleteUserGroupRelations(userGroup); } LoginUser currentUser = UserUtil.getCurrentUser(); userGroup.setUpdateBy(currentUser.getUsername()); return this.userGroupMapper.update(userGroup); } /** * 通过主键删除数据 * * @param id 主键 * @return 是否成功 */ @Override public int deleteById(Integer id) { return this.userGroupMapper.deleteById(id); } /** * 查询总数据数 * * @return 数据总数 */ @Override public int count() { return this.userGroupMapper.count(); } /** * 分页查询 * * @return 对象列表 */ @Override public IPage selectPage(UserGroup userGroup, IPage page) { LoginUser currentUser = UserUtil.getCurrentUser(); userGroup.setTenantId(currentUser.getTenantId()); return this.userGroupMapper.selectPage(page, userGroup); } @Override public List findUsersByUserGroup(UserGroup userGroup) { return userGroupMapper.findUsersByUserGroup( userGroup); } @Override @Transactional public int updateRolesByUserGroup(UserGroupDto userGroupDto) { UserGroup userGroup=new UserGroup(); Integer groupId=userGroupDto.getGroupId(); userGroup.setId(groupId); userGroupMapper.deleteUserGroupRelations(userGroup); List userIds = userGroupDto.getUserIds(); ListgroupUsers=new ArrayList<>(); ListuserRoleEntities=new ArrayList<>(); userIds.forEach(id->{ GroupUser user=new GroupUser(); user.setUserId(id); user.setGroupId(groupId); UserRoleEntity userRoleEntity=new UserRoleEntity(); userRoleEntity.setRoleId(userGroupDto.getRoleId()); userRoleEntity.setUserId(id); groupUsers.add(user); userRoleEntities.add(userRoleEntity); }); userGroupMapper.deleteUserRoles(userGroupDto); userGroupMapper.batchInsertRoles(userRoleEntities); groupUserMapper.batchInsert(groupUsers); return 0; } }