Selaa lähdekoodia

feat: 市场活动中留资转化,留资客户新增查询

zhaomuran 7 kuukautta sitten
vanhempi
commit
8fac95b911

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

@@ -0,0 +1,37 @@
+package com.wx.blink.backend.controller;
+
+import com.wx.blink.backend.domain.dto.BlinkRetentionCustomerDTO;
+import com.wx.blink.backend.domain.qry.BlinkRetentionCustomerQry;
+import com.wx.blink.backend.service.IBlinkRetentionCustomerService;
+import com.wx.blink.base.common.domain.PageResult;
+import com.wx.blink.base.common.domain.ResponseDTO;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+@RestController
+@Tag(name = "留资客户")
+public class BlinkRetentionCustomerController {
+
+    @Resource
+    private IBlinkRetentionCustomerService retentionCustomerService;
+
+    @Operation(summary = "创建留资客户")
+    @PostMapping("/supports/retention/customer/create")
+    public ResponseDTO<String> supportsRetentionCustomerCreate(@RequestBody @Valid BlinkRetentionCustomerDTO dto) {
+        return retentionCustomerService.supportsRetentionCustomerCreate(dto);
+    }
+
+    @Operation(summary = "分页查询留资客户列表")
+    @GetMapping("/supports/retention/activity/queryPage")
+    public ResponseDTO<PageResult<BlinkRetentionCustomerDTO>> supportsRetentionCustomerQueryPage(BlinkRetentionCustomerQry qry) {
+        return retentionCustomerService.supportsRetentionCustomerQueryPage(qry);
+    }
+
+}

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

@@ -0,0 +1,113 @@
+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 lombok.Data;
+
+@Data
+@TableName("blink_retention_customer")
+public class BlinkRetentionCustomerDO extends BaseEntity {
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否了解润扬
+     */
+    private String knowRunyang;
+
+    /**
+     * 公司名称
+     */
+    private String companyName;
+
+    /**
+     * 活动id
+     * */
+    private Long activityId;
+
+    /**
+     * 国家或地区
+     */
+    private String countryRegion;
+
+    /**
+     * 省份
+     */
+    private String province;
+
+    /**
+     * 省份名称
+     */
+    private String provinceName;
+
+    /**
+     * 城市
+     */
+    private String city;
+
+    /**
+     * 城市名称
+     */
+    private String cityName;
+
+    /**
+     * 区县
+     */
+    private String district;
+
+    /**
+     * 区县名称
+     */
+    private String districtName;
+
+    /**
+     * 详细地址
+     */
+    private String address;
+
+    /**
+     * 联系人
+     */
+    private String contact;
+
+    /**
+     * 联系人电话
+     */
+    private String contactPhone;
+
+    /**
+     * 职务
+     */
+    private String post;
+
+    /**
+     * 需求说明
+     */
+    private String needDescription;
+
+    /**
+     * 是否有沟通项目
+     */
+    private String communicativeProject;
+
+    /**
+     * 项目描述
+     */
+    private String projectDescription;
+
+    /**
+     * 是否跟进
+     */
+    private String follow;
+
+    /**
+     * 跟进记录
+     */
+    private String followLog;
+}

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

@@ -0,0 +1,111 @@
+package com.wx.blink.backend.domain.dto;
+
+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 lombok.Data;
+
+@Data
+public class BlinkRetentionCustomerDTO extends BaseEntity {
+
+    /**
+     * 主键id
+     */
+    private Long id;
+
+    /**
+     * 是否了解润扬
+     */
+    private String knowRunyang;
+
+    /**
+     * 公司名称
+     */
+    private String companyName;
+
+    /**
+     * 活动id
+     * */
+    private Long activityId;
+
+    /**
+     * 国家或地区
+     */
+    private String countryRegion;
+
+    /**
+     * 省份
+     */
+    private String province;
+
+    /**
+     * 省份名称
+     */
+    private String provinceName;
+
+    /**
+     * 城市
+     */
+    private String city;
+
+    /**
+     * 城市名称
+     */
+    private String cityName;
+
+    /**
+     * 区县
+     */
+    private String district;
+
+    /**
+     * 区县名称
+     */
+    private String districtName;
+
+    /**
+     * 详细地址
+     */
+    private String address;
+
+    /**
+     * 联系人
+     */
+    private String contact;
+
+    /**
+     * 联系人电话
+     */
+    private String contactPhone;
+
+    /**
+     * 职务
+     */
+    private String post;
+
+    /**
+     * 需求说明
+     */
+    private String needDescription;
+
+    /**
+     * 是否有沟通项目
+     */
+    private String communicativeProject;
+
+    /**
+     * 项目描述
+     */
+    private String projectDescription;
+
+    /**
+     * 是否跟进
+     */
+    private String follow;
+
+    /**
+     * 跟进记录
+     */
+    private String followLog;
+}

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

@@ -0,0 +1,25 @@
+package com.wx.blink.backend.domain.qry;
+
+import com.wx.blink.base.common.domain.PageParam;
+import lombok.Data;
+
+@Data
+public class BlinkRetentionCustomerQry extends PageParam {
+
+    /**
+     * 主键id
+     */
+    private Long id;
+
+    /**
+     * 公司名称
+     */
+    private String companyName;
+
+    /**
+     * 活动id
+     * */
+    private Long activityId;
+
+
+}

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

@@ -0,0 +1,66 @@
+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.BlinkRetentionCustomerDO;
+import com.wx.blink.backend.domain.dto.BlinkRetentionCustomerDTO;
+import com.wx.blink.backend.domain.qry.BlinkRetentionCustomerQry;
+import com.wx.blink.backend.objectmapper.BlinkRetentionCustomerMapper;
+import com.wx.blink.backend.repository.BlinkRetentionCustomerRepository;
+import com.wx.blink.backend.service.IBlinkRetentionCustomerService;
+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.BlinkPageUtil;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Objects;
+
+@Service
+public class BlinkRetentionCustomerServiceImpl extends ServiceImpl<BlinkRetentionCustomerRepository, BlinkRetentionCustomerDO> implements IBlinkRetentionCustomerService {
+
+    @Resource
+    private BlinkRetentionCustomerRepository repository;
+    @Resource
+    private BlinkRetentionCustomerMapper mapper;
+
+    /**
+     * 创建留资客户
+     *
+     * @param dto
+     * @return
+     */
+    @Override
+    public ResponseDTO<String> supportsRetentionCustomerCreate(BlinkRetentionCustomerDTO dto) {
+        // 验证留资客户是否重复
+        BlinkRetentionCustomerDO customerDO = repository.queryByCompanyName(dto.getCompanyName(), null, Boolean.FALSE);
+        if (Objects.nonNull(customerDO)) {
+            return ResponseDTO.userErrorParam("公司名称重复!请检查");
+        }
+        // 生成DO
+        BlinkRetentionCustomerDO retentionCustomerDO = new BlinkRetentionCustomerDO();
+        mapper.toBlinkRetentionCustomerDO(dto, retentionCustomerDO);
+        //创建人赋值
+        BlinkEntityUtil.setCreateInfo(retentionCustomerDO);
+        // 执行新增
+        this.save(retentionCustomerDO);
+        return ResponseDTO.ok();
+    }
+
+    /**
+     * 分页查询留资客户列表
+     *
+     * @param qry
+     * @return
+     */
+    @Override
+    public ResponseDTO<PageResult<BlinkRetentionCustomerDTO>> supportsRetentionCustomerQueryPage(BlinkRetentionCustomerQry qry) {
+        Page<?> page = BlinkPageUtil.convert2PageQuery(qry);
+        List<BlinkRetentionCustomerDTO> retentionCustomerDTOS = repository.supportsRetentionCustomerQueryPage(page, qry);
+        PageResult<BlinkRetentionCustomerDTO> pageResult = BlinkPageUtil.convert2PageResult(page, retentionCustomerDTOS);
+        return ResponseDTO.ok(pageResult);
+    }
+
+}

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

@@ -0,0 +1,21 @@
+package com.wx.blink.backend.objectmapper;
+
+import com.wx.blink.backend.domain.dataobject.BlinkRetentionCustomerDO;
+import com.wx.blink.backend.domain.dto.BlinkRetentionCustomerDTO;
+import com.wx.blink.base.common.util.BlinkStringUtil;
+import org.mapstruct.Mapper;
+import org.mapstruct.MappingTarget;
+
+@Mapper(componentModel = "spring", imports = {BlinkStringUtil.class})
+public interface BlinkRetentionCustomerMapper {
+
+    /**
+     * 活动主数据dto转do
+     *
+     * @param dto
+     * @return
+     */
+    void toBlinkRetentionCustomerDO(BlinkRetentionCustomerDTO dto, @MappingTarget BlinkRetentionCustomerDO retentionCustomerDO);
+
+
+}

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

@@ -0,0 +1,35 @@
+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.BlinkRetentionCustomerDO;
+import com.wx.blink.backend.domain.dto.BlinkRetentionCustomerDTO;
+import com.wx.blink.backend.domain.qry.BlinkRetentionCustomerQry;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface BlinkRetentionCustomerRepository extends BaseMapper<BlinkRetentionCustomerDO> {
+
+
+    /**
+     * 验证留资客户是否重复
+     *
+     * @param companyName
+     * @param id
+     * @param deletedFlag
+     * @return
+     */
+    BlinkRetentionCustomerDO queryByCompanyName(@Param("companyName") String companyName, @Param("id") Long id, @Param("deletedFlag") Boolean deletedFlag);
+
+
+    /**
+     * 分页查询留资客户列表
+     *
+     * @param qry
+     * @return
+     */
+    List<BlinkRetentionCustomerDTO> supportsRetentionCustomerQueryPage(Page<?> page, @Param("query") BlinkRetentionCustomerQry qry);
+}

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

@@ -0,0 +1,25 @@
+package com.wx.blink.backend.service;
+
+import com.wx.blink.backend.domain.dto.BlinkRetentionCustomerDTO;
+import com.wx.blink.backend.domain.qry.BlinkRetentionCustomerQry;
+import com.wx.blink.base.common.domain.PageResult;
+import com.wx.blink.base.common.domain.ResponseDTO;
+
+public interface IBlinkRetentionCustomerService {
+
+    /**
+     * 创建留资客户
+     *
+     * @param dto
+     * @return
+     */
+    ResponseDTO<String> supportsRetentionCustomerCreate(BlinkRetentionCustomerDTO dto);
+
+    /**
+     * 分页查询留资客户列表
+     *
+     * @param qry
+     * @return
+     */
+    ResponseDTO<PageResult<BlinkRetentionCustomerDTO>> supportsRetentionCustomerQueryPage(BlinkRetentionCustomerQry qry);
+}

+ 34 - 0
bound-link-api/blink-backend/src/main/resources/mapper/BlinklRetentioncustomerRepositoryMapper.xml

@@ -0,0 +1,34 @@
+<?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.BlinkRetentionCustomerRepository">
+    <!--    查询单个留资客户-->
+    <select id="queryByCompanyName" resultType="com.wx.blink.backend.domain.dataobject.BlinkRetentionCustomerDO">
+        select *
+        from blink_retention_customer
+        where deleted_flag = #{deletedFlag}
+        <if test="companyName != null and companyName != ''">
+            AND company_name = #{companyName}
+        </if>
+        <if test="id != null">
+            AND id = #{id}
+        </if>
+    </select>
+
+    <!--    分页查询留资客户列表-->
+    <select id="supportsRetentionCustomerQueryPage" resultType="com.wx.blink.backend.domain.dto.BlinkRetentionCustomerDTO">
+        select *
+        from blink_retention_customer
+        where deleted_flag = '0'
+        <if test="query.companyName != null and query.companyName !=''">
+            AND company_name = #{query.companyName}
+        </if>
+        <if test="query.id != null">
+            AND id = #{query.id}
+        </if>
+        <if test="query.activityId != null">
+            AND activity_id = #{query.activityId}
+        </if>
+        order by create_time desc
+    </select>
+
+</mapper>