Browse Source

1.新增分页查询企业客户联系人来单列表与分页查询企业客户联系人评估收入列表接口

GouGengquan 6 days ago
parent
commit
6a9c7a2dfc

+ 24 - 0
biz-base/src/main/java/com/dayou/controller/CustomerLinkmanController.java

@@ -1,10 +1,12 @@
 package com.dayou.controller;
 
 import com.dayou.common.BaseEntity;
+import com.dayou.dto.CustomerLinkmanOrderSelectDTO;
 import com.dayou.dto.CustomerLinkmanSelectDTO;
 import com.dayou.dto.CustomerPersonalOrderSelectDTO;
 import com.dayou.dto.CustomerPersonalSelectDTO;
 import com.dayou.utils.LoginContext;
+import com.dayou.vo.CustomerCompanyOrderVO;
 import com.dayou.vo.CustomerLinkmanVO;
 import com.dayou.vo.CustomerPersonalOrderVO;
 import com.dayou.vo.CustomerPersonalVO;
@@ -172,5 +174,27 @@ public class CustomerLinkmanController extends BaseController {
         List<CustomerLinkmanVO> result = customerLinkmanService.exportCustomerLinkmanPage(dto);
         exportPlus(response,"企业客户联系人列表",result,CustomerLinkmanVO.class);
     }
+
+    /**
+     * 分页查询企业客户联系人来单列表
+     * @param page 分页
+     * @param dto 查询dto
+     * @return Page<CustomerCompanyOrderVO>
+     */
+    @GetMapping("/getCustomerLinkmanOrderPage")
+    public RestResponse<Page<CustomerCompanyOrderVO>> getCustomerLinkmanOrderPage(Page page, CustomerLinkmanOrderSelectDTO dto) {
+        return RestResponse.data(customerLinkmanService.getCustomerLinkmanOrderPage(page, dto));
+    }
+
+    /**
+     * 分页查询企业客户联系人评估收入列表
+     * @param page 分页
+     * @param dto 查询dto
+     * @return Page<CustomerCompanyOrderVO>
+     */
+    @GetMapping("/getCustomerLinkmanIncomePage")
+    public RestResponse<Page<CustomerCompanyOrderVO>> getCustomerLinkmanIncomePage(Page page, CustomerLinkmanOrderSelectDTO dto) {
+        return RestResponse.data(customerLinkmanService.getCustomerLinkmanIncomePage(page, dto));
+    }
 }
 

+ 18 - 0
dao/src/main/java/com/dayou/mapper/CustomerLinkmanMapper.java

@@ -1,11 +1,13 @@
 package com.dayou.mapper;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dayou.dto.CustomerLinkmanOrderSelectDTO;
 import com.dayou.dto.CustomerLinkmanSelectDTO;
 import com.dayou.dto.CustomerPersonalOrderSelectDTO;
 import com.dayou.dto.CustomerPersonalSelectDTO;
 import com.dayou.entity.CustomerLinkman;
 import com.dayou.dao.CustomBaseMapper;
+import com.dayou.vo.CustomerCompanyOrderVO;
 import com.dayou.vo.CustomerLinkmanVO;
 import com.dayou.vo.CustomerPersonalOrderVO;
 import com.dayou.vo.CustomerPersonalVO;
@@ -69,4 +71,20 @@ public interface CustomerLinkmanMapper extends CustomBaseMapper<CustomerLinkman>
      */
     List<CustomerLinkmanVO> exportCustomerLinkmanPage(@Param("dto")CustomerLinkmanSelectDTO dto);
 
+    /**
+     * 分页查询企业客户联系人来单列表
+     * @param page 分页
+     * @param dto 查询dto
+     * @return Page<CustomerCompanyOrderVO>
+     */
+    Page<CustomerCompanyOrderVO> getCustomerLinkmanOrderPage(@Param("page") Page page, @Param("dto") CustomerLinkmanOrderSelectDTO dto);
+
+    /**
+     * 分页查询企业客户联系人评估收入列表
+     * @param page 分页
+     * @param dto 查询dto
+     * @return Page<CustomerCompanyOrderVO>
+     */
+    Page<CustomerCompanyOrderVO> getCustomerLinkmanIncomePage(@Param("page") Page page, @Param("dto") CustomerLinkmanOrderSelectDTO dto);
+
 }

+ 139 - 0
dao/src/main/resources/mapper/CustomerLinkmanMapper.xml

@@ -370,4 +370,143 @@
         <include refid="customerLinkmanQuerySql" />
     </select>
 
+    <!--分页查询企业客户联系人来单列表-->
+    <select id="getCustomerLinkmanOrderPage" resultType="com.dayou.vo.CustomerCompanyOrderVO">
+        SELECT *
+        FROM (SELECT assets.id        AS id,
+                     order_id         AS orderId,
+                     assets.name      AS projectName,
+                     'ASSET_BUSINESS' AS businessType,
+                     linkman.name     AS linkmanName,
+                     user.name        AS clientManager,
+                     assets.created   AS created
+              FROM assets
+                       LEFT JOIN customer_linkman AS linkman ON linkman.id = assets.clientele_contact_id
+                       LEFT JOIN user ON user.id = assets.client_manager_id
+              WHERE assets.deleted = 0
+                AND clientele_type = '企业'
+                AND assets.clientele_contact_id = #{dto.linkmanId}
+              UNION ALL
+              SELECT major.id         AS id,
+                     order_id         AS orderId,
+                     major.name       AS projectName,
+                     'MAJOR_BUSINESS' AS businessType,
+                     linkman.name     AS linkmanName,
+                     user.name        AS clientManager,
+                     major.created    AS created
+              FROM major
+                       LEFT JOIN customer_linkman AS linkman ON linkman.id = major.clientele_contact_id
+                       LEFT JOIN user ON user.id = major.client_manager_id
+              WHERE major.deleted = 0
+                AND clientele_type = '企业'
+                AND major.clientele_contact_id = #{dto.linkmanId}
+              UNION ALL
+              SELECT personal.id         AS id,
+                     order_id            AS orderId,
+                     personal.location   AS projectName,
+                     'PERSONAL_BUSINESS' AS businessType,
+                     linkman.name        AS linkmanName,
+                     user.name           AS clientManager,
+                     personal.created    AS created
+              FROM personal
+                       LEFT JOIN customer_linkman AS linkman ON linkman.id = personal.clientele_contact_id
+                       LEFT JOIN user ON user.id = personal.client_manager_id
+              WHERE personal.deleted = 0
+                AND clientele_type = '企业'
+                AND personal.clientele_contact_id = #{dto.linkmanId}) AS custmerOrder
+        <where>
+            <if test="dto.orderId != null">
+                AND orderId = #{dto.orderId}
+            </if>
+            <if test="dto.projectName != null">
+                AND projectName LIKE CONCAT('%',#{dto.projectName},'%')
+            </if>
+            <if test="dto.businessType != null">
+                AND businessType = #{dto.businessType}
+            </if>
+            <if test="dto.createdStartTime != null and dto.createdEndTime != null">
+                AND created BETWEEN #{dto.createdStartTime} AND #{dto.createdEndTime}
+            </if>
+        </where>
+        ORDER BY custmerOrder.created DESC
+    </select>
+
+    <!--分页查询企业客户联系人评估收入列表-->
+    <select id="getCustomerLinkmanIncomePage" resultType="com.dayou.vo.CustomerCompanyOrderVO">
+        SELECT *
+        FROM (SELECT assets.id        AS id,
+                     assets.order_id         AS orderId,
+                     assets.name      AS projectName,
+                     'ASSET_BUSINESS' AS businessType,
+                     linkman.name     AS linkmanName,
+                     user.name        AS clientManager,
+                     assets.created   AS created,
+                     fund.real_amount AS orderRealAmount,
+                     (SELECT created FROM finance_claim WHERE order_fund_id = fund.id ORDER BY created DESC LIMIT 1) AS collectionTime
+              FROM assets
+                       LEFT JOIN customer_linkman AS linkman ON linkman.id = assets.clientele_contact_id
+                       LEFT JOIN user ON user.id = assets.client_manager_id
+                       LEFT JOIN order_fund AS fund
+                                 ON fund.business_type = 'ASSET_BUSINESS' AND fund.business_id = assets.id AND
+                                    fund.deleted = 0
+              WHERE assets.deleted = 0
+                AND clientele_type = '企业'
+                AND assets.clientele_contact_id = #{dto.linkmanId}
+              UNION ALL
+              SELECT major.id         AS id,
+                     major.order_id         AS orderId,
+                     major.name       AS projectName,
+                     'MAJOR_BUSINESS' AS businessType,
+                     linkman.name     AS linkmanName,
+                     user.name        AS clientManager,
+                     major.created    AS created,
+                     fund.real_amount AS orderRealAmount,
+                     (SELECT created FROM finance_claim WHERE order_fund_id = fund.id ORDER BY created DESC LIMIT 1) AS collectionTime
+              FROM major
+                       LEFT JOIN customer_linkman AS linkman ON linkman.id = major.clientele_contact_id
+                       LEFT JOIN user ON user.id = major.client_manager_id
+                       LEFT JOIN order_fund AS fund
+                                 ON fund.business_type = 'MAJOR_BUSINESS' AND fund.business_id = major.id AND
+                                    fund.deleted = 0
+              WHERE major.deleted = 0
+                AND clientele_type = '企业'
+                AND major.clientele_contact_id = #{dto.linkmanId}
+              UNION ALL
+              SELECT personal.id         AS id,
+                     personal.order_id            AS orderId,
+                     personal.location   AS projectName,
+                     'PERSONAL_BUSINESS' AS businessType,
+                     linkman.name        AS linkmanName,
+                     user.name           AS clientManager,
+                     personal.created    AS created,
+                     fund.real_amount AS orderRealAmount,
+                     (SELECT created FROM finance_claim WHERE order_fund_id = fund.id ORDER BY created DESC LIMIT 1) AS collectionTime
+              FROM personal
+                       LEFT JOIN customer_linkman AS linkman ON linkman.id = personal.clientele_contact_id
+                       LEFT JOIN user ON user.id = personal.client_manager_id
+                       LEFT JOIN order_fund AS fund
+                                 ON fund.business_type = 'PERSONAL_BUSINESS' AND fund.business_id = personal.id AND
+                                    fund.deleted = 0
+              WHERE personal.deleted = 0
+                AND clientele_type = '企业'
+                AND personal.clientele_contact_id = #{dto.linkmanId}) AS custmerOrder
+        <where>
+            <if test="dto.orderId != null">
+                AND orderId = #{dto.orderId}
+            </if>
+            <if test="dto.projectName != null">
+                AND projectName LIKE CONCAT('%',#{dto.projectName},'%')
+            </if>
+            <if test="dto.businessType != null">
+                AND businessType = #{dto.businessType}
+            </if>
+            <if test="dto.createdStartTime != null and dto.createdEndTime != null">
+                AND created BETWEEN #{dto.createdStartTime} AND #{dto.createdEndTime}
+            </if>
+            <if test="dto.collectionStartTime != null and dto.collectionEndTime != null">
+                AND collectionTime BETWEEN #{dto.collectionStartTime} AND #{dto.collectionEndTime}
+            </if>
+        </where>
+    </select>
+
 </mapper>

+ 42 - 0
domain/src/main/java/com/dayou/dto/CustomerLinkmanOrderSelectDTO.java

@@ -0,0 +1,42 @@
+package com.dayou.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class CustomerLinkmanOrderSelectDTO {
+
+    /**
+     * 个人客户id
+     */
+    private Long linkmanId;
+
+    /**
+     * 项目编号
+     */
+    private String orderId;
+
+    /**
+     * 项目名称
+     */
+    private String projectName;
+
+    /**
+     * 业务类型
+     */
+    private String businessType;
+
+    /**
+     * 下单时间筛选起止
+     */
+    private Date createdStartTime;
+    private Date createdEndTime;
+
+    /**
+     * 收款时间筛选起止
+     */
+    private Date collectionStartTime;
+    private Date collectionEndTime;
+
+}

+ 1 - 1
domain/src/main/java/com/dayou/vo/CustomerPersonalOrderVO.java

@@ -28,7 +28,7 @@ public class CustomerPersonalOrderVO {
     private String businessType;
 
     /**
-     * 个人客户名称
+     * 客户联系人
      */
     private String linkmanName;
 

+ 18 - 0
service/src/main/java/com/dayou/service/ICustomerLinkmanService.java

@@ -1,4 +1,5 @@
 package com.dayou.service;
+import com.dayou.dto.CustomerLinkmanOrderSelectDTO;
 import com.dayou.dto.CustomerLinkmanSelectDTO;
 import com.dayou.dto.CustomerPersonalOrderSelectDTO;
 import com.dayou.dto.CustomerPersonalSelectDTO;
@@ -6,6 +7,7 @@ import com.dayou.entity.CustomerLinkman;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dayou.vo.CustomerCompanyOrderVO;
 import com.dayou.vo.CustomerLinkmanVO;
 import com.dayou.vo.CustomerPersonalOrderVO;
 import com.dayou.vo.CustomerPersonalVO;
@@ -80,4 +82,20 @@ public interface ICustomerLinkmanService extends IService<CustomerLinkman> {
          */
         List<CustomerLinkmanVO> exportCustomerLinkmanPage(CustomerLinkmanSelectDTO dto);
 
+        /**
+         * 分页查询企业客户联系人来单列表
+         * @param page 分页
+         * @param dto 查询dto
+         * @return Page<CustomerCompanyOrderVO>
+         */
+        Page<CustomerCompanyOrderVO> getCustomerLinkmanOrderPage(Page page, CustomerLinkmanOrderSelectDTO dto);
+
+        /**
+         * 分页查询企业客户联系人评估收入列表
+         * @param page 分页
+         * @param dto 查询dto
+         * @return Page<CustomerCompanyOrderVO>
+         */
+        Page<CustomerCompanyOrderVO> getCustomerLinkmanIncomePage(Page page, CustomerLinkmanOrderSelectDTO dto);
+
 }

+ 24 - 0
service/src/main/java/com/dayou/service/impl/CustomerLinkmanServiceImpl.java

@@ -2,6 +2,7 @@ package com.dayou.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.dayou.dto.CustomerLinkmanOrderSelectDTO;
 import com.dayou.dto.CustomerLinkmanSelectDTO;
 import com.dayou.dto.CustomerPersonalOrderSelectDTO;
 import com.dayou.dto.CustomerPersonalSelectDTO;
@@ -10,6 +11,7 @@ import com.dayou.mapper.CustomerLinkmanMapper;
 import com.dayou.service.ICustomerLinkmanService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dayou.utils.LoginContext;
+import com.dayou.vo.CustomerCompanyOrderVO;
 import com.dayou.vo.CustomerLinkmanVO;
 import com.dayou.vo.CustomerPersonalOrderVO;
 import com.dayou.vo.CustomerPersonalVO;
@@ -144,4 +146,26 @@ public class CustomerLinkmanServiceImpl extends ServiceImpl<CustomerLinkmanMappe
     public List<CustomerLinkmanVO> exportCustomerLinkmanPage(CustomerLinkmanSelectDTO dto) {
         return customerLinkmanMapper.exportCustomerLinkmanPage(dto);
     }
+
+    /**
+     * 分页查询企业客户联系人来单列表
+     * @param page 分页
+     * @param dto 查询dto
+     * @return Page<CustomerCompanyOrderVO>
+     */
+    @Override
+    public Page<CustomerCompanyOrderVO> getCustomerLinkmanOrderPage(Page page, CustomerLinkmanOrderSelectDTO dto) {
+        return customerLinkmanMapper.getCustomerLinkmanOrderPage(page, dto);
+    }
+
+    /**
+     * 分页查询企业客户联系人评估收入列表
+     * @param page 分页
+     * @param dto 查询dto
+     * @return Page<CustomerCompanyOrderVO>
+     */
+    @Override
+    public Page<CustomerCompanyOrderVO> getCustomerLinkmanIncomePage(Page page, CustomerLinkmanOrderSelectDTO dto) {
+        return customerLinkmanMapper.getCustomerLinkmanIncomePage(page, dto);
+    }
 }