package com.ruoyi.system.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.system.dto.BigGiftPlaceOrderDTO;
import com.ruoyi.system.model.TBigGiftPackageOrder;
import com.ruoyi.system.query.BigGiftPackageOrderQuery;
import com.ruoyi.system.query.GoldChangeRecordQuery;
import com.ruoyi.system.query.ProfitPageListQuery;
import com.ruoyi.system.query.UserProfitPageListQuery;
import com.ruoyi.system.vo.ProfitPageListVo;
import com.ruoyi.system.vo.PlaceOrderVO;
import com.ruoyi.system.vo.UserProfitPageListVo;
import javax.validation.Valid;
import java.util.List;
/**
*
* 大礼包订单 服务类
*
*
* @author xiaochen
* @since 2025-12-08
*/
public interface TBigGiftPackageOrderService extends IService {
List pageList(Page tBigGiftPackageOrderPage, BigGiftPackageOrderQuery query);
List export(BigGiftPackageOrderQuery query);
/**
* 大礼包下单
*
* @param dto 下单请求参数
* @param appUserId 用户ID
* @param openid 用户微信openid
* @return 下单结果(包含订单信息和支付参数)
*/
PlaceOrderVO placeOrder(BigGiftPlaceOrderDTO dto, Integer appUserId, String openid);
/**
* 大礼包尾款支付
*
* @param orderId 订单ID
* @param appUserId 用户ID
* @param openid 用户微信openid
* @return 支付结果(包含订单信息和支付参数)
*/
PlaceOrderVO payFinalPayment(Integer orderId, Integer appUserId, String openid);
List profitPageList(Page page, @Valid ProfitPageListQuery query);
List profitPageListExport(@Valid ProfitPageListQuery query);
List pageOrderList(Page tBigGiftPackageOrderPage, GoldChangeRecordQuery query);
List profitUserPageList(Page page, @Valid UserProfitPageListQuery query);
List profitUserPageListExport(@Valid UserProfitPageListQuery query);
List pageOrderListExport(@Valid GoldChangeRecordQuery query);
/**
* 大礼包立即支付(生成新的支付参数)
*
* @param orderId 订单ID
* @param appUserId 用户ID
* @param openid 用户微信openid
* @return 支付参数
*/
PlaceOrderVO payNow(Integer orderId, Integer appUserId, String openid);
}