Ver código fonte

Merge remote-tracking branch 'origin/v3.5' into v3.5

魏熙美 5 anos atrás
pai
commit
de6afeb35d

+ 15
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java Ver arquivo

457
      * 活动以结束
457
      * 活动以结束
458
      */
458
      */
459
     public static final Integer ACTIVITY_STATUS_FINISH = 2;
459
     public static final Integer ACTIVITY_STATUS_FINISH = 2;
460
+    
461
+    /**
462
+     * 客户统计类型:跟进客户
463
+     */
464
+	public static final String CUSTOMER_TYPE_FOLLOW = "follow";
465
+    
466
+    /**
467
+     * 客户统计类型:新增客户
468
+     */
469
+    public static final String CUSTOMER_TYPE_NEW = "new";
470
+    
471
+    /**
472
+     * 客户统计类型:到访客户
473
+     */
474
+    public static final String CUSTOMER_TYPE_VISITE = "visite";
460
 }
475
 }

+ 72
- 0
src/main/java/com/huiju/estateagents/job/CustomerStatisticTimeJob.java Ver arquivo

1
+package com.huiju.estateagents.job;
2
+
3
+import com.huiju.estateagents.base.BaseController;
4
+import com.huiju.estateagents.common.DateUtils;
5
+import com.huiju.estateagents.service.IHelpActivityService;
6
+import com.huiju.estateagents.service.IHelpInitiateRecordService;
7
+import com.huiju.estateagents.service.IHelpRecordService;
8
+import com.huiju.estateagents.service.ITaBuildingDynamicService;
9
+import com.huiju.estateagents.service.ITaShareActivityService;
10
+import com.huiju.estateagents.service.ITaShareChildRecordService;
11
+import com.huiju.estateagents.service.ITaShareRecordService;
12
+import com.huiju.estateagents.statistic.service.ITaCustomerGenderStatisticService;
13
+import com.huiju.estateagents.statistic.service.ITaCustomerStatisticDailyService;
14
+import org.slf4j.Logger;
15
+import org.slf4j.LoggerFactory;
16
+import org.springframework.beans.factory.annotation.Autowired;
17
+import org.springframework.context.annotation.Configuration;
18
+import org.springframework.scheduling.annotation.EnableScheduling;
19
+import org.springframework.scheduling.annotation.Scheduled;
20
+import org.springframework.stereotype.Component;
21
+
22
+import java.time.LocalDateTime;
23
+
24
+/**
25
+ * @author fxf
26
+ * @Title: CustomerStatisticTimeJob
27
+ * @Description: 盘客数据分析统计
28
+ * @date 2019/11/08
29
+ */
30
+@Component
31
+@Configuration
32
+@EnableScheduling
33
+public class CustomerStatisticTimeJob extends BaseController {
34
+
35
+    private final Logger logger = LoggerFactory.getLogger(CustomerStatisticTimeJob.class);
36
+
37
+    @Autowired
38
+    private ITaCustomerStatisticDailyService customerStatisticDailyService;
39
+    
40
+    @Autowired
41
+    private ITaCustomerGenderStatisticService taCustomerGenderStatisticService;
42
+
43
+    /**
44
+     *
45
+     * 盘客工具数据统计
46
+     *
47
+     * 开启定时任务,每天23:50执行
48
+     */
49
+    @Scheduled(cron = "* 50 23 * * ?")
50
+    private void configureTasks() {
51
+        LocalDateTime nowDate = LocalDateTime.now();
52
+    
53
+        //每天的新增客户统计并入表
54
+        customerStatisticDailyService.newCustomerStatisticDaily(nowDate);
55
+        
56
+        //每天的跟进客户统计并入表
57
+        customerStatisticDailyService.followUpStatisticDaily(nowDate);
58
+        
59
+        //每天的到访客户统计并入表
60
+        customerStatisticDailyService.visiteStatisticDaily(nowDate);
61
+    
62
+        //每天的新增客户性别统计并入表
63
+        taCustomerGenderStatisticService.newCustomerSexStatisticDaily(nowDate);
64
+    
65
+        //每天的跟进客户性别统计并入表
66
+        taCustomerGenderStatisticService.followUpSexStatisticDaily(nowDate);
67
+    
68
+        //每天的到访客户性别统计并入表
69
+        taCustomerGenderStatisticService.visiteSexStatisticDaily(nowDate);
70
+    }
71
+
72
+}

+ 5
- 2
src/main/java/com/huiju/estateagents/statistic/entity/TaCustomerFollowUpRecord.java Ver arquivo

54
      * 记录内容
54
      * 记录内容
55
      */
55
      */
56
     private String recordContent;
56
     private String recordContent;
57
-
58
-
57
+    
58
+    /**
59
+     * 跟进人ID
60
+     */
61
+    private Integer followerId;
59
 }
62
 }

+ 5
- 2
src/main/java/com/huiju/estateagents/statistic/entity/TaCustomerGenderStatistic.java Ver arquivo

59
      * 更新时间
59
      * 更新时间
60
      */
60
      */
61
     private LocalDateTime updateDate;
61
     private LocalDateTime updateDate;
62
-
63
-
62
+    
63
+    /**
64
+     * 客户类型 visite 到访客户, new 新增客户 ,follow跟进客户
65
+     */
66
+    private String customerType;
64
 }
67
 }

+ 28
- 1
src/main/java/com/huiju/estateagents/statistic/mapper/TaCustomerStatisticDailyMapper.java Ver arquivo

3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
 import com.huiju.estateagents.statistic.entity.TaCustomerStatisticDaily;
4
 import com.huiju.estateagents.statistic.entity.TaCustomerStatisticDaily;
5
 import org.apache.ibatis.annotations.Mapper;
5
 import org.apache.ibatis.annotations.Mapper;
6
+import org.apache.ibatis.annotations.Param;
7
+
8
+import java.time.LocalDateTime;
9
+import java.util.List;
10
+import java.util.Map;
6
 
11
 
7
 /**
12
 /**
8
  * <p>
13
  * <p>
14
  */
19
  */
15
 @Mapper
20
 @Mapper
16
 public interface TaCustomerStatisticDailyMapper extends BaseMapper<TaCustomerStatisticDaily> {
21
 public interface TaCustomerStatisticDailyMapper extends BaseMapper<TaCustomerStatisticDaily> {
17
-
22
+	
23
+	/**
24
+	 * 获取当天跟进客户数
25
+	 * @param nowDate
26
+	 * @return
27
+	 */
28
+	List<TaCustomerStatisticDaily> getFollowUpData(@Param("nowDate") LocalDateTime nowDate);
29
+	
30
+	/**
31
+	 * 获取当天新增客户数
32
+	 * @param nowDate
33
+	 * @param status
34
+	 * @return
35
+	 */
36
+	List<TaCustomerStatisticDaily> getNewCustomerData(@Param("nowDate") LocalDateTime nowDate,@Param("status") int status);
37
+	
38
+	/**
39
+	 * 获取当天到访客户数
40
+	 * @param nowDate
41
+	 * @param checkin
42
+	 * @return
43
+	 */
44
+	List<TaCustomerStatisticDaily> getVisiteCustomerData(@Param("nowDate") LocalDateTime nowDate,@Param("checkin") int checkin);
18
 }
45
 }

+ 20
- 1
src/main/java/com/huiju/estateagents/statistic/service/ITaCustomerGenderStatisticService.java Ver arquivo

3
 import com.baomidou.mybatisplus.extension.service.IService;
3
 import com.baomidou.mybatisplus.extension.service.IService;
4
 import com.huiju.estateagents.statistic.entity.TaCustomerGenderStatistic;
4
 import com.huiju.estateagents.statistic.entity.TaCustomerGenderStatistic;
5
 
5
 
6
+import java.time.LocalDateTime;
7
+
6
 /**
8
 /**
7
  * <p>
9
  * <p>
8
  * 客户分析性别统计表 小程序盘客工具客户分析 服务类
10
  * 客户分析性别统计表 小程序盘客工具客户分析 服务类
12
  * @since 2019-11-08
14
  * @since 2019-11-08
13
  */
15
  */
14
 public interface ITaCustomerGenderStatisticService extends IService<TaCustomerGenderStatistic> {
16
 public interface ITaCustomerGenderStatisticService extends IService<TaCustomerGenderStatistic> {
15
-
17
+	
18
+	/**
19
+	 * 每天的新增客户性别统计
20
+	 * @param nowDate
21
+	 */
22
+	void newCustomerSexStatisticDaily(LocalDateTime nowDate);
23
+	
24
+	/**
25
+	 * 每天的跟进客户性别统计
26
+	 * @param nowDate
27
+	 */
28
+	void followUpSexStatisticDaily(LocalDateTime nowDate);
29
+	
30
+	/**
31
+	 * 每天的到访客户性别统计
32
+	 * @param nowDate
33
+	 */
34
+	void visiteSexStatisticDaily(LocalDateTime nowDate);
16
 }
35
 }

+ 20
- 1
src/main/java/com/huiju/estateagents/statistic/service/ITaCustomerStatisticDailyService.java Ver arquivo

3
 import com.baomidou.mybatisplus.extension.service.IService;
3
 import com.baomidou.mybatisplus.extension.service.IService;
4
 import com.huiju.estateagents.statistic.entity.TaCustomerStatisticDaily;
4
 import com.huiju.estateagents.statistic.entity.TaCustomerStatisticDaily;
5
 
5
 
6
+import java.time.LocalDateTime;
7
+
6
 /**
8
 /**
7
  * <p>
9
  * <p>
8
  * 客户分析日统计表 小程序盘客工具客户分析 服务类
10
  * 客户分析日统计表 小程序盘客工具客户分析 服务类
12
  * @since 2019-11-08
14
  * @since 2019-11-08
13
  */
15
  */
14
 public interface ITaCustomerStatisticDailyService extends IService<TaCustomerStatisticDaily> {
16
 public interface ITaCustomerStatisticDailyService extends IService<TaCustomerStatisticDaily> {
15
-
17
+	
18
+	/**
19
+	 * 每天的跟进客户统计
20
+	 * @param nowDate
21
+	 */
22
+	void followUpStatisticDaily(LocalDateTime nowDate);
23
+	
24
+	/**
25
+	 * 每天的新增客户统计
26
+	 * @param nowDate
27
+	 */
28
+	void newCustomerStatisticDaily(LocalDateTime nowDate);
29
+	
30
+	/**
31
+	 * 每天的到访客户统计
32
+	 * @param nowDate
33
+	 */
34
+	void visiteStatisticDaily(LocalDateTime nowDate);
16
 }
35
 }

+ 36
- 1
src/main/java/com/huiju/estateagents/statistic/service/impl/TaCustomerGenderStatisticServiceImpl.java Ver arquivo

4
 import com.huiju.estateagents.statistic.entity.TaCustomerGenderStatistic;
4
 import com.huiju.estateagents.statistic.entity.TaCustomerGenderStatistic;
5
 import com.huiju.estateagents.statistic.mapper.TaCustomerGenderStatisticMapper;
5
 import com.huiju.estateagents.statistic.mapper.TaCustomerGenderStatisticMapper;
6
 import com.huiju.estateagents.statistic.service.ITaCustomerGenderStatisticService;
6
 import com.huiju.estateagents.statistic.service.ITaCustomerGenderStatisticService;
7
+import org.springframework.beans.factory.annotation.Autowired;
7
 import org.springframework.stereotype.Service;
8
 import org.springframework.stereotype.Service;
8
 
9
 
10
+import java.time.LocalDateTime;
11
+
9
 /**
12
 /**
10
  * <p>
13
  * <p>
11
  * 客户分析性别统计表 小程序盘客工具客户分析 服务实现类
14
  * 客户分析性别统计表 小程序盘客工具客户分析 服务实现类
16
  */
19
  */
17
 @Service
20
 @Service
18
 public class TaCustomerGenderStatisticServiceImpl extends ServiceImpl<TaCustomerGenderStatisticMapper, TaCustomerGenderStatistic> implements ITaCustomerGenderStatisticService {
21
 public class TaCustomerGenderStatisticServiceImpl extends ServiceImpl<TaCustomerGenderStatisticMapper, TaCustomerGenderStatistic> implements ITaCustomerGenderStatisticService {
19
-
22
+	
23
+	@Autowired
24
+	private TaCustomerGenderStatisticMapper customerGenderStatisticMapper;
25
+	
26
+	/**
27
+	 * 每天的新增客户性别统计
28
+	 *
29
+	 * @param nowDate
30
+	 */
31
+	@Override
32
+	public void newCustomerSexStatisticDaily(LocalDateTime nowDate) {
33
+	
34
+	}
35
+	
36
+	/**
37
+	 * 每天的跟进客户性别统计
38
+	 *
39
+	 * @param nowDate
40
+	 */
41
+	@Override
42
+	public void followUpSexStatisticDaily(LocalDateTime nowDate) {
43
+	
44
+	}
45
+	
46
+	/**
47
+	 * 每天的到访客户性别统计
48
+	 *
49
+	 * @param nowDate
50
+	 */
51
+	@Override
52
+	public void visiteSexStatisticDaily(LocalDateTime nowDate) {
53
+	
54
+	}
20
 }
55
 }

+ 71
- 1
src/main/java/com/huiju/estateagents/statistic/service/impl/TaCustomerStatisticDailyServiceImpl.java Ver arquivo

1
 package com.huiju.estateagents.statistic.service.impl;
1
 package com.huiju.estateagents.statistic.service.impl;
2
 
2
 
3
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
3
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.estateagents.common.CommConstant;
5
+import com.huiju.estateagents.common.StringUtils;
4
 import com.huiju.estateagents.statistic.entity.TaCustomerStatisticDaily;
6
 import com.huiju.estateagents.statistic.entity.TaCustomerStatisticDaily;
5
 import com.huiju.estateagents.statistic.mapper.TaCustomerStatisticDailyMapper;
7
 import com.huiju.estateagents.statistic.mapper.TaCustomerStatisticDailyMapper;
6
 import com.huiju.estateagents.statistic.service.ITaCustomerStatisticDailyService;
8
 import com.huiju.estateagents.statistic.service.ITaCustomerStatisticDailyService;
9
+import org.springframework.beans.factory.annotation.Autowired;
7
 import org.springframework.stereotype.Service;
10
 import org.springframework.stereotype.Service;
8
 
11
 
12
+import java.time.LocalDateTime;
13
+import java.util.ArrayList;
14
+import java.util.List;
15
+import java.util.Map;
16
+
9
 /**
17
 /**
10
  * <p>
18
  * <p>
11
  * 客户分析日统计表 小程序盘客工具客户分析 服务实现类
19
  * 客户分析日统计表 小程序盘客工具客户分析 服务实现类
16
  */
24
  */
17
 @Service
25
 @Service
18
 public class TaCustomerStatisticDailyServiceImpl extends ServiceImpl<TaCustomerStatisticDailyMapper, TaCustomerStatisticDaily> implements ITaCustomerStatisticDailyService {
26
 public class TaCustomerStatisticDailyServiceImpl extends ServiceImpl<TaCustomerStatisticDailyMapper, TaCustomerStatisticDaily> implements ITaCustomerStatisticDailyService {
19
-
27
+	
28
+	@Autowired
29
+	private TaCustomerStatisticDailyMapper customerStatisticDailyMapper;
30
+	
31
+	/**
32
+	 * 每天的跟进客户统计
33
+	 *
34
+	 * @param nowDate
35
+	 */
36
+	@Override
37
+	public void followUpStatisticDaily(LocalDateTime nowDate) {
38
+		//按当前时间获取当天的跟进客户的数量,多一个客户进行多次跟进行为,只记录一次
39
+		List<TaCustomerStatisticDaily> list = customerStatisticDailyMapper.getFollowUpData(nowDate);
40
+		//批量保存
41
+		statisticDailySaveBatch(list,nowDate,CommConstant.CUSTOMER_TYPE_FOLLOW);
42
+	}
43
+	
44
+	/**
45
+	 * 每天的新增客户统计
46
+	 *
47
+	 * @param nowDate
48
+	 */
49
+	@Override
50
+	public void newCustomerStatisticDaily(LocalDateTime nowDate) {
51
+		//按当前时间获取当天的新增客户的数量,ta_recommend_customer 表的status 为1 的就是新增客户
52
+		List<TaCustomerStatisticDaily> list = customerStatisticDailyMapper.getNewCustomerData(nowDate,CommConstant.STATUS_NORMAL);
53
+		//批量保存
54
+		statisticDailySaveBatch(list,nowDate,CommConstant.CUSTOMER_TYPE_NEW);
55
+	}
56
+	
57
+	/**
58
+	 * 每天的到访客户统计
59
+	 *
60
+	 * @param nowDate
61
+	 */
62
+	@Override
63
+	public void visiteStatisticDaily(LocalDateTime nowDate) {
64
+		//按当前时间获取当天的到访客户的数量,同一天同一个项目只记录一次
65
+		List<TaCustomerStatisticDaily> list = customerStatisticDailyMapper.getVisiteCustomerData(nowDate,CommConstant.STATUS_NORMAL);
66
+		List<TaCustomerStatisticDaily> saveList = new ArrayList<>();
67
+		list.forEach(e -> {
68
+			if (null != e.getOrgId() && !e.getOrgId().equals("null")){
69
+				saveList.add(e);
70
+			}
71
+		});
72
+		//批量保存
73
+		statisticDailySaveBatch(saveList,nowDate,CommConstant.CUSTOMER_TYPE_VISITE);
74
+	}
75
+	
76
+	/**
77
+	 * 批量保存当天的统计数据
78
+	 * @param list
79
+	 * @param nowDate
80
+	 * @param customerType
81
+	 */
82
+	private void statisticDailySaveBatch(List<TaCustomerStatisticDaily> list, LocalDateTime nowDate, String customerType) {
83
+		list.forEach(e -> {
84
+			e.setCreateDate(nowDate);
85
+			e.setCustomerType(customerType);
86
+		});
87
+		//批量保存
88
+		this.saveBatch(list);
89
+	}
20
 }
90
 }

+ 39
- 0
src/main/resources/mapper/statistic/TaCustomerStatisticDailyMapper.xml Ver arquivo

2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
 <mapper namespace="com.huiju.estateagents.statistic.mapper.TaCustomerStatisticDailyMapper">
3
 <mapper namespace="com.huiju.estateagents.statistic.mapper.TaCustomerStatisticDailyMapper">
4
 
4
 
5
+    <select id="getFollowUpData" resultType="com.huiju.estateagents.statistic.entity.TaCustomerStatisticDaily">
6
+        SELECT
7
+            org_id,
8
+            count( DISTINCT ( customer_id ) ) as customer_num
9
+        FROM
10
+            ta_customer_follow_up_record
11
+        WHERE
12
+            date_format( create_date, '%Y-%m-%d' ) = date_format( #{nowDate}, '%Y-%m-%d' )
13
+        GROUP BY
14
+            org_id
15
+    </select>
16
+
17
+    <select id="getNewCustomerData" resultType="com.huiju.estateagents.statistic.entity.TaCustomerStatisticDaily">
18
+        SELECT
19
+            org_id,
20
+            count( customer_id ) as customer_num
21
+        FROM
22
+            ta_recommend_customer
23
+        WHERE
24
+            `STATUS` = #{status}
25
+            AND date_format( create_date, '%Y-%m-%d' ) = date_format( #{nowDate}, '%Y-%m-%d' )
26
+        GROUP BY
27
+            org_id
28
+    </select>
29
+    <select id="getVisiteCustomerData" resultType="com.huiju.estateagents.statistic.entity.TaCustomerStatisticDaily">
30
+        SELECT
31
+            count( DISTINCT ( c.customer_id ) ) as customer_num,
32
+            c.org_id
33
+        FROM
34
+            ta_activity_dynamic_enlist t
35
+            LEFT JOIN ta_recommend_customer c ON t.person_id = c.person_id
36
+            AND t.building_id = c.building_id
37
+            AND t.org_id = c.org_id
38
+        WHERE
39
+            t.is_checkin = #{checkin}
40
+            AND date_format( t.create_date, '%Y-%m-%d' ) = date_format( #{nowDate}, '%Y-%m-%d' )
41
+        GROUP BY
42
+            c.org_id
43
+    </select>
5
 </mapper>
44
 </mapper>