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.domain.entity.SysUser; 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.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.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.List; /** * 随访模板库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; @Autowired private PhoneUtils phoneUtils; /** * 查询模板库列表 */ @ApiOperation("查询随访模板库列表") //@PreAuthorize("@ss.hasPermi('smartor:template:list')") @PostMapping("/list") public TableDataInfo list(@RequestBody IvrLibaTemplate ivrLibaTemplate) { //分页 PageUtils.startPageByPost(ivrLibaTemplate.getPageNum(), ivrLibaTemplate.getPageSize()); List 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 list = ivrLibaTemplateService.selectIvrLibaTemplateList(ivrLibaTemplate); ExcelUtil util = new ExcelUtil(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) { SysUser user = getLoginUser().getUser(); ivrLibaTemplate.setOrgid(user.getOrgid()); 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("入参为空,请检查入参"); } SysUser user = getLoginUser().getUser(); ivrLibaTemplateVO.setOrgid(user.getOrgid()); return success(ivrLibaTemplateService.saveOrUpdateTemplate(ivrLibaTemplateVO)); } /** * 查询模板详情根据条件 */ @ApiOperation("查询模板详情根据条件") @PostMapping("/selectInfoByCondition") public AjaxResult selectInfoByCondition(@RequestBody IvrLibaTemplateVO ivrLibaTemplateVO) { 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("/tts") public AjaxResult tts(@RequestParam("fileText") String fileText, @RequestParam("uuid") String uuid) { new PhoneUtils().ttsPlayback(fileText, uuid); return success(); } }