|
@@ -3,6 +3,7 @@ package com.backendsys.modules.material.service.impl;
|
|
import cn.hutool.core.convert.Convert;
|
|
import cn.hutool.core.convert.Convert;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import com.backendsys.exception.CustException;
|
|
import com.backendsys.exception.CustException;
|
|
|
|
+import com.backendsys.modules.common.config.security.utils.SecurityUtil;
|
|
import com.backendsys.modules.material.dao.MaterialCategoryDao;
|
|
import com.backendsys.modules.material.dao.MaterialCategoryDao;
|
|
import com.backendsys.modules.material.dao.MaterialDao;
|
|
import com.backendsys.modules.material.dao.MaterialDao;
|
|
import com.backendsys.modules.material.dao.MaterialTagDao;
|
|
import com.backendsys.modules.material.dao.MaterialTagDao;
|
|
@@ -10,6 +11,8 @@ import com.backendsys.modules.material.entity.Material;
|
|
import com.backendsys.modules.material.entity.MaterialCategory;
|
|
import com.backendsys.modules.material.entity.MaterialCategory;
|
|
import com.backendsys.modules.material.entity.MaterialTag;
|
|
import com.backendsys.modules.material.entity.MaterialTag;
|
|
import com.backendsys.modules.material.service.MaterialService;
|
|
import com.backendsys.modules.material.service.MaterialService;
|
|
|
|
+import com.backendsys.modules.system.entity.SysUserRole;
|
|
|
|
+import com.backendsys.modules.system.service.SysUserRoleService;
|
|
import com.backendsys.modules.upload.service.SysFileService;
|
|
import com.backendsys.modules.upload.service.SysFileService;
|
|
import com.backendsys.modules.upload.utils.ObjectKey.ObjectKeyEntity;
|
|
import com.backendsys.modules.upload.utils.ObjectKey.ObjectKeyEntity;
|
|
import com.backendsys.modules.upload.utils.ObjectKey.ObjectKeyUtil;
|
|
import com.backendsys.modules.upload.utils.ObjectKey.ObjectKeyUtil;
|
|
@@ -26,6 +29,7 @@ import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
import java.util.Optional;
|
|
import java.util.Optional;
|
|
import java.util.concurrent.CompletableFuture;
|
|
import java.util.concurrent.CompletableFuture;
|
|
|
|
+import java.util.concurrent.atomic.AtomicReference;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
@Service
|
|
@@ -42,6 +46,8 @@ public class MaterialServiceImpl implements MaterialService {
|
|
private MaterialCategoryDao materialCategoryDao;
|
|
private MaterialCategoryDao materialCategoryDao;
|
|
@Autowired
|
|
@Autowired
|
|
private SysFileService sysFileService;
|
|
private SysFileService sysFileService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private SysUserRoleService sysUserRoleService;
|
|
|
|
|
|
private List<MaterialTag> getMaterialTagByIds(String tag_ids) {
|
|
private List<MaterialTag> getMaterialTagByIds(String tag_ids) {
|
|
if (StrUtil.isEmpty(tag_ids)) return null;
|
|
if (StrUtil.isEmpty(tag_ids)) return null;
|
|
@@ -90,10 +96,25 @@ public class MaterialServiceImpl implements MaterialService {
|
|
Material detail = materialDao.selectMaterialDetail(material);
|
|
Material detail = materialDao.selectMaterialDetail(material);
|
|
if (detail == null) throw new CustException("素材不存在");
|
|
if (detail == null) throw new CustException("素材不存在");
|
|
|
|
|
|
- // 新增字段:标签列表
|
|
|
|
|
|
+ // [新增字段] 标签列表
|
|
List<MaterialTag> materialTagList = getMaterialTagByIds(detail.getTag_ids());
|
|
List<MaterialTag> materialTagList = getMaterialTagByIds(detail.getTag_ids());
|
|
detail.setTag_list(materialTagList);
|
|
detail.setTag_list(materialTagList);
|
|
|
|
|
|
|
|
+ // [DB] 查询当前用户角色,如果是素材游客,则不显示图片
|
|
|
|
+ List<SysUserRole> role_list = sysUserRoleService.selectUserRoleByUserId(SecurityUtil.getUserId());
|
|
|
|
+ AtomicReference<Boolean> hasPermission = new AtomicReference<>(false);
|
|
|
|
+ role_list.stream().forEach(role -> {
|
|
|
|
+ if ("MATERIAL_USER".equals(role.getRole_sign()) || "MATERIAL_ADMIN".equals(role.getRole_sign())) {
|
|
|
|
+ hasPermission.set(true);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ // 如果当前用户没有权限,则不显示图片
|
|
|
|
+ if (!hasPermission.get()) {
|
|
|
|
+ detail.setFile_url("");
|
|
|
|
+ detail.setPan_baidu_url("");
|
|
|
|
+ }
|
|
|
|
+
|
|
return detail;
|
|
return detail;
|
|
}
|
|
}
|
|
|
|
|