新增 运营端小程序 查询订单数量趋势信息接口

This commit is contained in:
Lemon
2024-08-08 14:04:17 +08:00
parent cd6feb7aa3
commit 1054c1fe51
10 changed files with 147 additions and 13 deletions

View File

@@ -5,7 +5,7 @@ import com.jsowell.pile.domain.OrderDetail;
import com.jsowell.pile.dto.*;
import com.jsowell.pile.dto.nanrui.NRQueryOrderDTO;
import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryOrdersInfoDTO;
import com.jsowell.pile.vo.BusinessOrderDetailInfoVO;
import com.jsowell.pile.vo.uniapp.business.BusinessOrderDetailInfoVO;
import com.jsowell.pile.vo.SupStationStatsVO;
import com.jsowell.pile.vo.base.MerchantOrderInfoVO;
import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO;

View File

@@ -12,7 +12,7 @@ import com.jsowell.pile.domain.SettleOrderReport;
import com.jsowell.pile.dto.*;
import com.jsowell.pile.dto.nanrui.NRQueryOrderDTO;
import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryOrdersInfoDTO;
import com.jsowell.pile.vo.BusinessOrderDetailInfoVO;
import com.jsowell.pile.vo.uniapp.business.BusinessOrderDetailInfoVO;
import com.jsowell.pile.vo.SupStationStatsVO;
import com.jsowell.pile.vo.base.MerchantOrderInfoVO;
import com.jsowell.pile.vo.base.OrderAmountDetailVO;

View File

@@ -6,7 +6,7 @@ import com.jsowell.pile.dto.*;
import com.jsowell.pile.dto.amap.GetStationInfoDTO;
import com.jsowell.pile.dto.lutongyunting.BindParkingPlatformDTO;
import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryStationInfoDTO;
import com.jsowell.pile.vo.StationBusinessAnalyzeInfoVO;
import com.jsowell.pile.vo.uniapp.business.StationBusinessAnalyzeInfoVO;
import com.jsowell.pile.vo.base.ThirdPartyStationInfoVO;
import com.jsowell.pile.vo.ningxiajiaotou.NXJTStationInfoVO;
import com.jsowell.pile.vo.uniapp.business.StationStatisticsInfosVO;
@@ -178,4 +178,11 @@ public interface PileStationInfoService {
* @param dto
*/
StationBusinessAnalyzeInfoVO getStationMonthlyBusinessAnalyzeInfo(StationBusinessAnalyzeInfoDTO dto);
/**
* 查询订单数量趋势信息
* @param dto
* @return
*/
StationBusinessAnalyzeInfoVO getStationOrderQuantityInfo(StationBusinessAnalyzeInfoDTO dto);
}

View File

@@ -49,7 +49,7 @@ import com.jsowell.pile.transaction.dto.ClearingBillTransactionDTO;
import com.jsowell.pile.transaction.dto.OrderTransactionDTO;
import com.jsowell.pile.transaction.service.TransactionService;
import com.jsowell.pile.util.UserUtils;
import com.jsowell.pile.vo.BusinessOrderDetailInfoVO;
import com.jsowell.pile.vo.uniapp.business.BusinessOrderDetailInfoVO;
import com.jsowell.pile.vo.SupStationStatsVO;
import com.jsowell.pile.vo.base.PileInfoVO;
import com.jsowell.pile.vo.base.*;

View File

@@ -10,7 +10,6 @@ import com.jsowell.common.core.domain.entity.SysUser;
import com.jsowell.common.core.domain.vo.AuthorizedDeptVO;
import com.jsowell.common.core.page.PageResponse;
import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.enums.thirdparty.BusinessInformationExchangeEnum;
import com.jsowell.common.enums.ykc.PileConnectorDataBaseStatusEnum;
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
import com.jsowell.common.exception.BusinessException;
@@ -27,14 +26,13 @@ import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryStationInfoDTO;
import com.jsowell.pile.mapper.PileStationInfoMapper;
import com.jsowell.pile.service.*;
import com.jsowell.pile.util.UserUtils;
import com.jsowell.pile.vo.BusinessOrderDetailInfoVO;
import com.jsowell.pile.vo.StationBusinessAnalyzeInfoVO;
import com.jsowell.pile.vo.SupStationStatsVO;
import com.jsowell.pile.vo.uniapp.business.BusinessOrderDetailInfoVO;
import com.jsowell.pile.vo.uniapp.business.StationBusinessAnalyzeInfoVO;
import com.jsowell.pile.vo.base.*;
import com.jsowell.pile.vo.ningxiajiaotou.NXJTStationInfoVO;
import com.jsowell.pile.vo.uniapp.business.StationOrderQuantityInfoVO;
import com.jsowell.pile.vo.uniapp.business.StationStatisticsInfosVO;
import com.jsowell.pile.vo.uniapp.customer.CurrentTimePriceDetails;
import com.jsowell.pile.vo.web.MerchantOrderReportVO;
import com.jsowell.pile.vo.web.PileStationVO;
import com.jsowell.system.service.SysDeptService;
import com.jsowell.system.service.SysUserService;
@@ -1035,4 +1033,73 @@ public class PileStationInfoServiceImpl implements PileStationInfoService {
return vo;
}
/**
* 查询订单数量趋势信息
* @param dto
* @return
*/
@Override
public StationBusinessAnalyzeInfoVO getStationOrderQuantityInfo(StationBusinessAnalyzeInfoDTO dto) {
StationBusinessAnalyzeInfoVO vo = new StationBusinessAnalyzeInfoVO();
List<String> stationIds = dto.getStationIds();
String type = dto.getType();
String startTime = "";
String endTime = "";
if (StringUtils.equals(Constants.ONE, type)) {
// 7天
startTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.addDays(new Date(), -7));
endTime = DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD);
} else if (StringUtils.equals(Constants.TWO, type)) {
// 30天
startTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.addDays(new Date(), -30));
endTime = DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD);
}else if (StringUtils.equals(Constants.THREE, type)) {
// 一年
startTime = DateUtils.getFirstDayOfLastYearMonth();
endTime = DateUtils.getLastDayOfCurrentMonth();
}
// 根据站点id、开始时间、结束时间查询订单日报表
List<SettleOrderReport> settleOrderReports = settleOrderReportService.queryOrderReport(stationIds, startTime, endTime);
if (CollectionUtils.isEmpty(settleOrderReports)) {
return vo;
}
// 根据交易日期汇总订单数量(充电次数)
// key: 交易日期 value: SettleOrderReport
Map<String, SettleOrderReport> collect = new LinkedHashMap<>();
if (StringUtils.equals(Constants.ONE, type) || StringUtils.equals(Constants.TWO, type)) {
collect = settleOrderReports.stream()
.sorted(Comparator.comparing(SettleOrderReport::getTradeDate))
.collect(Collectors.toMap(SettleOrderReport::getTradeDate, Function.identity(),
(a, b) -> {
a.setChargeNum(String.valueOf(new BigDecimal(a.getChargeNum()).add(new BigDecimal(b.getChargeNum()))));
return a;
}));
}else {
collect = settleOrderReports.stream()
.peek(report -> {
LocalDate date = LocalDate.parse(report.getTradeDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd"));
String formattedDate = date.format(DateTimeFormatter.ofPattern("yyyy-MM"));
report.setTradeDate(formattedDate);
})
.collect(Collectors.toMap(SettleOrderReport::getTradeDate, Function.identity(),
(a, b) -> {
a.setChargeNum(String.valueOf(new BigDecimal(a.getChargeNum()).add(new BigDecimal(b.getChargeNum()))));
return a;
}));
}
TreeMap<String, SettleOrderReport> map = new TreeMap<>(collect);
List<StationOrderQuantityInfoVO> list = new ArrayList<>();
for (SettleOrderReport settleOrderReport : map.values()) {
StationOrderQuantityInfoVO orderQuantityInfoVO = new StationOrderQuantityInfoVO();
orderQuantityInfoVO.setTradeDate(settleOrderReport.getTradeDate());
orderQuantityInfoVO.setOrderNumber(Integer.parseInt(settleOrderReport.getChargeNum()));
list.add(orderQuantityInfoVO);
}
vo.setStationOrderQuantityInfoList(list);
return vo;
}
}

View File

@@ -1,4 +1,4 @@
package com.jsowell.pile.vo;
package com.jsowell.pile.vo.uniapp.business;
import lombok.AllArgsConstructor;
import lombok.Builder;

View File

@@ -1,4 +1,4 @@
package com.jsowell.pile.vo;
package com.jsowell.pile.vo.uniapp.business;
import com.jsowell.pile.domain.SettleOrderReport;
import lombok.AllArgsConstructor;
@@ -44,4 +44,9 @@ public class StationBusinessAnalyzeInfoVO {
* 结算订单报表
*/
private List<SettleOrderReport> settleOrderReportList;
/**
* 站点订单数量趋势
*/
private List<StationOrderQuantityInfoVO> stationOrderQuantityInfoList;
}

View File

@@ -0,0 +1,33 @@
package com.jsowell.pile.vo.uniapp.business;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 站点订单数量趋势信息VO
*
* @author Lemon
* @Date 2024/8/7 15:56:44
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class StationOrderQuantityInfoVO {
/**
* 站点id
*/
// private String stationId;
/**
* 交易日期
*/
private String tradeDate;
/**
* 订单数量
*/
private int orderNumber;
}