package com.ruoyi.web.controller.smartor;
|
|
import com.alibaba.fastjson2.JSON;
|
import com.google.gson.Gson;
|
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.poi.ExcelUtil;
|
import com.smartor.config.RabbitMqConfig;
|
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.MessageBuilder;
|
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.*;
|
|
import javax.servlet.http.HttpServletResponse;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 随访模板库Controller
|
*
|
* @author ruoyi
|
* @date 2023-12-23
|
*/
|
@Slf4j
|
@Api(description = "随访模板库")
|
@RestController
|
@RequestMapping("/smartor/template")
|
public class IvrLibaTemplateController extends BaseController {
|
@Autowired
|
private IIvrLibaTemplateService ivrLibaTemplateService;
|
|
@Autowired
|
private RabbitTemplate rabbitTemplate;
|
|
/**
|
* 查询模板库列表
|
*/
|
@ApiOperation("查询随访模板库列表")
|
@PreAuthorize("@ss.hasPermi('smartor:template:list')")
|
@PostMapping("/list")
|
public TableDataInfo list(@RequestBody IvrLibaTemplate ivrLibaTemplate) {
|
startPage();
|
List<IvrLibaTemplate> list = ivrLibaTemplateService.selectIvrLibaTemplateList(ivrLibaTemplate);
|
return getDataTable(list);
|
}
|
|
/**
|
* 导出模板库列表
|
*/
|
@ApiOperation("导出随访模板库列表")
|
@PreAuthorize("@ss.hasPermi('smartor:template:export')")
|
@Log(title = "模板库", businessType = BusinessType.EXPORT)
|
@PostMapping("/export")
|
public void export(HttpServletResponse response, IvrLibaTemplate ivrLibaTemplate) {
|
List<IvrLibaTemplate> list = ivrLibaTemplateService.selectIvrLibaTemplateList(ivrLibaTemplate);
|
ExcelUtil<IvrLibaTemplate> util = new ExcelUtil<IvrLibaTemplate>(IvrLibaTemplate.class);
|
util.exportExcel(response, list, "模板库数据");
|
}
|
|
/**
|
* 获取模板库详细信息
|
*/
|
@ApiOperation("获取随访模板库详细信息")
|
@PreAuthorize("@ss.hasPermi('smartor:template:query')")
|
@GetMapping(value = "/{ID}")
|
public AjaxResult getInfo(@PathVariable("ID") Long ID) {
|
return success(ivrLibaTemplateService.selectIvrLibaTemplateByID(ID));
|
}
|
|
/**
|
* 新增模板库
|
*/
|
@ApiOperation("新增随访模板库")
|
@PreAuthorize("@ss.hasPermi('smartor:template:add')")
|
@Log(title = "模板库", businessType = BusinessType.INSERT)
|
@PostMapping("/add")
|
public AjaxResult add(@RequestBody IvrLibaTemplate ivrLibaTemplate) {
|
return toAjax(ivrLibaTemplateService.insertIvrLibaTemplate(ivrLibaTemplate));
|
}
|
|
/**
|
* 修改模板库
|
*/
|
@ApiOperation("修改随访模板库")
|
@PreAuthorize("@ss.hasPermi('smartor:template:edit')")
|
@Log(title = "模板库", businessType = BusinessType.UPDATE)
|
@PostMapping("/edit")
|
public AjaxResult edit(@RequestBody IvrLibaTemplate ivrLibaTemplate) {
|
return toAjax(ivrLibaTemplateService.updateIvrLibaTemplate(ivrLibaTemplate));
|
}
|
|
/**
|
* 删除模板库
|
*/
|
@ApiOperation("删除随访模板库")
|
@PreAuthorize("@ss.hasPermi('smartor:template:remove')")
|
@Log(title = "模板库", businessType = BusinessType.DELETE)
|
@GetMapping("/remove/{IDs}")
|
public AjaxResult remove(@PathVariable Long[] IDs) {
|
return toAjax(ivrLibaTemplateService.deleteIvrLibaTemplateByIDs(IDs));
|
}
|
|
/**
|
* 新增或修改随访模板库详情
|
*/
|
@ApiOperation("新增或修改随访模板库详情")
|
@PostMapping("/saveOrUpdateScript")
|
public AjaxResult saveOrUpdateScript(@RequestBody IvrLibaTemplateVO ivrLibaTemplateVO) {
|
if (ObjectUtils.isEmpty(ivrLibaTemplateVO)) {
|
throw new BaseException("入参为空,请检查入参");
|
}
|
return success(ivrLibaTemplateService.saveOrUpdateTemplate(ivrLibaTemplateVO));
|
}
|
|
/**
|
* 查询模板详情根据条件
|
*/
|
@ApiOperation("查询模板详情根据条件")
|
@PostMapping("/selectInfoByCondition")
|
public AjaxResult selectInfoByCondition(@RequestBody IvrLibaTemplateVO ivrLibaTemplateVO) {
|
if (ObjectUtils.isEmpty(ivrLibaTemplateVO)) {
|
throw new BaseException("查询模板详情入参为空,请检查入参");
|
}
|
return success(ivrLibaTemplateService.selectInfoByCondition(ivrLibaTemplateVO));
|
}
|
|
|
/**
|
* 开始执行(测试用)
|
*/
|
@PostMapping("/queryRabbitmq")
|
public AjaxResult queryRabbitmq(@RequestBody Test1Vo test1Vo) {
|
|
// 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("-------------启动咨询应答超时提醒延迟队列-------------");
|
String data = JSON.toJSONString(test1Vo.getTestVo());
|
String substring = data.substring(1, data.length() - 1);
|
|
this.rabbitTemplate.convertAndSend(RabbitMqConfig.phone_exchange, RabbitMqConfig.routing_key, substring, message -> {
|
//注意这里时间可以使long,而且是设置header
|
message.getMessageProperties().setHeader("x-delay", test1Vo.getTimes());
|
return message;
|
});
|
log.info("-------------延迟队列{}ms后执行.-------------", test1Vo.getTimes());
|
return success();
|
}
|
}
|