liusheng
2025-04-23 ae3d8d1b4e5d77323197aa298e3c767dc4859f0e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
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<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) {
        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();
    }
 
}