Browse Source

增加远程推送同步分机绑定

peicj 1 week ago
parent
commit
6e6d2a93c9

+ 23 - 1
ruoyi-admin/src/main/java/com/ruoyi/aicall/controller/ApiController.java

@@ -1528,7 +1528,29 @@ public class ApiController extends BaseController {
         mmap.put("countys", countys);
         mmap.put("countys", countys);
         return AjaxResult.success(mmap);
         return AjaxResult.success(mmap);
     }
     }
-
+    /**
+     * 同步本地分机号绑定
+     * 远端传入分机号与工号集合,按 extNum 批量更新 userCode
+     */
+    @PostMapping("/syncLocalExtNumBind")
+    @ResponseBody
+    @Transactional
+    public AjaxResult syncLocalExtNumBind(@RequestBody List<CcExtNum> extNumList)
+    {
+        if (CollectionUtils.isEmpty(extNumList)) {
+            return AjaxResult.error("参数为空");
+        }
+        List<CcExtNum> validList = extNumList.stream()
+                .filter(item -> item != null && item.getExtNum() != null)
+                .map(item -> new CcExtNum()
+                        .setExtNum(item.getExtNum())
+                        .setUserCode(item.getUserCode() == null ? "" : item.getUserCode()))
+                .collect(Collectors.toList());
+        if (CollectionUtils.isEmpty(validList)) {
+            return AjaxResult.error("有效分机号为空");
+        }
+        return toAjax(ccExtNumService.batchUpdateUserCodeByExtNum(validList));
+    }
     /**
     /**
      * 新增保存手动外呼沟通记录
      * 新增保存手动外呼沟通记录
      */
      */

+ 8 - 0
ruoyi-admin/src/main/java/com/ruoyi/cc/mapper/CcExtNumMapper.java

@@ -105,4 +105,12 @@ public interface CcExtNumMapper
      * 销售归还公司分机
      * 销售归还公司分机
      */
      */
     int updateUserCodeByLoginName(@Param("companyName") String companyName,@Param("loginName") String loginName);
     int updateUserCodeByLoginName(@Param("companyName") String companyName,@Param("loginName") String loginName);
+
+    /**
+     * 根据分机号批量更新绑定工号
+     *
+     * @param list 分机号与工号集合
+     * @return 结果
+     */
+    int batchUpdateUserCodeByExtNum(@Param("list") List<CcExtNum> list);
 }
 }

+ 8 - 0
ruoyi-admin/src/main/java/com/ruoyi/cc/service/ICcExtNumService.java

@@ -113,4 +113,12 @@ public interface ICcExtNumService
     int companyBatchUnbindSipExt(Set<Long> extNums);
     int companyBatchUnbindSipExt(Set<Long> extNums);
 
 
     int updateUserCodeByLoginName(String companyName, String loginName);
     int updateUserCodeByLoginName(String companyName, String loginName);
+
+    /**
+     * 根据分机号批量更新绑定工号
+     *
+     * @param list 分机号与工号集合
+     * @return 结果
+     */
+    int batchUpdateUserCodeByExtNum(List<CcExtNum> list);
 }
 }

+ 5 - 0
ruoyi-admin/src/main/java/com/ruoyi/cc/service/impl/CcExtNumServiceImpl.java

@@ -357,4 +357,9 @@ public class CcExtNumServiceImpl implements ICcExtNumService
     public int updateUserCodeByLoginName(String companyName, String loginName) {
     public int updateUserCodeByLoginName(String companyName, String loginName) {
         return ccExtNumMapper.updateUserCodeByLoginName(companyName, loginName);
         return ccExtNumMapper.updateUserCodeByLoginName(companyName, loginName);
     }
     }
+
+    @Override
+    public int batchUpdateUserCodeByExtNum(List<CcExtNum> list) {
+        return ccExtNumMapper.batchUpdateUserCodeByExtNum(list);
+    }
 }
 }

+ 13 - 0
ruoyi-admin/src/main/resources/mapper/cc/CcExtNumMapper.xml

@@ -131,4 +131,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <update id="updateUserCodeByLoginName">
     <update id="updateUserCodeByLoginName">
         update cc_ext_num set user_code = #{companyName} where user_code = #{loginName}
         update cc_ext_num set user_code = #{companyName} where user_code = #{loginName}
     </update>
     </update>
+
+    <update id="batchUpdateUserCodeByExtNum">
+        update cc_ext_num
+        set user_code = case ext_num
+        <foreach collection="list" item="item">
+            when #{item.extNum} then #{item.userCode}
+        </foreach>
+        end
+        where ext_num in
+        <foreach collection="list" item="item" open="(" separator="," close=")">
+            #{item.extNum}
+        </foreach>
+    </update>
 </mapper>
 </mapper>