Browse Source

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

GouGengquan 1 week ago
parent
commit
5058cebed4

+ 2 - 2
biz-base/src/main/java/com/dayou/controller/CustomerCompanyController.java

@@ -123,7 +123,7 @@ public class CustomerCompanyController extends BaseController {
     /**
      * 分页查询企业客户来单列表
      * @param page 分页
-     * @param dto 查询dto0
+     * @param dto 查询dto
      * @return Page<CustomerCompanyOrderVO>
      */
     @GetMapping("/getCustomerCompanyOrderPage")
@@ -134,7 +134,7 @@ public class CustomerCompanyController extends BaseController {
     /**
      * 分页查询企业客户评估收入订单列表
      * @param page 分页
-     * @param dto 查询dto0
+     * @param dto 查询dto
      * @return Page<CustomerCompanyOrderVO>
      */
     @GetMapping("/getCustomerCompanyIncomePage")

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

@@ -1,8 +1,10 @@
 package com.dayou.controller;
 
 import com.dayou.common.BaseEntity;
+import com.dayou.dto.CustomerPersonalOrderSelectDTO;
 import com.dayou.dto.CustomerPersonalSelectDTO;
 import com.dayou.utils.LoginContext;
+import com.dayou.vo.CustomerPersonalOrderVO;
 import com.dayou.vo.CustomerPersonalVO;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import lombok.extern.slf4j.Slf4j;
@@ -125,5 +127,27 @@ public class CustomerLinkmanController extends BaseController {
         List<CustomerPersonalVO> result = customerLinkmanService.exportCustomerPersonalPage(dto);
         exportPlus(response,"个人客户列表",result,CustomerPersonalVO.class);
     }
+
+    /**
+     * 分页查询个人客户来单列表
+     * @param page 分页
+     * @param dto 查询dto0
+     * @return Page<CustomerPersonalOrderVO>
+     */
+    @GetMapping("/getCustomerPersonalOrderPage")
+    public RestResponse<Page<CustomerPersonalOrderVO>> getCustomerPersonalOrderPage(Page page, CustomerPersonalOrderSelectDTO dto) {
+        return RestResponse.data(customerLinkmanService.getCustomerPersonalOrderPage(page, dto));
+    }
+
+    /**
+     * 分页查询个人客户评估收入列表
+     * @param page 分页
+     * @param dto 查询dto0
+     * @return Page<CustomerPersonalOrderVO>
+     */
+    @GetMapping("/getCustomerPersonalIncomePage")
+    public RestResponse<Page<CustomerPersonalOrderVO>> getCustomerPersonalIncomePage(Page page, CustomerPersonalOrderSelectDTO dto) {
+        return RestResponse.data(customerLinkmanService.getCustomerPersonalIncomePage(page, dto));
+    }
 }
 

+ 2 - 2
dao/src/main/java/com/dayou/mapper/CustomerCompanyMapper.java

@@ -41,7 +41,7 @@ public interface CustomerCompanyMapper extends CustomBaseMapper<CustomerCompany>
     /**
      * 分页查询企业客户来单列表
      * @param page 分页
-     * @param dto 查询dto0
+     * @param dto 查询dto
      * @return Page<CustomerCompanyOrderVO>
      */
     Page<CustomerCompanyOrderVO> getCustomerCompanyOrderPage(@Param("page") Page page, @Param("dto") CustomerCompanyOrderSelectDTO dto);
@@ -49,7 +49,7 @@ public interface CustomerCompanyMapper extends CustomBaseMapper<CustomerCompany>
     /**
      * 分页查询企业客户评估收入订单列表
      * @param page 分页
-     * @param dto 查询dto0
+     * @param dto 查询dto
      * @return Page<CustomerCompanyOrderVO>
      */
     Page<CustomerCompanyOrderVO> getCustomerCompanyIncomePage(@Param("page") Page page, @Param("dto") CustomerCompanyOrderSelectDTO dto);

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

@@ -1,9 +1,11 @@
 package com.dayou.mapper;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dayou.dto.CustomerPersonalOrderSelectDTO;
 import com.dayou.dto.CustomerPersonalSelectDTO;
 import com.dayou.entity.CustomerLinkman;
 import com.dayou.dao.CustomBaseMapper;
+import com.dayou.vo.CustomerPersonalOrderVO;
 import com.dayou.vo.CustomerPersonalVO;
 import org.apache.ibatis.annotations.Param;
 
@@ -34,4 +36,20 @@ public interface CustomerLinkmanMapper extends CustomBaseMapper<CustomerLinkman>
      */
     List<CustomerPersonalVO> exportCustomerPersonalPage(@Param("dto") CustomerPersonalSelectDTO dto);
 
+    /**
+     * 分页查询个人客户来单列表
+     * @param page 分页
+     * @param dto 查询dto
+     * @return Page<CustomerPersonalOrderVO>
+     */
+    Page<CustomerPersonalOrderVO> getCustomerPersonalOrderPage(@Param("page") Page page, @Param("dto") CustomerPersonalOrderSelectDTO dto);
+
+    /**
+     * 分页查询个人客户评估收入列表
+     * @param page 分页
+     * @param dto 查询dto
+     * @return Page<CustomerPersonalOrderVO>
+     */
+    Page<CustomerPersonalOrderVO> getCustomerPersonalIncomePage(@Param("page") Page page, @Param("dto") CustomerPersonalOrderSelectDTO dto);
+
 }

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

@@ -129,4 +129,144 @@
         <include refid="customerPersonalQuerySql" />
     </select>
 
+    <!--分页查询个人客户来单列表-->
+    <select id="getCustomerPersonalOrderPage" resultType="com.dayou.vo.CustomerPersonalOrderVO">
+        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="getCustomerPersonalIncomePage" resultType="com.dayou.vo.CustomerPersonalOrderVO">
+        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>
+        ORDER BY custmerOrder.collectionTime DESC
+    </select>
+
 </mapper>

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

@@ -0,0 +1,42 @@
+package com.dayou.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class CustomerPersonalOrderSelectDTO {
+
+    /**
+     * 个人客户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;
+
+}

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

@@ -0,0 +1,55 @@
+package com.dayou.vo;
+
+import lombok.Data;
+
+import java.time.LocalDate;
+
+/**
+ * 客户管理-个人客户列表-来单列表
+ */
+@Data
+public class CustomerPersonalOrderVO {
+
+    private Integer id;
+
+    /**
+     * 项目编号
+     */
+    private String orderId;
+
+    /**
+     * 项目名称
+     */
+    private String projectName;
+
+    /**
+     * 业务类型
+     */
+    private String businessType;
+
+    /**
+     * 个人客户名称
+     */
+    private String linkmanName;
+
+    /**
+     * 客户经理
+     */
+    private String clientManager;
+
+    /**
+     * 下单时间
+     */
+    private LocalDate created;
+
+    /**
+     * 订单实收款
+     */
+    private Double orderRealAmount;
+
+    /**
+     * 收款时间
+     */
+    private LocalDate collectionTime;
+
+}

+ 2 - 2
service/src/main/java/com/dayou/service/ICustomerCompanyService.java

@@ -64,7 +64,7 @@ public interface ICustomerCompanyService extends IService<CustomerCompany> {
     /**
      * 分页查询企业客户来单列表
      * @param page 分页
-     * @param dto 查询dto0
+     * @param dto 查询dto
      * @return Page<CustomerCompanyOrderVO>
      */
     Page<CustomerCompanyOrderVO> getCustomerCompanyOrderPage(Page page, CustomerCompanyOrderSelectDTO dto);
@@ -73,7 +73,7 @@ public interface ICustomerCompanyService extends IService<CustomerCompany> {
     /**
      * 分页查询企业客户评估收入订单列表
      * @param page 分页
-     * @param dto 查询dto0
+     * @param dto 查询dto
      * @return Page<CustomerCompanyOrderVO>
      */
     Page<CustomerCompanyOrderVO> getCustomerCompanyIncomePage(Page page, CustomerCompanyOrderSelectDTO dto);

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

@@ -1,9 +1,11 @@
 package com.dayou.service;
+import com.dayou.dto.CustomerPersonalOrderSelectDTO;
 import com.dayou.dto.CustomerPersonalSelectDTO;
 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.CustomerPersonalOrderVO;
 import com.dayou.vo.CustomerPersonalVO;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.web.multipart.MultipartFile;
@@ -45,4 +47,20 @@ public interface ICustomerLinkmanService extends IService<CustomerLinkman> {
          */
         List<CustomerPersonalVO> exportCustomerPersonalPage(CustomerPersonalSelectDTO dto);
 
+        /**
+         * 分页查询个人客户来单列表
+         * @param page 分页
+         * @param dto 查询dto0
+         * @return Page<CustomerPersonalOrderVO>
+         */
+        Page<CustomerPersonalOrderVO> getCustomerPersonalOrderPage(Page page, CustomerPersonalOrderSelectDTO dto);
+
+        /**
+         * 分页查询个人客户评估收入列表
+         * @param page 分页
+         * @param dto 查询dto0
+         * @return Page<CustomerPersonalOrderVO>
+         */
+        Page<CustomerPersonalOrderVO> getCustomerPersonalIncomePage(Page page, CustomerPersonalOrderSelectDTO dto);
+
 }

+ 2 - 2
service/src/main/java/com/dayou/service/impl/CustomerCompanyServiceImpl.java

@@ -135,7 +135,7 @@ public class CustomerCompanyServiceImpl extends ServiceImpl<CustomerCompanyMappe
     /**
      * 分页查询企业客户来单列表
      * @param page 分页
-     * @param dto 查询dto0
+     * @param dto 查询dto
      * @return Page<CustomerCompanyOrderVO>
      */
     @Override
@@ -146,7 +146,7 @@ public class CustomerCompanyServiceImpl extends ServiceImpl<CustomerCompanyMappe
     /**
      * 分页查询企业客户评估收入订单列表
      * @param page 分页
-     * @param dto 查询dto0
+     * @param dto 查询dto
      * @return Page<CustomerCompanyOrderVO>
      */
     @Override

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

@@ -2,12 +2,14 @@ package com.dayou.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.dayou.dto.CustomerPersonalOrderSelectDTO;
 import com.dayou.dto.CustomerPersonalSelectDTO;
 import com.dayou.entity.CustomerLinkman;
 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.CustomerPersonalOrderVO;
 import com.dayou.vo.CustomerPersonalVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -97,4 +99,26 @@ public class CustomerLinkmanServiceImpl extends ServiceImpl<CustomerLinkmanMappe
     public List<CustomerPersonalVO> exportCustomerPersonalPage(CustomerPersonalSelectDTO dto) {
         return customerLinkmanMapper.exportCustomerPersonalPage(dto);
     }
+
+    /**
+     * 分页查询个人客户来单列表
+     * @param page 分页
+     * @param dto 查询dto0
+     * @return Page<CustomerPersonalOrderVO>
+     */
+    @Override
+    public Page<CustomerPersonalOrderVO> getCustomerPersonalOrderPage(Page page, CustomerPersonalOrderSelectDTO dto) {
+        return customerLinkmanMapper.getCustomerPersonalOrderPage(page, dto);
+    }
+
+    /**
+     * 分页查询个人客户评估收入列表
+     * @param page 分页
+     * @param dto 查询dto0
+     * @return Page<CustomerPersonalOrderVO>
+     */
+    @Override
+    public Page<CustomerPersonalOrderVO> getCustomerPersonalIncomePage(Page page, CustomerPersonalOrderSelectDTO dto) {
+        return customerLinkmanMapper.getCustomerPersonalIncomePage(page, dto);
+    }
 }