|
|
@@ -1,10 +1,23 @@
|
|
|
package cc.iotkit.data.service;
|
|
|
|
|
|
+import cc.iotkit.common.api.PageRequest;
|
|
|
+import cc.iotkit.common.api.Paging;
|
|
|
+import cc.iotkit.common.tenant.helper.TenantHelper;
|
|
|
+import cc.iotkit.common.utils.StringUtils;
|
|
|
import cc.iotkit.data.dao.IJPACommData;
|
|
|
import cc.iotkit.data.dao.SysOssRepository;
|
|
|
+import cc.iotkit.data.model.QTbSysOss;
|
|
|
import cc.iotkit.data.model.TbSysOss;
|
|
|
import cc.iotkit.data.system.ISysOssData;
|
|
|
+import cc.iotkit.data.util.PageBuilder;
|
|
|
+import cc.iotkit.data.util.PredicateBuilder;
|
|
|
import cc.iotkit.model.system.SysOss;
|
|
|
+import cc.iotkit.model.system.SysUser;
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.querydsl.core.types.OrderSpecifier;
|
|
|
+import com.querydsl.core.types.Predicate;
|
|
|
+import com.querydsl.core.types.dsl.Expressions;
|
|
|
import com.querydsl.jpa.impl.JPAQueryFactory;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -12,6 +25,10 @@ import org.springframework.context.annotation.Primary;
|
|
|
import org.springframework.data.jpa.repository.JpaRepository;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+import static cc.iotkit.data.model.QTbSysOss.tbSysOss;
|
|
|
+
|
|
|
/**
|
|
|
* @Author:tfd
|
|
|
* @Date:2023/5/30 13:43
|
|
|
@@ -22,14 +39,14 @@ import org.springframework.stereotype.Service;
|
|
|
public class SysOssDataImpl implements ISysOssData, IJPACommData<SysOss, Long> {
|
|
|
|
|
|
@Autowired
|
|
|
- private SysOssRepository baseRepository;
|
|
|
+ private SysOssRepository ossRepository;
|
|
|
|
|
|
private final JPAQueryFactory jpaQueryFactory;
|
|
|
|
|
|
|
|
|
@Override
|
|
|
public JpaRepository getBaseRepository() {
|
|
|
- return baseRepository;
|
|
|
+ return ossRepository;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -43,4 +60,30 @@ public class SysOssDataImpl implements ISysOssData, IJPACommData<SysOss, Long> {
|
|
|
}
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
+ public Paging<SysOss> findAll(PageRequest<SysOss> pageRequest) {
|
|
|
+ return PageBuilder.toPaging(ossRepository.findAll(buildQueryCondition(pageRequest.getData()), PageBuilder.toPageable(pageRequest))).to(SysOss.class);
|
|
|
+ }
|
|
|
+
|
|
|
+ private Predicate buildQueryCondition(SysOss data) {
|
|
|
+
|
|
|
+ PredicateBuilder predicateBuilder = PredicateBuilder.instance()
|
|
|
+ .and(ObjectUtil.isNotNull(data.getId()), () -> tbSysOss.id.eq(data.getId()))
|
|
|
+ .and(StringUtils.isNotEmpty(data.getTenantId()),()->tbSysOss.tenantId.eq(data.getTenantId()))
|
|
|
+ .and(StringUtils.isNotEmpty(data.getOriginalName()),()->tbSysOss.originalName.like("%"+ data.getOriginalName()+"%"))
|
|
|
+ .and(StringUtils.isNotEmpty(data.getFileName()), () -> tbSysOss.fileName.like("%" +data.getFileName()+"%"))
|
|
|
+ .and(StringUtils.isNotEmpty(data.getFileSuffix()), () -> tbSysOss.fileSuffix.endsWith(data.getFileSuffix()))
|
|
|
+ .and(StringUtils.isNotEmpty(data.getService()), () -> tbSysOss.service.like("%" +data.getService()+"%"));
|
|
|
+ checkDataPermission(predicateBuilder, TenantHelper.getTenantId());
|
|
|
+ return predicateBuilder.build();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void checkDataPermission(PredicateBuilder predicateBuilder, String tenantId){
|
|
|
+ List<Long> finalDeptList = PredicateBuilder.queryCacheChildDeptIds(tenantId);
|
|
|
+ predicateBuilder.and(CollectionUtil.isNotEmpty(finalDeptList),()->tbSysOss.createDept.in(finalDeptList));
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|