|
@@ -2,7 +2,6 @@ package com.yohoufo.order.service.impl; |
|
@@ -2,7 +2,6 @@ package com.yohoufo.order.service.impl; |
2
|
|
2
|
|
3
|
import com.google.common.annotations.VisibleForTesting;
|
3
|
import com.google.common.annotations.VisibleForTesting;
|
4
|
import com.google.common.collect.Lists;
|
4
|
import com.google.common.collect.Lists;
|
5
|
-import com.yohoufo.common.utils.DateUtil;
|
|
|
6
|
import com.yohoufo.dal.order.InviteSettlementItemMapper;
|
5
|
import com.yohoufo.dal.order.InviteSettlementItemMapper;
|
7
|
import com.yohoufo.dal.order.InviteSettlementMapper;
|
6
|
import com.yohoufo.dal.order.InviteSettlementMapper;
|
8
|
import com.yohoufo.dal.order.InviterMapper;
|
7
|
import com.yohoufo.dal.order.InviterMapper;
|
|
@@ -30,8 +29,12 @@ import java.util.Collections; |
|
@@ -30,8 +29,12 @@ import java.util.Collections; |
30
|
import java.util.List;
|
29
|
import java.util.List;
|
31
|
import java.util.Map;
|
30
|
import java.util.Map;
|
32
|
import java.util.Objects;
|
31
|
import java.util.Objects;
|
|
|
32
|
+import java.util.function.Predicate;
|
33
|
import java.util.stream.Collectors;
|
33
|
import java.util.stream.Collectors;
|
34
|
|
34
|
|
|
|
35
|
+import static com.yohoufo.common.utils.DateUtil.formatYYMMddHHmmssPoint;
|
|
|
36
|
+import static com.yohoufo.dal.order.model.InviteSettlement.STATUS_WAIT_SETTLE;
|
|
|
37
|
+import static com.yohoufo.order.utils.InviteSettlementUtils.formatAmount;
|
35
|
import static com.yohoufo.order.utils.ServiceExceptions.throwServiceException;
|
38
|
import static com.yohoufo.order.utils.ServiceExceptions.throwServiceException;
|
36
|
|
39
|
|
37
|
/**
|
40
|
/**
|
|
@@ -72,9 +75,9 @@ public class InviteSettlementServiceImpl implements IInviteSettlementService { |
|
@@ -72,9 +75,9 @@ public class InviteSettlementServiceImpl implements IInviteSettlementService { |
72
|
.map(inviteSettlement -> {
|
75
|
.map(inviteSettlement -> {
|
73
|
InviteSettlementListVO.InviteSettlementVO item = new InviteSettlementListVO.InviteSettlementVO();
|
76
|
InviteSettlementListVO.InviteSettlementVO item = new InviteSettlementListVO.InviteSettlementVO();
|
74
|
item.setSettleCode(String.format("%010d", inviteSettlement.getSettleCode()));
|
77
|
item.setSettleCode(String.format("%010d", inviteSettlement.getSettleCode()));
|
75
|
- item.setSettleAmount(InviteSettlementUtils.format("+%s", inviteSettlement.getSettleAmount()));
|
|
|
76
|
- item.setSettleTime(DateUtil.formatYYMMddHHmmssPoint(inviteSettlement.getSettleTime()));
|
|
|
77
|
- item.setPaidTime(DateUtil.formatYYMMddHHmmssPoint(inviteSettlement.getPaidTime()));
|
78
|
+ item.setSettleAmount(formatAmount("+%s", inviteSettlement.getSettleAmount()));
|
|
|
79
|
+ item.setSettleTime(formatYYMMddHHmmssPoint(inviteSettlement.getSettleTime()));
|
|
|
80
|
+ item.setPaidTime(formatYYMMddHHmmssPoint(inviteSettlement.getPaidTime()));
|
78
|
return item;
|
81
|
return item;
|
79
|
})
|
82
|
})
|
80
|
.collect(Collectors.toList());
|
83
|
.collect(Collectors.toList());
|
|
@@ -97,10 +100,14 @@ public class InviteSettlementServiceImpl implements IInviteSettlementService { |
|
@@ -97,10 +100,14 @@ public class InviteSettlementServiceImpl implements IInviteSettlementService { |
97
|
.pageSize(limit)
|
100
|
.pageSize(limit)
|
98
|
.pageTotal((totalElements % limit == 0) ? (totalElements / limit) : (totalElements / limit + 1))
|
101
|
.pageTotal((totalElements % limit == 0) ? (totalElements / limit) : (totalElements / limit + 1))
|
99
|
.totalElements(totalElements)
|
102
|
.totalElements(totalElements)
|
100
|
- .totalOrderAmount(InviteSettlementUtils.format(totalOrderAmount))
|
|
|
101
|
- .totalSettleAmount(InviteSettlementUtils.format(totalSettleAmount));
|
103
|
+ .totalOrderAmount(formatAmount(totalOrderAmount))
|
|
|
104
|
+ .totalSettleAmount(formatAmount(totalSettleAmount));
|
102
|
if (totalElements == 0) {
|
105
|
if (totalElements == 0) {
|
103
|
- return builder.list(Lists.newArrayList()).build();
|
106
|
+ return builder
|
|
|
107
|
+ .paidAmount(formatAmount(BigDecimal.ZERO))
|
|
|
108
|
+ .waitPayAmount(formatAmount(BigDecimal.ZERO))
|
|
|
109
|
+ .list(Lists.newArrayList())
|
|
|
110
|
+ .build();
|
104
|
}
|
111
|
}
|
105
|
int start = (page - 1) * limit;
|
112
|
int start = (page - 1) * limit;
|
106
|
List<InviteSettlementItem> list = inviteSettlementItemMapper.select(uid, settlementType, time.getLeft(), time.getRight(), start, limit);
|
113
|
List<InviteSettlementItem> list = inviteSettlementItemMapper.select(uid, settlementType, time.getLeft(), time.getRight(), start, limit);
|
|
@@ -110,18 +117,30 @@ public class InviteSettlementServiceImpl implements IInviteSettlementService { |
|
@@ -110,18 +117,30 @@ public class InviteSettlementServiceImpl implements IInviteSettlementService { |
110
|
.filter(Objects::nonNull)
|
117
|
.filter(Objects::nonNull)
|
111
|
.distinct()
|
118
|
.distinct()
|
112
|
.collect(Collectors.toList()));
|
119
|
.collect(Collectors.toList()));
|
|
|
120
|
+
|
|
|
121
|
+ Predicate<InviteSettlementItem> itemHasPaid = item -> {
|
|
|
122
|
+ int status = settlementStatusMap.getOrDefault(item.getInviteSettlementId(), STATUS_WAIT_SETTLE).intValue();
|
|
|
123
|
+ return InviteSettlement.STATUS_PAID == status;
|
|
|
124
|
+ };
|
|
|
125
|
+
|
113
|
return builder
|
126
|
return builder
|
114
|
- .list(list.stream().map(item -> {
|
|
|
115
|
- Integer settlementStatus = settlementStatusMap.getOrDefault(item.getInviteSettlementId(), InviteSettlement.STATUS_WAIT_SETTLE);
|
|
|
116
|
- InviteSettlementItemListVO.InviteSettlementItemVO vo = new InviteSettlementItemListVO.InviteSettlementItemVO();
|
|
|
117
|
- vo.setBuyerOrderCode(item.getBuyerOrderCode().toString());
|
|
|
118
|
- vo.setSellerName(sellerUidNickNameMap.get(item.getSellerUid()));
|
|
|
119
|
- vo.setOrderAmount(InviteSettlementUtils.format(item.getOrderAmount()));
|
|
|
120
|
- vo.setOrderCreateTime(DateUtil.formatYYMMddHHmmssPoint(item.getOrderCreateTime()));
|
|
|
121
|
- vo.setSettleAmount(InviteSettlementUtils.format(item.getSettleAmount()));
|
|
|
122
|
- vo.setStatusDesc(settlementStatus.equals(InviteSettlement.STATUS_PAID) ? "已付款" : "待付款");
|
|
|
123
|
- return vo;
|
|
|
124
|
- }).collect(Collectors.toList()))
|
127
|
+ .paidAmount(formatAmount(list.stream()
|
|
|
128
|
+ .filter(itemHasPaid)
|
|
|
129
|
+ .map(InviteSettlementItem::getSettleAmount)
|
|
|
130
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)))
|
|
|
131
|
+ .waitPayAmount(formatAmount(list.stream()
|
|
|
132
|
+ .filter(itemHasPaid.negate())
|
|
|
133
|
+ .map(InviteSettlementItem::getSettleAmount)
|
|
|
134
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add)))
|
|
|
135
|
+ .list(list.stream()
|
|
|
136
|
+ .map(item -> new InviteSettlementItemListVO.InviteSettlementItemVO()
|
|
|
137
|
+ .setBuyerOrderCode(item.getBuyerOrderCode().toString())
|
|
|
138
|
+ .setSellerName(sellerUidNickNameMap.get(item.getSellerUid()))
|
|
|
139
|
+ .setOrderAmount(formatAmount(item.getOrderAmount()))
|
|
|
140
|
+ .setOrderCreateTime(formatYYMMddHHmmssPoint(item.getOrderCreateTime()))
|
|
|
141
|
+ .setSettleAmount(formatAmount(item.getSettleAmount()))
|
|
|
142
|
+ .setStatusDesc(itemHasPaid.test(item) ? "已付款" : "待付款"))
|
|
|
143
|
+ .collect(Collectors.toList()))
|
125
|
.build();
|
144
|
.build();
|
126
|
}
|
145
|
}
|
127
|
|
146
|
|