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();
|
}
|
|
}
|