mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-06-23 16:49:49 +08:00
新增 运营端小程序 查询订单数量趋势信息接口
This commit is contained in:
@@ -6,8 +6,9 @@ import com.jsowell.common.core.controller.BaseController;
|
|||||||
import com.jsowell.common.response.RestApiResponse;
|
import com.jsowell.common.response.RestApiResponse;
|
||||||
import com.jsowell.pile.dto.StationBusinessAnalyzeInfoDTO;
|
import com.jsowell.pile.dto.StationBusinessAnalyzeInfoDTO;
|
||||||
import com.jsowell.pile.dto.StationStatisticsInfoDTO;
|
import com.jsowell.pile.dto.StationStatisticsInfoDTO;
|
||||||
|
import com.jsowell.pile.service.OrderBasicInfoService;
|
||||||
import com.jsowell.pile.service.PileStationInfoService;
|
import com.jsowell.pile.service.PileStationInfoService;
|
||||||
import com.jsowell.pile.vo.StationBusinessAnalyzeInfoVO;
|
import com.jsowell.pile.vo.uniapp.business.StationBusinessAnalyzeInfoVO;
|
||||||
import com.jsowell.pile.vo.uniapp.business.StationStatisticsInfosVO;
|
import com.jsowell.pile.vo.uniapp.business.StationStatisticsInfosVO;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@@ -27,6 +28,9 @@ public class BusinessStationInfoController extends BaseController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private PileStationInfoService pileStationInfoService;
|
private PileStationInfoService pileStationInfoService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private OrderBasicInfoService orderBasicInfoService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取站点统计信息
|
* 获取站点统计信息
|
||||||
* @param dto
|
* @param dto
|
||||||
@@ -85,4 +89,22 @@ public class BusinessStationInfoController extends BaseController {
|
|||||||
logger.info("获取站点运营分析信息 params:{}, result:{}", JSONObject.toJSONString(dto), response);
|
logger.info("获取站点运营分析信息 params:{}, result:{}", JSONObject.toJSONString(dto), response);
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询订单数量趋势信息
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("/getStationOrderQuantityInfo")
|
||||||
|
public RestApiResponse<?> getStationOrderQuantityInfo(@RequestBody StationBusinessAnalyzeInfoDTO dto) {
|
||||||
|
RestApiResponse<?> response = null;
|
||||||
|
try {
|
||||||
|
StationBusinessAnalyzeInfoVO vo = pileStationInfoService.getStationOrderQuantityInfo(dto);
|
||||||
|
response = new RestApiResponse<>(ImmutableMap.of("stationBusinessAnalyzeInfoVO", vo));
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("查询订单数量趋势信息 error", e);
|
||||||
|
response = new RestApiResponse<>(e);
|
||||||
|
}
|
||||||
|
logger.info("查询订单数量趋势信息 params:{}, result:{}", JSONObject.toJSONString(dto), response);
|
||||||
|
return response;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import com.jsowell.pile.domain.OrderDetail;
|
|||||||
import com.jsowell.pile.dto.*;
|
import com.jsowell.pile.dto.*;
|
||||||
import com.jsowell.pile.dto.nanrui.NRQueryOrderDTO;
|
import com.jsowell.pile.dto.nanrui.NRQueryOrderDTO;
|
||||||
import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryOrdersInfoDTO;
|
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.SupStationStatsVO;
|
||||||
import com.jsowell.pile.vo.base.MerchantOrderInfoVO;
|
import com.jsowell.pile.vo.base.MerchantOrderInfoVO;
|
||||||
import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO;
|
import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import com.jsowell.pile.domain.SettleOrderReport;
|
|||||||
import com.jsowell.pile.dto.*;
|
import com.jsowell.pile.dto.*;
|
||||||
import com.jsowell.pile.dto.nanrui.NRQueryOrderDTO;
|
import com.jsowell.pile.dto.nanrui.NRQueryOrderDTO;
|
||||||
import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryOrdersInfoDTO;
|
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.SupStationStatsVO;
|
||||||
import com.jsowell.pile.vo.base.MerchantOrderInfoVO;
|
import com.jsowell.pile.vo.base.MerchantOrderInfoVO;
|
||||||
import com.jsowell.pile.vo.base.OrderAmountDetailVO;
|
import com.jsowell.pile.vo.base.OrderAmountDetailVO;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import com.jsowell.pile.dto.*;
|
|||||||
import com.jsowell.pile.dto.amap.GetStationInfoDTO;
|
import com.jsowell.pile.dto.amap.GetStationInfoDTO;
|
||||||
import com.jsowell.pile.dto.lutongyunting.BindParkingPlatformDTO;
|
import com.jsowell.pile.dto.lutongyunting.BindParkingPlatformDTO;
|
||||||
import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryStationInfoDTO;
|
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.base.ThirdPartyStationInfoVO;
|
||||||
import com.jsowell.pile.vo.ningxiajiaotou.NXJTStationInfoVO;
|
import com.jsowell.pile.vo.ningxiajiaotou.NXJTStationInfoVO;
|
||||||
import com.jsowell.pile.vo.uniapp.business.StationStatisticsInfosVO;
|
import com.jsowell.pile.vo.uniapp.business.StationStatisticsInfosVO;
|
||||||
@@ -178,4 +178,11 @@ public interface PileStationInfoService {
|
|||||||
* @param dto
|
* @param dto
|
||||||
*/
|
*/
|
||||||
StationBusinessAnalyzeInfoVO getStationMonthlyBusinessAnalyzeInfo(StationBusinessAnalyzeInfoDTO dto);
|
StationBusinessAnalyzeInfoVO getStationMonthlyBusinessAnalyzeInfo(StationBusinessAnalyzeInfoDTO dto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询订单数量趋势信息
|
||||||
|
* @param dto
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
StationBusinessAnalyzeInfoVO getStationOrderQuantityInfo(StationBusinessAnalyzeInfoDTO dto);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ import com.jsowell.pile.transaction.dto.ClearingBillTransactionDTO;
|
|||||||
import com.jsowell.pile.transaction.dto.OrderTransactionDTO;
|
import com.jsowell.pile.transaction.dto.OrderTransactionDTO;
|
||||||
import com.jsowell.pile.transaction.service.TransactionService;
|
import com.jsowell.pile.transaction.service.TransactionService;
|
||||||
import com.jsowell.pile.util.UserUtils;
|
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.SupStationStatsVO;
|
||||||
import com.jsowell.pile.vo.base.PileInfoVO;
|
import com.jsowell.pile.vo.base.PileInfoVO;
|
||||||
import com.jsowell.pile.vo.base.*;
|
import com.jsowell.pile.vo.base.*;
|
||||||
|
|||||||
@@ -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.domain.vo.AuthorizedDeptVO;
|
||||||
import com.jsowell.common.core.page.PageResponse;
|
import com.jsowell.common.core.page.PageResponse;
|
||||||
import com.jsowell.common.core.redis.RedisCache;
|
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.PileConnectorDataBaseStatusEnum;
|
||||||
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
|
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
|
||||||
import com.jsowell.common.exception.BusinessException;
|
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.mapper.PileStationInfoMapper;
|
||||||
import com.jsowell.pile.service.*;
|
import com.jsowell.pile.service.*;
|
||||||
import com.jsowell.pile.util.UserUtils;
|
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.StationBusinessAnalyzeInfoVO;
|
import com.jsowell.pile.vo.uniapp.business.StationBusinessAnalyzeInfoVO;
|
||||||
import com.jsowell.pile.vo.SupStationStatsVO;
|
|
||||||
import com.jsowell.pile.vo.base.*;
|
import com.jsowell.pile.vo.base.*;
|
||||||
import com.jsowell.pile.vo.ningxiajiaotou.NXJTStationInfoVO;
|
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.business.StationStatisticsInfosVO;
|
||||||
import com.jsowell.pile.vo.uniapp.customer.CurrentTimePriceDetails;
|
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.pile.vo.web.PileStationVO;
|
||||||
import com.jsowell.system.service.SysDeptService;
|
import com.jsowell.system.service.SysDeptService;
|
||||||
import com.jsowell.system.service.SysUserService;
|
import com.jsowell.system.service.SysUserService;
|
||||||
@@ -1035,4 +1033,73 @@ public class PileStationInfoServiceImpl implements PileStationInfoService {
|
|||||||
|
|
||||||
return vo;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.jsowell.pile.vo;
|
package com.jsowell.pile.vo.uniapp.business;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.jsowell.pile.vo;
|
package com.jsowell.pile.vo.uniapp.business;
|
||||||
|
|
||||||
import com.jsowell.pile.domain.SettleOrderReport;
|
import com.jsowell.pile.domain.SettleOrderReport;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
@@ -44,4 +44,9 @@ public class StationBusinessAnalyzeInfoVO {
|
|||||||
* 结算订单报表
|
* 结算订单报表
|
||||||
*/
|
*/
|
||||||
private List<SettleOrderReport> settleOrderReportList;
|
private List<SettleOrderReport> settleOrderReportList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点订单数量趋势
|
||||||
|
*/
|
||||||
|
private List<StationOrderQuantityInfoVO> stationOrderQuantityInfoList;
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -2954,7 +2954,7 @@
|
|||||||
and `t1`.`charge_end_time` <![CDATA[ >= ]]> #{startTime,jdbcType=VARCHAR}
|
and `t1`.`charge_end_time` <![CDATA[ >= ]]> #{startTime,jdbcType=VARCHAR}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getOrderDetailByStationIds" resultType="com.jsowell.pile.vo.BusinessOrderDetailInfoVO">
|
<select id="getOrderDetailByStationIds" resultType="com.jsowell.pile.vo.uniapp.business.BusinessOrderDetailInfoVO">
|
||||||
SELECT
|
SELECT
|
||||||
DATE_FORMAT( t1.create_time, '%Y-%m-%d' ) AS tradeDate,
|
DATE_FORMAT( t1.create_time, '%Y-%m-%d' ) AS tradeDate,
|
||||||
<!-- t1.order_code AS orderCode,-->
|
<!-- t1.order_code AS orderCode,-->
|
||||||
|
|||||||
Reference in New Issue
Block a user