yjwang 1 неделя назад
Родитель
Сommit
cb99eb1225

+ 9 - 23
fs-company-app/src/main/java/com/fs/app/controller/aiSipCall/AiSipCallController.java

@@ -93,8 +93,6 @@ public class AiSipCallController extends AppBaseController {
     @Autowired
     private CrmCustomerMapper crmCustomerMapper;
 
-    private final String AUDIO_BASE_URL = "http://129.28.164.235:8899";
-
     /**
      * 是否使用自有线路(迁移自 his_java sip.call.myGateway,原放在 AiSipCallUserServiceImpl)。
      * <p>SaaS 老 ServiceImpl 已被精简没有兜底逻辑,故在 Controller 层注入并保持 his_java 行为一致。
@@ -102,21 +100,15 @@ public class AiSipCallController extends AppBaseController {
     @Value("${sip.call.myGateway:false}")
     private boolean isMyGateway;
 
-    /**
-     * 手动外呼网关前缀(迁移自 his_java sip.call.manualGatewayPrefix)
-     */
+    /** 手动外呼网关前缀(迁移自 his_java sip.call.manualGatewayPrefix) */
     @Value("${sip.call.manualGatewayPrefix:weizhi}")
     private String manualGatewayPrefix;
 
-    /**
-     * 公共线路网关前缀(迁移自 his_java sip.call.publicGatewayPrefix)
-     */
+    /** 公共线路网关前缀(迁移自 his_java sip.call.publicGatewayPrefix) */
     @Value("${sip.call.publicGatewayPrefix:outbound}")
     private String publicGatewayPrefix;
 
-    /**
-     * 加密手机号末尾随机串长度(与前端约定,与 his_java 的 RandomUtil.generateRandomCode 等价)
-     */
+    /** 加密手机号末尾随机串长度(与前端约定,与 his_java 的 RandomUtil.generateRandomCode 等价) */
     private static final int RANDOM_TAIL_LEN = 6;
 
     private static final char[] RANDOM_CHARS =
@@ -124,11 +116,11 @@ public class AiSipCallController extends AppBaseController {
 
     private static final SecureRandom RANDOM = new SecureRandom();
 
-    /**
-     * XOR加密公钥(与 his_java 的 PhoneUtil.PUBLIC_KEY_STR 保持一致,避免污染 SaaS 原有 PhoneUtil)
-     */
+    /** XOR加密公钥(与 his_java 的 PhoneUtil.PUBLIC_KEY_STR 保持一致,避免污染 SaaS 原有 PhoneUtil) */
     private static final String XOR_KEY = "ylrz112233";
 
+    private static final String SPLICE_ADD = "http://129.28.164.235:8899/recordings/files?filename=";
+
     /**
      * 查询当前登录销售绑定的SIP分机账号
      * <p>前端 softPhone.vue 启动时调用,用于初始化JsSIP UA配置(user/domain/extPass)。
@@ -308,13 +300,13 @@ public class AiSipCallController extends AppBaseController {
                     try {
                         String decrypted = PhoneUtil.decryptPhone(c.getMobile());
                         c.setMobile(decrypted.replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
-                        if (Integer.valueOf(1).equals(c.getCanDecrypt())) {
-                            c.setDecryptedMobile(decrypted);
-                        }
                     } catch (Exception e) {
                         log.warn("[aiSipCall] 解密手机号失败, customerId={}", c.getCustomerId());
                     }
                 }
+                if(StringUtils.isNotBlank(c.getEffectiveRecordPath())){
+                    c.setEffectiveRecordPath(SPLICE_ADD + c.getEffectiveRecordPath());
+                }
             }
         }
         return getDataTable(list);
@@ -334,12 +326,6 @@ public class AiSipCallController extends AppBaseController {
         query.setCustomerId(customerId);
         PageHelper.startPage(pageNum, pageSize);
         List<AiSipCallOutboundCdr> list = aiSipCallOutboundCdrService.selectAiSipCallOutboundCdrList(query);
-        //拼接音频文件
-        list.forEach(data -> {
-            if (StringUtils.isNotBlank(data.getWavfile())) {
-                data.setWavfile(AUDIO_BASE_URL + data.getWavfile());
-            }
-        });
         return getDataTable(list);
     }
 

+ 3 - 6
fs-service/src/main/java/com/fs/crm/mapper/CrmCustomerMapper.java

@@ -1026,17 +1026,14 @@ public interface CrmCustomerMapper extends BaseMapper<CrmCustomer> {
      * callStatus: 0-全部, 1-已解密(有外呼记录), 2-未解密(无外呼记录)
      */
     @Select({"<script> " +
-            "SELECT c.*, CASE WHEN cdr.customer_id IS NOT NULL THEN 1 ELSE 0 END AS canDecrypt " +
-            "FROM crm_customer c " +
-            "LEFT JOIN (SELECT DISTINCT customer_id FROM ai_sip_call_outbound_cdr WHERE status = 0) cdr ON cdr.customer_id = c.customer_id " +
-            "WHERE c.effective_customer = 1 " +
+            "SELECT c.* FROM crm_customer c WHERE c.effective_customer = 1 " +
             "<if test='receiveUserId != null'> AND c.receive_user_id = #{receiveUserId} </if>" +
             "<if test='startTime != null and startTime != \"\"'> AND c.create_time &gt; #{startTime} </if>" +
             "<if test='endTime != null and endTime != \"\"'> AND c.create_time &lt;= #{endTime} </if>" +
             "<if test='mobile != null and mobile != \"\"'> AND c.mobile LIKE CONCAT('%', #{mobile}, '%') </if>" +
             "<if test='remark != null and remark != \"\"'> AND c.remark LIKE CONCAT('%', #{remark}, '%') </if>" +
-            "<if test='callStatus != null and callStatus == 1'> AND EXISTS (SELECT 1 FROM ai_sip_call_outbound_cdr cdr2 WHERE cdr2.customer_id = c.customer_id) </if>" +
-            "<if test='callStatus != null and callStatus == 2'> AND NOT EXISTS (SELECT 1 FROM ai_sip_call_outbound_cdr cdr2 WHERE cdr2.customer_id = c.customer_id) </if>" +
+            "<if test='callStatus != null and callStatus == 1'> AND EXISTS (SELECT 1 FROM ai_sip_call_outbound_cdr cdr WHERE cdr.customer_id = c.customer_id) </if>" +
+            "<if test='callStatus != null and callStatus == 2'> AND NOT EXISTS (SELECT 1 FROM ai_sip_call_outbound_cdr cdr WHERE cdr.customer_id = c.customer_id) </if>" +
             " ORDER BY c.customer_id DESC " +
             "</script>"})
     List<CrmCustomer> selectEffectiveCustomerList(

+ 1 - 1
fs-service/src/main/resources/mapper/aiSipCall/AiSipCallOutboundCdrMapper.xml

@@ -24,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectAiSipCallOutboundCdrVo">
-        select id, caller, opnum, callee, start_time, answered_time, end_time, uuid, call_type, time_len, time_len_valid, record_filename, chat_content, hangup_cause, source_type, customer_id,wavfile from ai_sip_call_outbound_cdr
+        select id, caller, opnum, callee, start_time, answered_time, end_time, uuid, call_type, time_len, time_len_valid, record_filename, chat_content, hangup_cause, source_type, customer_id from ai_sip_call_outbound_cdr
     </sql>
 
     <select id="selectAiSipCallOutboundCdrList" parameterType="AiSipCallOutboundCdr" resultMap="AiSipCallOutboundCdrResult">