From ee0e9aa82a0d952901b28ec58a2030d97f80f205 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 28 四月 2025 12:41:15 +0800
Subject: [PATCH] 引流平台校验token
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 143 ++++++++++++++++++++++++++---------------------
1 files changed, 78 insertions(+), 65 deletions(-)
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
index be622a9..e452064 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -36,6 +36,7 @@
import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient;
import com.ruoyi.integration.api.model.ChargingOrderAndUploadRealTimeMonitoringDataDto;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringPageData;
+import com.ruoyi.order.api.dto.ChargingStatisticeDTO;
import com.ruoyi.order.api.model.*;
import com.ruoyi.order.api.query.ChargingOrderQuery;
import com.ruoyi.common.core.dto.MongoChargingOrderQuery;
@@ -54,6 +55,7 @@
import com.ruoyi.order.service.*;
import com.ruoyi.order.util.PreviousSixMonths;
import com.ruoyi.order.vo.EndOfChargePageInfo;
+import com.ruoyi.order.vo.WatchChargingOrderVo;
import com.ruoyi.other.api.feignClient.RoleSiteClient;
import com.ruoyi.other.api.feignClient.UserSiteClient;
import com.ruoyi.payment.api.feignClient.AliPaymentClient;
@@ -63,14 +65,11 @@
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.feignClient.SysUserRoleClient;
import com.ruoyi.system.api.model.SysUserRoleVo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
-import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -159,10 +158,25 @@
private RoleSiteClient roleSiteClient;
@Resource
private SysUserRoleClient sysUserRoleClient;
-
-
-
-
+
+
+
+ /**
+ * 远程调用 监管平台查询前一天用能统计
+ * @return
+ */
+ @ResponseBody
+ @PostMapping(value = "/getChargingStatistics")
+ public R<List<TChargingOrder>> getChargingStatistics(@RequestBody ChargingStatisticeDTO dto) {
+ List<Long> collect = chargingOrderAccountingStrategyService.lambdaQuery().between(TChargingOrderAccountingStrategy::getCreateTime, dto.getStartTime(), dto.getEndTime())
+ .list().stream().map(TChargingOrderAccountingStrategy::getChargingOrderId).collect(Collectors.toList());
+ if (!collect.isEmpty()){
+ List<TChargingOrder> list = chargingOrderService.lambdaQuery()
+ .in(TChargingOrder::getId,collect).list();
+ return R.ok(list);
+ }
+ return R.ok(new ArrayList<TChargingOrder>());
+ }
/**
* 远程调用 增加管理后台赠送会员记录
@@ -1111,9 +1125,9 @@
BigDecimal periodElectricPrice = collect.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal periodServicePrice = collect.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
totalElectrovalence = totalElectrovalence.add(periodElectricPrice);
- commissionAmount = commissionAmount.add(order.getRechargeAmount().multiply(new BigDecimal("0.006")));
if(2 != order.getOrderSource()){
totalServiceCharge = totalServiceCharge.add(periodServicePrice);
+ commissionAmount = commissionAmount.add((periodElectricPrice.add(periodServicePrice)).multiply(new BigDecimal("0.006")));
}else{
totalServiceCharge = totalServiceCharge.add(periodServicePrice.multiply(new BigDecimal("0.8")));
sharingAmount = sharingAmount.add(periodServicePrice.multiply(new BigDecimal("0.2")));
@@ -1131,7 +1145,7 @@
@ResponseBody
@PostMapping(value = "/watch/chargingOrder")
@ApiOperation(value = "监控订单", tags = {"管理后台-订单管理"})
- public R watchChargingOrder(@RequestBody MongoChargingOrderQuery mongoChargingOrderQuery) {
+ public R watchChargingOrder(@RequestBody MongoChargingOrderQuery query) {
Set<Integer> ids = null;
//校验合作商权限
SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData();
@@ -1154,61 +1168,58 @@
ids = new HashSet<>(data);
}
}
- mongoChargingOrderQuery.setSiteIds(ids.stream().collect(Collectors.toList()));
- mongoChargingOrderQuery.setPageSize(10);
- R<UploadRealTimeMonitoringPageData> all = uploadRealTimeMonitoringDataClient.getAll(mongoChargingOrderQuery);
- UploadRealTimeMonitoringPageData data1 = all.getData();
-
- List<ChargingOrderAndUploadRealTimeMonitoringDataDto> dtos = new ArrayList<>();
- Map<String,ChargingOrderVO> map = new HashMap<>();
-
- for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data1.getRecords()) {
- if (roleType==2){
- List<Boolean> data = partnerClient.watchChargingOrder(sysUser.getObjectId(), uploadRealTimeMonitoringData.getSiteId()).getData();
- uploadRealTimeMonitoringData.setAuthInfo(data.get(0));
- uploadRealTimeMonitoringData.setAuthDelete(data.get(1));
- }
- ChargingOrderAndUploadRealTimeMonitoringDataDto dataDto = new ChargingOrderAndUploadRealTimeMonitoringDataDto();
- ChargingOrderQuery dto = new ChargingOrderQuery();
- dto.setCode(uploadRealTimeMonitoringData.getTransaction_serial_number());
-
- if (map.get(uploadRealTimeMonitoringData.getTransaction_serial_number())==null) {
- TCharingOrderVO vo = chargingOrderService.chargingOrder(dto);
- map.put(uploadRealTimeMonitoringData.getTransaction_serial_number(),vo.getList().getRecords().get(0));
- if (!vo.getList().getRecords().isEmpty()) {
- ChargingOrderVO chargingOrderVO = vo.getList().getRecords().get(0);
- if (chargingOrderVO != null) {
- BeanUtils.copyProperties(chargingOrderVO, dataDto);
- }
-
- BeanUtils.copyProperties(uploadRealTimeMonitoringData, dataDto);
- if (chargingOrderVO != null && chargingOrderVO.getOrderSource()==2){
- dataDto.setPeriod_service_price(uploadRealTimeMonitoringData.getPeriod_service_price().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_DOWN)));
- }
- dataDto.setStartTime(uploadRealTimeMonitoringData.getStartTime());
- dataDto.setEndTime(uploadRealTimeMonitoringData.getEndTime() == null ? null : uploadRealTimeMonitoringData.getEndTime());
- dataDto.setStatus(uploadRealTimeMonitoringData.getStatus());
- dtos.add(dataDto);
- }
- }else {
- ChargingOrderVO vo = map.get(uploadRealTimeMonitoringData.getTransaction_serial_number());
- BeanUtils.copyProperties(vo, dataDto);
- BeanUtils.copyProperties(uploadRealTimeMonitoringData, dataDto);
- dataDto.setStartTime(uploadRealTimeMonitoringData.getStartTime());
- dataDto.setEndTime(uploadRealTimeMonitoringData.getEndTime() == null ? null : uploadRealTimeMonitoringData.getEndTime());
- dataDto.setStatus(uploadRealTimeMonitoringData.getStatus());
- dtos.add(dataDto);
- }
+
+ LambdaQueryWrapper<TChargingOrder> queryWrapper = new LambdaQueryWrapper<TChargingOrder>().like(StringUtils.isNotEmpty(query.getCode()), TChargingOrder::getCode, query.getCode())
+ .eq(null != query.getOrderType(), TChargingOrder::getOrderType, query.getOrderType())
+ .eq(null != query.getSiteId(), TChargingOrder::getSiteId, query.getSiteId())
+ .eq(null != query.getPileId(), TChargingOrder::getChargingPileId, query.getPileId())
+ .eq(null != query.getGunId(), TChargingOrder::getChargingGunId, query.getGunId())
+ .eq(null != query.getStatus(), TChargingOrder::getStatus, query.getStatus())
+ .eq(TChargingOrder::getDelFlag, 0).eq(TChargingOrder::getRechargePaymentStatus, 2)
+ .in(null != ids && ids.size() > 0, TChargingOrder::getSiteId, ids);
+ if(StringUtils.isNotEmpty(query.getCreateTime())){
+ String[] split = query.getCreateTime().split(" - ");
+ queryWrapper.between(TChargingOrder::getStartTime, split[0], split[1]);
}
- for (int i = 0; i < dtos.size(); i++) {
- dtos.get(i).setIndex(i);
+ if(StringUtils.isNotEmpty(query.getLastTime())){
+ String[] split = query.getLastTime().split(" - ");
+ queryWrapper.between(TChargingOrder::getEndTime, split[0], split[1]);
}
-
- PageChargingOrderAndUploadRealTimeMonitoringDataDto page = new PageChargingOrderAndUploadRealTimeMonitoringDataDto();
- page.setTotal(data1.getCount());
- page.setRecords(dtos);
-
- return R.ok(page);
+ PageInfo<TChargingOrder> pageInfo = new PageInfo<>(query.getPageCurr(), query.getPageSize());
+ PageInfo<TChargingOrder> orderPageInfo = chargingOrderService.page(pageInfo, queryWrapper.orderByDesc(TChargingOrder::getCreateTime));
+ List<Site> siteList = siteClient.getSiteAll().getData();
+
+ List<WatchChargingOrderVo> list = new ArrayList<>();
+ for (TChargingOrder record : orderPageInfo.getRecords()) {
+ WatchChargingOrderVo vo = new WatchChargingOrderVo();
+ BeanUtils.copyProperties(record, vo);
+ vo.setIdStr(record.getId().toString());
+ Site site = siteList.stream().filter(s->s.getId().equals(record.getSiteId())).findFirst().get();
+ vo.setSiteName(site.getName());
+ TChargingPile chargingPile = chargingPileClient.getChargingPileById(record.getChargingPileId()).getData();
+ vo.setTerminalName(chargingPile.getName());
+ TChargingGun chargingGun = chargingGunClient.getChargingGunById(record.getChargingGunId()).getData();
+ vo.setTerminalCode(chargingGun.getName());
+
+ if(null != record.getStartTime() && null != record.getEndTime()){
+ long time = record.getEndTime().toEpochSecond(ZoneOffset.UTC) - record.getStartTime().toEpochSecond(ZoneOffset.UTC);
+ vo.setChargingTime(time + "");
+ }
+ long count = chargingOrderAccountingStrategyService.count(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, record.getId()));
+ vo.setTimeFrame(count);
+
+ vo.setAuthInfo(roleType == 1 ? true : partnerClient.authMenu(objectId, record.getSiteId(), SiteMenu.CHARGING_PILE_ORDER_MONITORING_RECORD_INFO.getValue()));
+ vo.setAuthDelete(roleType == 1 ? true : partnerClient.authMenu(objectId, record.getSiteId(), SiteMenu.CHARGING_PILE_ORDER_MONITORING_RECORD_DEL.getValue()));
+ list.add(vo);
+ }
+ PageInfo<WatchChargingOrderVo> pageInfos = new PageInfo<>(query.getPageCurr(), query.getPageSize());
+ pageInfos.setRecords(list);
+ pageInfos.setCurrent(pageInfo.getCurrent());
+ pageInfos.setPages(pageInfo.getPages());
+ pageInfos.setSize(pageInfo.getSize());
+ pageInfos.setStartIndex(pageInfo.getStartIndex());
+ pageInfos.setTotal(pageInfo.getTotal());
+ return R.ok(pageInfos);
}
@@ -1281,7 +1292,6 @@
start = statisticsQueryDto.getStartTime();
end = statisticsQueryDto.getEndTime();
}else if (statisticsQueryDto.getDayType()==5){
- // 获取今年1月1日的日期
start = statisticsQueryDto.getStartTime();
end = statisticsQueryDto.getEndTime();
if (start.equals(end)){
@@ -1446,7 +1456,10 @@
BigDecimal commissionAmount = BigDecimal.ZERO;
for (Map<String, Object> map : maps) {
BigDecimal periodElectricPrice = (BigDecimal) map.get("period_electric_price");
- allMoney = allMoney.add(periodElectricPrice);
+ Long order_source = (Long)map.get("order_source");
+ if(2 != order_source){
+ allMoney = allMoney.add(periodElectricPrice);
+ }
BigDecimal total_amount = (BigDecimal) map.get("total_amount");
allMoney = allMoney.add(total_amount);
commissionAmount = commissionAmount.add((BigDecimal) map.get("commissionAmount"));
--
Gitblit v1.7.1