diff --git a/admin-ui/src/views/subteam/chargeOrder/index.vue b/admin-ui/src/views/subteam/chargeOrder/index.vue index e69de29..ef23826 100644 --- a/admin-ui/src/views/subteam/chargeOrder/index.vue +++ b/admin-ui/src/views/subteam/chargeOrder/index.vue @@ -0,0 +1,64 @@ + + + diff --git a/admin-ui/src/views/subteam/consumeStat/index.vue b/admin-ui/src/views/subteam/consumeStat/index.vue index e69de29..8f35d93 100644 --- a/admin-ui/src/views/subteam/consumeStat/index.vue +++ b/admin-ui/src/views/subteam/consumeStat/index.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/admin-ui/src/views/subteam/groupBalance/index.vue b/admin-ui/src/views/subteam/groupBalance/index.vue index e69de29..0638a08 100644 --- a/admin-ui/src/views/subteam/groupBalance/index.vue +++ b/admin-ui/src/views/subteam/groupBalance/index.vue @@ -0,0 +1,55 @@ + + + diff --git a/admin-ui/src/views/subteam/overview/index.vue b/admin-ui/src/views/subteam/overview/index.vue index e69de29..47ea8d9 100644 --- a/admin-ui/src/views/subteam/overview/index.vue +++ b/admin-ui/src/views/subteam/overview/index.vue @@ -0,0 +1,58 @@ + + + + + diff --git a/admin-ui/src/views/subteam/user/index.vue b/admin-ui/src/views/subteam/user/index.vue index e69de29..6e3fe75 100644 --- a/admin-ui/src/views/subteam/user/index.vue +++ b/admin-ui/src/views/subteam/user/index.vue @@ -0,0 +1,179 @@ + + + diff --git a/admin-ui/src/views/subteam/userBalance/index.vue b/admin-ui/src/views/subteam/userBalance/index.vue index e69de29..236bd65 100644 --- a/admin-ui/src/views/subteam/userBalance/index.vue +++ b/admin-ui/src/views/subteam/userBalance/index.vue @@ -0,0 +1,56 @@ + + + diff --git a/admin-ui/src/views/subteam/videoOrder/index.vue b/admin-ui/src/views/subteam/videoOrder/index.vue index e69de29..b06d72b 100644 --- a/admin-ui/src/views/subteam/videoOrder/index.vue +++ b/admin-ui/src/views/subteam/videoOrder/index.vue @@ -0,0 +1,138 @@ + + + diff --git a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/domain/AiVideoReportData.java b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/domain/AiVideoReportData.java index dcb1a6d..e9b710e 100644 --- a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/domain/AiVideoReportData.java +++ b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/domain/AiVideoReportData.java @@ -27,6 +27,9 @@ public class AiVideoReportData implements Serializable { /** 统计日期键(varchar) */ private String dateKey; + /** 查询参数:统计日期(yyyyMMdd) */ + private String statDate; + /** 部门ID */ private Long deptId; @@ -42,6 +45,12 @@ public class AiVideoReportData implements Serializable { /** 消耗 tokens */ private Long useTokens; + /** 充值积分 */ + private BigDecimal rechargeScore; + + /** 部门名称(联表字段) */ + private String deptName; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; diff --git a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/mapper/AiBalanceChangeRecordMapper.java b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/mapper/AiBalanceChangeRecordMapper.java index 64b6199..fab0dcc 100644 --- a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/mapper/AiBalanceChangeRecordMapper.java +++ b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/mapper/AiBalanceChangeRecordMapper.java @@ -4,6 +4,7 @@ import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.ai.domain.AiBalanceChangeRecord; +import org.apache.ibatis.annotations.Param; /** * 余额使用记录Mapper接口 @@ -17,4 +18,15 @@ public interface AiBalanceChangeRecordMapper extends BaseMapper selectAiBalanceChangeRecordList(AiBalanceChangeRecord aiBalanceChangeRecord); + + /** + * 按 AI 用户所属部门查询余额流水 + * + * @param aiBalanceChangeRecord 查询条件 + * @param deptId 部门ID + * @return 余额流水列表 + */ + List selectAiBalanceChangeRecordListByAiUserDept( + @Param("query") AiBalanceChangeRecord aiBalanceChangeRecord, + @Param("deptId") Long deptId); } diff --git a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/mapper/AiChargeRefundOrderMapper.java b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/mapper/AiChargeRefundOrderMapper.java index 46c0ff2..39ae280 100644 --- a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/mapper/AiChargeRefundOrderMapper.java +++ b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/mapper/AiChargeRefundOrderMapper.java @@ -2,9 +2,17 @@ package com.ruoyi.ai.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.ai.domain.AiChargeRefundOrder; +import java.util.List; /** * 充值/退款订单 Mapper */ public interface AiChargeRefundOrderMapper extends BaseMapper { + /** + * 查询充值/退款订单列表 + * + * @param aiChargeRefundOrder 查询条件 + * @return 订单列表 + */ + List selectAiChargeRefundOrderList(AiChargeRefundOrder aiChargeRefundOrder); } diff --git a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/mapper/AiDeptArkConfigMapper.java b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/mapper/AiDeptArkConfigMapper.java index 7aa7833..7da858a 100644 --- a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/mapper/AiDeptArkConfigMapper.java +++ b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/mapper/AiDeptArkConfigMapper.java @@ -2,9 +2,19 @@ package com.ruoyi.ai.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.ai.domain.AiDeptArkConfig; +import java.util.List; /** * 部门方舟配置 Mapper */ public interface AiDeptArkConfigMapper extends BaseMapper { + List selectAiDeptArkConfigList(AiDeptArkConfig aiDeptArkConfig); + + AiDeptArkConfig selectAiDeptArkConfigById(String id); + + int insertAiDeptArkConfig(AiDeptArkConfig aiDeptArkConfig); + + int updateAiDeptArkConfig(AiDeptArkConfig aiDeptArkConfig); + + int deleteAiDeptArkConfigByIds(String[] ids); } diff --git a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/mapper/AiGroupBalanceChangeRecordMapper.java b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/mapper/AiGroupBalanceChangeRecordMapper.java index 8f4fbf6..75b7257 100644 --- a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/mapper/AiGroupBalanceChangeRecordMapper.java +++ b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/mapper/AiGroupBalanceChangeRecordMapper.java @@ -2,9 +2,20 @@ package com.ruoyi.ai.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.ai.domain.AiGroupBalanceChangeRecord; +import java.util.List; /** * 集团余额变动记录 Mapper */ public interface AiGroupBalanceChangeRecordMapper extends BaseMapper { + List selectAiGroupBalanceChangeRecordList( + AiGroupBalanceChangeRecord aiGroupBalanceChangeRecord); + + AiGroupBalanceChangeRecord selectAiGroupBalanceChangeRecordById(String id); + + int insertAiGroupBalanceChangeRecord(AiGroupBalanceChangeRecord aiGroupBalanceChangeRecord); + + int updateAiGroupBalanceChangeRecord(AiGroupBalanceChangeRecord aiGroupBalanceChangeRecord); + + int deleteAiGroupBalanceChangeRecordByIds(String[] ids); } diff --git a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/mapper/AiVideoReportDataMapper.java b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/mapper/AiVideoReportDataMapper.java index 40fae7a..dcc8ece 100644 --- a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/mapper/AiVideoReportDataMapper.java +++ b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/mapper/AiVideoReportDataMapper.java @@ -3,6 +3,10 @@ package com.ruoyi.ai.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.ai.domain.AiVideoReportData; import com.ruoyi.common.core.dto.DeptSummaryDTO; +import com.ruoyi.system.domain.subteam.SubteamVideoMetrics; +import java.math.BigDecimal; +import java.util.List; +import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; /** @@ -12,4 +16,33 @@ public interface AiVideoReportDataMapper extends BaseMapper { @Select("SELECT SUM(order_count) as order_count,SUM(score) as score FROM ai_video_report_data " + " where dept_id=#{deptId} and date_key>=#{startHour} and date_key<=#{endHour}") DeptSummaryDTO selectOneDeptSummaryData(Long deptId, String startHour, String endHour); + + List selectTeamDailyConsumeByDeptId(@Param("statDate") String statDate, @Param("deptId") Long deptId); + + SubteamVideoMetrics selectDeptVideoMetricsBetween( + @Param("deptId") Long deptId, + @Param("startDay") String startDay, + @Param("endDay") String endDay); + + int upsertVideoConsumeIncrement( + @Param("dateKey") String dateKey, + @Param("deptId") Long deptId, + @Param("userId") Long userId, + @Param("score") BigDecimal score, + @Param("orderCount") Long orderCount, + @Param("useTokens") Long useTokens); + + List selectTeamDailyConsumeList( + @Param("statDate") String statDate, + @Param("deptName") String deptName); + + List selectAiVideoReportDataList(AiVideoReportData aiVideoReportData); + + AiVideoReportData selectAiVideoReportDataById(String id); + + int insertAiVideoReportData(AiVideoReportData aiVideoReportData); + + int updateAiVideoReportData(AiVideoReportData aiVideoReportData); + + int deleteAiVideoReportDataByIds(String[] ids); } diff --git a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/IAiChargeRefundOrderService.java b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/IAiChargeRefundOrderService.java index 1879a67..cd647f6 100644 --- a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/IAiChargeRefundOrderService.java +++ b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/IAiChargeRefundOrderService.java @@ -1,6 +1,7 @@ package com.ruoyi.ai.service; import com.ruoyi.ai.domain.AiChargeRefundOrder; +import java.util.List; /** * 充值/退款订单 Service @@ -14,4 +15,14 @@ public interface IAiChargeRefundOrderService { int updateById(AiChargeRefundOrder entity); int deleteById(Long id); + + List selectAiChargeRefundOrderList(AiChargeRefundOrder aiChargeRefundOrder); + + AiChargeRefundOrder selectAiChargeRefundOrderById(Long id); + + int insertAiChargeRefundOrder(AiChargeRefundOrder aiChargeRefundOrder); + + int updateAiChargeRefundOrder(AiChargeRefundOrder aiChargeRefundOrder); + + int deleteAiChargeRefundOrderByIds(Long[] ids); } diff --git a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/IAiDeptArkConfigService.java b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/IAiDeptArkConfigService.java index aea396d..962af62 100644 --- a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/IAiDeptArkConfigService.java +++ b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/IAiDeptArkConfigService.java @@ -1,6 +1,7 @@ package com.ruoyi.ai.service; import com.ruoyi.ai.domain.AiDeptArkConfig; +import java.util.List; /** * 部门方舟配置 Service @@ -14,4 +15,14 @@ public interface IAiDeptArkConfigService { int updateById(AiDeptArkConfig entity); int deleteById(Long id); + + List selectAiDeptArkConfigList(AiDeptArkConfig aiDeptArkConfig); + + AiDeptArkConfig selectAiDeptArkConfigById(String id); + + int insertAiDeptArkConfig(AiDeptArkConfig aiDeptArkConfig); + + int updateAiDeptArkConfig(AiDeptArkConfig aiDeptArkConfig); + + int deleteAiDeptArkConfigByIds(String[] ids); } diff --git a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/IAiGroupBalanceChangeRecordService.java b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/IAiGroupBalanceChangeRecordService.java index 77db2c0..a3846a7 100644 --- a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/IAiGroupBalanceChangeRecordService.java +++ b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/IAiGroupBalanceChangeRecordService.java @@ -1,6 +1,7 @@ package com.ruoyi.ai.service; import com.ruoyi.ai.domain.AiGroupBalanceChangeRecord; +import java.util.List; /** * 集团余额变动记录 Service @@ -14,4 +15,15 @@ public interface IAiGroupBalanceChangeRecordService { int updateById(AiGroupBalanceChangeRecord entity); int deleteById(Long id); + + List selectAiGroupBalanceChangeRecordList( + AiGroupBalanceChangeRecord aiGroupBalanceChangeRecord); + + AiGroupBalanceChangeRecord selectAiGroupBalanceChangeRecordById(String id); + + int insertAiGroupBalanceChangeRecord(AiGroupBalanceChangeRecord aiGroupBalanceChangeRecord); + + int updateAiGroupBalanceChangeRecord(AiGroupBalanceChangeRecord aiGroupBalanceChangeRecord); + + int deleteAiGroupBalanceChangeRecordByIds(String[] ids); } diff --git a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/IAiVideoReportDataService.java b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/IAiVideoReportDataService.java index 715d689..4b5d12e 100644 --- a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/IAiVideoReportDataService.java +++ b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/IAiVideoReportDataService.java @@ -2,6 +2,8 @@ package com.ruoyi.ai.service; import com.ruoyi.ai.domain.AiVideoReportData; import com.ruoyi.common.core.dto.DeptSummaryDTO; +import java.math.BigDecimal; +import java.util.List; import java.util.Date; @@ -14,4 +16,36 @@ public interface IAiVideoReportDataService { int insert(AiVideoReportData entity); DeptSummaryDTO getSevenDayDeptSummaryData(Long deptId); + + /** + * 按部门查询团队每日消耗 + * + * @param statDate 统计日期(yyyyMMdd) + * @param deptId 部门ID + * @return 每日消耗列表 + */ + List selectTeamDailyConsumeByDeptId(String statDate, Long deptId); + + /** + * 同步视频消耗增量 + * + * @param createTime 订单创建时间 + * @param deptId 部门ID + * @param userId 用户ID + * @param score 消耗积分 + * @param useTokens 消耗token + */ + void syncVideoConsumeIncrement(Date createTime, Long deptId, Long userId, BigDecimal score, Long useTokens); + + List selectTeamDailyConsumeList(String statDate, String deptName); + + List selectAiVideoReportDataList(AiVideoReportData aiVideoReportData); + + AiVideoReportData selectAiVideoReportDataById(String id); + + int insertAiVideoReportData(AiVideoReportData aiVideoReportData); + + int updateAiVideoReportData(AiVideoReportData aiVideoReportData); + + int deleteAiVideoReportDataByIds(String[] ids); } diff --git a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/AiChargeRefundOrderServiceImpl.java b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/AiChargeRefundOrderServiceImpl.java index 5262731..a537088 100644 --- a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/AiChargeRefundOrderServiceImpl.java +++ b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/AiChargeRefundOrderServiceImpl.java @@ -6,6 +6,7 @@ import org.springframework.stereotype.Service; import com.ruoyi.ai.domain.AiChargeRefundOrder; import com.ruoyi.ai.mapper.AiChargeRefundOrderMapper; import com.ruoyi.ai.service.IAiChargeRefundOrderService; +import java.util.List; /** * 充值/退款订单 Service 实现 @@ -35,4 +36,36 @@ public class AiChargeRefundOrderServiceImpl implements IAiChargeRefundOrderServi public int deleteById(Long id) { return aiChargeRefundOrderMapper.deleteById(id); } + + @Override + public List selectAiChargeRefundOrderList(AiChargeRefundOrder aiChargeRefundOrder) { + return aiChargeRefundOrderMapper.selectAiChargeRefundOrderList(aiChargeRefundOrder); + } + + @Override + public AiChargeRefundOrder selectAiChargeRefundOrderById(Long id) { + return aiChargeRefundOrderMapper.selectById(id); + } + + @Override + public int insertAiChargeRefundOrder(AiChargeRefundOrder aiChargeRefundOrder) { + return aiChargeRefundOrderMapper.insert(aiChargeRefundOrder); + } + + @Override + public int updateAiChargeRefundOrder(AiChargeRefundOrder aiChargeRefundOrder) { + return aiChargeRefundOrderMapper.updateById(aiChargeRefundOrder); + } + + @Override + public int deleteAiChargeRefundOrderByIds(Long[] ids) { + int rows = 0; + if (ids == null) { + return rows; + } + for (Long id : ids) { + rows += aiChargeRefundOrderMapper.deleteById(id); + } + return rows; + } } diff --git a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/AiDeptArkConfigServiceImpl.java b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/AiDeptArkConfigServiceImpl.java index bc2a2f3..e470264 100644 --- a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/AiDeptArkConfigServiceImpl.java +++ b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/AiDeptArkConfigServiceImpl.java @@ -6,6 +6,7 @@ import org.springframework.stereotype.Service; import com.ruoyi.ai.domain.AiDeptArkConfig; import com.ruoyi.ai.mapper.AiDeptArkConfigMapper; import com.ruoyi.ai.service.IAiDeptArkConfigService; +import java.util.List; /** * 部门方舟配置 Service 实现 @@ -35,4 +36,29 @@ public class AiDeptArkConfigServiceImpl implements IAiDeptArkConfigService { public int deleteById(Long id) { return aiDeptArkConfigMapper.deleteById(id); } + + @Override + public List selectAiDeptArkConfigList(AiDeptArkConfig aiDeptArkConfig) { + return aiDeptArkConfigMapper.selectAiDeptArkConfigList(aiDeptArkConfig); + } + + @Override + public AiDeptArkConfig selectAiDeptArkConfigById(String id) { + return aiDeptArkConfigMapper.selectAiDeptArkConfigById(id); + } + + @Override + public int insertAiDeptArkConfig(AiDeptArkConfig aiDeptArkConfig) { + return aiDeptArkConfigMapper.insertAiDeptArkConfig(aiDeptArkConfig); + } + + @Override + public int updateAiDeptArkConfig(AiDeptArkConfig aiDeptArkConfig) { + return aiDeptArkConfigMapper.updateAiDeptArkConfig(aiDeptArkConfig); + } + + @Override + public int deleteAiDeptArkConfigByIds(String[] ids) { + return aiDeptArkConfigMapper.deleteAiDeptArkConfigByIds(ids); + } } diff --git a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/AiGroupBalanceChangeRecordServiceImpl.java b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/AiGroupBalanceChangeRecordServiceImpl.java index d4268dc..7ec6279 100644 --- a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/AiGroupBalanceChangeRecordServiceImpl.java +++ b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/AiGroupBalanceChangeRecordServiceImpl.java @@ -6,6 +6,7 @@ import org.springframework.stereotype.Service; import com.ruoyi.ai.domain.AiGroupBalanceChangeRecord; import com.ruoyi.ai.mapper.AiGroupBalanceChangeRecordMapper; import com.ruoyi.ai.service.IAiGroupBalanceChangeRecordService; +import java.util.List; /** * 集团余额变动记录 Service 实现 @@ -35,4 +36,30 @@ public class AiGroupBalanceChangeRecordServiceImpl implements IAiGroupBalanceCha public int deleteById(Long id) { return aiGroupBalanceChangeRecordMapper.deleteById(id); } + + @Override + public List selectAiGroupBalanceChangeRecordList( + AiGroupBalanceChangeRecord aiGroupBalanceChangeRecord) { + return aiGroupBalanceChangeRecordMapper.selectAiGroupBalanceChangeRecordList(aiGroupBalanceChangeRecord); + } + + @Override + public AiGroupBalanceChangeRecord selectAiGroupBalanceChangeRecordById(String id) { + return aiGroupBalanceChangeRecordMapper.selectAiGroupBalanceChangeRecordById(id); + } + + @Override + public int insertAiGroupBalanceChangeRecord(AiGroupBalanceChangeRecord aiGroupBalanceChangeRecord) { + return aiGroupBalanceChangeRecordMapper.insertAiGroupBalanceChangeRecord(aiGroupBalanceChangeRecord); + } + + @Override + public int updateAiGroupBalanceChangeRecord(AiGroupBalanceChangeRecord aiGroupBalanceChangeRecord) { + return aiGroupBalanceChangeRecordMapper.updateAiGroupBalanceChangeRecord(aiGroupBalanceChangeRecord); + } + + @Override + public int deleteAiGroupBalanceChangeRecordByIds(String[] ids) { + return aiGroupBalanceChangeRecordMapper.deleteAiGroupBalanceChangeRecordByIds(ids); + } } diff --git a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/AiVideoReportDataServiceImpl.java b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/AiVideoReportDataServiceImpl.java index 8a957b1..d14631e 100644 --- a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/AiVideoReportDataServiceImpl.java +++ b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/AiVideoReportDataServiceImpl.java @@ -6,6 +6,7 @@ import com.ruoyi.ai.service.IAiVideoReportDataService; import com.ruoyi.common.constant.RedisKey; import com.ruoyi.common.core.dto.DeptSummaryDTO; import com.ruoyi.common.utils.DateUtils; +import java.math.BigDecimal; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; @@ -15,6 +16,7 @@ import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.Calendar; import java.util.Date; +import java.util.List; /** * 视频报表数据 Service 实现 @@ -54,6 +56,57 @@ public class AiVideoReportDataServiceImpl implements IAiVideoReportDataService { return videoReportDataMapper.selectOneDeptSummaryData(deptId, startHour, endHour); } + @Override + public List selectTeamDailyConsumeByDeptId(String statDate, Long deptId) { + return videoReportDataMapper.selectTeamDailyConsumeByDeptId(statDate, deptId); + } + + @Override + public void syncVideoConsumeIncrement(Date createTime, Long deptId, Long userId, BigDecimal score, Long useTokens) { + if (createTime == null || deptId == null || userId == null) { + return; + } + BigDecimal scoreSafe = score != null ? score : BigDecimal.ZERO; + Long useTokensSafe = useTokens != null ? useTokens : 0L; + videoReportDataMapper.upsertVideoConsumeIncrement( + formatDateKey(createTime), + deptId, + userId, + scoreSafe, + 1L, + useTokensSafe); + } + + @Override + public List selectTeamDailyConsumeList(String statDate, String deptName) { + return videoReportDataMapper.selectTeamDailyConsumeList(statDate, deptName); + } + + @Override + public List selectAiVideoReportDataList(AiVideoReportData aiVideoReportData) { + return videoReportDataMapper.selectAiVideoReportDataList(aiVideoReportData); + } + + @Override + public AiVideoReportData selectAiVideoReportDataById(String id) { + return videoReportDataMapper.selectAiVideoReportDataById(id); + } + + @Override + public int insertAiVideoReportData(AiVideoReportData aiVideoReportData) { + return videoReportDataMapper.insertAiVideoReportData(aiVideoReportData); + } + + @Override + public int updateAiVideoReportData(AiVideoReportData aiVideoReportData) { + return videoReportDataMapper.updateAiVideoReportData(aiVideoReportData); + } + + @Override + public int deleteAiVideoReportDataByIds(String[] ids) { + return videoReportDataMapper.deleteAiVideoReportDataByIds(ids); + } + private static String formatDateKey(Date date) { LocalDateTime ldt = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()); return DATE_KEY_FORMAT.format(ldt); diff --git a/web-api/ruoyi-system/src/main/resources/mapper/system/AiBalanceChangeRecordMapper.xml b/web-api/ruoyi-system/src/main/resources/mapper/system/AiBalanceChangeRecordMapper.xml index d43f1bf..4d1d8d6 100644 --- a/web-api/ruoyi-system/src/main/resources/mapper/system/AiBalanceChangeRecordMapper.xml +++ b/web-api/ruoyi-system/src/main/resources/mapper/system/AiBalanceChangeRecordMapper.xml @@ -43,6 +43,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by r.id desc + +