package com.example.demo.mapper; import com.example.demo.domain.entity.Statistics; import com.example.demo.domain.entity.UserGoldRecord; import com.example.demo.domain.vo.MarketRechargeStat; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.time.LocalDate; import java.util.Date; import java.util.List; /** * @program: gold-java * @ClassName StatisticsMapper * @description: * @author: Ethan * @create: 2025−06-23 14:08 * @Version 1.0 **/ @Mapper public interface StatisticsMapper { //批量查询 List selectByMarketsAndDate(@Param("markets") List markets, @Param("startDate") Date startDate, @Param("endDate") Date endDate); //根据地区、审核状态、起止时间查询订单表数据 List findByMarketAndAuditStatus(@Param("market") String market, @Param("auditStatusList") List auditStatusList, @Param("startTime") Date startTime, @Param("endTime") Date endTime); //获取某地区当前永久金币余量 Integer sumCurrentPermanentGold(@Param("market") String market); //获取某地区当前六月免费金币余量 Integer sumCurrentFreeJune(@Param("market") String market); //获取某地区当前永久金币余量 Integer sumCurrentFreeDecember(@Param("market") String market); //获取某地区当前永久金币余量 Integer sumCurrentTaskGold(@Param("market") String market); //计算该天充值人数 Integer countRechargeNum( @Param("market") String market, @Param("startTime") Date startTime, @Param("endTime") Date endTime); //计算该天首充人数 Integer countFirstRecharge( @Param("market") String market, @Param("startTime") Date startTime, @Param("endTime") Date endTime); //新增part1统计数据 void insertPart1(Statistics statistics); //更新part1统计数据 void updatePart1(Statistics statistics); //新增part2统计数据 void insertPart2(Statistics statistics); //更新part2统计数据 void updatePart2(Statistics statistics); //新增年度统计数据 void insertYear(Statistics statistics); //更新年度统计数据 void updateYear(Statistics statistics); //获取某地区某时间所在日期的数据(仅一条) Statistics selectByMarketAndDate(@Param("market") String market, @Param("startDate") Date startDate, @Param("endDate") Date endDate); //获取某地区某时间段的统计数据(仅一条) Statistics selectSumByMarketAndDate(@Param("market") String market, @Param("startDate") Date startDate, @Param("endDate") Date endDate); }