MrShi
21 小时以前 9eeb62c02a7b3c7b95c20678b6a9c74e7f12f943
server/services/src/main/java/com/doumee/service/business/ReportService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,105 @@
package com.doumee.service.business;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.vo.BikeIncomeStatVO;
import com.doumee.dao.business.vo.BikeUsageStatVO;
import com.doumee.dao.business.vo.DashboardVO;
import com.doumee.dao.business.vo.IncomeStatVO;
import com.doumee.dao.business.vo.OperationCenterVO;
import com.doumee.dao.business.vo.OperationOrderVO;
import com.doumee.dao.business.vo.OrderRidesDetailVO;
import com.doumee.dao.business.vo.OverviewStatVO;
import com.doumee.dao.business.vo.PackageSourceStatVO;
import com.doumee.dao.business.web.request.BikeIncomeQueryDTO;
import com.doumee.dao.business.web.request.OperationOrderQueryDTO;
import java.util.List;
/**
 * æ•°æ®æŠ¥è¡¨ Service(web ç«¯:概览统计 + æ”¶å…¥è½¦åž‹åˆ†æž)。
 *
 * @author rk
 * @date 2026/06/26
 */
public interface ReportService {
    /**
     * æ¦‚览统计:总注册用户、今日新增用户、自行车数量、电动车数量。
     *
     * @return æ¦‚览统计
     */
    OverviewStatVO overview();
    /**
     * æ”¶å…¥è½¦åž‹åˆ†æž:按时段(近7/15/30天或自定义)按车型型号汇总已结算订单收入。
     *
     * @param query æ—¶æ®µæŸ¥è¯¢å…¥å‚(dateType ä¸Žè‡ªå®šä¹‰èµ·æ­¢)
     * @return è½¦åž‹æ”¶å…¥åˆ—表(按收入降序)
     */
    List<BikeIncomeStatVO> bikeIncome(BikeIncomeQueryDTO query);
    /**
     * æ”¶å…¥ç»Ÿè®¡:按时段(近7/15/30天或自定义)按日统计已结算订单收入(柱状图),
     * å¹¶ç»™å‡ºåŒºé—´ç´¯è®¡æ”¶å…¥åŠçŽ¯æ¯”ã€åŒæ¯”å¯¹æ¯”æ•°æ®ã€‚
     *
     * @param query æ—¶æ®µæŸ¥è¯¢å…¥å‚(dateType ä¸Žè‡ªå®šä¹‰èµ·æ­¢)
     * @return æ”¶å…¥ç»Ÿè®¡ç»“æžœ(每日明细 + ç´¯è®¡æ”¶å…¥ + çŽ¯æ¯”/同比)
     */
    IncomeStatVO incomeStat(BikeIncomeQueryDTO query);
    /**
     * è¿è¥ä¸­å¿ƒæ•°æ®:今日订单总数、进行中订单数、今日套餐收入、今日总收入,
     * ä»¥åŠä»Šæ—¥æ—¥æœŸä¸Žæ˜ŸæœŸå‡ (登录人姓名由 Controller ä»Žç™»å½•态注入)。
     *
     * @return è¿è¥ä¸­å¿ƒæ•°æ®
     */
    OperationCenterVO operationCenter();
    /**
     * è¿è¥ä¸­å¿ƒè®¢å•查询:按订单类型(骑行记录类型)/手机号/订单状态分页查询押金订单。
     *
     * @param pageWrap åˆ†é¡µä¸ŽæŸ¥è¯¢æ¡ä»¶(bikeType/phone/status)
     * @return è®¢å•分页数据
     */
    PageData<OperationOrderVO> operationOrderPage(PageWrap<OperationOrderQueryDTO> pageWrap);
    /**
     * è®¢å•骑行记录 + è½¨è¿¹:查询指定订单下全部骑行记录,电车挂轨迹点,自行车提示无轨迹。
     *
     * @param orderId æ”¯ä»˜è®¢å•主键 goodsorder.id(member_rides.ordre_id)
     * @return éª‘行记录与轨迹详情(含车辆类型、是否有轨迹、骑行列表及每条下挂的轨迹点)
     */
    OrderRidesDetailVO orderRidesDetail(String orderId);
    /**
     * è¿‘30天收益统计(固定30天,无需入参):按日柱状图 + ç´¯è®¡ + çŽ¯æ¯”/同比。
     * <p>口径同 {@link #incomeStat},内部以 dateType=3(近30天)调用。
     *
     * @return è¿‘30天收益统计结果
     */
    IncomeStatVO incomeStat30();
    /**
     * è½¦è¾†ä½¿ç”¨æƒ…况:自行车/电动车各自的使用中(status=1)与空闲(status=0)数量。
     * <p>禁用车辆(status=3)不计入。
     *
     * @return è½¦è¾†ä½¿ç”¨æƒ…况
     */
    BikeUsageStatVO bikeUsageStat();
    /**
     * å¥—餐销售来源统计:本月/本年维度下,抖音兑换(payWay=2)与小程序购买(payWay=0)的套餐数。
     * <p>口径:goodsorder type=1 å¥—餐卡购买、payStatus=1 å·²æ”¯ä»˜ã€‚
     *
     * @return å¥—餐销售来源统计
     */
    PackageSourceStatVO packageSourceStat();
    /**
     * ç»¼åˆçœ‹æ¿:本月/昨日/今日收益与订单数、车辆总数/使用中/空闲,客户数相关暂搁置。
     *
     * @return ç»¼åˆçœ‹æ¿æ•°æ®
     */
    DashboardVO dashboard();
}