xuhy
7 天以前 89351ad17c81b37495f21d4dfbf28f0d306a155a
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
package com.ruoyi.admin.controller;
 
 
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.admin.entity.IamConfig;
import com.ruoyi.admin.entity.OrderRecording;
import com.ruoyi.admin.service.IamConfigService;
import com.ruoyi.admin.service.OrderRecordingService;
import com.ruoyi.admin.service.OrderService;
import com.ruoyi.admin.voice.util.AXBUtil;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.order.api.entity.Order;
import com.ruoyi.order.api.feignClient.OrderClient;
import lombok.extern.slf4j.Slf4j;
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 javax.annotation.Resource;
import java.util.Objects;
 
/**
 * <p>
 * 协议政策、司机操作指导 前端控制器
 * </p>
 *
 * @author hjl
 * @since 2024-05-29
 */
@Slf4j
@RestController
@RequestMapping("/privateNumber")
public class PrivateNumberCallBackController {
 
    @Resource
    private OrderClient orderClient;
    @Resource
    private OrderRecordingService orderRecordingService;
    @Resource
    private IamConfigService iamConfigService;
 
    /**
     * 隐私号码回调
     */
    @PostMapping(value = "/callBack")
    public R<String> callBack(@RequestBody JSONObject jsonObject) {
        JSONArray feeLst = jsonObject.getJSONArray("feeLst");
        for (int i = 0; i < feeLst.size(); i++) {
            JSONObject feeLstJson = feeLst.getJSONObject(i);
            String subscriptionId = feeLstJson.getString("subscriptionId");
            String recordDomain = feeLstJson.getString("recordDomain");
            String recordObjectName = feeLstJson.getString("recordObjectName");
            String recordBucketName = feeLstJson.getString("recordBucketName");
            log.info("隐私号码回调:{},录音文件名:{},录音服务器名:{}", subscriptionId, recordObjectName, recordDomain);
            Order order = orderClient.detailBySubscriptionId(subscriptionId).getData();
            long count = orderRecordingService.count(Wrappers.<OrderRecording>lambdaQuery()
                    .eq(OrderRecording::getRecordObjectName, recordObjectName)
                    .eq(OrderRecording::getRecordDomain, recordDomain));
            if (Objects.nonNull(order) && count == 0) {
                IamConfig iamConfig = iamConfigService.getById(1);
                OrderRecording orderRecording = new OrderRecording();
                orderRecording.setOrderId(order.getId());
                orderRecording.setRecordDomain(recordDomain);
                orderRecording.setRecordObjectName(recordObjectName);
                String recordingUrl = AXBUtil.axbGetRecordDownloadLink(iamConfig.getAppKey(), iamConfig.getAppSecret(), recordDomain, recordObjectName);
                orderRecording.setPhoneRecording(recordingUrl);
                orderRecordingService.save(orderRecording);
            }
        }
        return R.ok();
    }
 
}