Browse Source

feat: 增加客户决策连

zhaojianyang 3 months ago
parent
commit
f82a6b1923

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

@@ -2,10 +2,7 @@ package com.wx.blink.backend.controller;
 
 import com.wx.blink.backend.domain.dto.*;
 import com.wx.blink.backend.domain.qry.BlinkBizFileQry;
-import com.wx.blink.backend.service.IBlinkCustomerFollowService;
-import com.wx.blink.backend.service.IBlinkCustomerMarketTeamService;
-import com.wx.blink.backend.service.IBlinkCustomerService;
-import com.wx.blink.backend.service.IBlinkCustomerTagService;
+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.common.qry.BlinkCustomerQry;
@@ -40,6 +37,8 @@ public class BlinkCustomerController {
     private IBlinkCustomerMarketTeamService marketTeamService;
     @Resource
     private IBlinkCustomerFollowService followService;
+    @Resource
+    private IBlinkCustomerDecisionChainService decisionChainService;
 
     @Operation(summary = "新增客户")
     @PostMapping("/supports/customer/create")
@@ -173,7 +172,7 @@ public class BlinkCustomerController {
     }
 
     @Operation(summary = "查询客户营销团队")
-    @GetMapping(value = "/supports/customer/getMarketTeamListById/{customerId}")
+    @GetMapping(value = "/supports/customer/getMarketTeamListByCustomerId/{customerId}")
     public ResponseDTO<List<BlinkCustomerMarketTeamVO>> getMarketTeamListByCustomerId(@PathVariable String customerId) {
         return ResponseDTO.ok(marketTeamService.getListByCustomerId(customerId));
     }
@@ -189,4 +188,24 @@ public class BlinkCustomerController {
     public ResponseDTO<List<BlinkCustomerFollowVO>> getFollowListByCustomerId(@PathVariable String customerId) {
         return ResponseDTO.ok(followService.getFollowListByCustomerId(customerId));
     }
+
+    @Operation(summary = "客户决策链新增/修改")
+    @PostMapping(value = "/supports/customer/decisionChain/addOrUpdate")
+    public ResponseDTO customerDecisionChainAddOrUpdate(@RequestBody BlinkCustomerDecisionChainVO vo) {
+        decisionChainService.addOrUpdate(vo);
+        return ResponseDTO.ok();
+    }
+
+    @Operation(summary = "客户决策链移除")
+    @PostMapping(value = "/supports/customer/decisionChain/deleteByCustomerId")
+    public ResponseDTO deleteDecisionChain(@RequestBody BlinkCustomerDecisionChainVO vo) {
+        decisionChainService.delete(vo);
+        return ResponseDTO.ok();
+    }
+
+    @Operation(summary = "查询决策链团队")
+    @GetMapping(value = "/supports/customer/getDecisionChainListByCustomerId/{customerId}")
+    public ResponseDTO<List<BlinkCustomerDecisionChainVO>> getDecisionChainListByCusId(@PathVariable String customerId) {
+        return ResponseDTO.ok(decisionChainService.getDecisionChainListByCustomerId(customerId));
+    }
 }

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

@@ -0,0 +1,75 @@
+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.fasterxml.jackson.annotation.JsonFormat;
+import com.wx.blink.base.common.domain.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+
+@Data
+@TableName("blink_customer_decision_chain")
+public class BlinkCustomerDecisionChainDO extends BaseEntity {
+
+    @Schema(description = "id")
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    @Schema(description = "客户id")
+    @TableField("customer_id")
+    private String customerId;
+    @Schema(description = "姓名")
+    @TableField("name")
+    private String name;
+    @Schema(description = "性别")
+    @TableField("gender")
+    private String gender;
+    @Schema(description = "年龄")
+    @TableField("age")
+    private String age;
+    @Schema(description = "联系电话")
+    @TableField("contact_number")
+    private String contactNumber;
+    @Schema(description = "部门")
+    @TableField("department")
+    private String department;
+    @Schema(description = "职务")
+    @TableField("position")
+    private String position;
+    @Schema(description = "工作职责")
+    @TableField("job_responsibilities")
+    private String jobResponsibilities;
+    @Schema(description = "职位权重")
+    @TableField("position_weight")
+    private String positionWeight;
+    @Schema(description = "邮箱")
+    @TableField("email")
+    private String email;
+    @Schema(description = "上级")
+    @TableField("supervisor")
+    private String supervisor;
+    @Schema(description = "下级")
+    @TableField("subordinate")
+    private String subordinate;
+    @Schema(description = "关系深度")
+    @TableField("relationship_depth")
+    private String relationshipDepth;
+    @Schema(description = "爱好")
+    @TableField("hobbies")
+    private String hobbies;
+    @Schema(description = "家庭情况")
+    @TableField("family_situation")
+    private String familySituation;
+    @Schema(description = "家庭地址")
+    @TableField("home_address")
+    private String homeAddress;
+    @Schema(description = "备注")
+    @TableField("remarks")
+    private String remarks;
+
+}

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

@@ -0,0 +1,66 @@
+package com.wx.blink.backend.domain.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.wx.blink.base.common.domain.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Data
+public class BlinkCustomerDecisionChainVO extends BaseEntity {
+
+    @Schema(description = "id")
+    private String id;
+
+    @Schema(description = "客户id")
+    @TableField("customer_id")
+    private String customerId;
+    @Schema(description = "姓名")
+    @TableField("name")
+    private String name;
+    @Schema(description = "性别")
+    @TableField("gender")
+    private String gender;
+    @Schema(description = "年龄")
+    @TableField("age")
+    private String age;
+    @Schema(description = "联系电话")
+    @TableField("contact_number")
+    private String contactNumber;
+    @Schema(description = "部门")
+    @TableField("department")
+    private String department;
+    @Schema(description = "职务")
+    @TableField("position")
+    private String position;
+    @Schema(description = "工作职责")
+    @TableField("job_responsibilities")
+    private String jobResponsibilities;
+    @Schema(description = "职位权重")
+    @TableField("position_weight")
+    private String positionWeight;
+    @Schema(description = "邮箱")
+    @TableField("email")
+    private String email;
+    @Schema(description = "上级")
+    @TableField("supervisor")
+    private String supervisor;
+    @Schema(description = "下级")
+    @TableField("subordinate")
+    private String subordinate;
+    @Schema(description = "关系深度")
+    @TableField("relationship_depth")
+    private String relationshipDepth;
+    @Schema(description = "爱好")
+    @TableField("hobbies")
+    private String hobbies;
+    @Schema(description = "家庭情况")
+    @TableField("family_situation")
+    private String familySituation;
+    @Schema(description = "家庭地址")
+    @TableField("home_address")
+    private String homeAddress;
+    @Schema(description = "备注")
+    @TableField("remarks")
+    private String remarks;
+
+}

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

@@ -0,0 +1,58 @@
+package com.wx.blink.backend.manager;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerDecisionChainDO;
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerTagDO;
+import com.wx.blink.backend.domain.dto.BlinkCustomerDecisionChainVO;
+import com.wx.blink.backend.domain.dto.BlinkCustomerTagVO;
+import com.wx.blink.backend.objectmapper.BlinkCustomerDecisionChainMapper;
+import com.wx.blink.backend.objectmapper.BlinkCustomerTagMapper;
+import com.wx.blink.backend.repository.BlinkCustomerDecisionChainRepository;
+import com.wx.blink.backend.repository.BlinkCustomerTagRepository;
+import com.wx.blink.backend.service.IBlinkCustomerDecisionChainService;
+import com.wx.blink.backend.service.IBlinkCustomerTagService;
+import com.wx.blink.base.common.util.BlinkEntityUtil;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+@Service
+public class BlinkCustomerDecisionChainImpl extends ServiceImpl<BlinkCustomerDecisionChainRepository, BlinkCustomerDecisionChainDO> implements IBlinkCustomerDecisionChainService {
+
+    @Resource
+    private BlinkCustomerDecisionChainRepository customerDecisionChainRepository;
+    @Resource
+    private BlinkCustomerDecisionChainMapper customerDecisionChainMapper;
+    @Override
+    public void addOrUpdate(BlinkCustomerDecisionChainVO vo) {
+        BlinkCustomerDecisionChainDO dcDo = customerDecisionChainMapper.customerDecisionChainVOtoDomain(vo);
+        if (dcDo != null) {
+            //有id更新,没有则新增
+            if (dcDo.getId() == null || dcDo.getId() == "") {
+                //创建人赋值
+                BlinkEntityUtil.setCreateInfo(dcDo);
+                this.save(dcDo);
+            } else {
+                //更新人赋值
+                BlinkEntityUtil.setUpdatedInfo(dcDo);
+                this.updateById(dcDo);
+            }
+        }
+    }
+
+    @Override
+    public void delete(BlinkCustomerDecisionChainVO vo) {
+        BlinkCustomerDecisionChainDO dcDo = customerDecisionChainMapper.customerDecisionChainVOtoDomain(vo);
+        this.removeById(dcDo);
+    }
+
+    @Override
+    public List<BlinkCustomerDecisionChainVO> getDecisionChainListByCustomerId(String customerId) {
+        List<BlinkCustomerDecisionChainVO> list = customerDecisionChainRepository.getDecisionChainListByCustomerId(customerId);
+        return list;
+    }
+
+
+}

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

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

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

@@ -0,0 +1,23 @@
+package com.wx.blink.backend.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerDecisionChainDO;
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerTagDO;
+import com.wx.blink.backend.domain.dto.BlinkCustomerDecisionChainVO;
+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 BlinkCustomerDecisionChainRepository extends BaseMapper<BlinkCustomerDecisionChainDO> {
+
+    /**
+     * 客户决策链查询
+     *
+     * @param customerId
+     * @return
+     */
+    List<BlinkCustomerDecisionChainVO> getDecisionChainListByCustomerId(@Param("customerId") String customerId);
+}

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

@@ -0,0 +1,33 @@
+package com.wx.blink.backend.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerDecisionChainDO;
+import com.wx.blink.backend.domain.dto.BlinkCustomerDecisionChainVO;
+
+import java.util.List;
+
+
+public interface IBlinkCustomerDecisionChainService extends IService<BlinkCustomerDecisionChainDO> {
+    /**
+     * 客户决策链新增、更新
+     *
+     * @param vo
+     * @return
+     */
+    void addOrUpdate(BlinkCustomerDecisionChainVO vo);
+    /**
+     * 客户决策链删除
+     *
+     * @param vo
+     * @return
+     */
+    void delete(BlinkCustomerDecisionChainVO vo);
+
+    /**
+     * 客户决策链查询
+     *
+     * @param customerId
+     * @return
+     */
+    List<BlinkCustomerDecisionChainVO> getDecisionChainListByCustomerId(String customerId);
+}

+ 10 - 0
bound-link-api/blink-backend/src/main/resources/mapper/BlinkCustomerDecisionChainRepositoryMapper.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.wx.blink.backend.repository.BlinkCustomerDecisionChainRepository">
+    <select id="getDecisionChainListByCustomerId" resultType="com.wx.blink.backend.domain.dto.BlinkCustomerDecisionChainVO">
+        select *
+        from blink_customer_decision_chain
+        where deleted_flag = '0' and customer_id = #{customerId}
+        order by create_time asc
+    </select>
+</mapper>