luodangjia
2024-09-10 8d8a35b85a8af2966ae1c3b42fb5bc35c39250b2
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -440,6 +440,7 @@
               chargingOrder.setVipDiscountAmount(discountAmount);
            }
         }
      }
      this.save(chargingOrder);
@@ -1119,32 +1120,32 @@
   }
   @Override
   public Map<String, BigDecimal> countAll(LocalDate sixBefore) {
   public Map<String, Object> countAll(LocalDate sixBefore) {
      return this.baseMapper.countAll(sixBefore);
   }
   @Override
   public List<Map<String, BigDecimal>> getSumByType(List<Long> chargingOrderIds) {
   public List<Map<String, Object>> getSumByType(List<Long> chargingOrderIds) {
      return this.baseMapper.getSumByType(chargingOrderIds);
   }
   @Override
   public List<Map<String, BigDecimal>> getDateData(List<Long> chargingOrderIds) {
   public List<Map<String, Object>> getDateData(List<Long> chargingOrderIds) {
      return this.baseMapper.getDateData(chargingOrderIds);
   }
   @Override
   public List<Map<String, BigDecimal>> getWeekData(List<Long> chargingOrderIds) {
   public List<Map<String, Object>> getWeekData(List<Long> chargingOrderIds) {
      return this.baseMapper.getWeekData(chargingOrderIds);
   }
   @Override
   public List<Map<String, BigDecimal>> getMonthData(List<Long> chargingOrderIds) {
   public List<Map<String, Object>> getMonthData(List<Long> chargingOrderIds) {
      return this.baseMapper.getMonthData(chargingOrderIds);
   }
   @Override
   public List<Map<String, BigDecimal>> getYearData(List<Long> chargingOrderIds) {
   public List<Map<String, Object>> getYearData(List<Long> chargingOrderIds) {
      return this.baseMapper.getYearData(chargingOrderIds);
   }
   @Resource
@@ -1325,10 +1326,10 @@
      return chargingOrderTimeVO;
   }
   @Override
   public R payRefund(PayOrderRefundDto payOrderQueryDto) {
      return null;
   }
//   @Override
//   public R payRefund(PayOrderRefundDto payOrderQueryDto) {
//      return null;
//   }
   @Override
   public ChargingOrderListInfoVO chargingInfo(String uid) {
@@ -1380,6 +1381,7 @@
      chargingOrderListInfoVO.setList1(list);
      return chargingOrderListInfoVO;
   }
   /**
    * 处理充电订单实时监控数据相关的业务逻辑
@@ -1548,4 +1550,138 @@
   public void excelEndCharge(String orderCode) {
      endCharge(orderCode, 0);
   }
   @Override
   public List<Map<String, Object>> getByDate(List<Long> chargingOrderIds) {
      return this.baseMapper.getByDate(chargingOrderIds);
   }
   @Override
   public List<Map<String, Object>> queryPower(List<Integer> siteIds) {
      return this.baseMapper.queryPower(siteIds);
   }
   @Override
   public Map<String, Object> qureryPowerLevel(List<Integer> siteIds, ChargingStatisticsQueryDto statisticsQueryDto) {
      return this.baseMapper.queryPowerLevel(siteIds,statisticsQueryDto);
   }
   @Override
   public List<Map<String, Object>> queryOrderCountAndMoneyBySiteIdDate(List<Integer> siteIds) {
      return this.baseMapper.queryOrderCountAndMoneyBySiteIdDate(siteIds);
   }
   @Override
   public List<Map<String, Object>> usersDay() {
      return this.baseMapper.usersDay();
   }
   @Override
   public List<Map<String, Object>> usersByQuery(ChargingStatisticsQueryDto statisticsQueryDto) {
      return this.baseMapper.usersByQuery(statisticsQueryDto);
   }
   @Override
   public List<Map<String, Object>> getUserTagCount() {
      return this.baseMapper.getUserTagCount();
   }
   @Override
   public List<Map<String, Object>> getVipCount() {
      return this.baseMapper.getVipCount();
   }
   @Override
   public List<Map<String, Object>> unitConsumption(ChargingStatisticsQueryDto statisticsQueryDto) {
      return this.baseMapper.unitConsumption(statisticsQueryDto);
   }
   @Override
   public List<Map<String, Object>> carUserMethod() {
      return this.baseMapper.carUserMethod();
   }
   @Override
   public List<Map<String, Object>> carUserBrand() {
      return this.baseMapper.carUserBrand();
   }
   @Override
   public Map<String, Object> countLocalCar() {
      return this.baseMapper.countLocalCar();
   }
   @Override
   public Long getAver(List<Integer> siteIds) {
      return this.baseMapper.getAver(siteIds);
   }
   @Override
   public List<Map<String, Object>> getLevelEvaluate(List<Integer> siteIds) {
      return this.baseMapper.getLevelEvaluate(siteIds);
   }
   @Override
   public R payRefund(PayOrderRefundDto payOrderQueryDto) {
         if (payOrderQueryDto.getType()==1){
            TChargingOrder tChargingOrder = this.baseMapper.selectById(payOrderQueryDto.getOrderId());
            TChargingOrderRefund chargingOrderRefund = new TChargingOrderRefund();
            chargingOrderRefund.setChargingOrderId(tChargingOrder.getId());
            chargingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount());
            chargingOrderRefund.setRefundStatus(1);
            chargingOrderRefund.setPayType(tChargingOrder.getRechargePaymentType());
            chargingOrderRefund.setRefundTime(LocalDateTime.now());
            chargingOrderRefund.setCode(tChargingOrder.getCode());
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
            chargingOrderRefund.setRefundCode("GDF" + sdf.format(new Date()) + (Math.random() * 1000));
            chargingOrderRefund.setRefundTitle("后台退款");
            chargingOrderRefund.setRefundContent("后台退款");
            chargingOrderRefund.setRefundReason("后台退款");
            chargingOrderRefund.setRefundRemark("后台退款");
            chargingOrderRefund.setRefundTotalAmount(tChargingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount()));
            chargingOrderRefund.setPayAmount(tChargingOrder.getPaymentAmount());
            if(1 == tChargingOrder.getRechargePaymentType()){
               WxPaymentRefundModel model = new WxPaymentRefundModel();
               model.setOut_trade_no(tChargingOrder.getCode());
               model.setOut_refund_no(chargingOrderRefund.getRefundCode());
               model.setTransaction_id(tChargingOrder.getRechargeSerialNumber());
               model.setReason("取消订单");
               model.setNotify_url("http://127.0.0.1:9000/order/t-shopping-order/cancelShoppingOrderWxRefund");
               WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount();
               amount.setRefund(payOrderQueryDto.getRefundAmount().multiply(new BigDecimal(100)).intValue());
               amount.setTotal(tChargingOrder.getPaymentAmount().multiply(new BigDecimal(100)).intValue());
               amount.setCurrency("CNY");
               model.setAmount(amount);
               R<String> orderR = wxPaymentClient.refundOrderR(model);
               if(200 == orderR.getCode()){
                  chargingOrderRefundService.save(chargingOrderRefund);
               }
            }
            if(2 == tChargingOrder.getRechargePaymentType()){
               RefundReq dto = new RefundReq();
               dto.setOutTradeNo(tChargingOrder.getCode());
               dto.setOutRequestNo(tChargingOrder.getCode());
               dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString());
               dto.setRefundReason("取消订单");
               RefundResp resp = aliPaymentClient.refund(dto).getData();
               if(null != resp){
                  SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-DDTHH:mm:ss+TIMEZONE");
                     chargingOrderRefundService.save(chargingOrderRefund);
               }
            }
         }
      return null;
   }
}