fix: exclude cancelled orders from performance stats
Some checks failed
Build and Push Backend / docker (push) Failing after 4s
Some checks failed
Build and Push Backend / docker (push) Failing after 4s
This commit is contained in:
@@ -241,7 +241,6 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl<PlayOrderInfoMapper, P
|
||||
public List<PlayOrderInfoEntity> listByEndTime(String clerkId, LocalDateTime endTime) {
|
||||
MPJLambdaWrapper<PlayOrderInfoEntity> lambdaQueryWrapper = new MPJLambdaWrapper<>();
|
||||
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getAcceptBy, clerkId);
|
||||
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getOrderStatus, OrderStatus.COMPLETED.getCode());
|
||||
lambdaQueryWrapper.lt(PlayOrderInfoEntity::getOrderEndTime, endTime);
|
||||
lambdaQueryWrapper.eq(PlayOrderInfoEntity::getOrderSettlementState, "0");
|
||||
return this.baseMapper.selectList(lambdaQueryWrapper);
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.starry.admin.modules.clerk.module.entity.PlayClerkLevelInfoEntity;
|
||||
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity;
|
||||
import com.starry.admin.modules.clerk.service.IPlayClerkLevelInfoService;
|
||||
import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService;
|
||||
import com.starry.admin.modules.order.module.constant.OrderConstant;
|
||||
import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity;
|
||||
import com.starry.admin.modules.order.service.IPlayOrderInfoService;
|
||||
import com.starry.admin.modules.personnel.module.entity.PlayPersonnelGroupInfoEntity;
|
||||
@@ -209,6 +210,7 @@ public class PlayClerkPerformanceController {
|
||||
int orderContinueNumber = 0;
|
||||
int orderRefundNumber = 0;
|
||||
int ordersExpiredNumber = 0;
|
||||
int completedOrders = 0;
|
||||
BigDecimal orderMoney = BigDecimal.ZERO;
|
||||
BigDecimal finalAmount = BigDecimal.ZERO;
|
||||
BigDecimal orderFirstAmount = BigDecimal.ZERO;
|
||||
@@ -217,6 +219,10 @@ public class PlayClerkPerformanceController {
|
||||
BigDecimal orderRefundAmount = BigDecimal.ZERO;
|
||||
BigDecimal estimatedRevenue = BigDecimal.ZERO;
|
||||
for (PlayOrderInfoEntity orderInfoEntity : orderInfoEntities) {
|
||||
if (!isCompletedOrder(orderInfoEntity)) {
|
||||
continue;
|
||||
}
|
||||
completedOrders++;
|
||||
customIds.add(orderInfoEntity.getPurchaserBy());
|
||||
finalAmount = finalAmount.add(orderInfoEntity.getFinalAmount());
|
||||
orderMoney = orderMoney.add(orderInfoEntity.getOrderMoney());
|
||||
@@ -238,7 +244,7 @@ public class PlayClerkPerformanceController {
|
||||
}
|
||||
}
|
||||
PlayClerkPerformanceInfoReturnVo returnVo = new PlayClerkPerformanceInfoReturnVo();
|
||||
returnVo.setOrderNumber(orderInfoEntities.size());
|
||||
returnVo.setOrderNumber(completedOrders);
|
||||
returnVo.setOrderContinueNumber(orderContinueNumber);
|
||||
returnVo.setOrderRefundNumber(orderRefundNumber);
|
||||
returnVo.setOrdersExpiredNumber(ordersExpiredNumber);
|
||||
@@ -281,6 +287,7 @@ public class PlayClerkPerformanceController {
|
||||
int orderContinueNumber = 0;
|
||||
int orderRefundNumber = 0;
|
||||
int ordersExpiredNumber = 0;
|
||||
int completedOrders = 0;
|
||||
BigDecimal orderMoney = BigDecimal.ZERO;
|
||||
BigDecimal finalAmount = BigDecimal.ZERO;
|
||||
BigDecimal orderFirstAmount = BigDecimal.ZERO;
|
||||
@@ -289,6 +296,10 @@ public class PlayClerkPerformanceController {
|
||||
BigDecimal orderRefundAmount = BigDecimal.ZERO;
|
||||
BigDecimal estimatedRevenue = BigDecimal.ZERO;
|
||||
for (PlayOrderInfoEntity orderInfoEntity : itemOrderInfo) {
|
||||
if (!isCompletedOrder(orderInfoEntity)) {
|
||||
continue;
|
||||
}
|
||||
completedOrders++;
|
||||
customIds.add(orderInfoEntity.getPurchaserBy());
|
||||
finalAmount = finalAmount.add(orderInfoEntity.getFinalAmount());
|
||||
orderMoney = orderMoney.add(orderInfoEntity.getOrderMoney());
|
||||
@@ -311,7 +322,7 @@ public class PlayClerkPerformanceController {
|
||||
}
|
||||
PlayClerkPerformanceInfoReturnVo returnVo = new PlayClerkPerformanceInfoReturnVo();
|
||||
returnVo.setPerformanceDate(performanceDate);
|
||||
returnVo.setOrderNumber(itemOrderInfo.size());
|
||||
returnVo.setOrderNumber(completedOrders);
|
||||
returnVo.setOrderContinueNumber(orderContinueNumber);
|
||||
returnVo.setOrderRefundNumber(orderRefundNumber);
|
||||
returnVo.setOrdersExpiredNumber(ordersExpiredNumber);
|
||||
@@ -326,4 +337,9 @@ public class PlayClerkPerformanceController {
|
||||
return returnVo;
|
||||
}
|
||||
|
||||
private boolean isCompletedOrder(PlayOrderInfoEntity orderInfoEntity) {
|
||||
return orderInfoEntity != null
|
||||
&& OrderConstant.OrderStatus.COMPLETED.getCode().equals(orderInfoEntity.getOrderStatus());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -77,6 +77,7 @@ public class PlayClerkPerformanceServiceImpl implements IPlayClerkPerformanceSer
|
||||
int orderContinueNumber = 0;
|
||||
int orderRefundNumber = 0;
|
||||
int ordersExpiredNumber = 0;
|
||||
int completedOrderCount = 0;
|
||||
BigDecimal finalAmount = BigDecimal.ZERO;
|
||||
BigDecimal orderFirstAmount = BigDecimal.ZERO;
|
||||
BigDecimal orderTotalAmount = BigDecimal.ZERO;
|
||||
@@ -84,6 +85,10 @@ public class PlayClerkPerformanceServiceImpl implements IPlayClerkPerformanceSer
|
||||
BigDecimal orderRefundAmount = BigDecimal.ZERO;
|
||||
|
||||
for (PlayOrderInfoEntity orderInfoEntity : orderInfoEntities) {
|
||||
if (!isCompletedOrder(orderInfoEntity)) {
|
||||
continue;
|
||||
}
|
||||
completedOrderCount++;
|
||||
customIds.add(orderInfoEntity.getPurchaserBy());
|
||||
finalAmount = finalAmount.add(defaultZero(orderInfoEntity.getFinalAmount()));
|
||||
if (OrderConstant.YesNoFlag.YES.getCode().equals(orderInfoEntity.getFirstOrder())) {
|
||||
@@ -121,7 +126,7 @@ public class PlayClerkPerformanceServiceImpl implements IPlayClerkPerformanceSer
|
||||
returnVo.setGroupName(infoEntity.getGroupName());
|
||||
}
|
||||
}
|
||||
returnVo.setOrderNumber(orderInfoEntities.size());
|
||||
returnVo.setOrderNumber(completedOrderCount);
|
||||
returnVo.setOrderContinueNumber(orderContinueNumber);
|
||||
returnVo.setOrderRefundNumber(orderRefundNumber);
|
||||
returnVo.setOrdersExpiredNumber(ordersExpiredNumber);
|
||||
@@ -223,7 +228,10 @@ public class PlayClerkPerformanceServiceImpl implements IPlayClerkPerformanceSer
|
||||
|
||||
private List<ClerkPerformanceTrendPointVo> buildTrend(List<PlayOrderInfoEntity> orders, DateRange range,
|
||||
int trendDays) {
|
||||
if (CollectionUtil.isEmpty(orders)) {
|
||||
List<PlayOrderInfoEntity> completedOrders = orders.stream()
|
||||
.filter(this::isCompletedOrder)
|
||||
.collect(Collectors.toList());
|
||||
if (CollectionUtil.isEmpty(completedOrders)) {
|
||||
return buildEmptyTrend(range, trendDays);
|
||||
}
|
||||
LocalDate end = range.endDate;
|
||||
@@ -231,7 +239,7 @@ public class PlayClerkPerformanceServiceImpl implements IPlayClerkPerformanceSer
|
||||
if (start.isBefore(range.startDate)) {
|
||||
start = range.startDate;
|
||||
}
|
||||
Map<LocalDate, List<PlayOrderInfoEntity>> grouped = orders.stream()
|
||||
Map<LocalDate, List<PlayOrderInfoEntity>> grouped = completedOrders.stream()
|
||||
.filter(order -> order.getPurchaserTime() != null)
|
||||
.collect(Collectors.groupingBy(order -> order.getPurchaserTime().toLocalDate()));
|
||||
List<ClerkPerformanceTrendPointVo> points = new ArrayList<>();
|
||||
@@ -421,6 +429,7 @@ public class PlayClerkPerformanceServiceImpl implements IPlayClerkPerformanceSer
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
List<String> orderIds = orders.stream()
|
||||
.filter(this::isCompletedOrder)
|
||||
.map(PlayOrderInfoEntity::getId)
|
||||
.filter(StrUtil::isNotBlank)
|
||||
.collect(Collectors.toList());
|
||||
@@ -453,7 +462,12 @@ public class PlayClerkPerformanceServiceImpl implements IPlayClerkPerformanceSer
|
||||
int refundCount = 0;
|
||||
int expiredCount = 0;
|
||||
Map<String, Integer> userOrderMap = new HashMap<>();
|
||||
int orderCount = 0;
|
||||
for (PlayOrderInfoEntity order : orders) {
|
||||
if (!isCompletedOrder(order)) {
|
||||
continue;
|
||||
}
|
||||
orderCount++;
|
||||
BigDecimal finalAmount = defaultZero(order.getFinalAmount());
|
||||
gmv = gmv.add(finalAmount);
|
||||
userOrderMap.merge(order.getPurchaserBy(), 1, Integer::sum);
|
||||
@@ -475,7 +489,6 @@ public class PlayClerkPerformanceServiceImpl implements IPlayClerkPerformanceSer
|
||||
expiredCount++;
|
||||
}
|
||||
}
|
||||
int orderCount = orders.size();
|
||||
int userCount = userOrderMap.size();
|
||||
int continuedUserCount = (int) userOrderMap.values().stream().filter(cnt -> cnt > 1).count();
|
||||
BigDecimal estimatedRevenue = calculateEarningsAmount(clerk.getId(), orders, startTime, endTime);
|
||||
@@ -568,6 +581,10 @@ public class PlayClerkPerformanceServiceImpl implements IPlayClerkPerformanceSer
|
||||
return value == null ? BigDecimal.ZERO : value;
|
||||
}
|
||||
|
||||
private boolean isCompletedOrder(PlayOrderInfoEntity order) {
|
||||
return order != null && OrderConstant.OrderStatus.COMPLETED.getCode().equals(order.getOrderStatus());
|
||||
}
|
||||
|
||||
private static final class DateRange {
|
||||
private final String startTime;
|
||||
private final String endTime;
|
||||
|
||||
Reference in New Issue
Block a user