傅行帆 5 gadus atpakaļ
vecāks
revīzija
494d864000

+ 5
- 0
src/main/java/com/huiju/estateagents/entity/TaPersonFromRecord.java Parādīt failu

@@ -85,4 +85,9 @@ public class TaPersonFromRecord implements Serializable {
85 85
      * 行为
86 86
      */
87 87
     private String activity;
88
+
89
+    /**
90
+     * 微信来源类型
91
+     */
92
+    private String sceneType;
88 93
 }

+ 17
- 10
src/main/java/com/huiju/estateagents/job/CustomerStatisticTimeJob.java Parādīt failu

@@ -1,6 +1,7 @@
1 1
 package com.huiju.estateagents.job;
2 2
 
3 3
 import com.huiju.estateagents.base.BaseController;
4
+import com.huiju.estateagents.service.ITaPersonFromRecordService;
4 5
 import com.huiju.estateagents.statistic.service.ITsCustomerGenderStatisticService;
5 6
 import com.huiju.estateagents.statistic.service.ITsCustomerStatisticDailyService;
6 7
 import com.huiju.estateagents.statistic.service.ITsCustomerStatisticMonthlyService;
@@ -36,6 +37,9 @@ public class CustomerStatisticTimeJob extends BaseController {
36 37
     @Autowired
37 38
     private ITsCustomerStatisticMonthlyService customerStatisticMonthlyService;
38 39
 
40
+    @Autowired
41
+    public ITaPersonFromRecordService iTaPersonFromRecordService;
42
+
39 43
     /**
40 44
      *
41 45
      * 盘客工具数据统计
@@ -43,36 +47,39 @@ public class CustomerStatisticTimeJob extends BaseController {
43 47
      * 开启定时任务,每天23:50执行
44 48
      */
45 49
     @Scheduled(cron = "59 50 23 * * ?")
46
-    //@Scheduled(cron = "* 0/5 * * * ?")
50
+//    @Scheduled(cron = "* 0/1 * * * ?")
47 51
     private void configureTasks() {
48 52
         LocalDateTime nowDate = LocalDateTime.now();
49
-    
53
+
50 54
         //每天的新增客户统计并入表
51 55
         customerStatisticDailyService.newCustomerStatisticDaily(nowDate);
52
-        
56
+
53 57
         //每天的跟进客户统计并入表
54 58
         customerStatisticDailyService.followUpStatisticDaily(nowDate);
55
-        
59
+
56 60
         //每天的到访客户统计并入表
57 61
         customerStatisticDailyService.visiteStatisticDaily(nowDate);
58
-    
62
+
59 63
         //每天的新增客户性别统计并入表
60 64
         taCustomerGenderStatisticService.newCustomerSexStatisticDaily(nowDate);
61
-    
65
+
62 66
         //每天的跟进客户性别统计并入表
63 67
         taCustomerGenderStatisticService.followUpSexStatisticDaily(nowDate);
64
-    
68
+
65 69
         //每天的到访客户性别统计并入表
66 70
         taCustomerGenderStatisticService.visiteSexStatisticDaily(nowDate);
67
-    
71
+
68 72
         //每月的新增客户统计并入表,但是每天都更新
69 73
         customerStatisticMonthlyService.newCustomerStatisticMonthly(nowDate);
70
-    
74
+
71 75
         //每月的跟进客户统计并入表,但是每天都更新
72 76
         customerStatisticMonthlyService.followUpStatisticMonthly(nowDate);
73
-    
77
+
74 78
         //每月的到访客户统计并入表,但是每天都更新
75 79
         customerStatisticMonthlyService.visiteStatisticMonthly(nowDate);
80
+
81
+        //统计新增来源用户
82
+        iTaPersonFromRecordService.personFromStatistic();
76 83
     }
77 84
 
78 85
 }

+ 4
- 0
src/main/java/com/huiju/estateagents/mapper/TaPersonFromRecordMapper.java Parādīt failu

@@ -2,8 +2,11 @@ package com.huiju.estateagents.mapper;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4
 import com.huiju.estateagents.entity.TaPersonFromRecord;
5
+import com.huiju.estateagents.statistic.entity.TsPersonFromStatistic;
5 6
 import org.apache.ibatis.annotations.Mapper;
6 7
 
8
+import java.util.List;
9
+
7 10
 /**
8 11
  * <p>
9 12
  * 新增用户来源表  Mapper 接口
@@ -15,4 +18,5 @@ import org.apache.ibatis.annotations.Mapper;
15 18
 @Mapper
16 19
 public interface TaPersonFromRecordMapper extends BaseMapper<TaPersonFromRecord> {
17 20
 
21
+    List<TsPersonFromStatistic> getNowDataList();
18 22
 }

+ 5
- 0
src/main/java/com/huiju/estateagents/service/ITaPersonFromRecordService.java Parādīt failu

@@ -15,4 +15,9 @@ import com.huiju.estateagents.entity.TaPersonVisitRecord;
15 15
 public interface ITaPersonFromRecordService extends IService<TaPersonFromRecord> {
16 16
 
17 17
     void addNewPersonRecordRecord(TaPersonVisitRecord taPersonVisitRecord);
18
+
19
+    /**
20
+     * 定时任务批量保存数据
21
+     */
22
+    void personFromStatistic();
18 23
 }

+ 15
- 0
src/main/java/com/huiju/estateagents/service/impl/TaPersonFromRecordServiceImpl.java Parādīt failu

@@ -6,10 +6,13 @@ import com.huiju.estateagents.entity.TaPersonFromRecord;
6 6
 import com.huiju.estateagents.entity.TaPersonVisitRecord;
7 7
 import com.huiju.estateagents.mapper.TaPersonFromRecordMapper;
8 8
 import com.huiju.estateagents.service.ITaPersonFromRecordService;
9
+import com.huiju.estateagents.statistic.entity.TsPersonFromStatistic;
10
+import com.huiju.estateagents.statistic.mapper.TsPersonFromStatisticMapper;
9 11
 import org.springframework.beans.factory.annotation.Autowired;
10 12
 import org.springframework.stereotype.Service;
11 13
 
12 14
 import java.time.LocalDateTime;
15
+import java.util.List;
13 16
 
14 17
 /**
15 18
  * <p>
@@ -25,6 +28,9 @@ public class TaPersonFromRecordServiceImpl extends ServiceImpl<TaPersonFromRecor
25 28
     @Autowired
26 29
     private TaPersonFromRecordMapper taPersonFromRecordMapper;
27 30
 
31
+    @Autowired
32
+    private TsPersonFromStatisticMapper tsPersonFromStatisticMapper;
33
+
28 34
     /**
29 35
      * 通過買點表清洗數據
30 36
      * @param taPersonVisitRecord
@@ -53,4 +59,13 @@ public class TaPersonFromRecordServiceImpl extends ServiceImpl<TaPersonFromRecor
53 59
         }
54 60
         taPersonFromRecordMapper.insert(taPersonFromRecord);
55 61
     }
62
+
63
+    /**
64
+     * 定时任务批量保存数据
65
+     */
66
+    @Override
67
+    public void personFromStatistic() {
68
+        List<TsPersonFromStatistic> list =  taPersonFromRecordMapper.getNowDataList();
69
+        tsPersonFromStatisticMapper.insertStatisticList(list);
70
+    }
56 71
 }

+ 143
- 0
src/main/java/com/huiju/estateagents/statistic/controller/TsPersonFromStatisticController.java Parādīt failu

@@ -0,0 +1,143 @@
1
+package com.huiju.estateagents.statistic.controller;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
+import com.huiju.estateagents.base.BaseController;
7
+import com.huiju.estateagents.base.ResponseBean;
8
+import com.huiju.estateagents.statistic.entity.TsPersonFromStatistic;
9
+import com.huiju.estateagents.statistic.service.ITsPersonFromStatisticService;
10
+import org.slf4j.Logger;
11
+import org.slf4j.LoggerFactory;
12
+import org.springframework.beans.factory.annotation.Autowired;
13
+import org.springframework.web.bind.annotation.*;
14
+
15
+/**
16
+ * <p>
17
+    * 用户来源统计表  前端控制器
18
+    * </p>
19
+ *
20
+ * @author jobob
21
+ * @since 2020-01-04
22
+ */
23
+@RestController
24
+@RequestMapping("/")
25
+public class TsPersonFromStatisticController extends BaseController {
26
+
27
+    private final Logger logger = LoggerFactory.getLogger(TsPersonFromStatisticController.class);
28
+
29
+    @Autowired
30
+    public ITsPersonFromStatisticService iTsPersonFromStatisticService;
31
+
32
+
33
+    /**
34
+     * 分页查询列表
35
+     * @param pageNum
36
+     * @param pageSize
37
+     * @return
38
+     */
39
+    @RequestMapping(value="/tsPersonFromStatistic",method= RequestMethod.GET)
40
+    public ResponseBean tsPersonFromStatisticList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
41
+                                                  @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
42
+        ResponseBean responseBean = new ResponseBean();
43
+        try {
44
+            //使用分页插件
45
+		    IPage<TsPersonFromStatistic> pg = new Page<>(pageNum, pageSize);
46
+            QueryWrapper<TsPersonFromStatistic> queryWrapper = new QueryWrapper<>();
47
+            queryWrapper.orderByDesc("create_date");
48
+
49
+            IPage<TsPersonFromStatistic> result = iTsPersonFromStatisticService.page(pg, queryWrapper);
50
+            responseBean.addSuccess(result);
51
+        }catch (Exception e){
52
+            e.printStackTrace();
53
+            logger.error("tsPersonFromStatisticList -=- {}",e.toString());
54
+            responseBean.addError(e.getMessage());
55
+        }
56
+        return responseBean;
57
+    }
58
+
59
+    /**
60
+     * 保存对象
61
+     * @param tsPersonFromStatistic 实体对象
62
+     * @return
63
+     */
64
+    @RequestMapping(value="/tsPersonFromStatistic",method= RequestMethod.POST)
65
+    public ResponseBean tsPersonFromStatisticAdd(@RequestBody TsPersonFromStatistic tsPersonFromStatistic){
66
+        ResponseBean responseBean = new ResponseBean();
67
+        try {
68
+            if (iTsPersonFromStatisticService.save(tsPersonFromStatistic)){
69
+                responseBean.addSuccess(tsPersonFromStatistic);
70
+            }else {
71
+                responseBean.addError("fail");
72
+            }
73
+        }catch (Exception e){
74
+            e.printStackTrace();
75
+            logger.error("tsPersonFromStatisticAdd -=- {}",e.toString());
76
+            responseBean.addError(e.getMessage());
77
+        }
78
+        return responseBean;
79
+    }
80
+
81
+    /**
82
+     * 根据id删除对象
83
+     * @param id  实体ID
84
+     */
85
+    @ResponseBody
86
+    @RequestMapping(value="/tsPersonFromStatistic/{id}", method= RequestMethod.DELETE)
87
+    public ResponseBean tsPersonFromStatisticDelete(@PathVariable Integer id){
88
+        ResponseBean responseBean = new ResponseBean();
89
+        try {
90
+            if(iTsPersonFromStatisticService.removeById(id)){
91
+                responseBean.addSuccess("success");
92
+            }else {
93
+                responseBean.addError("fail");
94
+            }
95
+        }catch (Exception e){
96
+            e.printStackTrace();
97
+            logger.error("tsPersonFromStatisticDelete -=- {}",e.toString());
98
+            responseBean.addError(e.getMessage());
99
+        }
100
+        return responseBean;
101
+    }
102
+
103
+    /**
104
+     * 修改对象
105
+     * @param id  实体ID
106
+     * @param tsPersonFromStatistic 实体对象
107
+     * @return
108
+     */
109
+    @RequestMapping(value="/tsPersonFromStatistic/{id}",method= RequestMethod.PUT)
110
+    public ResponseBean tsPersonFromStatisticUpdate(@PathVariable Integer id,
111
+                                        @RequestBody TsPersonFromStatistic tsPersonFromStatistic){
112
+        ResponseBean responseBean = new ResponseBean();
113
+        try {
114
+            if (iTsPersonFromStatisticService.updateById(tsPersonFromStatistic)){
115
+                responseBean.addSuccess(tsPersonFromStatistic);
116
+            }else {
117
+                responseBean.addError("fail");
118
+            }
119
+        }catch (Exception e){
120
+            e.printStackTrace();
121
+            logger.error("tsPersonFromStatisticUpdate -=- {}",e.toString());
122
+            responseBean.addError(e.getMessage());
123
+        }
124
+        return responseBean;
125
+    }
126
+
127
+    /**
128
+     * 根据id查询对象
129
+     * @param id  实体ID
130
+     */
131
+    @RequestMapping(value="/tsPersonFromStatistic/{id}",method= RequestMethod.GET)
132
+    public ResponseBean tsPersonFromStatisticGet(@PathVariable Integer id){
133
+        ResponseBean responseBean = new ResponseBean();
134
+        try {
135
+            responseBean.addSuccess(iTsPersonFromStatisticService.getById(id));
136
+        }catch (Exception e){
137
+            e.printStackTrace();
138
+            logger.error("tsPersonFromStatisticDelete -=- {}",e.toString());
139
+            responseBean.addError(e.getMessage());
140
+        }
141
+        return responseBean;
142
+    }
143
+}

+ 62
- 0
src/main/java/com/huiju/estateagents/statistic/entity/TsPersonFromStatistic.java Parādīt failu

@@ -0,0 +1,62 @@
1
+package com.huiju.estateagents.statistic.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import lombok.Data;
6
+import lombok.EqualsAndHashCode;
7
+import lombok.experimental.Accessors;
8
+
9
+import java.io.Serializable;
10
+import java.time.LocalDateTime;
11
+
12
+/**
13
+ * <p>
14
+ * 用户来源统计表 
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2020-01-04
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+public class TsPersonFromStatistic implements Serializable {
24
+
25
+    private static final long serialVersionUID = 1L;
26
+
27
+    /**
28
+     * ID
29
+     */
30
+    @TableId(value = "person_from_statistic_id", type = IdType.AUTO)
31
+    private Integer personFromStatisticId;
32
+
33
+    /**
34
+     * 场景类型
35
+     */
36
+    private String sceneType;
37
+
38
+    /**
39
+     * 事件类型
40
+     */
41
+    private String eventType;
42
+
43
+    /**
44
+     * 来源数量
45
+     */
46
+    private Integer fromNum;
47
+
48
+    /**
49
+     * 公司id
50
+     */
51
+    private Integer orgId;
52
+
53
+    /**
54
+     * 创建时间
55
+     */
56
+    private LocalDateTime createDate;
57
+
58
+    /**
59
+     * 注册数量
60
+     */
61
+    private Integer registeredNum;
62
+}

+ 21
- 0
src/main/java/com/huiju/estateagents/statistic/mapper/TsPersonFromStatisticMapper.java Parādīt failu

@@ -0,0 +1,21 @@
1
+package com.huiju.estateagents.statistic.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.estateagents.statistic.entity.TsPersonFromStatistic;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+import java.util.List;
8
+
9
+/**
10
+ * <p>
11
+ * 用户来源统计表  Mapper 接口
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2020-01-04
16
+ */
17
+@Mapper
18
+public interface TsPersonFromStatisticMapper extends BaseMapper<TsPersonFromStatistic> {
19
+
20
+    void insertStatisticList(List<TsPersonFromStatistic> list);
21
+}

+ 16
- 0
src/main/java/com/huiju/estateagents/statistic/service/ITsPersonFromStatisticService.java Parādīt failu

@@ -0,0 +1,16 @@
1
+package com.huiju.estateagents.statistic.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.estateagents.statistic.entity.TsPersonFromStatistic;
5
+
6
+/**
7
+ * <p>
8
+ * 用户来源统计表  服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2020-01-04
13
+ */
14
+public interface ITsPersonFromStatisticService extends IService<TsPersonFromStatistic> {
15
+
16
+}

+ 20
- 0
src/main/java/com/huiju/estateagents/statistic/service/impl/TsPersonFromStatisticServiceImpl.java Parādīt failu

@@ -0,0 +1,20 @@
1
+package com.huiju.estateagents.statistic.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.estateagents.statistic.entity.TsPersonFromStatistic;
5
+import com.huiju.estateagents.statistic.mapper.TsPersonFromStatisticMapper;
6
+import com.huiju.estateagents.statistic.service.ITsPersonFromStatisticService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 用户来源统计表  服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2020-01-04
16
+ */
17
+@Service
18
+public class TsPersonFromStatisticServiceImpl extends ServiceImpl<TsPersonFromStatisticMapper, TsPersonFromStatistic> implements ITsPersonFromStatisticService {
19
+
20
+}

+ 19
- 0
src/main/resources/mapper/TaPersonFromRecordMapper.xml Parādīt failu

@@ -2,4 +2,23 @@
2 2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3 3
 <mapper namespace="com.huiju.estateagents.mapper.TaPersonFromRecordMapper">
4 4
 
5
+    <select id="getNowDataList" resultType="com.huiju.estateagents.statistic.entity.TsPersonFromStatistic">
6
+        SELECT
7
+            count( 1 ) AS from_num,
8
+            t.scene_type,
9
+            t.event_type,
10
+            t.org_id,
11
+            t.create_date,
12
+            sum( IF ( p.photo IS NOT NULL OR p.tel IS NOT NULL, 1, 0 ) ) AS registered_num
13
+        FROM
14
+            ta_person_from_record t
15
+            LEFT JOIN ta_person p ON t.person_id = p.person_id
16
+        WHERE
17
+            t.is_first_time = 1
18
+            AND DATE_FORMAT( t.create_date, '%Y-%m-%d' ) = DATE_FORMAT( NOW( ), '%Y-%m-%d' )
19
+        GROUP BY
20
+            t.scene_type,
21
+            t.event_type,
22
+            t.org_id
23
+    </select>
5 24
 </mapper>

+ 12
- 0
src/main/resources/mapper/statistic/TsPersonFromStatisticMapper.xml Parādīt failu

@@ -0,0 +1,12 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
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.TsPersonFromStatisticMapper">
4
+
5
+    <insert id="insertStatisticList">
6
+        INSERT INTO ts_person_from_statistic(scene_type,event_type,from_num,org_id,create_date,registered_num)
7
+        VALUES
8
+        <foreach collection="list" item="item" separator=",">
9
+            (#{item.sceneType},#{item.eventType},#{item.fromNum},#{item.orgId},#{item.createDate},#{item.registeredNum})
10
+        </foreach>
11
+    </insert>
12
+</mapper>