From 85a21fdb54fa06f2fa6e25e763ec5337e85295e7 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 16 八月 2024 16:55:34 +0800
Subject: [PATCH] 小程序登录 token失效全局异常

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |  122 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 121 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..f189465 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,33 @@
 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.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 +39,102 @@
  */
 @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.getLoginUser().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;
+	}
 }

--
Gitblit v1.7.1