|
|
@@ -1,14 +1,18 @@
|
|
|
package com.izouma.jiashanxia.service;
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.izouma.jiashanxia.domain.CommissionRecord;
|
|
|
import com.izouma.jiashanxia.domain.User;
|
|
|
import com.izouma.jiashanxia.domain.Withdraw;
|
|
|
+import com.izouma.jiashanxia.dto.CommissionRecordDTO;
|
|
|
import com.izouma.jiashanxia.dto.PageQuery;
|
|
|
import com.izouma.jiashanxia.enums.AuthorityName;
|
|
|
+import com.izouma.jiashanxia.enums.TransactionType;
|
|
|
import com.izouma.jiashanxia.repo.CommissionRecordRepo;
|
|
|
import com.izouma.jiashanxia.repo.UserRepo;
|
|
|
+import com.izouma.jiashanxia.repo.WithdrawRepo;
|
|
|
import com.izouma.jiashanxia.security.Authority;
|
|
|
import com.izouma.jiashanxia.utils.JpaUtils;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
@@ -16,6 +20,7 @@ import org.springframework.data.domain.Page;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.persistence.criteria.Predicate;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Set;
|
|
|
@@ -28,6 +33,7 @@ public class CommissionRecordService {
|
|
|
private CommissionRecordRepo commissionRecordRepo;
|
|
|
private WithdrawService withdrawService;
|
|
|
private UserRepo userRepo;
|
|
|
+ private WithdrawRepo withdrawRepo;
|
|
|
|
|
|
public Page<CommissionRecord> all(PageQuery pageQuery) {
|
|
|
pageQuery.setSort("createdAt,desc");
|
|
|
@@ -74,4 +80,39 @@ public class CommissionRecordService {
|
|
|
}), JpaUtils.toPageRequest(pageQuery));
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ /*
|
|
|
+ 我的
|
|
|
+ */
|
|
|
+ public List<CommissionRecordDTO> my(Long userId) {
|
|
|
+ List<CommissionRecordDTO> my = new ArrayList<>();
|
|
|
+ List<CommissionRecord> recordList = commissionRecordRepo.findAllByUserIdAndTransactionTypeNot(userId, TransactionType.WITHDRAW);
|
|
|
+ Set<Long> fromUserId = recordList.stream().map(CommissionRecord::getFromUserId).collect(Collectors.toSet());
|
|
|
+ Map<Long, User> userMap = userRepo.findAllById(fromUserId)
|
|
|
+ .stream()
|
|
|
+ .collect(Collectors.toMap(User::getId, user -> user));
|
|
|
+ recordList.forEach(record -> {
|
|
|
+ CommissionRecordDTO dto = new CommissionRecordDTO();
|
|
|
+ BeanUtil.copyProperties(record, dto);
|
|
|
+ User fromUser = userMap.get(record.getFromUserId());
|
|
|
+ if (ObjectUtil.isNotEmpty(fromUser)) {
|
|
|
+ dto.setRemark(fromUser.getNickname());
|
|
|
+ }
|
|
|
+ my.add(dto);
|
|
|
+ });
|
|
|
+
|
|
|
+ List<Withdraw> withdraws = withdrawRepo.findAllByUserId(userId);
|
|
|
+ withdraws.forEach(withdraw ->
|
|
|
+ my.add(CommissionRecordDTO.builder()
|
|
|
+ .userId(userId)
|
|
|
+ .amount(withdraw.getAmount().negate())
|
|
|
+ .createdAt(withdraw.getCreatedAt())
|
|
|
+ .remark("提现账号:" + withdraw.getAccount())
|
|
|
+ .transactionType(TransactionType.WITHDRAW)
|
|
|
+ .withdrawStatus(withdraw.getStatus())
|
|
|
+ .build()
|
|
|
+ ));
|
|
|
+ return my;
|
|
|
+
|
|
|
+ }
|
|
|
}
|