Compare commits

..

2 Commits

Author SHA1 Message Date
yys b2f1bc8439 Merge branch 'seedance_balance' of https://gitea.06zk.com/best_yunwei/ai_images into seedance_balance
# Conflicts:
#	web-api/ruoyi-system/src/main/java/com/ruoyi/ai/mapper/AiVideoReportDataMapper.java
2026-04-21 09:50:29 +08:00
yys 1a7205564d feat: 生成视频时记录统计表数据 2026-04-21 09:48:28 +08:00
3 changed files with 38 additions and 0 deletions

View File

@ -4,9 +4,11 @@ import java.util.List;
import java.math.BigDecimal; import java.math.BigDecimal;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.ai.domain.AiOrder;
import com.ruoyi.ai.domain.AiVideoReportData; import com.ruoyi.ai.domain.AiVideoReportData;
import com.ruoyi.system.domain.subteam.SubteamVideoMetrics; import com.ruoyi.system.domain.subteam.SubteamVideoMetrics;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
/** /**
* AI视频生成统计数据作为其他统计报的数据源Mapper接口 * AI视频生成统计数据作为其他统计报的数据源Mapper接口
@ -67,4 +69,6 @@ public interface AiVideoReportDataMapper extends BaseMapper<AiVideoReportData> {
int upsertRechargeScoreIncrement(@Param("dateKey") String dateKey, int upsertRechargeScoreIncrement(@Param("dateKey") String dateKey,
@Param("deptId") Long deptId, @Param("deptId") Long deptId,
@Param("rechargeScore") BigDecimal rechargeScore); @Param("rechargeScore") BigDecimal rechargeScore);
void addNewOrderReportData(AiOrder aiOrder);
} }

View File

@ -8,7 +8,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.ai.domain.AiManager; import com.ruoyi.ai.domain.AiManager;
import com.ruoyi.ai.domain.AiOrder; import com.ruoyi.ai.domain.AiOrder;
import com.ruoyi.ai.domain.AiStatistics; import com.ruoyi.ai.domain.AiStatistics;
import com.ruoyi.ai.domain.AiVideoReportData;
import com.ruoyi.ai.mapper.AiOrderMapper; import com.ruoyi.ai.mapper.AiOrderMapper;
import com.ruoyi.ai.mapper.AiVideoReportDataMapper;
import com.ruoyi.ai.service.*; import com.ruoyi.ai.service.*;
import com.ruoyi.common.constant.BalanceChangerConstants; import com.ruoyi.common.constant.BalanceChangerConstants;
import com.ruoyi.common.constant.HttpStatus; import com.ruoyi.common.constant.HttpStatus;
@ -46,6 +48,8 @@ public class AiOrderServiceImpl implements IAiOrderService {
@Autowired @Autowired
private AiOrderMapper aiOrderMapper; private AiOrderMapper aiOrderMapper;
@Autowired
private AiVideoReportDataMapper aiVideoReportDataMapper;
@Autowired @Autowired
private IAiManagerService aiManagerService; private IAiManagerService aiManagerService;
@ -253,6 +257,9 @@ public class AiOrderServiceImpl implements IAiOrderService {
aiStatistics.setGenerateCount(1L); aiStatistics.setGenerateCount(1L);
// 新增生成数量 // 新增生成数量
aiStatisticsService.saveOrUpdateData(aiStatistics); aiStatisticsService.saveOrUpdateData(aiStatistics);
// 统计数据
aiVideoReportDataMapper.addNewOrderReportData(aiOrder);
} }
@Override @Override

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.ai.mapper.AiVideoReportDataMapper">
<!--
按订单 create_time 聚合到小时yyyy-MM-dd HH+ dept_id + user_id 维表。
不存在则插入,存在则累加 score、order_count、use_tokens单条语句InnoDB 原子)。
-->
<insert id="addNewOrderReportData">
INSERT INTO ai_video_report_data (date_key, dept_id, user_id, score, order_count, use_tokens)
VALUES (
DATE_FORMAT(#{createTime}, '%Y-%m-%d %H'),
#{deptId},
#{userId},
IFNULL(#{amount}, 0),
1,
IFNULL(#{totalUsage}, 0)
)
ON DUPLICATE KEY UPDATE
score = score + VALUES(score),
order_count = order_count + VALUES(order_count),
use_tokens = use_tokens + VALUES(use_tokens)
</insert>
</mapper>