package com.ruoyi.order.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.dto.ChargingOrderGroup;
import com.ruoyi.common.core.dto.ChargingPercentProvinceDto;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.order.api.dto.SettlementConfirmAdd;
import com.ruoyi.order.api.model.*;
import com.ruoyi.order.api.query.ChargingOrderQuery;
import com.ruoyi.order.api.query.SettlementListQuery;
import com.ruoyi.order.api.query.UploadRealTimeMonitoringDataQuery;
import com.ruoyi.order.api.vo.*;
import com.ruoyi.order.dto.*;
import com.ruoyi.order.vo.ChargingOrderListInfoVO;
import com.ruoyi.order.vo.EndOfChargePageInfo;
import com.ruoyi.order.vo.StatisticsOfBatteryVO;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
/**
*
* 服务类
*
*
* @author xiaochen
* @since 2024-08-07
*/
public interface TChargingOrderService extends IService {
/**
* 获取小程序充电记录列表数据
* @param query
* @return
*/
Map getMyChargingOrderList(GetMyChargingOrderList query);
/**
* 获取小程序充电记录明细
* @param id
* @return
*/
MyChargingOrderInfo getMyChargingOrderInfo(String id);
/**
* 获取待开票订单列表
* @param query
* @return
*/
List getNoInvoicedOrder(GetNoInvoicedOrder query);
/**
* 充电支付
* @param addChargingOrder
* @return
*/
AjaxResult paymentChargingOrder(AddChargingOrder addChargingOrder);
/**
* 支付成功后的回调处理逻辑
* @param paymentType 支付方式:1=微信,2=支付宝
* @param out_trade_no 业务流水号
* @param transaction_id 三方支付流水号
* @param attach 附加数据
* @return
*/
AjaxResult chargingOrderCallback(Integer paymentType, String out_trade_no, String transaction_id, String attach);
/**
* 安全检测数据
* @param securityDetection
*/
void securityDetection(SecurityDetectionVO securityDetection);
/**
* 启动充电应发
* @param message
*/
void startChargeSuccessfully(PlatformStartChargingReplyMessageVO message);
/**
* 充电启动失败后的退款回调处理
* @param out_refund_no
* @param refund_id
* @param tradeState
* @param success_time
* @return
*/
AjaxResult chargingOrderStartupFailureWxRefund(String out_refund_no, String refund_id, String tradeState, String success_time);
/**
* 启动失败退款操作
* @param code
*/
void refund(String code);
void refund1(String code, BigDecimal money);
/**
* 获取充电中的详情
* @param id
* @return
*/
ChargingDetails getChargingDetails(Integer id);
/**
* 停止充电
* @param id
* @return
*/
AjaxResult stopCharging(String id);
void editUserTag(TChargingOrder chargingOrder);
void referralReward(TChargingOrder chargingOrder);
/**
* 停止充电应答结果处理
* @param platformStopChargingReply
*/
void terminateSuccessfulResponse(PlatformStopChargingReplyVO platformStopChargingReply);
TCharingOrderVO chargingOrder(ChargingOrderQuery dto);
R> payOrderQuery(PayOrderQueryDto payOrderQueryDto);
R> getRefundList(ChargingRefundDto chargingRefundDto);
List chargingOrderGroup(ChargingPercentProvinceDto chargingPercentProvinceDto);
List charge(LocalDate sixBefore, List siteIds);
List circle(List siteIds,LocalDate sixBefore);
Map countAll(List siteIds);
List