hyingbo
7 天以前 cc0e9036de6e922e8fe254fef01d8de9996024b7
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PermissionStreamNewServiceImpl.java
@@ -6,18 +6,23 @@
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获取结构树权限
@@ -25,8 +30,31 @@
     * @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);
    }
    /**
@@ -139,7 +167,15 @@
        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;
    }
    /**
@@ -224,4 +260,41 @@
        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;
        }
    }
}