录音管理 跳转 维度分析

This commit is contained in:
spllzh
2025-10-01 21:20:56 +08:00
parent a493ef8c20
commit 24c00c22ab
27 changed files with 396 additions and 1 deletions

View File

@@ -1,7 +1,6 @@
package com.rj.controller.biz;
import com.rj.dto.TopSalesScoreRequestDto;
import com.rj.dto.DifyWorkflowResponseDto;
import com.rj.service.biz.ITopSalesScoreResultService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -15,6 +14,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.rj.entity.bz.TopSalesScoreResult;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.Map;
@@ -98,6 +99,85 @@ public class TopSalesController {
public ResponseEntity<TopSalesScoreResult> getByWorkflowId(@PathVariable String workflowId) {
return ResponseEntity.ok(topSalesScoreResultService.getByWorkflowId(workflowId));
}
@PostMapping("/save-mock-data")
@Operation(summary = "保存TopSales模拟评分数据")
public ResponseEntity<Map<String, Object>> saveMockData(@RequestBody TopSalesScoreRequestDto requestDto) {
Map<String, Object> result = new HashMap<>();
try {
// 创建模拟的评分结果
TopSalesScoreResult mockResult = createMockScoreResult(requestDto);
// 直接保存到数据库
boolean saved = topSalesScoreResultService.save(mockResult);
if (saved) {
result.put("success", true);
result.put("message", "模拟数据保存成功");
result.put("data", mockResult);
return ResponseEntity.ok(result);
} else {
result.put("success", false);
result.put("message", "模拟数据保存失败");
return ResponseEntity.status(500).body(result);
}
} catch (Exception e) {
result.put("success", false);
result.put("message", "保存模拟数据失败: " + e.getMessage());
log.error("保存TopSales模拟数据失败", e);
return ResponseEntity.status(500).body(result);
}
}
/**
* 创建模拟的评分结果
*/
private TopSalesScoreResult createMockScoreResult(TopSalesScoreRequestDto requestDto) {
TopSalesScoreResult result = new TopSalesScoreResult();
// 基本信息
result.setWorkflowId("mock_workflow_" + System.currentTimeMillis());
result.setSalespersonName(requestDto.getSalespersonName());
result.setSalespersonPhone(requestDto.getSalespersonPhone());
result.setDealerName(requestDto.getDealerName());
result.setDealerPhone(requestDto.getDealerPhone());
result.setSrcContent(requestDto.getSrcContent());
result.setSrcId(requestDto.getSrcId());
result.setSrcDesc(requestDto.getSrcDesc());
result.setStatus("success");
result.setCreatedAt(LocalDateTime.now());
result.setUpdatedAt(LocalDateTime.now());
// 生成模拟的15个维度评分 (1-10分)
result.setNaturalnessScore(generateRandomScore());
result.setCoherenceScore(generateRandomScore());
result.setFluencyScore(generateRandomScore());
result.setAdvisorAggressivenessScore(generateRandomScore());
result.setAdvisorConsistencyScore(generateRandomScore());
result.setGreetingReceptionScore(generateRandomScore());
result.setBrandIntroductionScore(generateRandomScore());
result.setCustomerNeedsUnderstandingScore(generateRandomScore());
result.setBudgetUnderstandingScore(generateRandomScore());
result.setRecommendationScore(generateRandomScore());
result.setSafetyIntroductionScore(generateRandomScore());
result.setHealthEnvironmentIntroductionScore(generateRandomScore());
result.setTechnologyIntroductionScore(generateRandomScore());
result.setTestDriveInvitationScore(generateRandomScore());
result.setNegotiationDealScore(generateRandomScore());
// 模拟其他字段
result.setTotalTokens(1000 + (int)(Math.random() * 2000));
result.setElapsedTime(new BigDecimal(String.format("%.2f", 1.0 + Math.random() * 5.0)));
return result;
}
/**
* 生成1-10分的随机评分
*/
private Integer generateRandomScore() {
return 1 + (int)(Math.random() * 10);
}
}

View File

@@ -207,5 +207,6 @@ public class AuthController {

View File

@@ -346,5 +346,6 @@ public class MenuController {

View File

@@ -316,5 +316,6 @@ public class RoleController {

View File

@@ -322,5 +322,6 @@ public class UserRoleController {