luodangjia
2024-08-27 375134f8fead27cc32a880c45cc68e72b69c5ce9
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -1,8 +1,20 @@
package com.ruoyi.order.controller;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.account.api.feignClient.AppUserCarClient;
import com.ruoyi.account.api.feignClient.AppUserClient;
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.ParkingLotClient;
import com.ruoyi.chargingPile.api.feignClient.SiteClient;
import com.ruoyi.chargingPile.api.model.Site;
import com.ruoyi.chargingPile.api.model.TChargingGun;
import com.ruoyi.chargingPile.api.model.TChargingPile;
import com.ruoyi.chargingPile.api.model.TParkingRecord;
import com.ruoyi.chargingPile.api.vo.SiteVO;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.redis.service.RedisService;
@@ -10,8 +22,7 @@
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.BasePage;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.order.api.model.TChargingOrder;
import com.ruoyi.order.api.model.TOrderEvaluate;
import com.ruoyi.order.api.model.*;
import com.ruoyi.order.api.query.ChargingOrderQuery;
import com.ruoyi.order.api.query.TChargingCountQuery;
import com.ruoyi.order.api.vo.ChargingOrderVO;
@@ -22,9 +33,7 @@
import com.ruoyi.order.dto.MyChargingOrderList;
import com.ruoyi.order.dto.OrderEvaluateVo;
import com.ruoyi.order.dto.*;
import com.ruoyi.order.service.TChargingOrderService;
import com.ruoyi.order.service.TOrderEvaluateService;
import com.ruoyi.order.service.TOrderEvaluateTagService;
import com.ruoyi.order.service.*;
import com.ruoyi.payment.api.feignClient.AliPaymentClient;
import com.ruoyi.payment.api.feignClient.WxPaymentClient;
import com.ruoyi.payment.api.vo.AliQueryOrder;
@@ -39,6 +48,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.List;
@@ -71,15 +81,148 @@
    
    @Resource
    private AliPaymentClient aliPaymentClient;
    @Resource
    private TShoppingOrderService shoppingOrderService;
    
    @Autowired
    private AppUserClient appUserClient;
    @Resource
    private TVipOrderService vipOrderService;
    @Resource
    private ParkingLotClient parkingLotClient;
    @Resource private TChargingOrderRefundService chargingOrderRefundService;
    @Resource private TShoppingOrderRefundService shoppingOrderRefundService;
    @Resource private  TVipOrderRefundService vipOrderRefundService;
    @Resource private SiteClient siteClient;
    @Resource private ChargingPileClient chargingPileClient;
    @Resource private ChargingGunClient chargingGunClient;
    @Resource private AppUserCarClient appUserCarClient;
    @Resource private TChargingOrderAccountingStrategyService chargingOrderAccountingStrategyService;
    @ResponseBody
    @PostMapping(value = "/pay/order/list")
    @ApiOperation(value = "列表", tags = {"管理后台-支付订单-订单信息"})
    public R<PageInfo<PayOrderDto>> payOrderList(@RequestBody PayOrderQueryDto payOrderQueryDto){
                    return  chargingOrderService.payOrderQuery(payOrderQueryDto);
    }
    @ResponseBody
    @GetMapping(value = "/pay/order/pay/detail")
    @ApiOperation(value = "支付信息", tags = {"管理后台-支付订单-订单信息"})
    public R<PayOrderInfoDto> payOrderList(Long orderId,Integer type){
            switch (type){
                case 1:
                    TChargingOrder byId = chargingOrderService.getById(orderId);
                    PayOrderInfoDto payOrderInfoDto = new PayOrderInfoDto();
                    payOrderInfoDto.setOrderId(byId.getId().toString());
                    payOrderInfoDto.setCode(byId.getCode());
                    payOrderInfoDto.setTradeNo(byId.getRechargeSerialNumber());
                    payOrderInfoDto.setPayType(byId.getRechargePaymentType());
                    payOrderInfoDto.setPayAmount(byId.getPaymentAmount());
                    payOrderInfoDto.setPayTime(byId.getPayTime());
                    payOrderInfoDto.setRefundAmount(byId.getRefundAmount());
                    return R.ok(payOrderInfoDto);
                case  2:
                    TShoppingOrder byId1 = shoppingOrderService.getById(orderId);
                    PayOrderInfoDto payOrderInfoDto1 = new PayOrderInfoDto();
                    payOrderInfoDto1.setOrderId(byId1.getId().toString());
                    payOrderInfoDto1.setCode(byId1.getCode());
                    payOrderInfoDto1.setTradeNo(byId1.getSerialNumber());
                    payOrderInfoDto1.setPayType(byId1.getPaymentType());
                    payOrderInfoDto1.setPayAmount(byId1.getPaymentAmount());
                    payOrderInfoDto1.setPayTime(byId1.getPayTime());
                    payOrderInfoDto1.setRefundAmount(byId1.getRefundAmount());
                    return R.ok(payOrderInfoDto1);
                case  3 :
                    TVipOrder byId2 = vipOrderService.getById(orderId);
                    PayOrderInfoDto payOrderInfoDto2 = new PayOrderInfoDto();
                    payOrderInfoDto2.setOrderId(byId2.getId().toString());
                    payOrderInfoDto2.setCode(byId2.getCode());
                    payOrderInfoDto2.setTradeNo(byId2.getSerialNumber());
                    payOrderInfoDto2.setPayType(byId2.getPaymentType());
                    payOrderInfoDto2.setPayAmount(byId2.getPaymentAmount());
                    payOrderInfoDto2.setPayTime(byId2.getPayTime());
                    payOrderInfoDto2.setRefundAmount(byId2.getRefundAmount());
                    return R.ok(payOrderInfoDto2);
                    //todo luo 停车场订单
//                case 4:
//                    TParkingRecord byId3 = parkingLotClient.getRecordById(orderId).getData();
//                    PayOrderInfoDto payOrderInfoDto3 = new PayOrderInfoDto();
//                    payOrderInfoDto3.setOrderId(byId3.getId().toString());
//                    payOrderInfoDto3.setCode(byId3.getCode());
//                    payOrderInfoDto3.setTradeNo(byId3);
//                    payOrderInfoDto3.setPayType(0);
//                    payOrderInfoDto3.setPayAmount(new BigDecimal("0"));
//                    payOrderInfoDto3.setPayTime(LocalDateTime.now());
//                    payOrderInfoDto3.setRefundAmount(new BigDecimal("0"));
            }
        return R.ok();
    }
    @ResponseBody
    @GetMapping(value = "/pay/order/refund/detail")
    @ApiOperation(value = "退款信息", tags = {"管理后台-支付订单-订单信息"})
    public R refundDetail(Long orderId,Integer type){
        switch (type) {
            case 1:
                List<TChargingOrderRefund> byId = chargingOrderRefundService.lambdaQuery().eq(TChargingOrderRefund::getChargingOrderId, orderId).orderByDesc(TChargingOrderRefund::getRefundTime).list();
                return R.ok(byId);
            case 2:
                List<TShoppingOrderRefund> list = shoppingOrderRefundService.lambdaQuery().eq(TShoppingOrderRefund::getShoppingOrderId, orderId).orderByDesc(TShoppingOrderRefund::getRefundTime).list();
                return R.ok(list);
            case 3:
                List<TVipOrderRefund> list1 = vipOrderRefundService.lambdaQuery().eq(TVipOrderRefund::getVipOrderId, orderId).orderByDesc(TVipOrderRefund::getRefundTime).list();
                return R.ok(list1);
        }
        return R.ok();
    }
    @ResponseBody
    @GetMapping(value = "/pay/order/charging")
    @ApiOperation(value = "充电信息", tags = {"管理后台-支付订单-订单信息"})
    public R refundDetail(Long orderId){
        PayOrderChargingInfo payOrderChargingInfo = new PayOrderChargingInfo();
        TChargingOrder byId = chargingOrderService.getById(orderId);
        List<Site> data = siteClient.getSiteByIds(Collections.singletonList(byId.getSiteId())).getData();
        payOrderChargingInfo.setSiteName(data.get(0).getName());
        TChargingPile data1 = chargingPileClient.getChargingPileById(byId.getChargingPileId()).getData();
        payOrderChargingInfo.setChargingName(data1.getName());
        TChargingGun data2 = chargingGunClient.getChargingGunById(byId.getChargingGunId()).getData();
        payOrderChargingInfo.setGunName(data2.getName());
        List<TAppUserCar> data3 = appUserCarClient.getCarByIds(Collections.singletonList(byId.getAppUserCarId())).getData();
        payOrderChargingInfo.setCarNum(data3.get(0).getLicensePlate());
        return R.ok();
    }
    @ResponseBody
    @GetMapping(value = "/pay/order/charging/details")
    @ApiOperation(value = "充电明细", tags = {"管理后台-支付订单-订单信息"})
    public R<List<TChargingOrderAccountingStrategy>> chargingDetail(Long orderId){
        List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.lambdaQuery().eq(TChargingOrderAccountingStrategy::getChargingOrderId, orderId).orderByDesc(TChargingOrderAccountingStrategy::getStartTime).list();
        return R.ok(list);
    }
    @ResponseBody
    @PostMapping(value = "/pay/order/refund/list")
    @ApiOperation(value = "充电信息", tags = {"管理后台-支付订单-退款订单"})
    public R<PageInfo<TChargingOrderRefund>> refundList(@RequestBody ChargingRefundDto chargingRefundDto){
      return    chargingOrderService.getRefundList(chargingRefundDto);
    }
    @ResponseBody
    @PostMapping(value = "/chargingOrder")
    @ApiOperation(value = "充电桩订单列表", tags = {"管理后台-订单管理"})