liusheng
8 天以前 f0a09ee996ab2605869844d6a3d812709e2bf0fa
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
package com.ruoyi.phone.controller;
 
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.phone.api.PhoneApi;
import com.ruoyi.phone.domain.PhoneCallBackSHVO;
import com.ruoyi.phone.domain.PhoneCallReqYQVO;
import com.ruoyi.phone.domain.PhoneCallResultYQVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
import java.util.Map;
 
/**
 * 三汇电话流程回调 Controller。
 *
 * <h3>URL 与模块化前完全一致</h3>
 * 原实现放在 {@code ruoyi-admin} 的 {@code ServicePhoneController}
 * ({@code /smartor/shphone/getFirstQues}、{@code /smartor/shphone/processResust}),
 * 归属电话模块后整体搬到这里,<b>路径不变</b>,三汇平台无需改回调地址。
 * 剩下那个 {@code /smartor/shphone/addOutboundInstance}(外呼实例配置)依赖 smartor 的
 * {@code IServicePhoneService},不属于电话会话链路,仍留在 ruoyi-admin。
 *
 * @author ls
 * @date 2026-08-26
 */
@Slf4j
@Api(description = "三汇电话流程服务")
@RestController
@RequestMapping("/smartor/shphone")
public class ShPhoneController extends BaseController {
 
    @Autowired
    private PhoneApi phoneApi;
 
    @ApiOperation("根据电话号码,获取首个问题")
    @PostMapping("/getFirstQues")
    public Map<String, Object> getFirstQues(@RequestBody PhoneCallReqYQVO phoneCallReqYQVO) {
        log.info("根据电话号码,获取首个问题?{}", phoneCallReqYQVO);
        PhoneCallBackSHVO phoneCallBackSHVO = phoneApi.getFirstQues(phoneCallReqYQVO);
        return success(phoneCallBackSHVO);
    }
 
    @ApiOperation("三汇 ASR 结果处理")
    @PostMapping("/processResust")
    public Map<String, Object> processResust(@RequestBody PhoneCallResultYQVO resultYQVO) {
        log.info("三汇 ASR 结果处理 (三汇)?{}", resultYQVO);
        PhoneCallBackSHVO phoneCallBackSHVO = phoneApi.processResust(resultYQVO);
        return success(phoneCallBackSHVO);
    }
}