yzc 1 anno fa
parent
commit
9311d66747

+ 4 - 3
hx-customer/src/main/java/com/fjhx/customer/mapper/customer/CustomerMapper.java

@@ -1,11 +1,10 @@
 package com.fjhx.customer.mapper.customer;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.fjhx.customer.entity.customer.dto.CustomerDto;
-import com.fjhx.customer.entity.customer.po.Customer;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.customer.entity.customer.dto.CustomerDto;
+import com.fjhx.customer.entity.customer.po.Customer;
 import com.fjhx.customer.entity.customer.vo.CustomerFollowRecordsVo;
 import com.fjhx.customer.entity.customer.vo.CustomerVo;
 import com.ruoyi.common.utils.wrapper.IWrapper;
@@ -58,4 +57,6 @@ public interface CustomerMapper extends BaseMapper<Customer> {
      * 跟进记录获取
      */
     List<CustomerFollowRecordsVo> getFollowUp(@Param("id") Long id, @Param("tenantId") String tenantId);
+
+    List<Customer> sourceCount(@Param("ew") QueryWrapper<Customer> wrapper);
 }

+ 9 - 5
hx-customer/src/main/java/com/fjhx/customer/service/customer/impl/CustomerServiceImpl.java

@@ -385,17 +385,21 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i
                 query.and(wrapper1 -> wrapper1.isNull("user_id").or().eq("user_id", ""));
             }
         }
-        if (customerDto.getStatisticsType() == 1) {// 来源统计
-            query.groupBy("source");
-            query.select("count(*) count,source");
-        } else if (customerDto.getStatisticsType() == 2) {// 数据类型统计
+        if (customerDto.getStatisticsType() == 2) {// 数据类型统计
             query.groupBy("status");
             query.select("count(*) count,status");
         } else if (customerDto.getStatisticsType() == 3) {// 业务员统计
             query.groupBy("user_id");
             query.select("count(*) count,user_id");
         }
-        List<Customer> customerList = baseMapper.selectList(query);
+
+        List<Customer> customerList;
+        if (customerDto.getStatisticsType() == 1) {// 来源统计
+            query.eq("dcd.dict_code", "customer_source");
+            customerList = baseMapper.sourceCount(query);
+        } else {
+            customerList = baseMapper.selectList(query);
+        }
 
         UserUtil.assignmentNickName(customerList, Customer::getUserId, Customer::setUserName);
 

+ 13 - 0
hx-customer/src/main/resources/mapper/customer/CustomerMapper.xml

@@ -128,5 +128,18 @@
                WHERE cfr.customer_id = #{id})) t1
         ORDER BY t1.date DESC LIMIT 3
     </select>
+    <select id="sourceCount" resultType="com.fjhx.customer.entity.customer.vo.CustomerVo">
+        SELECT
+        COUNT( 1 ) AS `count`,
+        dcd.dict_key AS `source`
+        FROM
+        customer c
+        JOIN bytesailing_base.dict_tenant_data dcd ON FIND_IN_SET( dcd.dict_key, c.source )
+        <where>
+            ${ew.sqlSegment}
+        </where>
+        GROUP BY
+        dcd.dict_key
+    </select>
 
 </mapper>