浏览代码

统计修改

魏熙美 5 年前
父节点
当前提交
76358c7185

+ 7
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java 查看文件

@@ -295,4 +295,11 @@ public class CommConstant {
295 295
 
296 296
 
297 297
     // ------   转化率 end ---------
298
+
299
+
300
+    // ------- 用户来源 查询条件 start ----------
301
+
302
+    public static final String REGISTERED_TYPE = "registered";
303
+
304
+    // ------- 用户来源 查询条件 end ----------
298 305
 }

+ 12
- 27
src/main/java/com/huiju/estateagents/controller/StatisticalController.java 查看文件

@@ -3,8 +3,10 @@ package com.huiju.estateagents.controller;
3 3
 import com.huiju.estateagents.base.ResponseBean;
4 4
 import com.huiju.estateagents.service.IStatisticalService;
5 5
 import org.springframework.beans.factory.annotation.Autowired;
6
+import org.springframework.format.annotation.DateTimeFormat;
6 7
 import org.springframework.web.bind.annotation.*;
7 8
 
9
+import java.time.LocalDate;
8 10
 import java.util.Date;
9 11
 
10 12
 /**
@@ -59,24 +61,15 @@ public class StatisticalController {
59 61
      * @return
60 62
      */
61 63
     @GetMapping(value = "/admin/selectUserBehavior")
62
-    public ResponseBean selectUserBehavior(@RequestParam(required = false) Date startDate,
63
-                                            @RequestParam(required = false) Date endDate) {
64
-        return iStatisticalService.selectUserBehavior(startDate, endDate);
65
-    }
66
-
67
-
68
-    /**
69
-     * 行为分析的 列表
70
-     * @return
71
-     */
72
-    @GetMapping(value = "/admin/selectUserBehaviorAll")
73
-    public ResponseBean selectUserBehaviorAll(@RequestParam(required = false) Integer pageNum,
74
-                                           @RequestParam(required = false) Integer pageCode) {
75
-        return iStatisticalService.selectUserBehaviorAll(pageNum, pageCode);
64
+    public ResponseBean selectUserBehavior(@RequestParam(required = false) Integer pageNum,
65
+                                           @RequestParam(required = false) Integer pageCode,
66
+                                           @RequestParam(required = false) Date startDate,
67
+                                           @RequestParam(required = false) Date endDate) {
68
+        return iStatisticalService.selectUserBehavior(pageNum, pageCode, startDate, endDate);
76 69
     }
77 70
 
78 71
     /**
79
-     * 行为分析的 具体数据列表
72
+     * 行为分析的 具体事件数据列表
80 73
      * @return
81 74
      */
82 75
     @GetMapping(value = "/admin/selectEventAll")
@@ -85,24 +78,16 @@ public class StatisticalController {
85 78
         return iStatisticalService.selectEventAll(event, personId);
86 79
     }
87 80
 
88
-    /**
89
-     * 行为分析的 具体数据列表
90
-     * @return
91
-     */
92
-    @GetMapping(value = "/admin/selectConversion/activity")
93
-    public ResponseBean selectConversionAll(@RequestParam(value = "conversion") String conversion) {
94
-        return iStatisticalService.selectConversion(conversion);
95
-    }
96
-
97 81
 
98 82
     /**
99 83
      * 用户来源 统计首页
100 84
      * @return
101 85
      */
102 86
     @GetMapping(value = "/admin/selectUserResource")
103
-    public ResponseBean selectUserResource(@RequestParam(value = "startDate", required = false) Date startDate,
104
-                                           @RequestParam(value = "endDate", required = false) Date endDate) {
105
-        return iStatisticalService.selectUserResource(startDate, endDate);
87
+    public ResponseBean selectUserResource(@RequestParam(value = "startDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate startDate,
88
+                                           @RequestParam(value = "endDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)  LocalDate endDate,
89
+                                           @RequestParam(value = "registeredType", required = false) String registeredType) {
90
+        return iStatisticalService.selectUserResource(startDate, endDate, registeredType);
106 91
     }
107 92
 
108 93
 

+ 3
- 2
src/main/java/com/huiju/estateagents/mapper/TaPersonMapper.java 查看文件

@@ -10,6 +10,7 @@ import org.apache.ibatis.annotations.ResultType;
10 10
 import org.apache.ibatis.annotations.Select;
11 11
 
12 12
 import java.io.Serializable;
13
+import java.time.LocalDate;
13 14
 import java.util.Date;
14 15
 import java.util.List;
15 16
 import java.util.Map;
@@ -136,12 +137,12 @@ public interface TaPersonMapper extends BaseMapper<TaPerson> {
136 137
      * 用户来源 柱状
137 138
      * @return
138 139
      */
139
-    List<Map<String, Object>> selectUserSourceColumnar(@Param("personType") String personType, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
140
+    List<Map<String, Object>> selectUserSourceColumnar(@Param("personType") String personType, @Param("startDate") LocalDate startDate, @Param("endDate")LocalDate endDate);
140 141
 
141 142
     /**
142 143
      * 用户来源 数据列表
143 144
      */
144
-    List<Map<String,Object>> selectUserSourceData(@Param("personType") String personType, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
145
+    List<Map<String,Object>> selectUserSourceData(@Param("personType") String personType, @Param("startDate")LocalDate startDate, @Param("endDate")LocalDate endDate, @Param("registeredType") String registeredType);
145 146
 
146 147
     // ------------- 用户来源 end ------------
147 148
 

+ 3
- 10
src/main/java/com/huiju/estateagents/service/IStatisticalService.java 查看文件

@@ -2,6 +2,7 @@ package com.huiju.estateagents.service;
2 2
 
3 3
 import com.huiju.estateagents.base.ResponseBean;
4 4
 
5
+import java.time.LocalDate;
5 6
 import java.util.Date;
6 7
 
7 8
 /**
@@ -35,15 +36,7 @@ public interface IStatisticalService {
35 36
      * @param endDate
36 37
      * @return
37 38
      */
38
-    ResponseBean selectUserBehavior(Date startDate,Date endDate);
39
-
40
-    /**
41
-     * 行为分析的 列表
42
-     * @param pageNum
43
-     * @param pageCode
44
-     * @return
45
-     */
46
-    ResponseBean selectUserBehaviorAll(Integer pageNum, Integer pageCode);
39
+    ResponseBean selectUserBehavior(Integer pageNum, Integer pageSize, Date startDate,Date endDate);
47 40
 
48 41
     /**
49 42
      * 行为分析的 具体数据列表
@@ -64,6 +57,6 @@ public interface IStatisticalService {
64 57
      * 用户来源 首页
65 58
      * @return
66 59
      */
67
-    ResponseBean selectUserResource(Date startDate, Date endDate);
60
+    ResponseBean selectUserResource(LocalDate startDate, LocalDate endDate, String registeredType);
68 61
 
69 62
 }

+ 30
- 12
src/main/java/com/huiju/estateagents/service/impl/StatisticalServiceImpl.java 查看文件

@@ -13,6 +13,7 @@ import lombok.extern.slf4j.Slf4j;
13 13
 import org.springframework.beans.factory.annotation.Autowired;
14 14
 import org.springframework.stereotype.Service;
15 15
 
16
+import java.time.LocalDate;
16 17
 import java.time.LocalDateTime;
17 18
 import java.util.Date;
18 19
 import java.util.HashMap;
@@ -77,6 +78,27 @@ public class StatisticalServiceImpl implements IStatisticalService {
77 78
         // 转化率, 当前 默认项目收藏
78 79
         Map<String, Object> selectBuildingStatistical = taBuildingMapper.selectBuildingStatistical("save");
79 80
 
81
+        // -------  用户来源 start ------------
82
+
83
+        // 用户来源 柱状
84
+        List<Map<String, Object>> mapList = taPersonMapper.selectUserSourceColumnar(CommConstant.PERSON_REALTY_CONSULTANT, null, null);
85
+
86
+        // 用户来源 饼状
87
+        // 来源置业顾问, 来源全民经纪人,自由进入
88
+        Integer person_realty_consultant = taPersonMapper.selectUserSourcePie(CommConstant.PERSON_REALTY_CONSULTANT, CommConstant.PERSON_REALTY_CONSULTANT);
89
+        Integer person_estate_agent = taPersonMapper.selectUserSourcePie(CommConstant.PERSON_ESTATE_AGENT, CommConstant.PERSON_REALTY_CONSULTANT);
90
+        Integer person_null = taPersonMapper.selectUserSourcePie(null, CommConstant.PERSON_REALTY_CONSULTANT);
91
+        Map<String, Object> pieMap = new HashMap<>();
92
+        pieMap.put("person_realty_consultant", person_realty_consultant);
93
+        pieMap.put("person_estate_agent", person_estate_agent);
94
+        pieMap.put("person_null", person_null);
95
+
96
+        Map<String, Object> result = new HashMap<>();
97
+        result.put("columnar", mapList);
98
+        result.put("pie", pieMap);
99
+
100
+        // -------  用户来源 end ------------
101
+
80 102
         map.put("selectUserCount", selectUserCount);
81 103
         map.put("selectRegisteredCount", selectRegisteredCount);
82 104
         map.put("selectRecentlyCount", selectRecentlyCount);
@@ -86,6 +108,7 @@ public class StatisticalServiceImpl implements IStatisticalService {
86 108
         map.put("selectSexUser", selectSexUser);
87 109
         map.put("selectCityUser", selectCityUser);
88 110
         map.put("selectBuildingStatistical", selectBuildingStatistical);
111
+        map.put("selectUserSource", result);
89 112
 
90 113
         responseBean.addSuccess(map);
91 114
 
@@ -129,27 +152,22 @@ public class StatisticalServiceImpl implements IStatisticalService {
129 152
     }
130 153
 
131 154
     @Override
132
-    public ResponseBean selectUserBehavior(Date startDate, Date endDate) {
155
+    public ResponseBean selectUserBehavior(Integer pageNum, Integer pageSize, Date startDate, Date endDate) {
133 156
         ResponseBean responseBean = new ResponseBean();
134 157
 
135 158
         // 用户行为
136 159
         List<PersonPO> selectUserBehavior = taPersonMapper.selectUserBehavior(CommConstant.PERSON_REALTY_CONSULTANT, startDate, endDate);
137 160
 
161
+        IPage<TaPersonVisitRecord> page = new Page<>(pageNum, pageSize);
162
+        IPage<TaPersonVisitRecord> visitRecordIPage = taPersonVisitRecordMapper.selectAll(page);
163
+
138 164
         Map<String, Object> map = new HashMap<>();
139 165
         map.put("selectUserBehavior", selectUserBehavior);
166
+        map.put("data", visitRecordIPage);
140 167
         responseBean.addSuccess(map);
141 168
         return responseBean;
142 169
     }
143 170
 
144
-    @Override
145
-    public ResponseBean selectUserBehaviorAll(Integer pageNum, Integer pageSize) {
146
-        ResponseBean responseBean = new ResponseBean();
147
-        IPage<TaPersonVisitRecord> page = new Page<>(pageNum, pageSize);
148
-        IPage<TaPersonVisitRecord> visitRecordIPage = taPersonVisitRecordMapper.selectAll(page);
149
-        responseBean.addSuccess(visitRecordIPage);
150
-        return responseBean;
151
-    }
152
-
153 171
     @Override
154 172
     public ResponseBean selectEventAll(String event, Integer personId) {
155 173
         ResponseBean responseBean = new ResponseBean();
@@ -215,7 +233,7 @@ public class StatisticalServiceImpl implements IStatisticalService {
215 233
 
216 234
 
217 235
     @Override
218
-    public ResponseBean selectUserResource(Date startDate, Date endDate) {
236
+    public ResponseBean selectUserResource(LocalDate startDate, LocalDate endDate, String registeredType) {
219 237
         ResponseBean responseBean = new ResponseBean();
220 238
         // 用户来源 柱状
221 239
         List<Map<String, Object>> mapList = taPersonMapper.selectUserSourceColumnar(CommConstant.PERSON_REALTY_CONSULTANT, startDate, endDate);
@@ -231,7 +249,7 @@ public class StatisticalServiceImpl implements IStatisticalService {
231 249
         map.put("person_null", person_null);
232 250
 
233 251
         // 用户来源 数据列表
234
-        List<Map<String, Object>> selectUserSourceData = taPersonMapper.selectUserSourceData(CommConstant.PERSON_ESTATE_AGENT, startDate, endDate);
252
+        List<Map<String, Object>> selectUserSourceData = taPersonMapper.selectUserSourceData(CommConstant.PERSON_ESTATE_AGENT, startDate, endDate, registeredType);
235 253
 
236 254
         Map<String, Object> result = new HashMap<>();
237 255
         result.put("columnar", mapList);

+ 41
- 25
src/main/resources/mapper/TaPersonMapper.xml 查看文件

@@ -170,34 +170,37 @@ FROM
170 170
 
171 171
 
172 172
     <select id="selectUserBehavior" resultType="com.huiju.estateagents.po.PersonPO">
173
+
173 174
         SELECT
174
-        *
175
+            temp_date.date as date,
176
+            temp_date.type_name as activity,
177
+            temp.activityCount as activityCount
175 178
         FROM
176 179
         (
177
-            SELECT
178
-            DATE_FORMAT( DATE_SUB( now( ), INTERVAL a.rownum DAY ), '%Y-%m-%d' ) AS date
179
-            FROM
180
-            sequence a
181
-            WHERE
180
+        SELECT
181
+          DATE_FORMAT( DATE_SUB( now( ), INTERVAL a.rownum DAY ), '%Y-%m-%d' ) AS date, b.type_id, b.type_name
182
+          from sequence a, td_biz_event_type b
183
+          where
182 184
             <if test="startDate == null or endDate == null">
183 185
                 a.rownum <![CDATA[ <= ]]> 7
184 186
             </if>
185 187
             <if test="startDate != null or endDate != null">
186 188
                 a.rownum <![CDATA[ <= ]]> datediff(#{endDate}, #{startDate})
187 189
             </if>
190
+
188 191
         ) AS temp_date
192
+
189 193
         LEFT JOIN (
190
-            SELECT
191
-            COUNT(1) as activityCount,
192
-            tpvr.visit_time AS visitTime,
193
-            tbet.type_name as activity
194
-            FROM
195
-            ta_person tp
196
-            INNER JOIN ta_person_visit_record tpvr ON tp.person_id = tpvr.person_id
197
-            INNER JOIN td_biz_event_type tbet ON tpvr.event_type = tbet.type_id
198
-            where ifnull(tp.person_type, '') != #{personType}
199
-            GROUP BY tpvr.activity
200
-        ) AS temp ON temp_date.date = DATE_FORMAT( temp.visitTime , '%Y-%m-%d' )
194
+        SELECT
195
+        COUNT(1) as activityCount,
196
+        tpvr.event_type,
197
+        DATE_FORMAT( tpvr.visit_time , '%Y-%m-%d' ) as date
198
+        FROM
199
+        ta_person tp
200
+        INNER JOIN ta_person_visit_record tpvr ON tp.person_id = tpvr.person_id
201
+        where ifnull(tp.person_type, '') != #{personType}
202
+        GROUP BY tpvr.person_id, tpvr.event_type, DATE_FORMAT( tpvr.visit_time , '%Y-%m-%d' )
203
+        ) AS temp ON temp_date.date = temp.date and temp_date.type_id = temp.event_type
201 204
     </select>
202 205
 
203 206
     <select id="selectActiveUserCount" resultType="map">
@@ -239,7 +242,7 @@ FROM
239 242
     <select id="selectNewsUserCount" resultType="map">
240 243
         SELECT
241 244
         authorization_count_table.date as date,
242
-        authorization_count_table.authorization_count as authorization_count,
245
+        ifnull(authorization_count_table.authorization_count, 0) as authorization_count,
243 246
         user_count_table.user_count as user_count
244 247
         FROM
245 248
         (
@@ -353,13 +356,21 @@ FROM
353 356
 
354 357
     <select id="selectUserSourceData" resultType="map">
355 358
         select
356
-        *
359
+            temp_date.date AS date,
360
+            temp_date.from_name as from_name,
361
+            temp_date.from_code as from_code,
362
+            IFNULL(user_count.count, 0) as count,
363
+            user_count.create_date as create_date
357 364
         FROM
358 365
         (
359 366
             SELECT
360
-              DATE_FORMAT( DATE_SUB( now( ), INTERVAL a.rownum DAY ), '%Y-%m-%d' ) AS date
367
+                DATE_FORMAT( DATE_SUB( now( ), INTERVAL a.rownum DAY ), '%Y-%m-%d' ) AS date,
368
+                tempf.from_name as from_name,
369
+                tempf.from_code as from_code
361 370
             FROM
362
-              sequence a
371
+                sequence a
372
+                ,
373
+                td_person_from tempf
363 374
             WHERE
364 375
             <if test="startDate == null or endDate == null">
365 376
                 a.rownum <![CDATA[ <= ]]> 7
@@ -367,22 +378,27 @@ FROM
367 378
             <if test="startDate != null or endDate != null">
368 379
                 a.rownum <![CDATA[ <= ]]> datediff(#{endDate}, #{startDate})
369 380
             </if>
381
+
370 382
         ) AS temp_date
383
+
371 384
         LEFT JOIN
372 385
         (
373 386
             SELECT
374
-                COUNT(1) as count,
387
+                ifnull(COUNT(1), 0) as count,
375 388
                 tps.create_date as create_date,
376 389
                 tpfs.from_code as from_code,
377 390
                 tpfs.from_name as from_name
378 391
             FROM ta_person tps
379 392
             LEFT JOIN td_person_from tpfs
380
-              ON tps.from_code = tpfs.from_code
393
+            ON tps.from_code = tpfs.from_code
381 394
             WHERE tpfs.from_code = tps.from_code
382
-              and ifnull(tps.person_type, '') != #{personType}
395
+            and ifnull(tps.person_type, '') != #{personType}
396
+            <if test="registeredType == 'registered' and registeredType != ''">
397
+                and tps.phone is not null
398
+            </if>
383 399
             GROUP BY tpfs.from_code
384 400
         ) as user_count
385
-        ON DATE_FORMAT(user_count.create_date,'%Y-%m-%d') =  temp_date.date
401
+        ON DATE_FORMAT(user_count.create_date,'%Y-%m-%d') =  temp_date.date and temp_date.from_code = user_count.from_code
386 402
     </select>
387 403
 
388 404
 </mapper>