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> 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)]; } }