| | |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import org.apache.commons.collections4.ListUtils; |
| | | import org.jeecg.modules.dnc.entity.PermissionStream; |
| | | import org.jeecg.modules.dnc.entity.PermissionStreamNew; |
| | | import org.jeecg.modules.dnc.entity.ProductMix; |
| | | import org.jeecg.modules.dnc.mapper.PermissionStreamNewMapper; |
| | | import org.jeecg.modules.dnc.service.IPermissionStreamNewService; |
| | | import org.jeecg.modules.system.entity.SysUser; |
| | | import org.jeecg.modules.system.service.ISysUserService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | @Service |
| | | public class PermissionStreamNewServiceImpl extends ServiceImpl<PermissionStreamNewMapper, PermissionStreamNew> implements IPermissionStreamNewService { |
| | | @Autowired |
| | | private ISysUserService sysUserService; |
| | | |
| | | /** |
| | | * 根据用户id获取结构树权限 |
| | |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<ProductMix> loadProductMix(String userId){ |
| | | return baseMapper.loadProductMix(userId); |
| | | public List<ProductMix> loadProductMix(String userId,List<String> productIdList){ |
| | | return baseMapper.loadProductMix(userId,productIdList); |
| | | } |
| | | |
| | | /** |
| | | * 根据用户id、部门列表、id、业务类型获取对应结构树权限 |
| | | * @param userId |
| | | * @param productIdList |
| | | * @param businessId |
| | | * @param businessType |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<ProductMix> loadProductMixByBusinessIdAndBusinessType(String userId,List<String> productIdList, |
| | | String businessId,String businessType){ |
| | | return baseMapper.loadProductMixByBusinessId(userId,productIdList,businessId,businessType); |
| | | } |
| | | |
| | | /** |
| | | * 管理员获取所有权限 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<ProductMix> loadProductMixAll(String userId){ |
| | | return baseMapper.loadProductMixAll(userId); |
| | | } |
| | | |
| | | /** |
| | |
| | | permissionStreamNewList.forEach(item -> { |
| | | ids.add(item.getId()); |
| | | }); |
| | | return super.removeByIds(ids); |
| | | if (ids.size()>1000) { |
| | | List<List<String>> partition = ListUtils.partition(ids, 1000); |
| | | for (List<String> partitionList : partition) { |
| | | super.removeByIds(partitionList); |
| | | } |
| | | }else { |
| | | super.removeByIds(ids); |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | |
| | | return total; |
| | | } |
| | | |
| | | /** |
| | | * 通过添加权限 |
| | | * @param permissionStream |
| | | * @return |
| | | */ |
| | | @Override |
| | | public boolean addPermissionStreamNew(PermissionStreamNew permissionStream) { |
| | | // 验证参数有效性 |
| | | if (permissionStream == null) { |
| | | return false; |
| | | } |
| | | // 获取管理员用户 |
| | | SysUser adminUser = sysUserService.getUserByName("admin"); |
| | | if (adminUser == null) { |
| | | // 若管理员用户不存在,可根据实际情况处理,这里简单返回 false |
| | | return false; |
| | | } |
| | | try { |
| | | boolean isAdmin = Objects.equals(permissionStream.getUserId(), adminUser.getId()); |
| | | // 保存本身权限 |
| | | super.save(permissionStream); |
| | | if (!isAdmin) { |
| | | // 若不是管理员,复制一个新的 PermissionStreamNew 对象并设置为管理员 ID 后保存 |
| | | PermissionStreamNew adminPermissionStream = new PermissionStreamNew(); |
| | | adminPermissionStream.setUserId(adminUser.getId()); |
| | | adminPermissionStream.setBusinessId(permissionStream.getBusinessId()); |
| | | adminPermissionStream.setBusinessType(permissionStream.getBusinessType()); |
| | | super.save(adminPermissionStream); |
| | | } |
| | | return true; |
| | | } catch (Exception e) { |
| | | // 记录异常信息,方便后续排查问题 |
| | | e.printStackTrace(); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | } |