录音管理 跳转 维度分析
This commit is contained in:
@@ -92,5 +92,6 @@ public class AudioStatisticsScheduler {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,117 @@
|
||||
package com.rj.scheduler;
|
||||
|
||||
import com.rj.controller.biz.TopSalesController;
|
||||
import com.rj.dto.TopSalesScoreRequestDto;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
|
||||
/**
|
||||
* TopSales评分结果模拟数据定时生成器
|
||||
* 每天凌晨1:30,循环50次调用TopSales评分接口,插入模拟的评分数据
|
||||
* 数据取值范围参考 topsales_score_result 表结构
|
||||
*
|
||||
* Author: 自动生成
|
||||
* Date: 2025/01/30
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class TopSalesMockInsertDataScheduler {
|
||||
|
||||
@Autowired
|
||||
private TopSalesController topSalesController;
|
||||
|
||||
// 销售顾问数据 - 参考 AudioMockInsertDataScheduler
|
||||
private static final String[][] SALES_PEOPLE = {
|
||||
{"1972975619388026881", "江叶", "1899263500"},
|
||||
{"1972975623548776449", "许莲", "1894165677"},
|
||||
{"1972975624127590401", "叶洋", "1887059943"},
|
||||
{"1972975624584769537", "曾艺", "1883632473"},
|
||||
{"1972975625037754369", "赵眉", "1502041762"},
|
||||
{"1972975625520099329", "付婵", "1506166863"}
|
||||
};
|
||||
|
||||
// 经销商门店数据 - 参考 AudioMockInsertDataScheduler
|
||||
private static final String[][] DEALERSHIPS = {
|
||||
{"1957424710587330562", "广州奔驰4S店", "020-12345678"},
|
||||
{"1957424711560409089", "北京奥迪4S店", "010-87654321"},
|
||||
{"1957424714953601026", "上海宝马4S店", "021-11223344"},
|
||||
{"1957424739267981313", "深圳雷克萨斯4S店", "0755-55667788"},
|
||||
{"1957424740000000001", "成都保时捷4S店", "028-99887766"},
|
||||
{"1957424740000000017", "昆明威兹曼4S店", "0871-55443322"}
|
||||
};
|
||||
|
||||
// 模拟的销售对话内容,覆盖15个评分维度
|
||||
private static final String[] MOCK_SALES_CHATS = {
|
||||
"销售顾问:您好,欢迎来到我们奔驰展厅,我是张明,很高兴为您服务。客户:你好,我想了解一下C级车。销售顾问:好的,C级车是我们奔驰的经典车型,请问您平时主要用车场景是什么呢?客户:主要是上下班代步。销售顾问:那您对油耗和舒适性有什么要求吗?客户:希望省油一些,舒适性要好。销售顾问:请问您的购车预算大概在什么范围?客户:30-40万左右。销售顾问:这个价位段我们有多款车型可以选择,C级、E级都有合适的配置。根据您的需求,我推荐C260L运动版,2.0T发动机动力充沛,9速自动变速箱平顺省油,还有全景天窗和柏林之声音响。奔驰在安全方面一直领先,C级配备了主动刹车、盲点监测、车道保持等多项安全配置,还有9个安全气囊全方位保护。我们的车内空气质量经过严格检测,使用环保材料,还有PM2.5过滤系统,为您的健康保驾护航。C级搭载了最新的MBUX智能人机交互系统,支持语音控制、手机互联,还有AR实景导航,科技感十足。光听介绍不如亲身体验,我们安排您试驾一下,感受一下奔驰的驾驶质感。客户:好的,什么时候可以试驾?销售顾问:现在就可以,我带您去试驾。如果您今天订车,我们可以给您额外的优惠,包括免费保养和延保服务。客户:让我考虑一下。销售顾问:好的,我给您一份详细的报价单,您可以和家人商量一下。",
|
||||
|
||||
"销售顾问:欢迎光临奔驰展厅!请问您贵姓?客户:我姓李。销售顾问:李先生您好,请坐,我给您倒杯水。今天是想了解哪款车型呢?客户:我想看看E级车。销售顾问:E级是我们奔驰的中大型豪华轿车,奔驰作为百年豪华品牌,一直秉承着'汽车发明者'的理念,我们的每一款车都体现了德国工艺的精髓。请问您平时用车主要是商务还是家用?客户:主要是商务接待。销售顾问:那E级商务版很适合您,后排空间宽敞,配置豪华,是商务接待的理想选择。您的购车预算大概在什么范围?客户:50万左右。销售顾问:这个价位段E级很合适,我推荐E300L豪华版,这款车配置丰富,性价比很高。E级商务版配备了后排娱乐系统、座椅按摩、氛围灯等豪华配置,让您的客户感受到尊贵的体验。奔驰的安全技术一直领先,E级配备了智能驾驶辅助系统,包括自适应巡航、车道保持、自动泊车等。我们的车内环境经过严格检测,使用环保材料,还有负离子空气净化系统,为您的健康保驾护航。E级搭载了最新的MBUX系统,支持语音控制、手势操作,还有AR实景导航,科技感十足。光听介绍不如亲身体验,我们安排您试驾一下E级,感受一下奔驰的驾驶质感。客户:好的,什么时候可以试驾?销售顾问:现在就可以,我带您去试驾,大概30分钟。如果您今天订车,我们可以给您额外的优惠,包括免费保养、延保服务,还有金融政策支持。客户:让我考虑一下。销售顾问:好的,我给您一份详细的报价单,您可以和家人商量一下。",
|
||||
|
||||
"销售顾问:您好,欢迎来到奔驰展厅!我是李华,很高兴为您服务。客户:你好,我想了解一下GLC。销售顾问:GLC是我们奔驰的中型豪华SUV,请问您主要关注哪些方面?客户:空间和通过性。销售顾问:GLC在空间方面很宽敞,通过性也很好,适合家庭使用。奔驰作为豪华品牌,我们的服务理念是'客户至上',从售前到售后,我们都会为您提供最优质的服务。请问您平时用车主要是商务还是家用?客户:主要是家用。销售顾问:那GLC很适合您,空间宽敞,通过性好,适合家庭使用。您的购车预算大概在什么范围?客户:45万左右。销售顾问:这个价位段GLC很合适,我推荐GLC 300L豪华版,这款车配置丰富,空间宽敞,适合家庭使用。GLC配备了后排娱乐系统、座椅按摩、氛围灯等豪华配置,让您的家人感受到尊贵的体验。奔驰的安全技术一直领先,GLC配备了智能驾驶辅助系统,包括自适应巡航、车道保持、自动泊车等。我们的车内环境经过严格检测,使用环保材料,还有负离子空气净化系统,为您的健康保驾护航。GLC搭载了最新的MBUX系统,支持语音控制、手势操作,还有AR实景导航,科技感十足。光听介绍不如亲身体验,我们安排您试驾一下GLC,感受一下奔驰的驾驶质感。客户:好的,什么时候可以试驾?销售顾问:现在就可以,我带您去试驾,大概30分钟。如果您今天订车,我们可以给您额外的优惠,包括免费保养、延保服务,还有金融政策支持。客户:让我考虑一下。销售顾问:好的,我给您一份详细的报价单,您可以和家人商量一下。",
|
||||
|
||||
"销售顾问:欢迎光临奔驰展厅!请问您贵姓?客户:我姓王。销售顾问:王先生您好,请坐,我给您介绍一下我们最新的A级车。客户:A级车我比较感兴趣。销售顾问:A级是奔驰的入门级豪华车,性价比很高,适合年轻消费者。奔驰作为豪华品牌,我们的设计理念是'感性·纯粹',每一款车都体现了奔驰的设计美学。请问您平时用车主要是代步还是商务?客户:主要是代步。销售顾问:那A级很适合您,油耗低,操控灵活,还有丰富的科技配置。您的购车预算大概在什么范围?客户:25万左右。销售顾问:这个价位段A级很合适,我推荐A200L运动版,这款车配置丰富,性价比很高。A级配备了后排娱乐系统、座椅按摩、氛围灯等豪华配置,让您的驾驶体验更加舒适。奔驰的安全技术一直领先,A级配备了主动安全系统,包括主动刹车、盲点监测等,让驾驶更安全。我们的车内环境经过严格检测,使用环保材料,还有负离子空气净化系统,为您的健康保驾护航。A级配备了最新的MBUX系统,支持语音控制、手机互联,还有AR实景导航,科技感十足。光听介绍不如亲身体验,我们安排您试驾一下A级,感受一下奔驰的驾驶质感。客户:好的,什么时候可以试驾?销售顾问:现在就可以,我带您去试驾,大概30分钟。如果您今天订车,我们可以给您额外的优惠,包括免费保养、延保服务,还有金融政策支持。客户:让我考虑一下。销售顾问:好的,我给您一份详细的报价单,您可以和家人商量一下。",
|
||||
|
||||
"销售顾问:您好,欢迎来到奔驰展厅!我是王强,很高兴为您服务。客户:你好,我想了解一下S级车。销售顾问:S级是我们奔驰的旗舰豪华轿车,请问您主要关注哪些方面?客户:舒适性和豪华感。销售顾问:S级在舒适性方面有空气悬架,豪华感方面有后排娱乐系统,是商务接待的理想选择。奔驰作为百年豪华品牌,一直秉承着'汽车发明者'的理念,我们的每一款车都体现了德国工艺的精髓。请问您平时用车主要是商务还是家用?客户:主要是商务接待。销售顾问:那S级很适合您,后排空间宽敞,配置豪华,是商务接待的理想选择。您的购车预算大概在什么范围?客户:80万左右。销售顾问:这个价位段S级很合适,我推荐S400L豪华版,这款车配置丰富,性价比很高。S级配备了后排娱乐系统、座椅按摩、氛围灯等豪华配置,让您的客户感受到尊贵的体验。奔驰的安全技术一直领先,S级配备了智能驾驶辅助系统,包括自适应巡航、车道保持、自动泊车等。我们的车内环境经过严格检测,使用环保材料,还有负离子空气净化系统,为您的健康保驾护航。S级搭载了最新的MBUX系统,支持语音控制、手势操作,还有AR实景导航,科技感十足。光听介绍不如亲身体验,我们安排您试驾一下S级,感受一下奔驰的驾驶质感。客户:好的,什么时候可以试驾?销售顾问:现在就可以,我带您去试驾,大概30分钟。如果您今天订车,我们可以给您额外的优惠,包括免费保养、延保服务,还有金融政策支持。客户:让我考虑一下。销售顾问:好的,我给您一份详细的报价单,您可以和家人商量一下。"
|
||||
};
|
||||
|
||||
private final Random random = new Random();
|
||||
|
||||
/**
|
||||
* 每天 01:30 触发
|
||||
*/
|
||||
@Scheduled(cron = "0 30 1 * * ?")
|
||||
public void generateDailyTopSalesData() {
|
||||
try {
|
||||
log.info("开始执行TopSales评分模拟数据任务,时间:{}", LocalDateTime.now());
|
||||
int success = 0;
|
||||
for (int i = 0; i < 50; i++) {
|
||||
TopSalesScoreRequestDto requestDto = buildMockTopSalesRequest();
|
||||
ResponseEntity<Map<String, Object>> resp = topSalesController.saveMockData(requestDto);
|
||||
if (resp != null && resp.getStatusCode().is2xxSuccessful()) {
|
||||
success++;
|
||||
} else {
|
||||
log.warn("第{}次插入失败,返回:{}", i + 1, resp == null ? "null" : resp.getStatusCode());
|
||||
}
|
||||
}
|
||||
log.info("TopSales评分模拟数据任务完成,共尝试50次,成功 {} 次", success);
|
||||
} catch (Exception e) {
|
||||
log.error("TopSales评分模拟数据任务异常", e);
|
||||
}
|
||||
}
|
||||
|
||||
private TopSalesScoreRequestDto buildMockTopSalesRequest() {
|
||||
TopSalesScoreRequestDto requestDto = new TopSalesScoreRequestDto();
|
||||
|
||||
// 随机选择销售人员和经销商
|
||||
String[] sales = pick(SALES_PEOPLE);
|
||||
String[] dealer = pick(DEALERSHIPS);
|
||||
|
||||
// 设置基本信息
|
||||
requestDto.setChat(pick(MOCK_SALES_CHATS));
|
||||
requestDto.setSalespersonName(sales[1]);
|
||||
requestDto.setSalespersonPhone(sales[2]);
|
||||
requestDto.setDealerName(dealer[1]);
|
||||
requestDto.setDealerPhone(dealer[2]);
|
||||
|
||||
// 设置来源信息
|
||||
requestDto.setSrcContent(requestDto.getChat());
|
||||
requestDto.setSrcId("mock_src_" + System.currentTimeMillis() + "_" + random.nextInt(1000));
|
||||
requestDto.setSrcDesc("模拟销售对话数据 - " + sales[1] + " 在 " + dealer[1]);
|
||||
|
||||
return requestDto;
|
||||
}
|
||||
|
||||
private String[] pick(String[][] arr) {
|
||||
return arr[random.nextInt(arr.length)];
|
||||
}
|
||||
|
||||
private String pick(String[] arr) {
|
||||
return arr[random.nextInt(arr.length)];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user