liusheng
2024-07-26 0ff7a8f69570b3fc7418c35f3d6e273ef4f73f20
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateController.java
@@ -1,24 +1,23 @@
package com.ruoyi.web.controller.smartor;
import com.alibaba.fastjson2.JSON;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.smartor.config.RabbitMqConfig;
import com.smartor.config.PhoneUtils;
import com.smartor.domain.IvrLibaTemplate;
import com.smartor.domain.IvrLibaTemplateVO;
import com.smartor.domain.Test1Vo;
import com.smartor.service.IIvrLibaTemplateService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.amqp.AmqpException;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessagePostProcessor;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@@ -40,8 +39,12 @@
    @Autowired
    private IIvrLibaTemplateService ivrLibaTemplateService;
//    @Autowired
//    private RabbitTemplate rabbitTemplate;
    @Autowired
    private RabbitTemplate rabbitTemplate;
    private PhoneUtils phoneUtils;
    /**
     * 查询模板库列表
@@ -50,7 +53,8 @@
    @PreAuthorize("@ss.hasPermi('smartor:template:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrLibaTemplate ivrLibaTemplate) {
        startPage();
        //分页
        PageUtils.startPageByPost(ivrLibaTemplate.getPageNum(), ivrLibaTemplate.getPageSize());
        List<IvrLibaTemplate> list = ivrLibaTemplateService.selectIvrLibaTemplateList(ivrLibaTemplate);
        return getDataTable(list);
    }
@@ -129,39 +133,32 @@
    @ApiOperation("查询模板详情根据条件")
    @PostMapping("/selectInfoByCondition")
    public AjaxResult selectInfoByCondition(@RequestBody IvrLibaTemplateVO ivrLibaTemplateVO) {
        if (ObjectUtils.isEmpty(ivrLibaTemplateVO)) {
            throw new BaseException("查询模板详情入参为空,请检查入参");
        if (ivrLibaTemplateVO.getId() == null) {
            return success();
        }
        return success(ivrLibaTemplateService.selectInfoByCondition(ivrLibaTemplateVO));
    }
//
//    /**
//     * 开始执行(测试用)
//     */
//    @PostMapping("/queryRabbitmq")
//    public AjaxResult queryRabbitmq(@RequestBody Test1Vo test1Vo) {
//
//        log.info("-------------启动咨询应答超时提醒延迟队列-------------");
//        String data = JSON.toJSONString(test1Vo.getTestVo());
//        String substring = data.substring(1, data.length() - 1);
//        rabbitMqCallPhoneConfig.sendMessage("phone_exchange", "phone.123", substring, test1Vo.getTimes());
//
//        log.info("-------------延迟队列{}ms后执行.-------------", test1Vo.getTimes());
//        return success();
//    }
    /**
     * 开始执行(测试用)
     */
    @GetMapping("/queryRabbitmq")
    public AjaxResult queryRabbitmq(@RequestParam("routintKey") String routintKey, @RequestParam("content") String content, @RequestParam("times") Long times) {
//        rabbitTemplate.convertAndSend(RabbitMqConfig.EXCHANGE_NAME, "phone.001", "测试数据001");
//        rabbitTemplate.convertAndSend(RabbitMqConfig.EXCHANGE_NAME, "phone.002", "测试数据002");
//        rabbitTemplate.convertAndSend(RabbitMqConfig.EXCHANGE_NAME, "phone.003", "测试数据003");
//        rabbitTemplate.convertAndSend(RabbitMqConfig.EXCHANGE_NAME, routintKey, message, new MessagePostProcessor() {
//            @Override
//            public Message postProcessMessage(Message message) throws AmqpException {
////                message.getMessageProperties().setDelay(times);
//                message.getMessageProperties().getHeaders().put("x-delay", times);
////message.getMessageProperties().setExpiration();
//                return message;
//            }
//        });
        log.info("-------------启动咨询应答超时提醒延迟队列-------------");
        this.rabbitTemplate.convertAndSend(RabbitMqConfig.phone_exchange, RabbitMqConfig.routing_key, content, message -> {
            //注意这里时间可以使long,而且是设置header
            message.getMessageProperties().setHeader("x-delay", times);
            return message;
        });
        log.info("-------------延迟队列{}ms后执行.-------------", times);
    @GetMapping("/tts")
    public AjaxResult tts(@RequestParam("fileText") String fileText, @RequestParam("uuid") String uuid) {
        new PhoneUtils().ttsPlayback(fileText, uuid);
        return success();
    }
}