hyingbo
7 天以前 cc0e9036de6e922e8fe254fef01d8de9996024b7
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PermissionStreamNewServiceImpl.java
@@ -10,13 +10,19 @@
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获取结构树权限
@@ -26,6 +32,20 @@
    @Override
    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);
    }
    /**
@@ -240,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;
        }
    }
}