|
@@ -1,24 +1,33 @@
|
|
|
package com.izouma.jiashanxia.service;
|
|
package com.izouma.jiashanxia.service;
|
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import com.izouma.jiashanxia.domain.CommissionRecord;
|
|
import com.izouma.jiashanxia.domain.CommissionRecord;
|
|
|
import com.izouma.jiashanxia.domain.User;
|
|
import com.izouma.jiashanxia.domain.User;
|
|
|
|
|
+import com.izouma.jiashanxia.domain.Withdraw;
|
|
|
import com.izouma.jiashanxia.dto.PageQuery;
|
|
import com.izouma.jiashanxia.dto.PageQuery;
|
|
|
import com.izouma.jiashanxia.enums.AuthorityName;
|
|
import com.izouma.jiashanxia.enums.AuthorityName;
|
|
|
import com.izouma.jiashanxia.repo.CommissionRecordRepo;
|
|
import com.izouma.jiashanxia.repo.CommissionRecordRepo;
|
|
|
|
|
+import com.izouma.jiashanxia.repo.UserRepo;
|
|
|
import com.izouma.jiashanxia.security.Authority;
|
|
import com.izouma.jiashanxia.security.Authority;
|
|
|
import com.izouma.jiashanxia.utils.JpaUtils;
|
|
import com.izouma.jiashanxia.utils.JpaUtils;
|
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.springframework.data.domain.Page;
|
|
import org.springframework.data.domain.Page;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
+import javax.persistence.criteria.Predicate;
|
|
|
|
|
+import java.util.List;
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
import java.util.Set;
|
|
import java.util.Set;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@Service
|
|
@Service
|
|
|
@AllArgsConstructor
|
|
@AllArgsConstructor
|
|
|
public class CommissionRecordService {
|
|
public class CommissionRecordService {
|
|
|
|
|
|
|
|
private CommissionRecordRepo commissionRecordRepo;
|
|
private CommissionRecordRepo commissionRecordRepo;
|
|
|
|
|
+ private WithdrawService withdrawService;
|
|
|
|
|
+ private UserRepo userRepo;
|
|
|
|
|
|
|
|
public Page<CommissionRecord> all(PageQuery pageQuery) {
|
|
public Page<CommissionRecord> all(PageQuery pageQuery) {
|
|
|
pageQuery.setSort("createdAt,desc");
|
|
pageQuery.setSort("createdAt,desc");
|
|
@@ -31,10 +40,38 @@ public class CommissionRecordService {
|
|
|
public Page<CommissionRecord> backAll(PageQuery pageQuery, User user) {
|
|
public Page<CommissionRecord> backAll(PageQuery pageQuery, User user) {
|
|
|
pageQuery.setSort("createdAt,desc");
|
|
pageQuery.setSort("createdAt,desc");
|
|
|
Set<Authority> authorities = user.getAuthorities();
|
|
Set<Authority> authorities = user.getAuthorities();
|
|
|
- if (!authorities.contains(Authority.get(AuthorityName.ROLE_ADMIN)) && authorities.contains(Authority.get(AuthorityName.ROLE_CREATOR))) {
|
|
|
|
|
- Map<String, Object> query = pageQuery.getQuery();
|
|
|
|
|
- query.put("userId", user.getId());
|
|
|
|
|
- }
|
|
|
|
|
- return commissionRecordRepo.findAll(JpaUtils.toSpecification(pageQuery, CommissionRecord.class), JpaUtils.toPageRequest(pageQuery));
|
|
|
|
|
|
|
+ Map<String, Object> query = pageQuery.getQuery();
|
|
|
|
|
+ Object company = query.get("companyId");
|
|
|
|
|
+ query.remove("companyId");
|
|
|
|
|
+
|
|
|
|
|
+// if (!authorities.contains(Authority.get(AuthorityName.ROLE_ADMIN)) && authorities.contains(Authority.get(AuthorityName.ROLE_CREATOR))) {
|
|
|
|
|
+// Map<String, Object> query = pageQuery.getQuery();
|
|
|
|
|
+// query.put("userId", user.getId());
|
|
|
|
|
+// }
|
|
|
|
|
+ //return commissionRecordRepo.findAll(JpaUtils.toSpecification(pageQuery, CommissionRecord.class), JpaUtils.toPageRequest(pageQuery));
|
|
|
|
|
+
|
|
|
|
|
+ return commissionRecordRepo.findAll(((root, criteriaQuery, criteriaBuilder) -> {
|
|
|
|
|
+ List<Predicate> and = JpaUtils.toPredicates(pageQuery, CommissionRecord.class, root, criteriaQuery, criteriaBuilder);
|
|
|
|
|
+ if (StrUtil.isNotEmpty(pageQuery.getSearch())) {
|
|
|
|
|
+ withdrawService.getNickname(pageQuery.getSearch(), and, root, criteriaBuilder);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!authorities.contains(Authority.get(AuthorityName.ROLE_ADMIN))) {
|
|
|
|
|
+ List<Long> userIds = userRepo.findAllByCompanyIdAndDelFalse(user.getCompanyId())
|
|
|
|
|
+ .stream()
|
|
|
|
|
+ .map(User::getId)
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ and.add(root.get("userId").in(userIds));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ if (ObjectUtil.isNotEmpty(company)) {
|
|
|
|
|
+ List<Long> userIds = userRepo.findAllByCompanyIdAndDelFalse(Long.parseLong(String.valueOf(company)))
|
|
|
|
|
+ .stream()
|
|
|
|
|
+ .map(User::getId)
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ and.add(root.get("userId").in(userIds));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return criteriaBuilder.and(and.toArray(new Predicate[0]));
|
|
|
|
|
+ }), JpaUtils.toPageRequest(pageQuery));
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|