Browse Source

Merge remote-tracking branch 'origin/master'

liuc 3 months ago
parent
commit
73f5bf24d2
18 changed files with 360 additions and 18 deletions
  1. 5 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/controller/BlinkCustomerController.java
  2. 30 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dataobject/BlinkCustomerReleaseDO.java
  3. 35 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dataobject/BlinkCustomerTransferDO.java
  4. 6 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dto/BlinkCustomerReleaseVO.java
  5. 7 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dto/BlinkCustomerTransferVO.java
  6. 43 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkCustomerReleaseImpl.java
  7. 12 3
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkCustomerServiceImpl.java
  8. 44 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkCustomerTransferImpl.java
  9. 24 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/objectmapper/BlinkCustomerReleaseMapper.java
  10. 24 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/objectmapper/BlinkCustomerTransferMapper.java
  11. 10 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/repository/BlinkCustomerReleaseRepository.java
  12. 8 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/repository/BlinkCustomerRepository.java
  13. 14 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/repository/BlinkCustomerTransferRepository.java
  14. 19 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/service/IBlinkCustomerReleaseService.java
  15. 8 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/service/IBlinkCustomerService.java
  16. 21 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/service/IBlinkCustomerTransferService.java
  17. 23 0
      bound-link-api/blink-backend/src/main/resources/mapper/BlinkCustomerRepositoryMapper.xml
  18. 27 15
      bound-link-api/blink-common-dto/src/main/java/com/wx/blink/common/vo/BlinkCustomerVO.java

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

+ 30 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dataobject/BlinkCustomerReleaseDO.java

@@ -0,0 +1,30 @@
+package com.wx.blink.backend.domain.dataobject;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.wx.blink.base.common.domain.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Data
+@TableName("blink_customer_release")
+public class BlinkCustomerReleaseDO extends BaseEntity {
+
+    @Schema(description = "id")
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    @Schema(description = "客户id")
+    private String cusid;
+
+    @Schema(description = "释放原因")
+    private String reason;
+
+    @Schema(description = "归属区域")
+    private String belongRegion;
+
+    @Schema(description = "营销人员")
+    private String marketStaff;
+
+}

+ 35 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dataobject/BlinkCustomerTransferDO.java

@@ -0,0 +1,35 @@
+package com.wx.blink.backend.domain.dataobject;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.wx.blink.base.common.domain.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Data
+@TableName("blink_customer_transfer")
+public class BlinkCustomerTransferDO extends BaseEntity {
+
+    @Schema(description = "id")
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    @Schema(description = "客户id")
+    private String cusid;
+
+    @Schema(description = "转移至归属区域")
+    private String belongRegion;
+
+    @Schema(description = "转移至营销人员")
+    private String marketStaff;
+
+
+    @Schema(description = "原归属区域")
+    private String oldBelongRegion;
+
+    @Schema(description = "原营销人员")
+    private String oldMarketStaff;
+
+}

+ 6 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dto/BlinkCustomerReleaseVO.java

@@ -14,4 +14,10 @@ public class BlinkCustomerReleaseVO implements Serializable {
     @Schema(description = "释放原因")
     private String reason;
 
+    @Schema(description = "归属区域")
+    private String belongRegion;
+
+    @Schema(description = "营销人员")
+    private String marketStaff;
+
 }

+ 7 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dto/BlinkCustomerTransferVO.java

@@ -20,4 +20,11 @@ public class BlinkCustomerTransferVO implements Serializable {
     @Schema(description = "转移至营销人员")
     private String marketStaff;
 
+
+    @Schema(description = "原归属区域")
+    private String oldBelongRegion;
+
+    @Schema(description = "原营销人员")
+    private String oldMarketStaff;
+
 }

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

@@ -0,0 +1,43 @@
+package com.wx.blink.backend.manager;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerReleaseDO;
+import com.wx.blink.backend.domain.dto.BlinkCustomerReleaseVO;
+import com.wx.blink.backend.objectmapper.BlinkCustomerReleaseMapper;
+import com.wx.blink.backend.repository.BlinkCustomerReleaseRepository;
+import com.wx.blink.backend.service.IBlinkCustomerReleaseService;
+import com.wx.blink.base.common.util.BlinkEntityUtil;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+
+@Service
+public class BlinkCustomerReleaseImpl extends ServiceImpl<BlinkCustomerReleaseRepository, BlinkCustomerReleaseDO> implements IBlinkCustomerReleaseService {
+
+    @Resource
+    private BlinkCustomerReleaseRepository releaseRepository;
+    @Resource
+    private BlinkCustomerReleaseMapper releaseMapper;
+
+    @Override
+    public void addOrUpdate(BlinkCustomerReleaseVO vo) {
+        BlinkCustomerReleaseDO releaseDo = releaseMapper.customerReleaseVOtoDomain(vo);
+        if (releaseDo != null) {
+            //有id更新,没有则新增
+            if (releaseDo.getId() == null || releaseDo.getId() == "") {
+                //创建人赋值
+                BlinkEntityUtil.setCreateInfo(releaseDo);
+                this.save(releaseDo);
+            } else {
+                //更新人赋值
+                BlinkEntityUtil.setUpdatedInfo(releaseDo);
+                this.updateById(releaseDo);
+            }
+        }
+    }
+
+
+
+
+}

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

@@ -14,9 +14,7 @@ import com.wx.blink.backend.domain.qry.BlinkBizFileQry;
 import com.wx.blink.backend.objectmapper.BlinkCustomerMapper;
 import com.wx.blink.backend.repository.BlinkCustomerRepository;
 import com.wx.blink.backend.repository.BlinkProviderRepository;
-import com.wx.blink.backend.service.IBlinkCustomerSeniorService;
-import com.wx.blink.backend.service.IBlinkCustomerService;
-import com.wx.blink.backend.service.IBlinkProviderService;
+import com.wx.blink.backend.service.*;
 import com.wx.blink.base.common.domain.PageResult;
 import com.wx.blink.base.common.domain.ResponseDTO;
 import com.wx.blink.base.common.util.BlinkEntityUtil;
@@ -59,6 +57,10 @@ public class BlinkCustomerServiceImpl extends ServiceImpl<BlinkCustomerRepositor
     private IBlinkCustomerSeniorService seniorService;
     @Resource
     private BlinkProviderServiceImpl providerService;
+    @Resource
+    private IBlinkCustomerTransferService transferService;
+    @Resource
+    private IBlinkCustomerReleaseService releaseService;
 
     @Override
     public ResponseDTO<String> supportsCustomerCreate(BlinkCustomerCreateVO dto) {
@@ -288,12 +290,14 @@ public class BlinkCustomerServiceImpl extends ServiceImpl<BlinkCustomerRepositor
     @Override
     public ResponseDTO<String> customerTransfer(BlinkCustomerTransferVO vo) {
         customerRepository.customerTransfer(vo);
+        transferService.addOrUpdate(vo);
         return ResponseDTO.ok();
     }
 
     @Override
     public ResponseDTO<String> customerRelease(BlinkCustomerReleaseVO vo) {
         customerRepository.customerRelease(vo);
+        releaseService.addOrUpdate(vo);
         //记录
         String reason = "释放公海,释放原因:";
         if(vo.getReason()!=null) reason = reason+vo.getReason();
@@ -302,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",作为待审核的状态

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

@@ -0,0 +1,44 @@
+package com.wx.blink.backend.manager;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerTransferDO;
+import com.wx.blink.backend.domain.dto.BlinkCustomerTransferVO;
+import com.wx.blink.backend.objectmapper.BlinkCustomerTransferMapper;
+import com.wx.blink.backend.repository.BlinkCustomerTransferRepository;
+import com.wx.blink.backend.service.IBlinkCustomerTransferService;
+import com.wx.blink.base.common.util.BlinkEntityUtil;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+@Service
+public class BlinkCustomerTransferImpl extends ServiceImpl<BlinkCustomerTransferRepository, BlinkCustomerTransferDO> implements IBlinkCustomerTransferService {
+
+    @Resource
+    private BlinkCustomerTransferRepository transferRepository;
+    @Resource
+    private BlinkCustomerTransferMapper transferMapper;
+
+    @Override
+    public void addOrUpdate(BlinkCustomerTransferVO vo) {
+        BlinkCustomerTransferDO transferDo = transferMapper.customerTransferVOtoDomain(vo);
+        if (transferDo != null) {
+            //有id更新,没有则新增
+            if (transferDo.getId() == null || transferDo.getId() == "") {
+                //创建人赋值
+                BlinkEntityUtil.setCreateInfo(transferDo);
+                this.save(transferDo);
+            } else {
+                //更新人赋值
+                BlinkEntityUtil.setUpdatedInfo(transferDo);
+                this.updateById(transferDo);
+            }
+        }
+    }
+
+
+
+
+}

+ 24 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/objectmapper/BlinkCustomerReleaseMapper.java

@@ -0,0 +1,24 @@
+package com.wx.blink.backend.objectmapper;
+
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerReleaseDO;
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerTagDO;
+import com.wx.blink.backend.domain.dto.BlinkCustomerReleaseVO;
+import com.wx.blink.backend.domain.dto.BlinkCustomerTransferVO;
+import com.wx.blink.base.common.util.BlinkStringUtil;
+import org.mapstruct.Mapper;
+
+
+@Mapper(componentModel = "spring", imports = {BlinkStringUtil.class})
+public interface BlinkCustomerReleaseMapper {
+
+    /**
+     * 客户转移数据VO转do
+     *
+     * @param vo
+     * @return
+     */
+    BlinkCustomerReleaseDO customerReleaseVOtoDomain(BlinkCustomerReleaseVO vo);
+
+
+
+}

+ 24 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/objectmapper/BlinkCustomerTransferMapper.java

@@ -0,0 +1,24 @@
+package com.wx.blink.backend.objectmapper;
+
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerTagDO;
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerTransferDO;
+import com.wx.blink.backend.domain.dto.BlinkCustomerTagVO;
+import com.wx.blink.backend.domain.dto.BlinkCustomerTransferVO;
+import com.wx.blink.base.common.util.BlinkStringUtil;
+import org.mapstruct.Mapper;
+
+
+@Mapper(componentModel = "spring", imports = {BlinkStringUtil.class})
+public interface BlinkCustomerTransferMapper {
+
+    /**
+     * 客户转移数据VO转do
+     *
+     * @param vo
+     * @return
+     */
+    BlinkCustomerTransferDO customerTransferVOtoDomain(BlinkCustomerTransferVO vo);
+
+
+
+}

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

@@ -0,0 +1,10 @@
+package com.wx.blink.backend.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerReleaseDO;
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerTagDO;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface BlinkCustomerReleaseRepository extends BaseMapper<BlinkCustomerReleaseDO> {
+}

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

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

@@ -0,0 +1,14 @@
+package com.wx.blink.backend.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerTagDO;
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerTransferDO;
+import com.wx.blink.backend.domain.dto.BlinkCustomerTagVO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface BlinkCustomerTransferRepository extends BaseMapper<BlinkCustomerTransferDO> {
+}

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

@@ -0,0 +1,19 @@
+package com.wx.blink.backend.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerReleaseDO;
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerTransferDO;
+import com.wx.blink.backend.domain.dto.BlinkCustomerReleaseVO;
+import com.wx.blink.backend.domain.dto.BlinkCustomerTransferVO;
+
+public interface IBlinkCustomerReleaseService extends IService<BlinkCustomerReleaseDO> {
+
+
+
+    /**
+     * 保存或更新
+     *
+     * @return
+     */
+    void addOrUpdate(BlinkCustomerReleaseVO VO);
+}

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

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

@@ -0,0 +1,21 @@
+package com.wx.blink.backend.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerTransferDO;
+import com.wx.blink.backend.domain.dataobject.BlinkTagPoolDO;
+import com.wx.blink.backend.domain.dto.BlinkCustomerTransferVO;
+import com.wx.blink.backend.domain.dto.BlinkTagPoolVO;
+import com.wx.blink.backend.domain.qry.BlinkTagPoolQry;
+import com.wx.blink.base.common.domain.PageResult;
+
+public interface IBlinkCustomerTransferService extends IService<BlinkCustomerTransferDO> {
+
+
+
+    /**
+     * 保存或更新
+     *
+     * @return
+     */
+    void addOrUpdate(BlinkCustomerTransferVO VO);
+}

+ 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;
+
+
 }