Kaynağa Gözat

feat: 增加客户标签增加和查询

zhaojianyang 3 ay önce
ebeveyn
işleme
9396685941
15 değiştirilmiş dosya ile 390 ekleme ve 0 silme
  1. 23 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/controller/BlinkCustomerController.java
  2. 26 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dataobject/BlinkCustomerTagDO.java
  3. 27 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dataobject/BlinkTagPoolDO.java
  4. 24 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dto/BlinkCustomerTagVO.java
  5. 22 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dto/BlinkTagPoolVO.java
  6. 22 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/qry/BlinkTagPoolQry.java
  7. 54 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkCustomerTagImpl.java
  8. 51 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkTagPoolServiceImpl.java
  9. 22 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/objectmapper/BlinkCustomerTagMapper.java
  10. 22 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/repository/BlinkCustomerTagRepository.java
  11. 23 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/repository/BlinkTagPoolRepository.java
  12. 34 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/service/IBlinkCustomerTagService.java
  13. 19 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/service/IBlinkTagPoolService.java
  14. 11 0
      bound-link-api/blink-backend/src/main/resources/mapper/BlinkCustomerTagRepositoryMapper.xml
  15. 10 0
      bound-link-api/blink-backend/src/main/resources/mapper/BlinkTagPoolRepositoryMapper.xml

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

@@ -1,8 +1,10 @@
 package com.wx.blink.backend.controller;
 
 import com.wx.blink.backend.domain.dto.BlinkCustomerHeaderVO;
+import com.wx.blink.backend.domain.dto.BlinkCustomerTagVO;
 import com.wx.blink.backend.domain.qry.BlinkBizFileQry;
 import com.wx.blink.backend.service.IBlinkCustomerService;
+import com.wx.blink.backend.service.IBlinkCustomerTagService;
 import com.wx.blink.base.common.domain.PageResult;
 import com.wx.blink.base.common.domain.ResponseDTO;
 import com.wx.blink.common.qry.BlinkCustomerQry;
@@ -15,6 +17,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import javax.validation.Valid;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 
@@ -30,6 +33,8 @@ public class BlinkCustomerController {
     private IBlinkCustomerService customerService;
     @Resource
     private Configuration configuration;
+    @Resource
+    private IBlinkCustomerTagService customerTagService;
 
     @Operation(summary = "新增客户")
     @PostMapping("/supports/customer/create")
@@ -105,5 +110,23 @@ public class BlinkCustomerController {
     public ResponseDTO<Map<String,Object>> supportsCustomerBlacklistDetails(@PathVariable String id) {
         return ResponseDTO.ok(customerService.supportsCustomerBlacklistDetails(id));
     }
+    //------------------------标签----------------------//
+    @Operation(summary = "客户标签新增/修改")
+    @PostMapping(value = "/supports/customer/tag/addOrUpdate")
+    public ResponseDTO customerTagAddOrUpdate(@RequestBody BlinkCustomerTagVO vo) {
+        customerTagService.addOrUpdate(vo);
+        return ResponseDTO.ok();
+    }
+    @Operation(summary = "客户标签删除")
+    @PostMapping(value = "/supports/customer/tag/delete")
+    public ResponseDTO customerTagDelete(@RequestBody BlinkCustomerTagVO vo) {
+        customerTagService.delete(vo);
+        return ResponseDTO.ok();
+    }
 
+    @Operation(summary = "客户标签查询")
+    @GetMapping(value = "/supports/customer/tag/getList/{customerId}")
+    public ResponseDTO<List<BlinkCustomerTagVO>> customerTagGetList(@PathVariable String customerId) {
+        return ResponseDTO.ok(customerTagService.getCustomerTagList(customerId));
+    }
 }

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

@@ -0,0 +1,26 @@
+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_tag")
+public class BlinkCustomerTagDO 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("tag_code")
+    private String tagCode;
+
+}

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

@@ -0,0 +1,27 @@
+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_tag_pool")
+public class BlinkTagPoolDO extends BaseEntity {
+
+
+    @Schema(description = "id")
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    @Schema(description = "标签编码")
+    @TableField("tag_code")
+    private String tagCode;
+    @Schema(description = "标签值")
+    @TableField("tag_value")
+    private String tagValue;
+
+}

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

@@ -0,0 +1,24 @@
+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 BlinkCustomerTagVO extends BaseEntity {
+
+    @Schema(description = "id")
+    private String id;
+
+    @Schema(description = "客户id")
+    @TableField("customer_id")
+    private String customerId;
+    @Schema(description = "标签编码")
+    @TableField("tag_code")
+    private String tagCode;
+    @Schema(description = "标签值")
+    @TableField("tag_value")
+    private String tagValue;
+
+}

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

@@ -0,0 +1,22 @@
+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 BlinkTagPoolVO extends BaseEntity {
+
+
+    @Schema(description = "id")
+    private String id;
+
+    @Schema(description = "标签编码")
+    @TableField("tag_code")
+    private String tagCode;
+    @Schema(description = "标签值")
+    @TableField("tag_value")
+    private String tagValue;
+
+}

+ 22 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/qry/BlinkTagPoolQry.java

@@ -0,0 +1,22 @@
+package com.wx.blink.backend.domain.qry;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.wx.blink.base.common.domain.PageParam;
+import com.wx.blink.base.common.json.deserializer.DictValueVoDeserializer;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Data
+public class BlinkTagPoolQry extends PageParam {
+
+    /**
+     * 标签编码
+     */
+    private String tagCode;
+
+    /**
+     * 标签值
+     */
+    private String tagValue;
+}

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

@@ -0,0 +1,54 @@
+package com.wx.blink.backend.manager;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerTagDO;
+import com.wx.blink.backend.domain.dto.BlinkCustomerTagVO;
+import com.wx.blink.backend.objectmapper.BlinkCustomerTagMapper;
+import com.wx.blink.backend.repository.BlinkCustomerTagRepository;
+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 BlinkCustomerTagImpl extends ServiceImpl<BlinkCustomerTagRepository, BlinkCustomerTagDO> implements IBlinkCustomerTagService {
+
+    @Resource
+    private BlinkCustomerTagRepository CustomerTagRepository;
+    @Resource
+    private BlinkCustomerTagMapper customerTagMapper;
+
+    @Override
+    public void addOrUpdate(BlinkCustomerTagVO vo) {
+        BlinkCustomerTagDO tagDo = customerTagMapper.customerTagVOtoDomain(vo);
+        if (tagDo != null) {
+            //有id更新,没有则新增
+            if (tagDo.getId() == null || tagDo.getId() == "") {
+                //创建人赋值
+                BlinkEntityUtil.setCreateInfo(tagDo);
+                this.save(tagDo);
+            } else {
+                //更新人赋值
+                BlinkEntityUtil.setUpdatedInfo(tagDo);
+                this.updateById(tagDo);
+            }
+        }
+    }
+
+    @Override
+    public void delete(BlinkCustomerTagVO vo) {
+        BlinkCustomerTagDO tagDo = customerTagMapper.customerTagVOtoDomain(vo);
+        this.removeById(tagDo);
+    }
+
+    @Override
+    public List<BlinkCustomerTagVO> getCustomerTagList(String customerId) {
+        List<BlinkCustomerTagVO> list = CustomerTagRepository.getListByCustomerId(customerId);
+        return list;
+    }
+
+
+}

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

@@ -0,0 +1,51 @@
+package com.wx.blink.backend.manager;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.wx.blink.backend.domain.dataobject.*;
+import com.wx.blink.backend.domain.dto.BlinkCustomerHeaderVO;
+import com.wx.blink.backend.domain.dto.BlinkTagPoolVO;
+import com.wx.blink.backend.domain.qry.BlinkBizFileQry;
+import com.wx.blink.backend.domain.qry.BlinkTagPoolQry;
+import com.wx.blink.backend.objectmapper.BlinkCustomerMapper;
+import com.wx.blink.backend.repository.BlinkCustomerRepository;
+import com.wx.blink.backend.repository.BlinkTagPoolRepository;
+import com.wx.blink.backend.service.IBlinkCustomerSeniorService;
+import com.wx.blink.backend.service.IBlinkCustomerService;
+import com.wx.blink.backend.service.IBlinkTagPoolService;
+import com.wx.blink.base.common.domain.PageResult;
+import com.wx.blink.base.common.domain.ResponseDTO;
+import com.wx.blink.base.common.util.BlinkEntityUtil;
+import com.wx.blink.base.common.util.BlinkEnumUtil;
+import com.wx.blink.base.common.util.BlinkPageUtil;
+import com.wx.blink.base.module.support.datatracer.constant.DataTracerTypeEnum;
+import com.wx.blink.base.module.support.datatracer.service.DataTracerService;
+import com.wx.blink.base.module.support.dict.service.DictCacheService;
+import com.wx.blink.base.module.support.serialnumber.constant.SerialNumberIdEnum;
+import com.wx.blink.base.module.support.serialnumber.service.SerialNumberService;
+import com.wx.blink.common.qry.BlinkCustomerQry;
+import com.wx.blink.common.vo.*;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+
+@Service
+public class BlinkTagPoolServiceImpl extends ServiceImpl<BlinkTagPoolRepository, BlinkTagPoolDO> implements IBlinkTagPoolService {
+
+    @Resource
+    private BlinkTagPoolRepository tagPoolRepository;
+
+    @Override
+    public PageResult<BlinkTagPoolVO> tagPoolQueryPage(BlinkTagPoolQry qry) {
+        Page<?> page = BlinkPageUtil.convert2PageQuery(qry);
+        List<BlinkTagPoolVO> list = tagPoolRepository.tagPoolQueryPage(page, qry);
+        PageResult<BlinkTagPoolVO> pageResult = BlinkPageUtil.convert2PageResult(page, list);
+        return pageResult;
+    }
+
+
+}

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

@@ -0,0 +1,22 @@
+package com.wx.blink.backend.objectmapper;
+
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerTagDO;
+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 BlinkCustomerTagMapper {
+
+    /**
+     * 客户标签数据VO转do
+     *
+     * @param vo
+     * @return
+     */
+    BlinkCustomerTagDO customerTagVOtoDomain(BlinkCustomerTagVO vo);
+
+
+
+}

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

@@ -0,0 +1,22 @@
+package com.wx.blink.backend.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerTagDO;
+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 BlinkCustomerTagRepository extends BaseMapper<BlinkCustomerTagDO> {
+
+    /**
+     * 客户标签查询
+     *
+     * @param customerId
+     * @return
+     */
+    List<BlinkCustomerTagVO> getListByCustomerId(@Param("customerId") String customerId);
+}

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

@@ -0,0 +1,23 @@
+package com.wx.blink.backend.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.wx.blink.backend.domain.dataobject.BlinkTagPoolDO;
+import com.wx.blink.backend.domain.dto.BlinkTagPoolVO;
+import com.wx.blink.backend.domain.qry.BlinkTagPoolQry;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface BlinkTagPoolRepository extends BaseMapper<BlinkTagPoolDO> {
+
+    /**
+     * 标签池查询
+     *
+     * @param page
+     * @return
+     */
+    List<BlinkTagPoolVO> tagPoolQueryPage(Page<?> page,@Param("qry") BlinkTagPoolQry qry);
+}

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

@@ -0,0 +1,34 @@
+package com.wx.blink.backend.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.wx.blink.backend.domain.dataobject.BlinkCustomerTagDO;
+import com.wx.blink.backend.domain.dto.BlinkCustomerTagVO;
+import com.wx.blink.base.common.domain.PageResult;
+
+import java.util.List;
+
+
+public interface IBlinkCustomerTagService extends IService<BlinkCustomerTagDO> {
+    /**
+     * 客户标签新增、更新
+     *
+     * @param vo
+     * @return
+     */
+    void addOrUpdate(BlinkCustomerTagVO vo);
+    /**
+     * 客户标签删除
+     *
+     * @param vo
+     * @return
+     */
+    void delete(BlinkCustomerTagVO vo);
+
+    /**
+     * 客户标签查询
+     *
+     * @param customerId
+     * @return
+     */
+    List<BlinkCustomerTagVO> getCustomerTagList(String customerId);
+}

+ 19 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/service/IBlinkTagPoolService.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.BlinkTagPoolDO;
+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 IBlinkTagPoolService extends IService<BlinkTagPoolDO> {
+
+
+
+    /**
+     * 客户查询列表
+     *
+     * @return
+     */
+    PageResult<BlinkTagPoolVO> tagPoolQueryPage(BlinkTagPoolQry qry);
+}

+ 11 - 0
bound-link-api/blink-backend/src/main/resources/mapper/BlinkCustomerTagRepositoryMapper.xml

@@ -0,0 +1,11 @@
+<?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.BlinkCustomerTagRepository">
+    <select id="getListByCustomerId" resultType="com.wx.blink.backend.domain.dto.BlinkCustomerTagVO">
+        select ctag.*,tag.tag_value
+        from blink_customer_tag ctag
+        left join blink_tag_pool tag on ctag.tag_code = tag.tag_code
+        where ctag.deleted_flag = '0' and ctag.customer_id = #{customerId}
+        order by ctag.create_time asc
+    </select>
+</mapper>

+ 10 - 0
bound-link-api/blink-backend/src/main/resources/mapper/BlinkTagPoolRepositoryMapper.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.BlinkTagPoolRepository">
+    <select id="tagPoolQueryPage" resultType="com.wx.blink.backend.domain.dto.BlinkTagPoolVO">
+        select *
+        from blink_tag_pool
+        where deleted_flag = '0'
+        order by create_time desc
+    </select>
+</mapper>