|
|
@@ -19,7 +19,6 @@ import shop.alien.entity.store.*;
|
|
|
import shop.alien.entity.store.dto.LifeUserOrderDto;
|
|
|
import shop.alien.entity.store.excelVo.LifeUserOrderExcelVo;
|
|
|
import shop.alien.entity.store.excelVo.util.ExcelGenerator;
|
|
|
-import shop.alien.entity.store.vo.LifeUserOrderListWithStatisticsVO;
|
|
|
import shop.alien.entity.store.vo.LifeUserOrderVo;
|
|
|
import shop.alien.entity.store.vo.StoreInfoVo;
|
|
|
import shop.alien.entity.store.vo.WebSocketVo;
|
|
|
@@ -1038,6 +1037,56 @@ public class LifeUserOrderService extends ServiceImpl<LifeUserOrderMapper, LifeU
|
|
|
private static final String TIME_END_SUFFIX = " 23:59:59";
|
|
|
|
|
|
/**
|
|
|
+ * Map key:订单列表
|
|
|
+ */
|
|
|
+ private static final String KEY_ORDER_LIST = "orderList";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Map key:待支付订单数量
|
|
|
+ */
|
|
|
+ private static final String KEY_WAIT_PAY_COUNT = "waitPayCount";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Map key:已支付/待使用订单数量
|
|
|
+ */
|
|
|
+ private static final String KEY_WAIT_USE_COUNT = "waitUseCount";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Map key:已核销订单数量
|
|
|
+ */
|
|
|
+ private static final String KEY_USED_COUNT = "usedCount";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Map key:已过期订单数量
|
|
|
+ */
|
|
|
+ private static final String KEY_EXPIRE_COUNT = "expireCount";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Map key:已取消订单数量
|
|
|
+ */
|
|
|
+ private static final String KEY_CANCEL_COUNT = "cancelCount";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Map key:已退款订单数量
|
|
|
+ */
|
|
|
+ private static final String KEY_REFUND_COUNT = "refundCount";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Map key:退款失败订单数量
|
|
|
+ */
|
|
|
+ private static final String KEY_REFUND_FAILED_COUNT = "refundFailedCount";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Map key:已完成订单数量
|
|
|
+ */
|
|
|
+ private static final String KEY_COMPLETE_COUNT = "completeCount";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Map key:全部订单数量
|
|
|
+ */
|
|
|
+ private static final String KEY_TOTAL_ORDER_COUNT = "total";
|
|
|
+
|
|
|
+ /**
|
|
|
* 查询用户订单列表(包含各状态订单数量统计)
|
|
|
*
|
|
|
* @param page 页码
|
|
|
@@ -1049,9 +1098,9 @@ public class LifeUserOrderService extends ServiceImpl<LifeUserOrderMapper, LifeU
|
|
|
* @param name 订单名称
|
|
|
* @param startTime 开始时间
|
|
|
* @param endTime 结束时间
|
|
|
- * @return 订单列表及统计信息
|
|
|
+ * @return 订单列表及统计信息Map
|
|
|
*/
|
|
|
- public LifeUserOrderListWithStatisticsVO queryUserOrderListWithStatistics(
|
|
|
+ public Map<String, Object> queryUserOrderListWithStatistics(
|
|
|
Integer page, Integer size, String userId, String storeId, String couponType,
|
|
|
String orderStatus, String name, String startTime, String endTime) {
|
|
|
// 查询订单列表
|
|
|
@@ -1065,15 +1114,29 @@ public class LifeUserOrderService extends ServiceImpl<LifeUserOrderMapper, LifeU
|
|
|
// 统计各状态订单数量
|
|
|
List<Map<String, Object>> statusCountList = lifeUserOrderMapper.countOrdersByStatus(statisticsQueryWrapper);
|
|
|
|
|
|
- // 构建返回结果
|
|
|
- LifeUserOrderListWithStatisticsVO result = new LifeUserOrderListWithStatisticsVO();
|
|
|
- result.setOrderList(orderList);
|
|
|
+ // 统计全部订单数量
|
|
|
+ Long totalOrderCount = lifeUserOrderMapper.countTotalOrders(statisticsQueryWrapper);
|
|
|
+ if (totalOrderCount == null) {
|
|
|
+ totalOrderCount = DEFAULT_ORDER_COUNT;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 构建返回结果Map
|
|
|
+ Map<String, Object> result = new HashMap<>(16);
|
|
|
+ result.put(KEY_ORDER_LIST, orderList.getRecords());
|
|
|
+ result.put(KEY_TOTAL_ORDER_COUNT, totalOrderCount);
|
|
|
|
|
|
// 初始化各状态订单数量
|
|
|
- initializeStatusCounts(result);
|
|
|
+ result.put(KEY_WAIT_PAY_COUNT, DEFAULT_ORDER_COUNT);
|
|
|
+ result.put(KEY_WAIT_USE_COUNT, DEFAULT_ORDER_COUNT);
|
|
|
+ result.put(KEY_USED_COUNT, DEFAULT_ORDER_COUNT);
|
|
|
+ result.put(KEY_EXPIRE_COUNT, DEFAULT_ORDER_COUNT);
|
|
|
+ result.put(KEY_CANCEL_COUNT, DEFAULT_ORDER_COUNT);
|
|
|
+ result.put(KEY_REFUND_COUNT, DEFAULT_ORDER_COUNT);
|
|
|
+ result.put(KEY_REFUND_FAILED_COUNT, DEFAULT_ORDER_COUNT);
|
|
|
+ result.put(KEY_COMPLETE_COUNT, DEFAULT_ORDER_COUNT);
|
|
|
|
|
|
// 填充各状态订单数量
|
|
|
- fillStatusCounts(result, statusCountList);
|
|
|
+ fillStatusCountsToMap(result, statusCountList);
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
@@ -1109,29 +1172,13 @@ public class LifeUserOrderService extends ServiceImpl<LifeUserOrderMapper, LifeU
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 初始化各状态订单数量为0
|
|
|
- *
|
|
|
- * @param result 结果对象
|
|
|
- */
|
|
|
- private void initializeStatusCounts(LifeUserOrderListWithStatisticsVO result) {
|
|
|
- result.setWaitPayCount(DEFAULT_ORDER_COUNT);
|
|
|
- result.setWaitUseCount(DEFAULT_ORDER_COUNT);
|
|
|
- result.setUsedCount(DEFAULT_ORDER_COUNT);
|
|
|
- result.setExpireCount(DEFAULT_ORDER_COUNT);
|
|
|
- result.setCancelCount(DEFAULT_ORDER_COUNT);
|
|
|
- result.setRefundCount(DEFAULT_ORDER_COUNT);
|
|
|
- result.setRefundFailedCount(DEFAULT_ORDER_COUNT);
|
|
|
- result.setCompleteCount(DEFAULT_ORDER_COUNT);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 填充各状态订单数量
|
|
|
+ * 填充各状态订单数量到Map
|
|
|
*
|
|
|
- * @param result 结果对象
|
|
|
+ * @param result 结果Map
|
|
|
* @param statusCountList 状态统计列表
|
|
|
*/
|
|
|
- private void fillStatusCounts(LifeUserOrderListWithStatisticsVO result,
|
|
|
- List<Map<String, Object>> statusCountList) {
|
|
|
+ private void fillStatusCountsToMap(Map<String, Object> result,
|
|
|
+ List<Map<String, Object>> statusCountList) {
|
|
|
if (statusCountList == null || statusCountList.isEmpty()) {
|
|
|
return;
|
|
|
}
|
|
|
@@ -1140,35 +1187,35 @@ public class LifeUserOrderService extends ServiceImpl<LifeUserOrderMapper, LifeU
|
|
|
Integer status = getIntegerValue(item.get(KEY_ORDER_STATUS));
|
|
|
Long count = getLongValue(item.get(KEY_ORDER_COUNT));
|
|
|
if (status != null && count != null) {
|
|
|
- setStatusCount(result, status, count);
|
|
|
+ setStatusCountToMap(result, status, count);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 根据订单状态设置对应的数量
|
|
|
+ * 根据订单状态设置对应的数量到Map
|
|
|
*
|
|
|
- * @param result 结果对象
|
|
|
- * @param status 订单状态
|
|
|
- * @param count 订单数量
|
|
|
+ * @param result 结果Map
|
|
|
+ * @param status 订单状态
|
|
|
+ * @param count 订单数量
|
|
|
*/
|
|
|
- private void setStatusCount(LifeUserOrderListWithStatisticsVO result, Integer status, Long count) {
|
|
|
+ private void setStatusCountToMap(Map<String, Object> result, Integer status, Long count) {
|
|
|
if (OrderStatusEnum.WAIT_PAY.getStatus().equals(status)) {
|
|
|
- result.setWaitPayCount(count);
|
|
|
+ result.put(KEY_WAIT_PAY_COUNT, count);
|
|
|
} else if (OrderStatusEnum.WAIT_USE.getStatus().equals(status)) {
|
|
|
- result.setWaitUseCount(count);
|
|
|
+ result.put(KEY_WAIT_USE_COUNT, count);
|
|
|
} else if (OrderStatusEnum.USED.getStatus().equals(status)) {
|
|
|
- result.setUsedCount(count);
|
|
|
+ result.put(KEY_USED_COUNT, count);
|
|
|
} else if (OrderStatusEnum.EXPIRE.getStatus().equals(status)) {
|
|
|
- result.setExpireCount(count);
|
|
|
+ result.put(KEY_EXPIRE_COUNT, count);
|
|
|
} else if (OrderStatusEnum.CANCEL.getStatus().equals(status)) {
|
|
|
- result.setCancelCount(count);
|
|
|
+ result.put(KEY_CANCEL_COUNT, count);
|
|
|
} else if (OrderStatusEnum.REFUND.getStatus().equals(status)) {
|
|
|
- result.setRefundCount(count);
|
|
|
+ result.put(KEY_REFUND_COUNT, count);
|
|
|
} else if (OrderStatusEnum.REFUND_FAILED.getStatus().equals(status)) {
|
|
|
- result.setRefundFailedCount(count);
|
|
|
+ result.put(KEY_REFUND_FAILED_COUNT, count);
|
|
|
} else if (OrderStatusEnum.COMPLETE.getStatus().equals(status)) {
|
|
|
- result.setCompleteCount(count);
|
|
|
+ result.put(KEY_COMPLETE_COUNT, count);
|
|
|
}
|
|
|
}
|
|
|
|