|
@@ -3,13 +3,17 @@ package com.fs.app.controller;
|
|
|
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
|
+import com.fs.aiSoundReplication.param.TtsRequest;
|
|
|
|
|
+import com.fs.aiSoundReplication.service.impl.TtsServiceImpl;
|
|
|
import com.fs.app.task.qwTask;
|
|
import com.fs.app.task.qwTask;
|
|
|
import com.fs.app.taskService.*;
|
|
import com.fs.app.taskService.*;
|
|
|
import com.fs.common.core.domain.R;
|
|
import com.fs.common.core.domain.R;
|
|
|
import com.fs.common.core.domain.ResponseResult;
|
|
import com.fs.common.core.domain.ResponseResult;
|
|
|
import com.fs.common.core.redis.RedisCache;
|
|
import com.fs.common.core.redis.RedisCache;
|
|
|
import com.fs.common.utils.StringUtils;
|
|
import com.fs.common.utils.StringUtils;
|
|
|
|
|
+import com.fs.company.param.VcCompanyUser;
|
|
|
import com.fs.company.service.ICompanyService;
|
|
import com.fs.company.service.ICompanyService;
|
|
|
|
|
+import com.fs.company.service.ICompanyUserService;
|
|
|
import com.fs.company.vo.RedPacketMoneyVO;
|
|
import com.fs.company.vo.RedPacketMoneyVO;
|
|
|
import com.fs.course.config.CourseConfig;
|
|
import com.fs.course.config.CourseConfig;
|
|
|
import com.fs.course.mapper.FsCourseRedPacketLogMapper;
|
|
import com.fs.course.mapper.FsCourseRedPacketLogMapper;
|
|
@@ -19,6 +23,7 @@ import com.fs.course.param.newfs.FsUserCourseAddCompanyUserParam;
|
|
|
import com.fs.course.service.*;
|
|
import com.fs.course.service.*;
|
|
|
import com.fs.course.vo.FsUserCourseVideoQVO;
|
|
import com.fs.course.vo.FsUserCourseVideoQVO;
|
|
|
import com.fs.fastGpt.domain.FastGptPushTokenTotal;
|
|
import com.fs.fastGpt.domain.FastGptPushTokenTotal;
|
|
|
|
|
+import com.fs.fastgptApi.vo.AudioVO;
|
|
|
import com.fs.his.domain.FsIntegralCount;
|
|
import com.fs.his.domain.FsIntegralCount;
|
|
|
import com.fs.his.domain.FsUser;
|
|
import com.fs.his.domain.FsUser;
|
|
|
import com.fs.his.service.IFsInquiryOrderService;
|
|
import com.fs.his.service.IFsInquiryOrderService;
|
|
@@ -37,6 +42,7 @@ import com.fs.qwApi.domain.QwExternalContactResult;
|
|
|
import com.fs.qwApi.domain.QwResult;
|
|
import com.fs.qwApi.domain.QwResult;
|
|
|
import com.fs.qwApi.domain.inner.ExternalContact;
|
|
import com.fs.qwApi.domain.inner.ExternalContact;
|
|
|
import com.fs.qwApi.service.QwApiService;
|
|
import com.fs.qwApi.service.QwApiService;
|
|
|
|
|
+import com.fs.sop.domain.QwSopTempVoice;
|
|
|
import com.fs.sop.mapper.QwSopLogsMapper;
|
|
import com.fs.sop.mapper.QwSopLogsMapper;
|
|
|
import com.fs.sop.mapper.QwSopMapper;
|
|
import com.fs.sop.mapper.QwSopMapper;
|
|
|
import com.fs.sop.mapper.SopUserLogsMapper;
|
|
import com.fs.sop.mapper.SopUserLogsMapper;
|
|
@@ -59,6 +65,7 @@ import com.fs.app.task.qwTask;
|
|
|
import java.time.*;
|
|
import java.time.*;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@Api("公共接口")
|
|
@Api("公共接口")
|
|
|
@RestController
|
|
@RestController
|
|
@@ -185,9 +192,59 @@ public class CommonController {
|
|
|
private IQwContactWayService contactWayService;
|
|
private IQwContactWayService contactWayService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private IQwSopTempVoiceService iQwSopTempVoiceService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private ICompanyUserService iCompanyUserService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private TtsServiceImpl ttsServiceImpl;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
@GetMapping("/resetQwContactWayUserLimit")
|
|
@GetMapping("/resetQwContactWayUserLimit")
|
|
|
- public void resetQwContactWayUserLimit() {
|
|
|
|
|
- contactWayService.resetQwContactWayUserLimit();
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 定时 将当天 生成的语音文本 转为 声音
|
|
|
|
|
+ */
|
|
|
|
|
+ public void convertSopVoiceEveryDay() {
|
|
|
|
|
+
|
|
|
|
|
+ try {
|
|
|
|
|
+ // 查询待生成声音的文本
|
|
|
|
|
+ List<QwSopTempVoice> qwSopTempVoices = iQwSopTempVoiceService.convertSopVoiceEveryDay();
|
|
|
|
|
+
|
|
|
|
|
+ // 过滤 出销售id
|
|
|
|
|
+ List<Long> userIds = qwSopTempVoices.stream()
|
|
|
|
|
+ .map(QwSopTempVoice::getCompanyUserId)
|
|
|
|
|
+ .filter(Objects::nonNull)
|
|
|
|
|
+ .distinct()
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ // 查询 销售 是否绑定了且录制了音色
|
|
|
|
|
+ List<VcCompanyUser> vcCompanyUsers = iCompanyUserService.selectVcCompanyUserList(userIds);
|
|
|
|
|
+
|
|
|
|
|
+ // 做键值 方便匹配
|
|
|
|
|
+ Map<Long, VcCompanyUser> vcUserMap = vcCompanyUsers.stream()
|
|
|
|
|
+ .collect(Collectors.toMap(VcCompanyUser::getCompanyUserId, v -> v, (a, b) -> a));
|
|
|
|
|
+ List<QwSopTempVoice> filteredVoices = qwSopTempVoices.stream()
|
|
|
|
|
+ .filter(v -> v.getCompanyUserId() != null && vcUserMap.containsKey(v.getCompanyUserId()))
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+
|
|
|
|
|
+ filteredVoices.forEach(item -> {
|
|
|
|
|
+ VcCompanyUser vcCompanyUser = vcUserMap.get(item.getCompanyUserId());
|
|
|
|
|
+ AudioVO audioVO = ttsServiceImpl.textToSpeech(new TtsRequest(null, null, vcCompanyUser.getSpeakerId(), item.getVoiceTxt()));
|
|
|
|
|
+ item.setVoiceUrl(audioVO.getUrl());
|
|
|
|
|
+ item.setDuration(audioVO.getDuration());
|
|
|
|
|
+ item.setUserVoiceUrl(audioVO.getWavUrl());
|
|
|
|
|
+ QwUser user = qwUserMapper.selectQwUserconvertSopVoice(item.getCompanyUserId());
|
|
|
|
|
+ ttsServiceImpl.ttsChargeByCount(vcCompanyUser,audioVO,user);
|
|
|
|
|
+
|
|
|
|
|
+ });
|
|
|
|
|
+ // 批量更新
|
|
|
|
|
+ iQwSopTempVoiceService.saveOrUpdateBatch(filteredVoices);
|
|
|
|
|
+ }catch (Exception e){
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
@GetMapping("/qwContactWay")
|
|
@GetMapping("/qwContactWay")
|
|
|
public void qwContactWay(String userID) throws Exception {
|
|
public void qwContactWay(String userID) throws Exception {
|