From 1ebf83b7b8ae636f00d49406e4c9bbff2d73c34d Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 20 八月 2024 18:46:37 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 152 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 151 insertions(+), 1 deletions(-)
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
index de40f2c..d22e59a 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1,10 +1,34 @@
package com.ruoyi.order.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.account.api.feignClient.AppUserCarClient;
+import com.ruoyi.account.api.model.TAppUserCar;
+import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient;
+import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient;
+import com.ruoyi.chargingPile.api.feignClient.SiteClient;
+import com.ruoyi.chargingPile.api.model.Site;
+import com.ruoyi.chargingPile.api.model.TChargingGun;
+import com.ruoyi.common.core.web.page.BasePage;
+import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.order.api.model.TChargingOrder;
+import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy;
+import com.ruoyi.order.dto.GetMyChargingOrderList;
+import com.ruoyi.order.dto.GetNoInvoicedOrder;
+import com.ruoyi.order.dto.MyChargingOrderInfo;
+import com.ruoyi.order.dto.MyChargingOrderList;
import com.ruoyi.order.mapper.TChargingOrderMapper;
+import com.ruoyi.order.service.TChargingOrderAccountingStrategyService;
import com.ruoyi.order.service.TChargingOrderService;
import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.time.ZoneOffset;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
/**
* <p>
@@ -16,5 +40,131 @@
*/
@Service
public class TChargingOrderServiceImpl extends ServiceImpl<TChargingOrderMapper, TChargingOrder> implements TChargingOrderService {
-
+
+ @Resource
+ private ChargingGunClient chargingGunClient;
+
+ @Resource
+ private SiteClient siteClient;
+
+ @Resource
+ private AppUserCarClient appUserCarClient;
+
+ @Resource
+ private TChargingOrderAccountingStrategyService chargingOrderAccountingStrategyService;
+
+ @Resource
+ private TokenService tokenService;
+
+
+
+
+ /**
+ * 获取小程序充电记录列表数据
+ * @param query
+ * @return
+ */
+ @Override
+ public Map<String, Object> getMyChargingOrderList(GetMyChargingOrderList query) {
+ Long appUserId = tokenService.getLoginUserApplet().getUserId();
+ Map<String, Object> map = new HashMap<>();
+ int size = this.baseMapper.getMyChargingOrderList(appUserId, 1, null, null).size();
+ map.put("number", size);
+ List<TChargingOrder> list = this.baseMapper.getMyChargingOrderList(appUserId, query.getType(), query.getPageCurr(), query.getPageSize());
+ List<MyChargingOrderList> orderLists = new ArrayList<>();
+ for (TChargingOrder tChargingOrder : list) {
+ MyChargingOrderList myChargingOrderList = new MyChargingOrderList();
+ myChargingOrderList.setId(tChargingOrder.getId().toString());
+ myChargingOrderList.setStatus(tChargingOrder.getStatus());
+ Site site = siteClient.getSiteByIds(Arrays.asList(tChargingOrder.getSiteId())).getData().get(0);
+ myChargingOrderList.setTitle(site.getName());
+ myChargingOrderList.setChargingDegree(tChargingOrder.getChargingCapacity());
+ String name = chargingGunClient.getAllName(tChargingOrder.getChargingGunId()).getData();
+ myChargingOrderList.setName(name);
+ myChargingOrderList.setEndMode(tChargingOrder.getEndMode());
+ BigDecimal payMoney = tChargingOrder.getStatus() < 4 ? tChargingOrder.getRechargeAmount() : tChargingOrder.getPaymentAmount();
+ myChargingOrderList.setPayMoney(payMoney);
+ myChargingOrderList.setCreateTime(tChargingOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+ orderLists.add(myChargingOrderList);
+ }
+ map.put("list", orderLists);
+ return map;
+ }
+
+
+ /**
+ * 获取充电订单明细
+ * @param id 订单id
+ * @return
+ */
+ @Override
+ public MyChargingOrderInfo getMyChargingOrderInfo(String id) {
+ TChargingOrder chargingOrder = this.getById(id);
+ MyChargingOrderInfo myChargingOrderInfo = new MyChargingOrderInfo();
+ myChargingOrderInfo.setId(id);
+ myChargingOrderInfo.setCode(chargingOrder.getCode());
+ myChargingOrderInfo.setCreateTime(chargingOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+ myChargingOrderInfo.setStatus(chargingOrder.getStatus());
+ Site site = siteClient.getSiteByIds(Arrays.asList(chargingOrder.getSiteId())).getData().get(0);
+ myChargingOrderInfo.setTitle(site.getName());
+ TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
+ myChargingOrderInfo.setChargeMode(chargingGun.getChargeMode());
+ String name = chargingGunClient.getAllName(chargingOrder.getChargingGunId()).getData();
+ myChargingOrderInfo.setName(name);
+ if(null != chargingOrder.getAppUserCarId()){
+ TAppUserCar tAppUserCar = appUserCarClient.getCarByIds(Arrays.asList(chargingOrder.getAppUserCarId())).getData().get(0);
+ myChargingOrderInfo.setLicensePlate(tAppUserCar.getLicensePlate());
+ }else{
+ myChargingOrderInfo.setLicensePlate("无");
+ }
+ myChargingOrderInfo.setStartTime(chargingOrder.getStartTime().toInstant(ZoneOffset.of("+8")).toEpochMilli());
+ myChargingOrderInfo.setEndTime(chargingOrder.getEndTime().toInstant(ZoneOffset.of("+8")).toEpochMilli());
+ myChargingOrderInfo.setOrderAmount(chargingOrder.getOrderAmount());
+ myChargingOrderInfo.setPaymentAmount(chargingOrder.getPaymentAmount());
+ myChargingOrderInfo.setRechargeAmount(chargingOrder.getRechargeAmount());
+ myChargingOrderInfo.setCouponDiscountAmount(chargingOrder.getCouponDiscountAmount());
+ myChargingOrderInfo.setVipDiscountAmount(chargingOrder.getVipDiscountAmount());
+ myChargingOrderInfo.setRefundAmount(chargingOrder.getRefundAmount());
+ List<TChargingOrderAccountingStrategy> stageCost = chargingOrderAccountingStrategyService.list(
+ new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, id)
+ .orderByAsc(TChargingOrderAccountingStrategy::getStartTime)
+ );
+ myChargingOrderInfo.setStageCost(stageCost);
+ // todo 待完善
+ //再MongoDB中获取数据
+ myChargingOrderInfo.setCurrentAndVoltage(null);
+ //再MongoDB中获取数据
+ myChargingOrderInfo.setPower(null);
+ myChargingOrderInfo.setActionable(myChargingOrderInfo.getEndTime() + 604800000L > System.currentTimeMillis() ? 0 : 1);
+ return myChargingOrderInfo;
+ }
+
+
+ /**
+ * 获取待开票订单列表
+ * @param query
+ * @return
+ */
+ @Override
+ public List<MyChargingOrderList> getNoInvoicedOrder(GetNoInvoicedOrder query) {
+ Long appUserId = tokenService.getLoginUserApplet().getUserId();
+ List<TChargingOrder> orderList = this.baseMapper.getNoInvoicedOrder(appUserId, query.getMonth(), query.getPageCurr(), query.getPageSize());
+ List<MyChargingOrderList> list = new ArrayList<>();
+ for (TChargingOrder tChargingOrder : orderList) {
+ MyChargingOrderList myChargingOrderList = new MyChargingOrderList();
+ myChargingOrderList.setId(tChargingOrder.getId().toString());
+ myChargingOrderList.setStatus(tChargingOrder.getStatus());
+ Site site = siteClient.getSiteByIds(Arrays.asList(tChargingOrder.getSiteId())).getData().get(0);
+ myChargingOrderList.setTitle(site.getName());
+ myChargingOrderList.setChargingDegree(tChargingOrder.getChargingCapacity());
+ String name = chargingGunClient.getAllName(tChargingOrder.getChargingGunId()).getData();
+ myChargingOrderList.setName(name);
+ myChargingOrderList.setEndMode(tChargingOrder.getEndMode());
+ BigDecimal payMoney = tChargingOrder.getStatus() < 4 ? tChargingOrder.getRechargeAmount() : tChargingOrder.getPaymentAmount();
+ myChargingOrderList.setPayMoney(payMoney);
+ myChargingOrderList.setCreateTime(tChargingOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+ list.add(myChargingOrderList);
+ }
+ return list;
+ }
}
--
Gitblit v1.7.1