瀏覽代碼

feat: 增加客户关联公司查询

zhaojianyang 3 月之前
父節點
當前提交
814613899d

+ 5 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/controller/BlinkCustomerController.java

@@ -146,4 +146,9 @@ public class BlinkCustomerController {
         return ResponseDTO.ok(customerTagService.getCustomerTagList(customerId));
     }
     //---------------------------------相关tab页查询-----------------------------------//
+    @Operation(summary = "获取客户关联公司列表")
+    @GetMapping(value = "/supports/customer/relatedCompany/{customerId}")
+    public ResponseDTO<List<BlinkCustomerVO>> getRelatedCompanyById(@PathVariable String customerId) {
+        return ResponseDTO.ok(customerService.getRelatedCompanyById(customerId));
+    }
 }

+ 5 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkCustomerServiceImpl.java

@@ -306,6 +306,11 @@ public class BlinkCustomerServiceImpl extends ServiceImpl<BlinkCustomerRepositor
         return ResponseDTO.ok();
     }
 
+    @Override
+    public List<BlinkCustomerVO> getRelatedCompanyById(String id) {
+        return customerRepository.getRelatedCompanyById(id);
+    }
+
     public BlinkCustomerStatisticsVO getCustomerStatisticsInfo( List<BlinkCustomerVO> list){
         Map<String, Integer> countTypes = list.stream()
                 .map(obj -> obj.getAuditStatus() == null ? "00" : obj.getAuditStatus()) // 将null转为字符串"00",作为待审核的状态

+ 8 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/repository/BlinkCustomerRepository.java

@@ -110,4 +110,12 @@ public interface BlinkCustomerRepository extends BaseMapper<BlinkCustomerDO> {
      * @return
      */
     void customerRelease(@Param("vo") BlinkCustomerReleaseVO vo);
+
+    /**
+     * 获取客户关联公司列表
+     *
+     * @param id
+     * @return
+     */
+    List<BlinkCustomerVO> getRelatedCompanyById(@Param("id") String id);
 }

+ 8 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/service/IBlinkCustomerService.java

@@ -174,4 +174,12 @@ public interface IBlinkCustomerService extends IService<BlinkCustomerDO> {
      * @return
      */
     ResponseDTO<String> customerRelease(BlinkCustomerReleaseVO vo);
+
+    /**
+     * 获取客户关联公司列表
+     *
+     * @param id
+     * @return
+     */
+    List<BlinkCustomerVO> getRelatedCompanyById(String id);
 }

+ 23 - 0
bound-link-api/blink-backend/src/main/resources/mapper/BlinkCustomerRepositoryMapper.xml

@@ -93,6 +93,29 @@
         WHERE  row_num = 1;
     </select>
 
+    <select id="getRelatedCompanyById" resultType="com.wx.blink.common.vo.BlinkCustomerVO">
+        WITH RECURSIVE full_tree AS (
+        /* 向上查询部分*/
+        SELECT *, 0 AS level, 'current_start' AS relation
+        FROM blink_customer
+        WHERE id = #{id} /* 起始节点ID*/
+        UNION ALL
+        /* 向上查找父节点(上级)*/
+        SELECT c.*, ft.level + 1, 'ancestor' AS relation
+        FROM blink_customer c
+        JOIN full_tree ft ON c.id = ft.group_customer_id
+        WHERE ft.relation IN ('current_start', 'ancestor') AND ft.level &lt; 10/*向上最大找寻10次*/
+        UNION ALL
+        /* 向下查找子节点(下级)*/
+        SELECT c.*, ft.level + 1, 'descendant' AS relation
+        FROM blink_customer c
+        JOIN full_tree ft ON c.group_customer_id = ft.id
+        WHERE ft.relation IN ('current_start', 'descendant') AND ft.level &lt; 10/*向下最大找寻10次*/
+        )
+        SELECT * FROM full_tree
+        ORDER BY relation, ABS(level);
+    </select>
+
     <update id="customerTransfer">
         update blink_customer set belong_region=#{vo.belongRegion},market_staff=#{vo.marketStaff} where id = #{vo.cusid}
     </update>

+ 27 - 15
bound-link-api/blink-common-dto/src/main/java/com/wx/blink/common/vo/BlinkCustomerVO.java

@@ -271,21 +271,6 @@ public class BlinkCustomerVO extends BaseEntity {
     @JsonSerialize(using = FileKeyVoSerializer.class)
     private String attachment;
 
-    //列表辅助字段
-    /**
-     * 合作金额
-     */
-    private BigDecimal cooperationAmount;
-
-    /**
-     * 距离上次拜访天数
-     */
-    private Integer visitDays;
-
-    /**
-     * 拜访次数
-     */
-    private Integer visitCount;
     /**
      * 审批状态
      */
@@ -309,4 +294,31 @@ public class BlinkCustomerVO extends BaseEntity {
      */
     private String groupCustomerName;
 
+    //列表辅助字段
+    /**
+     * 合作金额
+     */
+    private BigDecimal cooperationAmount;
+
+    /**
+     * 距离上次拜访天数
+     */
+    private Integer visitDays;
+
+    /**
+     * 拜访次数
+     */
+    private Integer visitCount;
+
+    /**
+     * 关联公司级别
+     */
+    private Integer level;
+
+    /**
+     * 关联关系
+     */
+    private String relation;
+
+
 }