Procházet zdrojové kódy

转接回调删除外部联系人修改状态为接替完毕

Long před 1 týdnem
rodič
revize
dbfc374c0b

+ 6 - 1
fs-service/src/main/java/com/fs/qw/mapper/QwExternalContactTransferCompanyAuditUserMapper.java

@@ -14,7 +14,12 @@ public interface QwExternalContactTransferCompanyAuditUserMapper extends BaseMap
     List<QwExternalContactTransferCompanyAuditUser> getExistAuditByExtIds(@Param("ids") List<Long> ids);
 
     /**
-     * 查询接替记录
+     * 查询接替记录 (接替)
      */
     List<QwExternalContactTransferCompanyAuditUser> selectListByExtIdAndTakeoverUserIdAndCorpId(@Param("externalUserID") String externalUserID, @Param("takeoverUserId") String takeoverUserId, @Param("corpId") String corpId);
+
+    /**
+     * 查询接替记录 (转出)
+     */
+    List<QwExternalContactTransferCompanyAuditUser> selectListByExtIdAndHandoverUserIdAndCorpId(@Param("externalUserID") String externalUserID, @Param("handoverUserId") String handoverUserId, @Param("corpId") String corpId);
 }

+ 14 - 0
fs-service/src/main/java/com/fs/qw/service/impl/QwExternalContactServiceImpl.java

@@ -4234,6 +4234,11 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
             qwExternal.setId(qwExternalContact.getId());
             qwExternal.setStatus(4);
             qwExternal.setDelTime(new Date());
+
+            // 是否存在转接记录
+            if (isTransfer(transferLogVO, externalUserID, userID, corpId)) {
+                qwExternal.setTransferStatus(1);
+            }
 //            logger.info("删除用户客户更改状态");
             qwExternalContactMapper.updateQwExternalContact(qwExternal);
 
@@ -4250,6 +4255,15 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
         }
     }
 
+    /**
+     * 是否存在转接记录
+     */
+    private boolean isTransfer(QwExternalContactTransferLog transferLogVO, String externalUserID, String handoverUserId, String corpId) {
+        // 跨公司接替回调处理
+        List<QwExternalContactTransferCompanyAuditUser> auditUserList = transferCompanyAuditUserMapper.selectListByExtIdAndHandoverUserIdAndCorpId(externalUserID, handoverUserId, corpId);
+        return Objects.nonNull(transferLogVO) || !auditUserList.isEmpty();
+    }
+
     @Override
     public void deletefollowUserByExternalUserId(String externalUserID, String userID, String corpId) {
 

+ 12 - 1
fs-service/src/main/resources/mapper/qw/QwExternalContactTransferCompanyAuditUserMapper.xml

@@ -23,6 +23,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where au.status = 2
           and au.external_user_id = #{externalUserID}
           and ca.corp_id = #{corpId}
-          and au.qw_user_ext_id = #{takeoverUserId}
+          and ca.qw_user_ext_id = #{takeoverUserId}
+    </select>
+
+    <select id="selectListByExtIdAndHandoverUserIdAndCorpId" resultType="com.fs.qw.domain.QwExternalContactTransferCompanyAuditUser">
+        select
+            au.*
+        from qw_external_contact_transfer_company_audit_user au
+        inner join qw_external_contact_transfer_company_audit ca on au.audit_id = ca.id and ca.status = 2
+        where au.status in (1,2)
+          and au.external_user_id = #{externalUserID}
+          and ca.corp_id = #{corpId}
+          and au.qw_user_ext_id = #{handoverUserId}
     </select>
 </mapper>